﻿var _str_CanBeNull="至少有一项不能为空!";
var _str_WrongTextType="输入的数据类型有误!";
var _str_ErrorTitle = "错误信息提示";
var _str_AlertTile  = "提示信息";
var _int_Width = 300;
var _int_Height = 150;
var CurrentObject;

function ShowError(content)
{
    show_dialoginfo(_str_ErrorTitle,content,_int_Width,_int_Height)
}
//cs文件里调用的提示函数
function ShowMessage(content)
{
    //show_dialoginfo("",content,_int_Width,_int_Height)
    alert(content);
}

//验证表单
function CheckForm(objForm)
{
    //alert("验证开始");    
    //return false;    
	return _F_FR_Check_Rquired(objForm);	
}


function _F_FR_Check_Rquired(frm)
{
    var bResult=true
    var fm_len=frm.length;
    var fmObj;
    var tempDate,tempYear,tempMonth,tempDay,m;
    var temp;
    var aaGetYear;
    var tempStr;
    for (var i=0;i<fm_len;i++)
    {
        //begin for loop
	    fmObj=frm.elements[i];
	    //alert(fmObj);
	    if (fmObj.disabled==false){
		    if(_FR_Check_Required_Object(fmObj)==false)
		        return false;
	    }
    }
    return true;
}

function _F_FR_Check_RquiredAlert(obj)
{
	var _l_msgLeastNotNull=_str_CanBeNull;
	var errcontent = "";
	if (obj.getAttribute("prompt")!=null)
	{
	    
	    
	    if(obj.type=="select-one")
	        errcontent = "请选择"+obj.getAttribute("prompt");		   
	    else
		    errcontent = "请输入"+obj.getAttribute("prompt");  
	}
	else
	{
	    errcontent = _l_msgLeastNotNull;
	}	
	ShowError(errcontent);
	
	CurrentObject = obj;
	try
	{	    
	    obj.focusout();
	}
	catch(e)
	{
	
	}
}
function _F_FR_Check_TextTypeAlert(obj,string)
{
    var errcontent = "";
	var _l_msgWrongTextType=_str_WrongTextType;
	if (obj.getAttribute("prompt")!=null)
	{
	    errcontent = obj.getAttribute("prompt")+"输入错误,"+string;
		//alert(obj.prompt+"输入错误,"+string);			
	}
	else
	{
	    errcontent = _l_msgWrongTextType;
	    //alert(_l_msgWrongTextType);
	}
	ShowError(errcontent);
	
	CurrentObject = obj;
	try
	{	    
	    obj.focusout();
	}
	catch(e)
	{
	
	}
}


function F_LS_GetSelectVal(obj){
	if (obj.selectedIndex>=0)
       return obj.item(obj.selectedIndex).value;
    else
       return false;
}

function _FR_Check_Required_Object(fmObj)
{
	if(fmObj.getAttribute("required")=="1")
	{   
	    if (fmObj.type=="select-one")
		{
			if(F_LS_GetSelectVal(fmObj)=="")
			{
				_F_FR_Check_RquiredAlert(fmObj);
				return false;
			}
		}
		else if ((fmObj.type=="text")||(fmObj.type=="password")||(fmObj.type=="textarea"))
		{
			if (fmObj.value.replace(/^\s+|\s+$/g,"") =="")
			{
			    _F_FR_Check_RquiredAlert(fmObj);
				return false;
			}			
		}
	}
	if(fmObj.value!="")
	{
		if(fmObj.getAttribute("changedot")==1)
			fmObj.value=fmObj.value.replace(",","，");
		if(fmObj.getAttribute("valuetype")=="N")
		{
			if(isNaN(fmObj.value))
			{
				_F_FR_Check_TextTypeAlert(fmObj,"需要是数字");				
				return false;
			}
		}
		else if(fmObj.getAttribute("valuetype")=="CN")
		{
			if(!InChinese(fmObj.value))
			{
				_F_FR_Check_TextTypeAlert(fmObj,"需要是中文");
				return false;
			}
		}
		else if(fmObj.getAttribute("valuetype")=="Email")
		{
			if(!IsEMail(fmObj.value))
			{
				_F_FR_Check_TextTypeAlert(fmObj,"电子邮件类型错误！");
				return false;
			}
		}
		else if(fmObj.getAttribute("valuetype")=="EnKong")
		{
			if(!IsEnKong(fmObj.value))
			{
				_F_FR_Check_TextTypeAlert(fmObj,"含有特殊字符,类型只能为英文字母、数字和下划线");
				return false;
			}
		}
		else if(fmObj.getAttribute("valuetype")=="Valid")
		{
			if(!IsValid(fmObj.value))
			{
				_F_FR_Check_TextTypeAlert(fmObj,"含有特殊字符,类型只能为英文字母、中文字符、数字和下划线");
				return false;
			}
			//return false;
		}
		else if(fmObj.getAttribute("valuetype")=="Http" && fmObj.value!="http://")
		{
			if(!IsHttp(fmObj.value))
			{
				_F_FR_Check_TextTypeAlert(fmObj,"标准格式为:http://www.yorkbbs.ca");
				return false;
			}
			//return false;
		}
		if(fmObj.valuelength!=null)
		{
		    		    
		    if(fmObj.value.length > parseInt(fmObj.valuelength))
		    {
		       	_F_FR_Check_TextTypeAlert(fmObj,"字符长度不能大于"+fmObj.getAttribute("valuelength"));
		        return false;
		    }
		}
		
	}

	if ( (fmObj.getAttribute("valuetype")=="D")&&( (fmObj.getAttribute("required")=="1")||(fmObj.value!="") ) )
	{
		temp=fmObj.value;		
		temp=temp.replace("-","/");
		temp=temp.replace("-","/");
		tempDate=new Date(temp);
		
		m=temp.indexOf("/");
		
		tempYear=temp.substr(0,m);
				
		m=temp.lastIndexOf("/")+1;		
		
				
		tempDay=parseFloat(temp.substr(m));	
		
		
		aaGetYear=tempDate.getYear();		
		
		if (aaGetYear<1900) aaGetYear=1900+aaGetYear;
		
		if ((tempDay!=tempDate.getDate())||(tempYear!=aaGetYear)){
			alert("无效的日期。正确的格式为:2008-1-1");
			fmObj.focus()
			return false;
		}
	 }	
	return true;
}



//判断输入的是不是合法邮件地址
function IsEMail(emailStr)
{
	var emailPat=/^([A-Za-z0-9_\-\.]+)@([A-Za-z0-9]+)[\.]+([A-Za-z0-9]{2,3})$/;
	var matchArray=emailStr.match(emailPat);
	//alert(matchArray[1]);
	if (matchArray==null)
	{
		//alert("E-mail邮件地址错误！");
		//show_dialoginfo(_str_ErrorTitle,"E-mail邮件地址错误！",_int_Width,_int_Height)
		return false;
	}
	return true;
}


//判断输入的是不是正常的字符串
function IsValid(String)
{
	 var Letters = "><'<>/\\～！·＃￥％…；‘’：“”—＊（　）—＋｜－＝、／。，？《》↑↓⊙●★☆■♀ 『』◆◥◤◣ Ψ ※ →№←㊣∑⌒ 〖〗 ＠ξζω□ ∮〓※ ▓∏卐【 】▲△√ ∩¤々 ♀♂∞ ㄨ ≡↘↙ ＆◎Ю┼┏ ┓田 ┃▎○╪┗┛ ∴ ①②③④⑤⑥⑦⑧ \""; 
     var i; 
     var c; 
     for( i = 0; i < String.length; i ++ ) 
     { 
          c = String.charAt( i ); 
	      if (Letters.indexOf( c )>=0) 
	        return false; 
     } 
     return true;
}

//判断输入的是不是正常的字符串
function IsHttp(String)
{
	var myReg=/^http:\/\/([A-Za-z0-9_]+)[\.]{1}[A-Za-z0-9_]+/;
	var matchArray=String.match(myReg);
	//alert(matchArray[1]);
	if (matchArray==null)
	{
		//alert("E-mail邮件地址错误！");
		//show_dialoginfo(_str_ErrorTitle,"E-mail邮件地址错误！",_int_Width,_int_Height)
		return false;
	}
	return true;
}




//判断输入的是不是合法的字符的函数
function IsEnKong(argValue) 
{
	var flag1=false;
	var compStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz _-1234567890";
	var length2=argValue.length;
	for (var iIndex=0;iIndex<length2;iIndex++)
		{
			var temp1=compStr.indexOf(argValue.charAt(iIndex));
			if(temp1==-1) 
				{
					flag1=false;
					break;							
				}
			else
				{
					flag1=true;
				}
		}
	return flag1;
}
//判断输入的是不是包含中文
function InChinese(String)
{  
    var Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890`=~!@#$%^&*()_+[]{}\\|/?.>,<;:'\-?<>/～！·＃￥％…；‘’：“”—＊（　）—＋｜－＝、／。，？《》↑↓⊙●★☆■♀ 『』◆◥◤◣ Ψ ※ →№←㊣∑⌒ 〖〗 ＠ξζω□ ∮〓※ ▓∏卐【 】▲△√ ∩¤々 ♀♂∞ ㄨ ≡↘↙ ＆◎Ю┼┏ ┓田 ┃▎○╪┗┛ ∴ ①②③④⑤⑥⑦⑧ \""; 
     var i; 
     var c; 
     for( i = 0; i < String.length; i ++ ) 
     { 
          c = String.charAt( i ); 
	      if (Letters.indexOf( c )<0) 
	        return true; 
     } 
     return false;
}

//验证文字长度
function CheckWordLength(obj,obj2,MaxLengh)
{
	var NowLength = obj.value.length;
	if(NowLength<MaxLengh)
	{	
		obj2.innerHTML="总限定字数[<span class=Red>"+MaxLengh+"</span>] 目前ds还可输入[<span class=Green>"+(MaxLengh-NowLength)+"</span>]";
	}
	else
	{
		//alert("总字数不能超过"+MaxLengh+",自动清除!")
		obj.value = obj.value.substring(0,MaxLengh)
		obj2.innerHTML="总限定字数[<span class=Red>"+MaxLengh+"</span>] <span class=Red>目前已达上限</span>";
	}	
/**
 * 去除字符串str头尾的空格
 * @param str 字符串
 * @return str去除头尾空格后的字符串。
 */
function trim(str)
{
    if(str == null) return "" ;

    // 去除前面所有的空格
    while( str.charAt(0)  == ' ' )
    {
        str = str.substring(1,str.length);
    }

    // 去除后面的空格
    while( str.charAt(str.length-1)  == ' ' )
    {
        str = str.substring(0,str.length-1);
    }

    return str ;
}


}