/**
 * Class: HeaderClass
 * @author Charles Peter
 * 
 * This class handles the header part of the website like login form, logo click redirected to home, enewsgroup form
 **/

;(function($) {
	$.HeaderClass = function() {
		this.construct();
	},
	
	$.extend($.HeaderClass.prototype, {
		
		construct: function() {
			tClass = this;
			
			$('#login-button').click(function(e) {
				tClass.login();
			});
			
			$('#login_username').keypress(function(e) {
				if (e.keyCode == '13') {
					tClass.login();
					e.preventDefault();
				}
			});
			
			$('#login_password').keypress(function(e) {
				if (e.keyCode == '13') {
					tClass.login();
					e.preventDefault();
				}
			});
			
			this.inputclick();
			this.logoclick();
			this.register();
			this.enewsignup();
		},
		
		login: function() {
			var login_username = $.trim($('#login_username').val());
			var login_password = $.trim($('#login_password').val());
			
			if (!login_username || login_username == 'username') {
				alert('Username is required.');
				$('#login_username').val('');
				$('#login_username').focus();
				return false;
			}
			
			if (!login_password || login_password == 'password') {
				alert('Password is required.');
				$('#login_password').val('');
				$('#login_password').focus();
				return false;
			}
			
			var params = {
					login_username: encodeURIComponent(login_username),
					login_password: encodeURIComponent(login_password),
					submission_login: 1
			};
			
			$('#login-ajax-loader').show();
			
			$.post('login.php', params, function(resp) {
				if (resp) {
					if (resp.err == 0) {
						location.href = resp.redirect;
					}
					else {
						alert(resp.errmsg);
					}
				}
				
				$('#login-ajax-loader').hide();
			}, 'json');
			
			
		},
		
		check_keyboard_key: function(e)
		{
			var characterCode = 0;
			if( e && e.which )
			{
				e = e;
				characterCode = e.which;
			}
			
			else
			{
				e = typeof(event) != "undefined" ? event : null;
				if( e != null ) characterCode = e.keyCode;
			}
			
			if( characterCode == 13 )
			{
				this.login();
			}
		},
		
		inputclick: function() {
			$('#login_username').focusin( function() {
				if ($(this).val() == 'username') {
					$(this).val('');
				}
			});
			
			$('#login_username').focusout( function() {
				if ($(this).val() == '') {
					$(this).val('username');
				}
			});
			
			$('#login_password').focusin( function() {
				if ($(this).val() == 'password') {
					$(this).val('');
				}
			});
			
			$('#login_password').focusout( function() {
				if ($(this).val() == '') {
					$(this).val('password');
				}
			});
		},
		
		logoclick: function() {
			$('#header-left').unbind().click( function() {
				location.href = '/main';
			});
		},
		
		register: function() {
			$('#register_button').unbind().click( function() {
				location.href = 'register.php';
			});
		},
		
		enewsignup: function() {
			tClass = this;
			
			$('#newsletter_email').focusin( function() {
				if ($(this).val() == 'email address') {
					$(this).val('');
				}
			});
			
			$('#newsletter_email').focusout( function() {
				if ($(this).val() == '') {
					$(this).val('email address');
				}
			});
			
			$('#content-right-bottom-right').unbind().click( function() {
				var newsletter_email = $.trim($('#newsletter_email').val());
				if (!newsletter_email || newsletter_email == 'email address') {
					alert('Email address is required');
					$('#newsletter_email').val('');
					$('#newsletter_email').focus();
					return false;
					
				}
				
				if (!tClass.isEmail(newsletter_email)) {
					alert('Email address is invalid.\nPlease double check your email.');
					$('#newsletter_email').focus();
					return false;
				}
				
				var params = {
						newsletter_email: encodeURIComponent(newsletter_email)
				};
				
				$('#newsletters-ajax-loader').show();
				
				$.get(location.href, params, function(resp) {
					if (resp) {
						if (resp.err == 0) {
							alert('You\'ve successfully subscribe to our e-newsletters.\nThank You.');
							$('#newsletter_email').val('email address');
						}
						else {
							alert(resp.errmsg);
							$('#newsletter_email').focus();
						}
					}
					
					$('#newsletters-ajax-loader').hide();
				});
				
				return false;
			});
		},
		
		isEmail: function(value) {
			return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
		}
	});
	
	$(document).ready(function() {
		if (typeof $.Header === 'undefined') {
			$.Header = new $.HeaderClass();
		}
		
		$(document).bind("contextmenu", function(e){
            return false;
		}); 
	});
	
})(jQuery);

