// JavaScript Document
var bug = 0, final = 0;
$(function(){
	// Login form.
	$("#username").focus();
	$('#login').click(function(){$('#login_form').submit();});
	$('#login_form').submit(function(){return submitLoginForm();});
	$("#login_form input").keypress(function(e){
		if(e.which == 13) $('#login_form').submit();
	});
	
	// Registration form.
	$("#register_form input").keypress(function(e){
		if(e.which == 13) submitRegister();
	});
	$('#register').click(function(){submitRegister();});
	$("#uname, #email").bind("blur",function(){
		  final = 0;
		  var f = $(this).parents('form:eq(1),body').find('button,input,textarea,select');
		  var i = f.index(this);
		  var v = $(this).val();
		  if(i == 4)
		  	if(chkField($('input#uname').get()))
			  userAvailability();
		  /*if(i == 9)
		  	if(chkField($('input#email').get()))
			  emailAvailability();*/
	});
	$("#cnumber").keypress(function(evt){
	 var charCode = (evt.which) ? evt.which : event.keyCode;
	 if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 45 && charCode != 43)
            return false;
     return true;
	});
	$('a#recaptcha').bind('click', sendCaptcha);
});

// Check Email for validity
function chkEmail(o){
	if ( !((/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i).test($(o).val())) ) return false;
	else return true;
}

// Check wheather the field is empty or not
function chkEmpty(o){
	if($.trim($(o).val()).length > 0) return true;
	else return false;
}

// Check wheather the field is empty or not if it is add class otherwise remove class
function chkField(o){
	if(!chkEmpty($(o).get())){
		$(o).addClass('fld_error');
		bug++;
		return false;
	}
	else if( $(o).attr('id') == "email" && !chkEmail($(o).get()) ){
		$(o).addClass('fld_error');
		bug++;
		return false;
	}
	else{
		$(o).removeClass('fld_error');
		return true;
	}
}
// Send captcha request
function sendCaptcha(){
	$('a#recaptcha').unbind('click', sendCaptcha); // Prevent further clicks
	var isrc = $('img#captcha').attr('src');
	$('img#captcha').attr('src','images/captcha/noise_animated.gif');
	$.ajax({
	  type	: "GET",
	  url		: "images/captcha",
	  success	: function(){
		 var ts	= new Date().getTime();
		 $('img#captcha').attr('src',isrc+'?'+ts);
		 $('a#recaptcha').bind('click', sendCaptcha); // Rebind
	  }
	});
}
function chk_captcha()
{
	$.post('images/captcha/captcha_check.php',{c:$('input#captcha_text').val()},function(data){
		if(data=="1" && bug == 0 && final == 1){
			$('input#captcha_text').removeClass('fld_error');
			//alert("submit ho gaya");
			document.register_form.submit();
		}
		else{
			$('input#captcha_text').addClass('fld_error');
			bug++;
			$('register').removeAttr('disabled');
			alert("Please fill the correct code, as shown in picture");
			document.register_form.captcha_text.focus();
		}
	});
}
function matchPasswords()
{
	if($('#pass').attr('value').length > 0 || $('#cpass').attr('value').length > 0)
	{
		if($('#pass').val() != $('#cpass').val())
		{
			$('#pass,#cpass').addClass('fld_error');
			//$('#pass_err,#cpass_err').stop().removeClass().addClass('error').css('marginTop','2px').html('Passwords did not match.').fadeIn(100);
			$('#cpass').attr('value','');
			$('#pass').focus();
			bug++;
		}
		else if($('#pass').hasClass('fld_error') || $('#cpass').hasClass('fld_error'))
		{
			$('#pass,#cpass').removeClass('fld_error');
			//$('#pass_err,#cpass_err').stop().removeClass('error').addClass('accept').html('Now passwords have matched.').fadeOut("slow");
		}
	}
}
function userAvailability()
{
	var v = $('#uname').attr('value');
	if(v.length > 0)
	{
		bug++;
		$('#uname_err').removeClass().addClass('checking').html('Checking the avilability of your username...').css('marginTop','2px').fadeIn(1);
		$.post('includes/user_availability.php',{'gmp_username':v},function(data)
		{
			if(!data)
			{
				$('#uname_err').stop().removeClass().addClass('error').html('Username \"'+v+'\" is not available.').css('marginTop','2px').fadeIn(500);
				$('#uname').removeClass().addClass('fld_error');
			}
			else
			{
				$('#uname_err').stop().removeClass().addClass('accept').html('Username \"'+v+'\" is available.').fadeOut("slow");
				$('#uname').removeClass('fld_error');
				bug--;
				if(bug == 0 && final == 1)
					emailAvailability();
			}
		});
	}
}
function emailAvailability()
{
	var v = $('#email').attr('value');
	if(v.length > 0)
	{
		bug++;
		$('#email_err').removeClass().addClass('checking').html('Checking the avilability of your E-mail ID ...').css('marginTop','2px').fadeIn(1);
		$.post('includes/email_availability.php',{'gmp_email':v},function(data)
		{
			if(!data)
			{
				$('#email_err').stop().removeClass().addClass('error').html('Email ID \"'+v+'\" is not available.').css('marginTop','2px').fadeIn(500);
				$('#email').removeClass().addClass('fld_error');
			}
			else
			{
				bug--;
				$('#email_err').stop().removeClass().addClass('accept').html('Email ID \"'+v+'\" is available.').fadeOut("slow");
				$('#email').removeClass('fld_error');
				if(bug == 0 && final == 1)
					chk_captcha();
			}
		});
	}
}
function submitRegister()
{
	bug = final = 0;
	var un	= (chkField($('input#uname').get()))?true:false;
	var ps	= (chkField($('input#pass').get()))?true:false;
	var cps	= (chkField($('input#cpass').get()))?true:false;
	var nm	= (chkField($('input#name').get()))?true:false;
	var org	= (chkField($('input#organ').get()))?true:false;
	var ml	= (chkField($('input#email').get()))?true:false;
	var cno	= (chkField($('input#cnumber').get()))?true:false;
	var add	= (chkField($('#address').get()))?true:false;
	var ct	= (chkField($('input#city').get()))?true:false;
	var st	= (chkField($('input#state').get()))?true:false;
	var cnt	= (chkField($('input#country').get()))?true:false;
	var zp	= (chkField($('input#zipcode').get()))?true:false;
	matchPasswords();
	if(un && ps && cps && nm && org && ml && cno && add && ct && st && cnt && zp && bug == 0)
	{
		final = 1;
		userAvailability();
	}
	//alert(bug);
	return false;
}
function submitLoginForm()
{
	bug = 0;
	var un	= (chkField($('input#username').get()))?true:false;
	var ps	= (chkField($('input#password').get()))?true:false;
	if(un && ps){
		var u = $("#username").attr("value");
		var p = $("#password").attr("value");
		$('#login').hide();
		$("#l_msg").removeClass().fadeIn("slow",function(){
										   $("#l_msg").addClass("checking").html("Authenticating User...");
										   $.post("includes/auth_login.php",{un:u,pw:p},function(data){
												if(data == "true")
												{
													$("#l_msg").removeClass().addClass("info").html("Logged In...");
													document.login_form.submit(true);
													return true;
												}
												else
												{
													$("#login").show();
													$("#l_msg").removeClass().addClass("warning").html(data);
													return false;
												}
																							   });
										   })
		
	}
	else{
		$('#login').removeAttr('disabled');
		alert("You have done "+bug+" mistake(s).\n Please enter the correct values to the highlighted field(s) first !");
	}
	return false;
}
function forget_pass()
{
	window.location.href = "forget_pass.php";
}
