/* 出错返回指定控件 */
function focusField(fieldobj)
{
	if(fieldobj==null)
	{
		return;
	}

	setFieldVisible(fieldobj);
	fieldobj.focus();
}
function setFieldVisible(obj)
{
	if(obj == null) return;
	var tab = obj.parentElement;
	while((tab.tagName != "DIV" || tab.id.substr(0,3)!="Tag") && tab.tagName != "BODY")
		tab = tab.parentElement;
	if(tab.tagName == "BODY") return;

	var maxtab=0;
	for(var i=1;i<10;i++)
	{
		var objtd = document.getElementById("td" + i);
		if(objtd!=null)
			maxtab=i;
		else
			break;
	}
	if(maxtab>1)
	{
		ShowTag(tab.id.substr(3),maxtab);
	}
}
/* 去除输入信息的首尾空格 */
function trim(str){
	var reg_exp = /(^\s*)|(\s*$)/g;
	var s = str.replace(reg_exp,'');
	return s;
}

/* 确认页面所有控件的输入信息是否合法 */
function check(f)
{
	for (elementIndex = 0;elementIndex < f.elements.length;elementIndex++)
	{
		try
		{
			if(!checkElement(f.elements[elementIndex]))
			{
				return false;
			}
		}
		catch(e){
			//return alert("error");
		}

	}
	return true;
}

/* 检查每一个控件是否合法，根据页面控件的验证条件进行验证 */
function checkElement(field)
{
	//alert(field.getAttribute("maxlength"));
	var title = field.title;
	var value = field.value;
	// value = trim(value);
	var alt = field.alt;
	var val_len = value.length;
	if(alt == null || title == null) return true;
	if(alt == '' || title == '') return true;

	if( alt.indexOf("EditorLen<=") == -1 )
	{
		/** 输入的信息中不能有单引号、双引号和“script”  */
		if(value.indexOf("'") >= 0)
		{
			alert(title + "不能包含英文（半角）的单引号，请输入中文（全角）的单引号...");
			focusField(field);
			return false;
		}
	
		if(value.indexOf('"') >= 0)
		{
			alert(title + "不能包含英文（半角）的双引号，请输入中文（全角）的双引号...");
			focusField(field);
			return false;
		}
	
		if(value.toUpperCase().indexOf('</SCRIPT>') >= 0)
		{
			alert(title + "不能包含此单词（“</SCRIPT>”）...");
			focusField(field);
			return false;
		}
	}
	else
	{
		/* 处理 editor 控件验证*/
		if(alt.indexOf("EditorNoNull") >= 0 && trim(value) =="")
		{
		    alert(title+"不能为空...");
		    return false;
		}
		
		/*此数据项填写内容的长度必须小于等于指定的长度。*/
		if(alt.indexOf("EditorLen<=") >= 0 )
		{
			var lengthNeeded;
			var v_temp = alt.substring(alt.indexOf("EditorLen<=")+11);

			if(v_temp.indexOf(";") < 0)
			{
				lengthNeeded = v_temp;
			}
			else
			{
				lengthNeeded = alt.substring(alt.indexOf("EditorLen<=")+11,alt.indexOf("EditorLen<=")+11+(v_temp.indexOf(";")) );
			}

			if(parseInt(lengthNeeded) < calcRealLength(value))
			{
				alert(title + "必须小于或等于" + lengthNeeded + "位（" + ( ((lengthNeeded%2)==1) ?((lengthNeeded-1)/2) : lengthNeeded/2) + "个汉字或"+ lengthNeeded +"个字符...）");
				return false;
			}
		}
	}

	/* 所有数据项非空相关校验 start ----------------------------------------------------------------------------------------*/
	if( (alt.indexOf("notnull") >= 0) || (value != '') )
	{
		/* 此数据项填写内容不能为空 */
		if(alt.indexOf("notnull") >= 0 && trim(value) ==""&& !field.disabled)
		{
		    alert(title+"不能为空...");
		    focusField(field);
		    return false;
		}

		/* 此数据项验证登陆用户名不能为初始的值 */
		if(alt.indexOf("initValue") >= 0 )
		{
	        var mail = trim(document.form1.loginName.value);
		   if( mail == "a@a.com" )
		  {
		    alert("请重新填写"+title );
		    focusField(field);
		  		document.getElementById("btn").disabled = "disabled";
		    return false;
		  }
		}
	
		/*此数据项填写的内容必须为英文字母*/
		if(alt.indexOf("char") >= 0 && !checkStringFormat(value,"char"))
		{
			alert(title + "必须为英文字母...");
			focusField(field);
			return false;
		}

		/*此数据项填写的内容必须为英文字母*/
		if(alt.indexOf("chinese4") >= 0)
		{
			var i;
			if(value.length==4)  //如果长度为4 验证必须全为中文
			{
				for(i=0;i<value.length;i++)
				{
					if(value.charCodeAt(i)<128)
					{
						alert(title+"必须全部为中文，且必须4个汉字...");
						focusField(field);
						return false;
					}
				}
			}
			else
			{
				alert(title+"必须全部为中文，且必须4个汉字...");
				focusField(field);
				return false;
			}
		}

		/*此数据项填写的内容必须为数字*/
		if( alt.indexOf("number") >= 0 )
		{
			var objExp=/^\d+$/;
			var objMatch=value.match(objExp);
			if (objMatch == null)
			{
				alert(title+"必须是整数...");
				focusField(field);
				return false;
			}
		}
	
	 	/*此数据项填写的内容必须为邮箱*/
		if(alt.indexOf("mail") >= 0)
		{
			var objExp=/^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
	
			var objMatch=value.match(objExp);
			if (objMatch == null)
			{
				alert(title+"应该是一个邮箱...");
				focusField(field);
				return false;
			}
		}
	
		/*此数据项填写的内容只能为数字和英文字母*/
		if(alt.indexOf("charnum") >= 0)
		{
			var objExp=/^[a-zA-Z0-9]*$/;
	
			var objMatch=value.match(objExp);
			if (objMatch == null)
			{
				alert(title+"只能是数字和字母...");
				focusField(field);
				return false;
			}
		}
	
		/*此数据项填写的内容只能为英文字母*/
		if(alt.indexOf("charonly") >= 0)
		{
			var objExp=/^([A-Za-z])*$/;
	
			var objMatch=value.match(objExp);
			if (objMatch == null)
			{
				alert(title+"只能是字母...");
				focusField(field);
				return false;
			}
		}
		
		/*此数据项填写的内容只能为数字英文字母*/
		if(alt.indexOf("password") >= 0)
		{
			for( i = 0; i < value.length; i ++ )
			{
				if( !checkCharFormat( value.charAt( i ),"ascii" ) )
				{
					alert(title+"只能是字母/数字/标点符号，不能是汉字等特殊字符...");
					focusField(field);
					return false;
				}
			}
		}

		/*此数据项填写的内容只能手机号*/
		if(alt.indexOf("mobilphone") >= 0)
		{
			var objExp=/^(?:13\d|15[013689])-?\d{5}(\d{3}|\*{3})$/;
	
			var objMatch=value.match(objExp);
			if (objMatch == null)
			{
				alert(title+"只能为正确手机号码...");
				focusField(field);
				return false;
			}
		}
		
		/*此数据项填写的内容只能为空或是邮政编码*/
		if( alt.indexOf("postcode") >= 0)
		{
			var objExp= /^[0-9]\d{5}$/;
	
			var objMatch=value.match(objExp);
			if (objMatch == null)
			{
				alert(title+"格式不正确...");
				focusField(field);
				return false;
			}
		}
	
		/*此数据项填写的内容只能为日期*/
		if(alt.indexOf("dateonly") >= 0)
		{
			var reg = /^\d{4}-\d{2}-\d{2}$/;
			if(!reg.test(value)){
				alert("日期格式不合法，只能输入这种格式 “2008-01-01”...");
				focusField(field);
				return false;
			}
	
			var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31];
			var year, month, day;
	
			var a = value.substring(0,4);
			var b = value.substring(5,7);
			var c = value.substring(8,10);
	
			year = parseFloat(a);
			month = parseFloat(b);
			day=parseFloat(c);
	
			if (year < 1000 || year > 4000){ alert("日期不正确，请输入合法的日期...");return false;}
			if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
			if (month < 1 || month > 12){ alert("日期不正确，请输入合法的日期..."); return false;}
			if (day < 1 || day > iaMonthDays[month - 1]){ alert("日期不正确，请输入合法的日期..."); return false;}
		}
	
		/*此数据项验证 输入信息可以是小数点和数字 */
		if( alt.indexOf("float") >= 0 )
		{
			if( value.search("^-?\\d+(\\.\\d+)?$")== -1 ){
				alert(title + "只能输入数字...");
				focusField(field);
				return false;
			}
		}
	
		/*此数据项验证 输入信息仅是整数和百分号 */
		if( alt.indexOf("percent") >= 0 )
		{
			if( value.search("^\\%\\d+$")== -1 ){
				alert(title + "只能输入整数和百分号(%)...");
				focusField(field);
				return false;
			}
		}

		/*此数据项验证 输入信息仅是整数和百分号 */
		if( alt.indexOf("perFloat") >= 0 )
		{
			if( value.indexOf("%") == -1){
				alert("必须包含百分号(%)...");
				focusField(field);
				return false;
			}
			value = value.substring(0,(value.length-1));
			if( value.search("^-?\\d+(\\.\\d+)?$")== -1 ){
				alert(title + "只能输入数字和百分号(且以百分号结尾)...");
				focusField(field);
				return false;
			}
		}

		/*此数据项验证选择有时   坐席数量必须填写 */
		if(alt.indexOf("haveSeatingNums") >= 0 )
		{
		  var temp=document.form1.haveSeatingNums;
	 
		  for(i=0;i<temp.length;i++)    {
	     if(temp[i].checked&&temp[i].value=="1"&&document.form1.seatingNums.value=="")
			{
				alert("请填写"+title+"...");
		 
				return false;
			}
			  }
		}
	
		/*此数据项验证选择有时   策划部门人员必须填写 */
		if(alt.indexOf("havePlannerNums") >= 0 )
		{
		  var temp=document.form1.havePlannerNums;
		
		  for(i=0;i<temp.length;i++){
		    if(temp[i].checked&&temp[i].value=="1"&&document.form1.plannerNums.value=="")
			{
				alert("请填写"+title + "...");
		 
				return false;
			}
		  }
		}
	
		/*此数据项验证选择有时   销售型客服人员必须填写 */
		if(alt.indexOf("haveSalerNums") >= 0 )
		{
		  var temp=document.form1.haveSalerNums;
	 
		  for(i=0;i<temp.length;i++)    {
	     if(temp[i].checked&&temp[i].value=="1"&&document.form1.salerNums.value=="")
			{
				alert("请填写"+title + "...");
		 
				return false;
			}
			  }
		}
	
		/*此数据项验证选择有时  发行周期必须选择 */
		if(alt.indexOf("dmTypeId") >= 0 )
		{
		  var temp=document.form1.haveDM;
	      for(i=0;i<temp.length;i++)    {
	     if(temp[i].checked&&temp[i].value=="1"&&document.form1.dmTypeId.value=="")
			{
				alert("请选择"+title + "...");
		 
				return false;
			}
			  }
		}
	
		/*此数据项验证 验证码是否正确 */
		if(alt.indexOf("validateCode") >= 0 )
		{
	
			var code="0";
			code=document.form1.validateCode1.value+document.form1.validateCode2.value+document.form1.validateCode3.value+document.form1.validateCode4.value;
			
			if(document.form1.inputValidateCode.value!=code)
			{
				alert("验证码不正确...");
				focusField(field);
				return false;
			}
		}
	
		/*此数据项验证 两次输入密码是否正确 */
		if(alt.indexOf("checkPassword") >= 0 )
		{
	
			if(document.form1.password.value!=document.form1.rePassword.value)
			{
				alert("两次输入的密码不一致哦...");
				focusField(field);
				return false;
			}
		}
	
		/*此数据项验证  是否接受九樱的协议 */
		if(alt.indexOf("accept")>= 0 )
		{
	
			if(!document.form1.accept.checked)
			{
				alert("您没有接受"+title +"...");
				focusField(field);
				return false;
			}
		}
	
		/* 输入信息必须大于等于指定的长度 */
		if(alt.indexOf("length>=") >= 0 )
		{
			var lengthNeeded;
			var v_temp = alt.substring(alt.indexOf("length>=")+8);
			if(v_temp.indexOf(";") < 0)
			{
				lengthNeeded = v_temp;
			}
			else
			{
				lengthNeeded = alt.substring(alt.indexOf("length>=")+8,alt.indexOf("length>=")+8+(v_temp.indexOf(";")) );
			}
			if(parseInt(lengthNeeded) > calcRealLength(value))
			{
				alert(title + "必须大于或等于" + lengthNeeded + "位（" + ( ((lengthNeeded%2)==1) ?((lengthNeeded-1)/2) : lengthNeeded/2) + "个汉字或"+ lengthNeeded +"个字符...）");
				focusField(field);
				return false;
			}
		}
		
		/* 输入信息必须等于指定的长度 */
		if(alt.indexOf("length=") >= 0 )
		{
			var lengthNeeded;
			var v_temp = alt.substring(alt.indexOf("length=")+7);
			if(v_temp.indexOf(";") < 0)
			{
				lengthNeeded = v_temp;
			}
			else
			{
				lengthNeeded = alt.substring(alt.indexOf("length=")+7,alt.indexOf("length=")+7+(v_temp.indexOf(";")) );
			}
			if(parseInt(lengthNeeded) != calcRealLength(value))
			{
				alert(title + "必须等于" + lengthNeeded + "位（" + ( ((lengthNeeded%2)==1) ?((lengthNeeded-1)/2) : lengthNeeded/2) + "个汉字或"+ lengthNeeded +"个字符...）");
				focusField(field);
				return false;
			}
		}
		
		/* 输入信息必须等于指定的长度 */
		if(alt.indexOf("length=") >= 0 )
		{
			var lengthNeeded;
			var v_temp = alt.substring(alt.indexOf("length=")+7);
			if(v_temp.indexOf(";") < 0)
			{
				lengthNeeded = v_temp;
			}
			else
			{
				lengthNeeded = alt.substring(alt.indexOf("length=")+7,alt.indexOf("length=")+7+(v_temp.indexOf(";")) );
			}
			if(parseInt(lengthNeeded) != calcRealLength(value))
			{
				alert(title + "必须等于" + lengthNeeded + "位（" + ( ((lengthNeeded%2)==1) ?((lengthNeeded-1)/2) : lengthNeeded/2) + "个汉字或"+ lengthNeeded +"个字符...）");
				focusField(field);
				return false;
			}
		}
	
		/*此数据项填写内容的长度必须小于等于指定的长度。*/
		if(alt.indexOf("length<=") >= 0 )
		{
			var lengthNeeded;
			var v_temp = alt.substring(alt.indexOf("length<=")+8);
			if(v_temp.indexOf(";") < 0)
			{
				lengthNeeded = v_temp;
			}
			else
			{
				lengthNeeded = alt.substring(alt.indexOf("length<=")+8,alt.indexOf("length<=")+8+(v_temp.indexOf(";")) );
			}
			if(parseInt(lengthNeeded) < calcRealLength(value))
			{
				alert(title + "必须小于或等于" + lengthNeeded + "位（" + ( ((lengthNeeded%2)==1) ?((lengthNeeded-1)/2) : lengthNeeded/2) + "个汉字或"+ lengthNeeded +"个字符...）");
				focusField(field);
				return false;
			}
		}
		
		/*此数据项填写内容的必须是图片类型或不能超过指定大小。*/
		if(alt.indexOf("imageType") >= 0 )
		{
			if( !Utils.isImgType(value) ){
				alert("品牌图片仅允许JPG、GIF、PNG三种类型...");
				return false;
			}
			
			if(Utils.isOverloadImgSize(value)){
				alert("上传品牌图片不能超过2M...");
				return false;
			}
		}
	}
	/* 所有数据项非空相关校验 end ----------------------------------------------------------------------------------------*/
	return true;
}


//************************************************************
//Name:		  calcRealLength
//Function:   将一个字符串中的汉字计为2个字符，以利于数据库中正确处理
//sString:	  待记数的字符串
//***********************************************************
function calcRealLength( sString )
{
	var iLength = 0;	// 真实长度记数器
	for( i = 0; i < sString.length; i ++ )
	{
		if( checkCharFormat( sString.charAt( i ),"ascii" ) )
		{
			iLength += 1;
		}
		else
		{
			iLength += 2;
		}
	}
	return( iLength );
}
//******************************************
//Name:		  checkCharFormat
//Function:   判断一个字符是否是ASCII值
//******************************************

function checkCharFormat(cValue,mat)
{
	var asciiFormat = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
	var numFormat = "0123456789";
	var floatFormat = "0123456789.";
	var firstDigit = "+-0123456789";
	var charFormat = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	var iLocation = -1;
	if(mat == "ascii")
	{
		iLocation = asciiFormat.indexOf( cValue );
	}else if(mat == "char"){
		iLocation = charFormat.indexOf( cValue );
	}else if(mat == "number"){
		iLocation = numFormat.indexOf( cValue );
	}else if(mat == "float"){
		iLocation = floatFormat.indexOf( cValue );
	}else if(mat == "firstDight"){
		iLocation = firstDigit.indexOf( cValue );
	}
	return( iLocation != -1 );
}

  
  //  开始日期必须小于等于结束日期
  function checkDateValid(thisStartDate , thisEndDate){
	var startDate = thisStartDate.value;
	var endDate = thisEndDate.value;

	if( (Utils.trim(startDate) != '') && (Utils.trim(endDate) != '') )
	{
		var sd = new Date();
		sd.setYear(startDate.substring(0,4));
		sd.setMonth(startDate.substring(5,7));
		sd.setDate(startDate.substring(8,10));
		
		var ed = new Date();
		ed.setYear(endDate.substring(0,4));
		ed.setMonth(endDate.substring(5,7));
		ed.setDate(endDate.substring(8,10));
	
		if( sd > ed){
			// 开始日期大于结束日期
			return false;
		}else{
			return true;
		}
	}else{
		return true;
	}
  }