﻿//******************************************
//系统名称：SmartSites企业智能建站系统
//技术支持：http://www.bdky.cn/
//版权所有：科泉网络
//文 件 名：Form.js
//文件作用：js验证核心代码
//******************************************
function GE(id){
return document.getElementById(id);
}
function CtoH(id){
var str= GE(id).value;
var result = "";
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) == 8220 || str.charCodeAt(i) == 8221) {
result += String.fromCharCode(34);
} else if (str.charCodeAt(i) == 8216 || str.charCodeAt(i) == 8217) {
result += String.fromCharCode(39);
} else if (str.charCodeAt(i) == 12290) {
result += String.fromCharCode(46);
} else if (str.charCodeAt(i) == 12289) {
result += String.fromCharCode(44);
} else if (str.charCodeAt(i) == 12288) {
result += String.fromCharCode(32);
} else if (str.charCodeAt(i) > 65280 && str.charCodeAt(i) < 65375) {
result += String.fromCharCode(str.charCodeAt(i) - 65248);
} else {
result += String.fromCharCode(str.charCodeAt(i));
}
}
GE(id).value = result.trim();
}

function StringCtoH( p_source) 
{
var str = p_source;
var result = "";
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) == 8220 || str.charCodeAt(i) == 8221) {
result += String.fromCharCode(34);
} else if (str.charCodeAt(i) == 8216 || str.charCodeAt(i) == 8217) {
result += String.fromCharCode(39);
} else if (str.charCodeAt(i) == 12290) {
result += String.fromCharCode(46);
} else if (str.charCodeAt(i) == 12289) {
result += String.fromCharCode(44);
} else if (str.charCodeAt(i) == 12288) {
result += String.fromCharCode(32);
} else if (str.charCodeAt(i) > 65280 && str.charCodeAt(i) < 65375) {
result += String.fromCharCode(str.charCodeAt(i) - 65248);
} else {
result += String.fromCharCode(str.charCodeAt(i));
}
}
return result;
}
var firstErrorControl = "";

function SetMsg(type,id,state,text){
if(type=='error'){
if( text.trim().length > 0){
GE( id + "Msg" ).innerHTML = text;
GE( id + "Msg" ).className = "error";
}
}
if(type=='success'){
GE( id + "Msg" ).innerHTML = text;
GE( id + "Msg" ).className = "success";
}
if(type=='alert'){
if( text.trim().length > 0){
GE( id + "Msg" ).innerHTML = text;
GE( id + "Msg" ).className = "alert";
}			
}	
if(firstErrorControl != null && firstErrorControl == ""){
firstErrorControl = id;
}	
GE( id + "Msg" ).style.display = state;
}

function SetMsgFocus(){
if( firstErrorControl != null && firstErrorControl != ""){
try{
if(GE(firstErrorControl ).type != "hidden"){
if(GE(firstErrorControl) == null){
GE(firstErrorControl+"Msg" ).focus();
}
}else{

GE(firstErrorControl + "Msg" ).focus();
}
}catch(e){
GE(firstErrorControl + "Msg" ).focus();
}
}
}

function SetMsgControlFocus(){
if( firstErrorControl != null && firstErrorControl != ""){
try{
if( GE(firstErrorControl ).type != "hidden"){
if( GE(firstErrorControl ) != null)
GE(firstErrorControl ).focus();
else
GE(firstErrorControl + "Msg" ).focus();
}else{
GE(firstErrorControl + "Msg" ).focus();
}
}catch(e){
if(GE(firstErrorControl + "Msg" ) != null){
GE(firstErrorControl + "Msg" ).style.display = "block";
}
}
}
}

///////////////////////////////////////////////////////////////////////////////////////////

function isEmpty(str)
{
return (str.trim()=="");
}

function isInteger(str)
{
if (isEmpty(str)) return true;

var reg = /^((\+|-)\d)?\d*$/;
return reg.test(str);
}

function isDouble(str)
{
if (isEmpty(str)) return true; 

var reg = /^(?:\+|-)?\d+(?:\.\d+)?$/;
return reg.test(str);	        
}

function isDate(str)
{
if (isEmpty(str)) return true;

var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; 

var r = str.match(reg); 
if(r==null)return false; 
var d= new Date(r[1], r[3]-1,r[4]); 
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate();
return newStr==str;
}


function isEmail(str)
{
if (isEmpty(str)) return true; 

var reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i;
return reg.test(str);
}

function isEmailA(str)
{
var reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i;
return reg.test(str);
}

function isBetween (val, lo, hi) {
if ((val < lo) || (val > hi)) { return(false); }
else { return(true); }
}


function isDateTime(str)

{
if (str=="") return true;

var strDate = str;
if (strDate.length == 0) return false;

var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})/;
var r = strDate.match(reg);

if (r != null)   //??strDate
strDate = strDate + " 00:00:00";

reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})/;
r = strDate.match(reg);
if (r == null)
{
return false;
}

var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
if (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()== r[7])
{
return d;
}
else
{
return false;
}
}

function isChineseChar(str)
{
if (isEmpty(str)) return true; 
var reg=/^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;
return reg.test(str);  
}
function includeChineseChar(str)
{
if (isEmpty(str)) return true;
var reg=/^[\x00-\x7F]*$/;
return reg.test(str);  
}
function isEngCharAll(str)
{ 
if (isEmpty(str)) return true;	
var reg=/^[a-zA-Z]{1,20}$/;
return reg.test(str);
}
function isCountryCode(str)
{ 
if (isEmpty(str)) return true;	
var reg=/^([0-9\+]){1,10}$/;
return reg.test(str);
}
function isDigitOrEngChar(str)
{ 
if (isEmpty(str)) return true;	
var reg=/^([a-zA-Z0-9]){1,100}$/;
return reg.test(str);
}
function isEngCharUpper(str)
{ 
if (isEmpty(str)) return true;
var reg=/^[A-Z]{1,20}$/;
return reg.test(str);

}
function isEngCharLower(str)
{ 
if (isEmpty(str)) return true;
var reg=/^[a-z]{1,20}$/;
return reg.test(str);
}
function isPostCode(str)
{
if (isEmpty(str)) return true;
var reg=/^[A-Za-z0-9]{1,12}$/;
return reg.test(str);

}
function isYear(str)
{
if (isEmpty(str)) return true;
var reg=/^[0-9]{4}$/;
return reg.test(str);

}
function isUrl(str)
{
if (isEmpty(str) || str.toLowerCase() == "http://" ) return true;
var reg=/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
return reg.test(str);
}
function isDigit(str)
{
if (isEmpty(str)) return true;
var reg=/^[0-9]{1,20}$/;
return reg.test(str);  
}
function isDigitDot(str)
{
if (isEmpty(str)) return true;
var reg=/^[0-9.]{1,20}$/;
return reg.test(str);
}
function isRegisterUserName(str)
{
if (isEmpty(str)) return true;
var reg=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){2,19}$/;
return reg.test(str);

}
function isTrueName(str)
{
if (isEmpty(str)) return true;
var reg=/^[a-zA-Z]{1,30}$/;
return reg.test(str);

}
function isEngDigitEmpty(str)
{
if (isEmpty(str)) return true;
var reg=/^([a-zA-Z0-9]|[ ]){1,100}$/;
return reg.test(str);

}
function isEngEmpty(str)
{
if (isEmpty(str)) return true;
var reg=/^([a-zA-Z]|[ ]){1,100}$/;
return reg.test(str);

}
function isPasswd(str)
{
if (isEmpty(str)) return true;
var reg=/^(\w){6,20}$/;
return reg.test(str);

}
function isTel(str)
{
if (isEmpty(str)) return true;
var reg=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
return reg.test(str);

}
function isMobil(str)
{
if (isEmpty(str)) return true;
var reg=/^[0-9]{1,16}$/;
return reg.test(str);
}

function isIP(str)  
{
if (isEmpty(str)) return true; 
var reg = /^((1??\d{1,2}|2[0-4]\d|25[0-5])\.){3}(1??\d{1,2}|2[0-4]\d|25[0-5])$/;
return reg.test(str);
}
function isReal (theStr, decLen) {
var dot1st = theStr.indexOf('.');
var dot2nd = theStr.lastIndexOf('.');
var OK = true;

if (isEmpty(theStr)) return false;

if (dot1st == -1) {
if (!isInt(theStr)) return(false);
else return(true);
}

else if (dot1st != dot2nd) return (false);
else if (dot1st==0) return (false);
else {
var intPart = theStr.substring(0, dot1st);
var decPart = theStr.substring(dot2nd+1);


if (decPart.length > decLen) return(false);
else if (!isInt(intPart) || !isInt(decPart)) return (false);
else if (isEmpty(decPart)) return (false);
else return(true);
}
}
function isComdateMsg (lessDate1 ,startstr, moreDate1,endstr){
var re =/\./g;
var lessDate = lessDate1.replace(re,"-");
var moreDate = moreDate1.replace(re,"-");
var re1 =/\\/g;
var lessDate = lessDate.replace(re1,"-");
var moreDate = moreDate.replace(re1,"-");
if(!isComdate(lessDate,moreDate)){
var err = endstr + "";
err = err + startstr;
alert(err);
}
return isComdate(lessDate,moreDate);
}

function need_input(sForm)
{ 
for(i=0;i<sForm.length;i++)
{  
if(sForm[i].tagName.toUpperCase()=="TEXTAREA")
{
if(sForm[i].value.realLength()>sForm[i].title)
{
sWarn= sForm[i].title + "'";
alert(sWarn);
sForm[i].focus();
return false;				
}
}
if(sForm[i].tagName.toUpperCase()=="INPUT" &&sForm[i].type.toUpperCase()=="TEXT")
{  
sForm[i].value = sForm[i].value.trim();
if(sForm[i].value.indexOf('\'')>=0)
{
sWarn= "!";
alert(sWarn);
sForm[i].focus();
return false;				
}
if(sForm[i].value.realLength()>sForm[i].maxLength)
{
sWarn= sForm[i].maxLength + "'";
alert(sWarn);
sForm[i].focus();
return false;				
}
} 
if(sForm[i].tagName.toUpperCase()=="INPUT" &&sForm[i].type.toUpperCase()=="TEXT" && (sForm[i].title!=""))
if(sForm[i].value=="")
{
sWarn=sForm[i].title+"";
alert(sWarn);
sForm[i].focus();
return false;
}
}
return true;
} 
function UrlEncode(p_source)
{
return ( ( p_source.split("&").join("ll_ll") ).split(",").join("dd_dd") ).split(" ").join("_");
}
function UrlDEcode(p_source)
{
return( ( temp.split("ll_ll").join("&") ).split("dd_dd").join(",") ).split("_").join(" ");
}
function ClearUrlString(p_source)
{
return p_source.replace(/[^0-9A-Za-z_]/ig,"")
}
String.prototype.trim = function()
{
return this.replace(/(^[\s]*)|([\s]*$)/g, "");
}
String.prototype.lTrim = function()
{
return this.replace(/(^[\s]*)/g, "");
}
String.prototype.rTrim = function()
{
return this.replace(/([\s]*$)/g, "");
}
String.prototype.realLength = function()
{
return this.replace(/[^\x00-\xff]/g,"**").length;
}
