/*
 * jQuery validation rules that are customizable
 *
 */
//jQuery new/modified rules to validated input fields
//To validate country select box
$Jq.validator.addMethod(
	"selectCountry",
	function(value, element) {
		if (element.value == "")
			{
				return false;
			}
		else
			{
				return true;
			}
	},
	LANG_JS_err_tip_country
);
//To validate email field
$Jq.validator.addMethod(
	"isValidEmail",
	function(value, element){
		return this.optional(element) || /^[_a-z0-9-]+(\.[_a-z0-9-\+]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i.test(value);
	},
	LANG_JS_err_tip_email
);
//To validate date field
$Jq.validator.addMethod(
  	"isValidDate",
  	function (value, element) {
    	// put your own logic here, this is just a example
    	//return value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/);
    	return value.match(/^\d\d\d\d-\d\d?-\d\d?$/);
  	},
	LANG_JS_err_tip_date_format
);

$Jq.validator.addMethod(
  	"isCatChecked",
  	function (value, element) {
    	if(document.getElementById('chkitem_id').checked == true || document.promoadd_frm.price_amt.value!='' || document.getElementById("price_range").options[document.getElementById("price_range").selectedIndex].value == ''|| document.getElementById("price_range").options[document.getElementById("price_range").selectedIndex].value == 'between')
    		return true;
  	},
	LANG_JS_err_tip_required
);

$Jq.validator.addMethod(
  	"isPriceFromRange",
  	function (value, element) {
  	   	if((document.promoadd_frm.price_from.value!='' || document.getElementById('chkitem_id').checked == true || document.getElementById("price_range").options[document.getElementById("price_range").selectedIndex].value == '' || document.getElementById("price_range").options[document.getElementById("price_range").selectedIndex].value == 'greater' || document.getElementById("price_range").options[document.getElementById("price_range").selectedIndex].value == 'lesser' || document.getElementById("price_range").options[document.getElementById("price_range").selectedIndex].value == 'equal'))
			return true;
  	},
	LANG_JS_err_tip_required
);

$Jq.validator.addMethod(
  	"isPriceToRange",
  	function (value, element) {
    	if((document.promoadd_frm.price_to.value!='' || document.getElementById('chkitem_id').checked == true || document.getElementById("price_range").options[document.getElementById("price_range").selectedIndex].value == '' || document.getElementById("price_range").options[document.getElementById("price_range").selectedIndex].value == 'greater' || document.getElementById("price_range").options[document.getElementById("price_range").selectedIndex].value == 'lesser' || document.getElementById("price_range").options[document.getElementById("price_range").selectedIndex].value == 'equal'))
			return true;
  	},
	LANG_JS_err_tip_required
);



//pass the allowed file formats
$Jq.validator.methods.isValidFileFormat = 	function (value, element, ext_param_str) {
		if(value == '')
			return true;
		//allowed upload formats ..
  		var extensions = ext_param_str.split('|');
  		var parts = value.split('.');
		var file_ext = parts[parts.length-1].toLowerCase();
		for (i = 0; i < extensions.length; i++)
		{
    		if(extensions[i] == file_ext)
    			{
    				return true;
    			}
		}
  	};

//To validate multiple email address
$Jq.validator.addMethod(
	"isValidMultiEmail",
	function(value, element){
		var emails = value.split(',');
		var result=0;
		for(var i = 0; i < emails.length; i++) {
			 /^[_a-z0-9-]+(\.[_a-z0-9-\+]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i.test(emails[i]) ? result=1 : result=0;
		}
		return (result) ? true : false;
	},
	LANG_JS_err_tip_email
);

//To validate date value
$Jq.validator.addMethod(
  	"isValidDateVal",
  	function (value, element) {
    	var result=false;
    	result = value.match(/^\d\d\d\d-\d\d?-\d\d?$/)?true:false;
    	if(result)
    		{
    			result = checkDate(value);
    		}
    	return result;
  	},
	LANG_JS_err_tip_date_format
);

//To validate minimum age limit
$Jq.validator.addMethod(
  	"isValidMinAge",
  	function (value, element, params) {
  		age = getAge(value);
		if(age < params)
    		return false;
    	else
    		return true;
  	},
	LANG_JS_err_tip_date_format
);

//To validate Maximum age limit
$Jq.validator.addMethod(
  	"isValidMaxAge",
  	function (value, element, params) {
		age = getAge(value);
		if(age > params)
    		return false;
    	else
    		return true;
  	},
	LANG_JS_err_tip_date_format
);

//To validate user type select box
$Jq.validator.addMethod(
	"selectUserType",
	function(value, element) {
		if (element.value == "")
			{
				return false;
			}
		else
			{
				return true;
			}
	},
	LANG_JS_err_tip_required
);


// To validate non negative
$Jq.validator.addMethod(
	"isNotNegative",
	function (value, element) {
		if (value < 0)
			{
				return false;
			}
		else
			{
				return true;
			}
  	},
	LANG_JS_err_tip_required
);

// To validate IP address
$Jq.validator.addMethod(
	"isValidIP",
	function (value, element) {
	   	return /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/i.test(value);
  	},
	LANG_JS_err_tip_required
);

// To validate string is alpha
$Jq.validator.addMethod(
	"isAlpha",
	function (value, element) {
		return /^[a-zA-Z]+$/i.test(value);
  	},
	LANG_JS_err_tip_required
);

