function getErrorMsg(obj,errorCode){
//var Infobox=getInfobox(obj)
switch(obj.id)
  {
    case "username":
        if(document.getElementById("username_info").outerText){
            return document.getElementById("username_info").outerText
        }else{
            return usernameNormal;
        }
        break;
    case "password":
        return passwordNormal;
        break;
    case "confirm_password":
        return confirm_passwordNormal;
        break;
    case "nstate":
        return areaNormal;
        break;
    case "sex1":
    	return sexNormal;
        break;
    case "sex2":
        return sexNormal;
        break;
    case "email":
        return emailNormal;
        break;
    case "question":
        return questionNormal;
        break;
    case "answer":
        return answerNormal;
        break;
    case "DearName":
        return DearNameNormal;
        break;
	case "validateNum":
        return validateNumNormal;
        break;
	case "SelSite":
	    return "请选择站点";
	    break;
    case "regFor":
	    return regFor_Info
	    break;
    case "validatecode":
	    return  "请输入验证码!";
	    break;
     case "serialNumb":
	     return serialNumbText;
		 break;
   }
}

function initForm(){
    var x=document.getElementById("Content")
    if(!x) return;
    
     var z=x.getElementsByTagName("select");
    for(var j=0;j<z.length;j++){
		if (j!=1 && j!=2  && j!=4)
		{
	    //alert(z[j].id);
        initStatus(z[j]);
        z[j].onfocus =  getFocus;
        z[j].onblur = lostFocus;
		}
   
    }
    
    var y=x.getElementsByTagName("input");
    for (var i=0;i<y.length;i++){
        if (y[i].type=="text" || y[i].type=="password"){
            initStatus(y[i]);
            y[i].onfocus = getFocus;
            y[i].onblur	 = lostFocus;
            y[i].onkeyup = showMyStatus;
        }
        
        if (y[i].id=="sex1" || y[i].id=="sex2"){
            initStatus(y[i]);
            y[i].onfocus = getFocus;
            y[i].onblur	 = lostFocus;
            y[i].onclick = showMyStatus;
        }
    }
    
   
}
function initStatus(obj){
    
    var Infobox=getInfobox(obj)
    if (obj.id=="username"){
	   if (document.getElementById("username_info").outerText=="" ){
	        Infobox.innerHTML=getErrorMsg(obj,0)
	    	Infobox.Inherits="HintMsg";
	    	initMyStatus(obj)
	    }
    }
    else{
        if(obj.id!="validatecode")
         {
         Infobox.innerHTML=getErrorMsg(obj,0)
    	 Infobox.Inherits="HintMsg";
	    initMyStatus(obj)
         }
	}

}


function validateAll(formObj){
    var obj,infobox,pass;
	pass = true;
	var x = formObj;
	
	if(!x) return;	
	
	var z = x.getElementsByTagName("select");
	
	for (var j=0;j<z.length;j++){	
	    obj=z[j];
	    obj.value=obj.value.trim();
	    infobox = getInfobox(obj);
	    if(validateValue(obj)>0){
	        if(pass==true)	obj.focus();
	        pass=false;
	        showStatus(obj,"Error");
	        showInfo(obj,validateValue(obj));
	        continue;
	    }
	    if(validateValue(obj)==0){
			showStatus(obj,"Ok");
			infobox.className	= "HintMsg";
			infobox.innerHTML	= "选择正确";
			continue;
		}
	}
	
	
	var y = x.getElementsByTagName("input");
	for (var i=0;i<y.length;i++){		
	    obj = y[i];		
	  //  if( obj.id=='DearName')
		//	continue;
		obj.value = obj.value.trim();
		infobox = getInfobox(y[i]);
		
		if(obj.type == 'text' || obj.type == 'password' || obj.type=="radio"){
		    
		  if(requestMethod!='POST' || (requestMethod=='POST' && obj.id != 'username') ){ 
		   
		    if (obj.value == ""){
				if(pass==true)	obj.focus();
				pass = false;
				showStatus(obj,"Error");
				infobox.className	= "ErrorMsg";
				infobox.innerHTML	= requireErrorInfo + getErrorMsg(obj,0);
				continue;
			}
		   
		    if(validateValue(obj)>0){
		        if(pass==true)	obj.focus();
				pass = false;
				showStatus(obj,"Error");
				showInfo(obj,validateValue(obj));
				continue;
			}
			
			if(validateValue(obj)==0){
				showStatus(obj,"Ok");
				infobox.className	= "HintMsg";
				infobox.innerHTML	= "输入正确";
				continue;
			}
		 }
		 
		}		
	}		

	return pass;
}

function getInfobox(obj){
    var Infobox
    if (obj.type=="text" || obj.type=="password")
        Infobox = document.getElementById(obj.id+"_info");
    else{
        if(obj.type=="select-one")
		  {
           // if(obj.id=="fctbox" || obj.id=="brbox"){
             //   Infobox=document.getElementById("brand_info")
            //}
            if(obj.id=="regFor")
			{
                Infobox=document.getElementById("regFor_info")
            }
            if(obj.id=="nstate")
			{
                Infobox=document.getElementById("area_info")
            }
            if(obj.id=="question")
			{
                Infobox=document.getElementById("question_info")
            }
        }
        if(obj.type=="radio"){
            Infobox = document.getElementById("sex_info")
        }
    }
    return Infobox;
}

function getMarkBox(obj){
    var markBox
    if(obj.type=="select-one"){
       // if(obj.id=="fctbox" || obj.id=="brbox"){
          //  markBox=document.getElementById("brand_mark")
      //  }
        if(obj.id=="nstate"){
            markBox=document.getElementById("area_mark")
        }
		
        if(obj.id=="regFor"){
            markBox=document.getElementById("regFor_mark")
        }
		
         if(obj.id=="question"){
            markBox=document.getElementById("question_mark")
        }
    }
    if(obj.type=="radio"){
        markBox = document.getElementById("sex_mark")
    }
    return markBox;
}

function isIE() {
	if(document.all) return true;
	return false;
}

function getFocus(evnt){
    var obj
	if (isIE()) {
		obj = event.srcElement;
	}else {
		obj = evnt.target;
	}
	//var obj= event.srcElement;
    showInfo(obj,0);
}

function lostFocus(evnt){
    var obj
	if (isIE()) {
		obj = event.srcElement;
	}else {
		obj = evnt.target;
	}
    //var obj= event.srcElement;
    showInfo(obj,-1);
}

function showInfo(obj,statecode){
    var Infobox=getInfobox(obj)
    if(Infobox.className != "ErrorMsg"){
        if (statecode==0){
            Infobox.className = "WarningMsg";
            Infobox. innerHTML=getErrorMsg(obj,0)
        }
        if (statecode >0 ){
            Infobox.className = "ErrorMsg";
           Infobox. innerHTML=getErrorMsg(obj,1) 
        }
        if (statecode < 0){
            Infobox.className = "HintMsg";
           Infobox. innerHTML=getErrorMsg(obj,0) 
        }
    }
}

function initMyStatus(obj){
    errorCode=validateValue(obj);
    if(errorCode == 0){
		showStatus(obj,"Ok");
	}
	if(errorCode >= 1){
		showStatus(obj,"Error");
	}
	if(errorCode < 0){
		showStatus(obj,"Normal");
	}
}

function showMyStatus(evnt){
  
  var obj,errorCode;
	if (isIE()) {
		obj = event.srcElement;
	}else {
		obj = evnt.target;
	} 
    //var obj
    //var errorCode 
    //obj = event.srcElement;
   	if(obj.id=="fctbox") comp_brlist()
    errorCode=validateValue(obj);
    if(errorCode == 0){
		showStatus(obj,"Ok");
	}
	if(errorCode >= 1){
		showStatus(obj,"Error");
	}
	if(errorCode < 0){
		showStatus(obj,"Normal");
	}
	
	
}

function showStatus(obj,stat)
//Show the status of user currently inputting field
//3 Statuses: Warning|Error|Ok
{
    switch(stat){
		case "Warning":
			if(obj.type == "text" || obj.type=="password")	{
			    obj.className = "Warning";
			}
		    if(obj.type == "select-one" || obj.type=="radio") getMarkBox(obj).innerHTML = "";
			break;
		case "Error":
			if(obj.type == "text" || obj.type=="password")	{
			obj.className = "Error";
			}
		    if(obj.type == "select-one" || obj.type=="radio") getMarkBox(obj).innerHTML = "";
			break;
		case "Ok":
		    if(obj.type == "text" || obj.type=="password")	obj.className = "Ok";
		    if(obj.type == "select-one" || obj.type=="radio") getMarkBox(obj).innerHTML = selectOK;
			break;
		default:
			if(obj.type == "text" || obj.type=="password")	obj.className = "Normal";
		    if(obj.type == "select-one" || obj.type=="radio") getMarkBox(obj).innerHTML = "";
			break;
	}
}

function validateValue(obj){
	//trim
	var patn = /(^\s)|(\s$)/;
	if(patn.test(obj.value))	obj.value = obj.value.trim();

		//switcher
	var errorCode = -1;

	switch(obj.id){
	    case "username":
	        errorCode = validateUsername(obj);
			break;
	    case "password":
			errorCode = validatePassword(obj);
			break;
	    case "confirm_password":
			errorCode = validateSafePassword(obj);
			break;
	    case "nstate":
	        errorCode = validateArea(obj);
	        break;
	    case "email":
	        errorCode = validateEmail(obj);
	        break;
	    case "sex1":
	        errorCode = validateSex(obj);
	        break;
	    case "sex2":
	        errorCode = validateSex(obj);
	        break;
	    case "question":
	        errorCode = validateArea(obj);
	        break;
	    case "answer":
	        errorCode = validateArea(obj);
	        break;
	    case "DearName":
	        errorCode = validateArea(obj);
	        break;
	    case "regFor":
	        errorCode = validateArea(obj);
	        break;
	}
	return errorCode;
}

function validateUsername(obj){
	var str = obj.value;
	var patn = /^[^_^\s]*$/;
	if(patn.test(str)){
		if(checkByteLength(str,4,20)) return 0;
	}
	return 1; 
}
function validatePassword(obj){
	var str = obj.value;
	var patn = /.{6,16}/; 
	if(patn.test(str)) return 0;
	return 1; 
}
function validateSafePassword(obj){
	var str = obj.value;
	if(validatePassword(obj)>0) return 1;
	if(str == document.getElementById("username").value) return 2;
	if(str != document.getElementById("password").value) return 7;
	//if validated
	return 0;
}
function validateBrand(obj){
    var str = obj.value;
    var fct = document.getElementById("fctbox").value;
    var br =  document.getElementById("brbox").value;
    if(fct =="" || br == "" || br=="0") return 1;
    return 0;
    
}
function validateArea(obj){
    var str = obj.value;
    if(str=="") return 1;
    return 0;
}
function validateEmail(obj){
	var str = obj.value;
	var patn = /^[_a-zA-Z0-9\-]+(\.[_a-zA-Z0-9\-]*)*@[a-zA-Z0-9\-]+([\.][a-zA-Z0-9\-]+)+$/;
	if(patn.test(str)){
		return 0;
	}else{
		return 1; //incorrect format
	}
}
function validateSex(obj){
    var s1 = document.getElementById("sex1").checked;
    var s2 =  document.getElementById("sex2").checked;
    if(s1 || s2 ) return 0;
    return 1;
}

function checkByteLength(str,minlen,maxlen) {
	if (str == null) return false;
	var l = str.length;
	var blen = 0;
	for(i=0; i<l; i++) {
		if ((str.charCodeAt(i) & 0xff00) != 0) {
			blen ++;
		}
		blen ++;
	}
	if (blen > maxlen || blen < minlen) {
		return false;
	}
	return true;
}
String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

