/*****************Validation functions**********************/

/**************Update error message function****************/

function updateTips(t,tips) { 
	tips = $(tips);
	tips.html(t).effect("highlight",{},2500);
}

		
function updateTips(t,area) {
	tips = $(area);
	tips.text(t).effect("highlight",{},2500);
}

/******************Required validation function*******************/

function required(o,n,tips) {
	if ( o.val() == 0 ) {
		o.addClass('ui-state-error');
		o.focus(); 
		updateTips(n,tips);
		return false;
	}else{
		return true;
	}
}

/***********************EmailFormat validation function********************/


function checkEmailFormat(o,n,tips) {
	regexp = /^((([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;
	if ( !( regexp.test( o.val() ) ) ) {
		o.addClass('ui-state-error');
		updateTips(n,tips);
		o.focus();
		return false;
	} else {
		return true;
	}
}



/***********************EmailFormat validation function********************/

function isValidUrl(o,n,tips){
    regexp_url = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\    d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_   ~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
    if ( ( regexp_url.test( o.val() ) ) ) {
		 return true;
	}else{
		o.addClass('ui-state-error');
		updateTips(n,tips);
		o.focus();
		return false;
	}
}

/***********************lengthRestriction validation function********************/

function lengthRestriction(o,min_val,max_val,n,tips){
	var min_val;
	var max_val;
	if ( o.val().length < min_val || o.val().length > max_val ) {
		o.addClass('ui-state-error');
		o.focus(); 
		updateTips(n,tips);
		return false;
	}else{
		return true;
	}
}

/***********************Numeric validation function********************/

function isNumeric(o,n,tips){
	numericExpression = /^[0-9]+$/;
	if ( ( numericExpression.test( o.val() ) ) ) {
		return true;	
	} else {
		o.addClass('ui-state-error');
		updateTips(n,tips);
		o.focus();
		return false;
	}
}
/***********************Decimal validation function********************/

function isDecimal(o,n,tips){
	decimalExpression = /^\d+$|^\d+\.\d{2}$/;
	if ( ( decimalExpression.test( o.val() ) ) ) {
		return true;	
	} else {
		o.addClass('ui-state-error');
		updateTips(n,tips);
		o.focus();
		return false;
	}
}

/***********************Percentage validation function********************/

function percentageValidation(o,n,tips){
	var percentageExpression = /^\d{0,2}(\.\d{0,2})?$/; 
	if ( ( percentageExpression.test( o.val() ) ) ) {
		return true;	
	} else {
		o.addClass('ui-state-error');
		updateTips(n,tips);
		o.focus();
		return false;
	}
}

/***********************Alphanumeric validation function********************/

function isAlphanumeric(o,n,tips){
	alphaExp = /^[0-9a-zA-Z-', ]+$/;
	if ( ( alphaExp.test( o.val() ) ) ) {
		return true;	
	} else{
		o.addClass('ui-state-error');
		updateTips(n,tips);
		o.focus();
		return false;
	}
}

/******************Two text boxes value Compare validation function*************/

function stringCompareValidate(o,e,n,tips){
	 if (e.val() != o.val()){
		e.addClass('ui-state-error');
		e.focus(); 
		updateTips(n,tips);
		return false;
	}else{
		return true;
	}
}

function numberCompareValidate(o,e,n,tips){
	var a	= o.val()/e.val();
     if (a > 1){
		 e.addClass('ui-state-error');
		 e.focus(); 
		 updateTips(n,tips);
		 return false;
		
	}else{
		return true;
	}
}

/***********************Date Compare validation function********************/

function dateCompareValidate(o,e,n,tips){
	var now = Date();
	if (e.val() < o.val()){
		e.addClass('ui-state-error');
		e.focus(); 
		updateTips(n,tips);
		return false;
	}else{
		return true;
	}
}
	
/****************Validatoins for  passwords length******************/	

function passwordLengthCheck(o,n,tips) {
	var passwordLength = o.val().length;
	var minimumPassword = 6;
	if(passwordLength > 0  && passwordLength < minimumPassword ){
		o.addClass('ui-state-error');
		o.focus();
		updateTips(n,tips);
		return false;
	}else{
		return true;
	}
}

/****************Validatoins for  confirm the passwords******************/
function passwordConfirm(o,c,n,tips){
	if(o.val() != c.val()){
		c.addClass('ui-state-error');
		c.focus();
		updateTips(n,tips);
		return false;
	}else{
		return true;
	}
} 
