$(document).ready(function() {

	$('a[href=#top]').click(function(){
	        $('html, body').animate({scrollTop:0}, 'slow');
	        $('#forgotformbox').hide();
	        $('#forgotformboxmsg').hide();
	    	$('#loginformbox').show();
	    	$('#formregisboxmsg').hide();
	    	$('#formregisbox').show();
	    	$('#formcontactboxmsg').hide();
	    	$('#topcontetnbox').hide();
	    	$('#formcontactbox').show();
			$("div#panel").slideDown("slow");
			$("#toggle a").toggle();
   });
	
	//all hover and click logic for buttons
	$(".fg-button:not(.ui-state-disabled)")
	.hover(
		function(){ 
			$(this).addClass("ui-state-hover"); 
		},
		function(){ 
			$(this).removeClass("ui-state-hover"); 
		}
	)
	.mousedown(function(){
			$(this).parents('.fg-buttonset-single:first').find(".fg-button.ui-state-active").removeClass("ui-state-active");
			if( $(this).is('.ui-state-active.fg-button-toggleable, .fg-buttonset-multi .ui-state-active') ){ $(this).removeClass("ui-state-active"); }
			else { $(this).addClass("ui-state-active"); }	
	})
	.mouseup(function(){
		if(! $(this).is('.fg-button-toggleable, .fg-buttonset-single .fg-button,  .fg-buttonset-multi .fg-button') ){
			$(this).removeClass("ui-state-active");
		}
	});
	


var name = $("#name"),
	password = $("#password"),
	allFields = $([]).add(name).add(password),
	tips = $(".validateTips");

function updateTips(t) {
	tips
		.text(t)
		.addClass('ui-state-highlight');
	setTimeout(function() {
		tips.removeClass('ui-state-highlight', 1500);
	}, 500);
}


function checkLength(o,n,min,max) {

	if ( o.val().length > max || o.val().length < min ) {
		o.addClass('ui-state-error');
		updateTips("Length of " + n + " must be between "+min+" and "+max+".");
		return false;
	} else {
		return true;
	}

}


function checkRegexp(o,regexp,n) {

	if ( !( regexp.test( o.val() ) ) ) {
		o.addClass('ui-state-error');
		updateTips(n);
		return false;
	} else {
		return true;
	}

}	



function checkLog(o,n) {

		o.addClass('ui-state-error');
		updateTips(n);

}	



var rname = $("#rname"),
rjmaixcatcher = $('#jamiix_catcher'),
rpassword = $("#rpassword"),
remail = $("#remail"),
rallFields = $([]).add(rname).add(password).add(remail).add(rjmaixcatcher),
rtips = $(".rvalidateTips");

function rupdateTips(t) {
	rtips
		.text(t)
		.addClass('ui-state-highlight');
	setTimeout(function() {
		rtips.removeClass('ui-state-highlight', 1500);
	}, 500);
}


function rcheckLength(o,n,min,max) {

	if ( o.val().length > max || o.val().length < min ) {
		o.addClass('ui-state-error');
		rupdateTips("Length of " + n + " must be between "+min+" and "+max+".");
		return false;
	} else {
		return true;
	}

}

function rcheckReg(n)
{
	var jValid = true;
	var jamiix_key = $('#jamiix_catcher').val();
	if(jamiix_key == '')
	{
		jValid = true;
	}	
	else
	{
		$("#dialog").dialog("destroy");
		jValid = false;
	}
	return jValid;
}

function rcheckRegexp(o,regexp,n) {

	if ( !( regexp.test( o.val() ) ) ) {
		o.addClass('ui-state-error');
		rupdateTips(n);
		return false;
	} else {
		return true;
	}

}

function rcheckAvailable(o,n) {

		o.addClass('ui-state-error');
		rupdateTips(n);

}

//forgot form

var femail = $("#femail"),
fallFields = $([]).add(femail),
ftips = $(".validateTips");

function rupdateTips(t) {
	rtips
		.text(t)
		.addClass('ui-state-highlight');
	setTimeout(function() {
		ftips.removeClass('ui-state-highlight', 1500);
	}, 500);
}


function fcheckLength(o,n,min,max) {

	if ( o.val().length > max || o.val().length < min ) {
		o.addClass('ui-state-error');
		fupdateTips("Length of " + n + " must be between "+min+" and "+max+".");
		return false;
	} else {
		return true;
	}

}


function fcheckRegexp(o,regexp,n) {

	if ( !( regexp.test( o.val() ) ) ) {
		o.addClass('ui-state-error');
		fupdateTips(n);
		return false;
	} else {
		return true;
	}

}


function fcheckEmail(o,n) {
		o.addClass('ui-state-error');
		fupdateTips(n);
}


function fupdateTips(t) {
	ftips
		.text(t)
		.addClass('ui-state-highlight');
	setTimeout(function() {
		ftips.removeClass('ui-state-highlight', 1500);
	}, 500);
}



$("#regislnk").click(function(event){

	var bValid = true;
	rallFields.removeClass('ui-state-error');		
	bValid = bValid && rcheckLength(rname,"full name",3,80);
	bValid = bValid && rcheckLength(remail,"email",6,80);
	bValid = bValid && rcheckRegexp(remail,/^((([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,"email syntax invalid -  eg.john@gmail.com");
	bValid = bValid && rcheckLength(rpassword,"password",4,16);
	bValid = bValid && rcheckRegexp(rpassword,/^([0-9a-zA-Z])+$/,"Password field only allow : a-z 0-9");

	if (bValid) {
		   var data = $("#regfrmbm").serialize()
		   var url = '/index/register';

		    $.post(url,data,function(resp)
    	    {
    	        if(resp == "success")
    	        {
    	        	rname.val('').removeClass('ui-state-error');
    	        	remail.val('').removeClass('ui-state-error');
    	        	rpassword.val('').removeClass('ui-state-error');
    	        	rjmaixcatcher.val('').removeClass('ui-state-error');
    	        	$('#formregisbox').hide();
    	        	$('#formregisboxmsg').show();
    	        }
    	        else
    	        {
    	        		    	        	
    	        	if(resp == 'failemail')
    	        	{ 	
    	        
    	        		rcheckAvailable(remail,'Email  is already registered user please use an available unregistered email address');
    	        	}
    	        	else
    	        	{
    	        		//here is where things aren't working right 
    	        		rcheckAvailable(rjmaixcatcher,'Error captcha answer was not correct');
        	        	$("#mycaptchar").html(resp);
    	        	}
    	        
    	        }
    	        
    	    },'json');
		
		
		
	}
	
	
	
	
});
	
	
$("#loginlnk").click(function(event){
	
	var bValid = true;
	allFields.removeClass('ui-state-error');

	bValid = bValid && fcheckRegexp(name,/^((([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,"username must be a valid email - eg.john@gmail.com");
	bValid = bValid && checkLength(password,"password",4,16);
	bValid = bValid && checkRegexp(password,/^([0-9a-zA-Z])+$/,"Password field only allow : a-z 0-9");
	
	if (bValid) {
		
		   var data = $("#loginfrm").serialize()
		   var url = '/user/login';

		    $.post(url,data,function(resp)
    	    {
    	        if(resp == "success")
    	        {
    	        	allFields.val('').removeClass('ui-state-error');
    	        	var urlr = "/welcome/index";
    	        	window.location = urlr; 
    	        
    	        }
    	        else
    	        {	
    	        	checkLog(name,'Error username and password dont not match');
    	        
    	        }
    	        
    	    },'json');
		
	}
	
});


$("#lostlnk").click(function(event){
	$('#loginformbox').hide();
	$('#forgotformbox').show();
});

$("#lostlnksnd").click(function(event){
	
	var bValid = true;
	fallFields.removeClass('ui-state-error');

	bValid = bValid && fcheckLength(femail,"email",6,80);
	bValid = bValid && fcheckRegexp(femail,/^((([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,"email syntax invalid - eg.john@gmail.com");

	if (bValid) {
		
		   var data = $("#forgotfrm").serialize()
		   var url = '/user/resetpassword';

		$.post(url,data,function(resp)
 	    {
 	        if(resp == "success")
 	        {
 	        
 	        	femail.val('').removeClass('ui-state-error');
 	        	$('#forgotformbox').hide();
 	        	$('#forgotformboxmsg').show();

 	        }
 	        else
 	        {	
 	        	fcheckEmail(femail,'Error no regisrtered user match found for email address');
 	        }
 	        
 	    },'json');
	}
	
	
});


$("#lostlnksndok").click(function(event){
	
	$('#forgotformboxmsg').hide();
	$('#loginformbox').show();

});

$("#regislnkok").click(function(event){
	
	$('#formregisboxmsg').hide();
	$('#formregisbox').show();

});

$("#showloginbox").click(function(event){
	$('#forgotformbox').hide();
	$('#loginformbox').show();

});

$("#contactuslnk").click(function(event){
	$('#topcontetnbox').hide();
	$('#formcontactbox').show();
});

$("#contactlnkcancel").click(function(event){
	$('#formcontactbox').hide();
	$('#topcontetnbox').show();
});

$("#contactuslnkok").click(function(event){
	$('#formcontactboxmsg').hide();
	$('#topcontetnbox').show();
});
	

var cmsg = $("#cmsg"),
csubject = $("#csubject"),
cemail = $("#cemail"),
captcha = $("#captcha"),
callFields = $([]).add(cmsg).add(csubject).add(cemail).add(captcha),
ctips = $(".cvalidateTips");


function ccheckLength(o,n,min,max) {

	if ( o.val().length > max || o.val().length < min ) {
		o.addClass('ui-state-error');
		cupdateTips("Length of " + n + " must be between "+min+" and "+max+".");
		return false;
	} else {
		return true;
	}

}


function ccheckRegexp(o,regexp,n) {

	if ( !( regexp.test( o.val() ) ) ) {
		o.addClass('ui-state-error');
		cupdateTips(n);
		return false;
	} else {
		return true;
	}

}


function cupdateTips(t) {
	ctips
		.text(t)
		.addClass('ui-state-highlight');
	setTimeout(function() {
		ctips.removeClass('ui-state-highlight', 1500);
	}, 500);
}



$("#contactlnk").click(function(event){
	
	
	
	var bValid = true;
	fallFields.removeClass('ui-state-error');
	var subject = csubject.val();

	bValid = bValid && ccheckRegexp(cemail,/^((([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,"email syntax invalid - eg.john@gmail.com");
	bValid = bValid && ccheckLength(cmsg,"message",6,255);
	if(subject == "")
	{
		cupdateTips("Please select a subject");
		bValid = false;
	}
	
	
	if (bValid) {
	
		   var data = $("#confrmbm").serialize();
		   var url = '/index/contactus';

		   $.post(url,data,function(resp)
	 	    {
	 	    
	 	        		if(resp == "success")
        	 	        {
	 	        			callFields.val('').removeClass('ui-state-error');
	 	        			$('#formcontactbox').hide();
	 	        			$('#formcontactboxmsg').show();

		 	        	}
	 	        		else
	 	        		{
	 	        			cupdateTips("Error captcha number was not correct");
	 	        			$("#mycaptcha").html(resp);
		 	        	}
	 	        				
	 	        
	 	    },'json');

	}
	//	confrmbm
});
	
});
