$(document).ready(function(){
	// On mouse over show some help
	$('form .validate').blur(function(){
		var labelname = "#lb_"+$(this).attr('name');
		if($(labelname).length < 1)
			labelname = ".lb_"+$(this).attr('name');

		var ttname = "#tt_" + $(this).attr("name");
		fname = $(this).parents('form').attr("id");			
				
		if (performCheck_ind(fname,eval(fname+'_rules'),$(this).attr('name')))
		{
			if ($(labelname).hasClass('error')){
			  	$(this).qtip("hide");
				$(this).qtip("disable");
				
			  	$(labelname).qtip("hide");
				$(labelname).qtip("disable");
			}
			
			$(labelname).removeClass('error');
			$(labelname).addClass('ok');
			
		}else{
			$(labelname).addClass('error');
			$(labelname).removeClass('ok');	
			
			$(this).qtip({
				content: {text: $(ttname).html()}, show: { effect: {type: 'fade', length:100 }},position: {target: 'mouse',adjust: {mouse:true}},
				style: {background: '#e7f7ff', color: '#333333', border: {width: 0,	radius: 2, color: '#a5d3eb'},padding: 6, textAlign: 'left', tip: {corner: true, size: {x: 10, y : 8}}, name: 'cream'}
			});
			
			$(labelname).qtip({
				content: {text: $(ttname).html()}, show: { effect: {type: 'fade', length:100 }},position: {target: 'mouse',adjust: {mouse:true}},
				style: {background: '#e7f7ff', color: '#333333', border: {width: 0,	radius: 2, color: '#a5d3eb'},padding: 6, textAlign: 'left', tip: {corner: true, size: {x: 10, y : 8}}, name: 'cream'}
			});
		}	
	});

	$('form[class=validate]').submit(function(){		
		submitThisForm(this);
		// !!! Important !!! 
		// always return false to prevent standard browser submit and page navigation 
		return false; 
    });
	
	$('form #reset').click(function(){
		var frmobj = $(this).parents('form');
		frmobj.find('.validate').each(function (){
			var labelname = "#lb_" + $(this).attr('name');
			if($(labelname).hasClass('invalid'))
			{
			   $(labelname).removeClass('invalid');
				$(this).qtip("disable");
				$(labelname).qtip("disable");
			}
			if($(labelname).hasClass('valid'))
			{
			   $(labelname).removeClass('valid');
			}
		});
	});
});


function submitThisForm(frmObj)
{
	var submitstatus = true;
	fname = $(frmObj).attr("id");
	
	$('#leftMenu li').each(function(){
		$(this).children('a').removeClass('error');
	});	
	
	$(frmObj).find('.validate').each(function (){
		var labelname = "#lb_" + $(this).attr('name');
		if($(labelname).length < 1)
			labelname = ".lb_"+$(this).attr('name');
		var ttname = "#tt_" + $(this).attr("name");
		
		if (performCheck_ind(fname,eval(fname+'_rules'),$(this).attr('name')))
		{	
			if ($(labelname).hasClass('error')){
			  	$(this).qtip("hide");
				$(this).qtip("disable");
				
			  	$(labelname).qtip("hide");
				$(labelname).qtip("disable");
			}
			
			$(labelname).removeClass('error');
			$(labelname).addClass('ok');
		}else{
			
			var tabName = $(labelname).parents(".column2").attr('id');
			
			$('#leftMenu li').each(function(){
				if($(this).metadata().tab == tabName){
					$(this).children('a').addClass('error');
				}
			});	
			
			$(labelname).addClass('error');	
			
			$(this).qtip({
				content: {text: $(ttname).html()}, show: { effect: {type: 'fade', length:100 }},position: {target: 'mouse',adjust: {mouse:true}},
				style: {background: '#e7f7ff', color: '#333333', border: {width: 0,	radius: 2, color: '#a5d3eb'},padding: 6, textAlign: 'left', tip: {corner: true, size: {x: 10, y : 8}}, name: 'cream'}
			});
			
			$(labelname).qtip({
				content: {text: $(ttname).html()}, show: { effect: {type: 'fade', length:100 }},position: {target: 'mouse',adjust: {mouse:true}},
				style: {background: '#e7f7ff', color: '#333333', border: {width: 0,	radius: 2, color: '#a5d3eb'},padding: 6, textAlign: 'left', tip: {corner: true, size: {x: 10, y : 8}}, name: 'cream'}
			});
			submitstatus = false;
		}	
	});
	
	//return submitstatus;
	if(submitstatus)
	{		
		$('#leftMenu li').each(function(){
			$(this).children('a').removeClass('error');
		});
		
		if($(frmObj).attr("action") != '')
		{
			$(frmObj).attr("method","post");
			$(frmObj).submit();
		}
		
		var atdcr = eval(fname+"_postbefore()");
		atdcr = atdcr.split("::");
		if(atdcr[2].substr(2) == "true")
			formclear = true;
		else
			formclear = false;

		if(atdcr[3].substr(2) == "true")
		{
			obj = eval("document."+fname);
			obj.action = atdcr[0].substr(2);
			obj.method = atdcr[1].substr(2);
			obj.submit();
			return true;
		}
		
		$(frmObj).ajaxSubmit(
		{
			beforeSubmit:  	function(){appMessage("Saving records(s)... please wait!", "pre");},
			success:       	function(rtext){alert("testing");msg = rtext.substr(4);if(rtext.substr(0,3) == 'ERR'){appMessage(msg, "neg");}else if(rtext.substr(0,3) == 'SUC'){appMessage(msg, "pos")}else{appMessage("Some unexpected error occurred! Please try again!", "neg")}},  // post-submit callback 
			url:			atdcr[0].substr(2),         // override for form's 'action' attribute 
			type:      		atdcr[1].substr(2),        // 'get' or 'post', override for form's 'method' attribute 
			dataType:  		null,        // 'xml', 'script', or 'json' (expected server response type) 
			clearForm: 		formclear        // clear all form fields after successful submit 
		}); 
	}
	else
	{
		msg = "There are some errors in the fields marked with alert icons. <br>Place your mouse over the fields to see more details.";
		//appMessage(msg, "neg");
		$(frmObj).find('.warning').removeClass("hidden pos neg info").addClass('neg');
		$(frmObj).find('.warning').html(msg);
		$('#loginBoxWarning').removeClass("hidden pos neg info").addClass('neg');
		$('#loginBoxWarning').html(msg);
	}
}
