/**
 * @package pearltea
 * @copyright Copyright 2007 mnbuy Team
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: frmCheck.js - create by tankai 2007-10-19 
 */
var _Arr=lang_txt['FRM_CHECK_TEXT'];
function field_check(name, rule, field){
  	if(rule.indexOf("cpwd")>-1){
		strTmp = rule.split("#");
		if(strTmp[0].inc("cpwd","/") == true && field.value != $(strTmp[1]).value){
			return "The "+name+" must match your " +name.split(" Confirmation")[0];
		}
	}	
	if(rule.inc("eml","/")==true && !/(\,|^)([\w+._]+@\w+\.(\w+\.){0,3}\w{2,4})/.test(field.value.replace(/-|\//g,"")) && !isNone(field.value)){
		return "Is your " + name + " correct? Sorry, my system does not understand your email address.";
	}	
	if(rule.inc("tel","/")==true && !/(^[0-9+-]{3,30}$)/.test(field.value) && !isNone(field.value)){
		return "Is your "+name+" correct? Sorry, my system does not understand your telephone format.";
	}	
	size = rule.sub("min","/");
	if(size > 0 ){			
		if(field.value.trim().length < size && field.value.trim().length>0){
			return "Is your "+ name +" correct? Our system requires a minimum of "+size+" characters.";
		}
	}		
	size = rule.sub("max","/");		
	if(size > 0 ){
		if(field.value.trim().length > size){
			return "Is your "+ name +" correct? Our system requires a maximum of "+size+" characters."
		}
	}	
	if(rule.inc("nnull","/") == true && isNone(field.value)){
		return "Sorry, "+name+" information is required.";		
	}	
	if(rule.inc("ischeck","/") == true && ! field.checked ){
		return name;
	}
	if(rule.inc("isselect","/") == true && field.value == '-1' ){
		return 'Please Choose "' + name + '"';
	}	
	return "";
};

/*#表单验证#*/
function fmChk(fm){
	var name , rule , tmp , msgStr , size;
	if(fm == null || fm.tagName != "FORM"){
		alert("", null , "error");
	    return;
	}	
	for(i=0;i<fm.length;i++){		
		var msgStr = chkInput(fm[i]);				
		if(msgStr != "success"){
			efocu(fm[i]);
			msg(msgStr);
			return false;
		}
	}
	return true;
};

function chkInput(obj){
	var name , rule , msgStr;
	name=obj.getAttribute("chkName");
	rule=obj.getAttribute("chkRule");
	if(isNone(rule) || isNone(name))  return "success";	
	msgStr = field_check(name, rule, obj);
	
	if(msgStr != ""){
		return msgStr;
	}
	else{
		return "success";
	}
};

function msg(key){
	alert(key);
};

function initForm(el, func){	
	var img_path = baseURL + "includes/templates/mnbuy/images/checkout";
	(new Image(10,10)).src = img_path + "/ico_F.gif";
	var error_bg = "#FEDFDF", blur_bg = "" , focus_bg = "#FFFEE1";
	var formId = $(el);
	if(formId == null || formId.tagName != "FORM"){
		alert("", null , "error");
	    return;
	}
	var addImage = '<img src="'+ img_path + "/ico_T.gif" +'" width="10" height="10" style="display:none;" class="pad_l"/>';
	var addDiv = '<div style="display:none;" class="red line_120"></div>';
	var elArr = formId.elements;
	var elLen = elArr.length;
	for(i=0; i<elLen; i++) {
		//insert the img and div
		var addHtml = elArr[i].getAttribute("chkRule");
		if(addHtml){
			insHtm(elArr[i],addImage);
			insHtm(elArr[i],addDiv);
			
			//add the mouse style have check;
			elArr[i].onfocus = function(){
					if((this.tagName === "INPUT" && (this.type === "text" || this.type === "password"))||this.tagName === "TEXTAREA")
					{this.style.backgroundColor = focus_bg;}
			}
			elArr[i].onblur = function(){
				this.style.backgroundColor = blur_bg;	
				var out_img = this.parentNode.getElementsByTagName("img")[0];
				var out_text = this.parentNode.getElementsByTagName("div")[0];
				var msg = chkInput(this);
				if(msg === "success") {
					out_img.src = img_path + "/ico_T.gif";
					out_img.style.display="inline";
					out_text.style.display="none";
				}else{
					out_img.src = img_path + "/ico_F.gif";						
					out_img.style.display="inline";
					out_text.innerHTML = msg;
					out_text.style.display="block";
					if((this.tagName === "INPUT" && (this.type === "text" || this.type === "password"))||this.tagName === "TEXTAREA"){
						this.style.backgroundColor = error_bg;
					}
				}
				if(func != null) {try{eval(func);}catch(e){}}						
			}
		}else{
				//add the mouse style not check;
			if((elArr[i].tagName === "INPUT" && (elArr[i].type === "text" || elArr[i].type === "password"))||elArr[i].tagName === "TEXTAREA"){
				elArr[i].onfocus = function(){this.style.backgroundColor = focus_bg;}
				elArr[i].onblur = function(){this.style.backgroundColor = blur_bg; if(func != null) {try{eval(func);}catch(e){}}}
			}
		}
	}
};

function field_checkEx(name, rule, field){
	
   
  	if(rule.indexOf("cpwd")>-1){
		strTmp = rule.split("#");
		if(strTmp[0].inc("cpwd","/") == true && field.value != jQuery("#"+strTmp[1])[0].value){
			return _Arr[0];
		
			//return "The "+name+" must match your " +name.split(" Confirmation")[0];
		}
	}
	if(rule.indexOf("cemaild")>-1){
		strTmp = rule.split("#");
		if(strTmp[0].inc("cemaild","/") == true && field.value != jQuery("#"+strTmp[1])[0].value){
			return _Arr[37];
		
			//return "The "+name+" must match your " +name.split(" Confirmation")[0];
		}
	}
	if(rule.inc("eml","/")==true && !/(\,|^)([\w+._]+@\w+\.(\w+\.){0,3}\w{2,4})/.test(field.value.replace(/-|\//g,"")) && !isNone(field.value)){
		return _Arr[1] + name + _Arr[2];
	}	
	if(rule.inc("nemail","/")==true && field.value.indexOf("@") > -1){
		return _Arr[41];
	}	


	if(rule.inc("number","/")==true&&!new RegExp("^[0-9]*$","g").test(field.value)){
		return _Arr[35]+name+_Arr[36];
	}
	size = rule.sub("min","/");
	if(size > 0 ){			
		if(field.value.trim().length < size && field.value.trim().length>0){
			return _Arr[5]+ name +_Arr[6]+size+_Arr[7];
		}
	}		
	size = rule.sub("max","/");		
	if(size > 0 ){
		if(field.value.trim().length > size){
			return _Arr[3]+ name +_Arr[8]+size+_Arr[7];
		}
	}	
	if(rule.inc("nnull","/") == true && isNone(field.value)){
		switch(langs){
			case "en":
				switch(name){
					case "Email address":
						if(rule.inc("reg","/") == true) return _Arr[13]+name.toLowerCase()+_Arr[14];
						else name = _Arr[9];
						break;
					case "Password":
						if(rule.inc("reg","/") == true) return _Arr[13]+name.toLowerCase()+_Arr[14];
						else name = _Arr[10];
						break;
					case "password confirmation":
						return _Arr[13]+_Arr[11];
						break;
					default:
						name = name;
				}
				if(rule.inc("reverse","/") == true){
					return _Arr[10]+name;
				}else{
					return _Arr[13]+name+_Arr[14];
				}
			default:
			return _Arr[13]+name+_Arr[14];
		}
	}	

	if(rule.inc("def","/") == true){
			if(field.value == jQuery(field).attr("mvalue")){
				return _Arr[13]+name+_Arr[14];
			}
	}	
	if(rule.inc("ischeck","/") == true && ! field.checked ){
		return name;
	}
	if(rule.inc("isselect","/") == true && (field.value == '-1' || field.value == '')){

		switch(langs){
			case "fr":
				return _Arr[40] + " \<\< " + name + "\>\>";
			case "de":
				return  _Arr[40] + '"' + name + '"';
			case "ja":
				return  '「' + name + '」 '+_Arr[16]; //日语语序变更
			default:
				switch(name){
					case "Title":
						name = _Arr[15];
						break;
					default:
					if(langs != "it")
						name = '"' + name + '"';
				}
				return _Arr[16] + name;
		}

	}
	if(rule.inc("tel","/")==true){

		if(!/(^[0-9+\s\-\,\(\)]{0,45}$)/.test(field.value)){
			return _Arr[38];
		}else {
			var _v = field.value.replace(/\s/g,'');	
			var _arr = ["aa","ab","ac","ad","ae","bb","ba","bc","bd","be","cc","ca","cb","cd","ce","dd","da","db","dc","de","ee","ea","eb","ec","ed","ff"];
			var __v=field.value.replace(/\-/g,'a').replace(/\+/g,'b').replace(/\,/g,'c').replace(/\(/g,'d').replace(/\)/g,'e').replace(/\s/g,'f');	
			for(var i=0;i<_arr.length;i++){	
				var _reg=new RegExp(_arr[i], "gi");
				if(_reg.test(__v)){
					return _Arr[38];
					break;
				}
			}
			if(_v.replace(/[^\x00-\xff]/g,"  ").length>22){
				return _Arr[38];
			}
			if(_v.replace(/\D/g,"").length<9){
				return _Arr[39];
			}
			
				
		}
	}	
	return "";
};

function chkInputEx(obj){
	var name , rule , msgStr;
	name=obj.getAttribute("chkName");
	rule=obj.getAttribute("chkRule");
	if(isNone(rule) || isNone(name))  return "success";	
	msgStr = field_checkEx(name, rule, obj);
	if(msgStr != ""){
		return msgStr;
	}
	else{
		return "success";
	}
}
