/////////////////////////////////////////////////////////////
//                Setup Class Names
/////////////////////////////////////////////////////////////
//default classes for infobox
var infoboxOkClass		= "notetrue";
var infoboxWarningClass	= "notetrue";
var infoboxErrorClass	= "noteawoke";
var infoboxHintClass	= "note";
//default classes for input field
var inputWarningClass	= "note";
var inputErrorClass		= "noteawoke";
var inputOkClass		= "notetrue";
var inputNormalClass	= "note";

/////////////////////////////////////////////////////////////
//                Initialize Form
/////////////////////////////////////////////////////////////
function initForm(){	
	//initialize form UI and add triggers
	var infobox;
	var x = document.getElementById("register");
	if(!x) return;
	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],true);
			if(y[i].name=='pro_gro_id')alert(i);
			setFiledWidth(y[i]);
			y[i].onfocus	= getFocus;
			y[i].onblur		= lostFocus;
			//y[i].onkeyup	= showMyStatus;
		}
				
	}
}
function initStatus(obj,isInput){
	if(isInput){
		if(isRequired(obj)) showStatus(obj,"Warning");
		else showStatus(obj,"Normal");
	}
	
	var infobox = getInfobox(obj);
	var errorCode = getInitStatus(obj);
	if(infobox && infobox.innerHTML == ""){
		if(!errorCode || errorCode == 0){
			infobox.className	= infoboxHintClass;
			infobox.innerHTML	= getErrorMsg(obj,0);
		}
		if(errorCode >0){
			infobox.className	= infoboxErrorClass;
			infobox.innerHTML	= getErrorMsg(obj,errorCode);
		}
	}	
}
/////////////////////////////////////////////////////////////
//                Base Functions
/////////////////////////////////////////////////////////////
function isIE() {
	if(document.all) return true;
	return false;
}
function setFiledWidth(obj){
	obj.style.width=(19/3)*obj.size+11;
}
function formEle(required,datatype,parameter,infobox,errormsg,combine,status){
	this.r	= required;	
	this.d	= datatype;
	this.p	= parameter;
	this.i	= infobox;
	this.e	= errormsg;
	this.c = combine;
	this.s = status;
	
} 
function isRequired(obj){
//alert((obj.id).r);
	if(obj.id){
		if(eval(obj.id).r) return eval(obj.id).r;
	}
	return false;
}
function isCombine(obj){
	if(obj.id){
		if(eval(obj.id).c) return eval(obj.id).c;
	}
	return false;
}
function getDatatype(obj){
	if(obj.id){
		if(eval(obj.id).d) return eval(obj.id).d;
	}
	return false;
}
function getInfobox(obj){
//alert(obj.id);
	if(obj.id){
		if(eval(obj.id).i && document.getElementById(eval(obj.id).i)) return document.getElementById(eval(obj.id).i);
	}
	return;
}
function getErrorMsg(obj,errorCode){

	if(obj.id){
		if(eval(obj.id).e[errorCode]) return eval(obj.id).e[errorCode];
	}
	return;
}
function getHintMsg(obj){
	if(obj.id){
		if(eval(obj.id).e[0]) return eval(obj.id).e[0];
	}
	return;
}
function getInitStatus(obj){
	if(obj.id){
		if(eval(obj.id).s || eval(obj.id).s==0 ) return eval(obj.id).s;
	}
	return;
}
function getAttrName(str){
	var s=str.split("=");
	return s[0];
}
function getAttrValue(str){
	var s=str.split("=");
	return s[1];
}
function getAttrValueByName(obj,str){
	var para;
	if(obj.id){
		if(eval(obj.id).p) para=eval(obj.id).p;
		else return;
	}else{
		return;
	}
	var s = para.split(",");
	for(var i=0;i<s.length;i++){
		if(getAttrName(s[i]) == str){
			if(getAttrValue(s[i]))
				return getAttrValue(s[i]);
			else
				return;
		}
	}
	return;
}
function getMailServer(str){
	//be sure str is a correct email address
	str = str.trim();
	return str.substr(str.indexOf("@")+1);
}
String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

/////////////////////////////////////////////////////////////
//                UI Functions
/////////////////////////////////////////////////////////////
function getFocus(evnt)
{
	var obj;
	if (isIE()) {
		obj = event.srcElement;
	}else {
		obj = evnt.target;
	}

	showInfo(obj,0);
}
function lostFocus(evnt)
{

	var obj;
	if (isIE()) {
		obj = event.srcElement;
	}else {
		obj = evnt.target;
	}
	showInfo(obj,-1);

	if(obj.value == ''){
		if(obj.id && eval(obj.id).c && document.getElementById(eval(obj.id).c)){
			if(document.getElementById(eval(obj.id).c).innerHTML.indexOf("img") > 0 || document.getElementById(eval(obj.id).c).innerHTML.indexOf("IMG") > 0 ){
				var start =  document.getElementById(eval(obj.id).c).innerHTML.indexOf('>');
				var end = document.getElementById(eval(obj.id).c).innerHTML.length;
				document.getElementById(eval(obj.id).c).innerHTML = document.getElementById(eval(obj.id).c).innerHTML.substring(start +1,end);
			}
		}
	return;
	}
	
	errorCode = validateValue(obj);
	//alert(errorCode);
	
	if(errorCode == 0){
		//showStatus(obj,"Ok");
	
	//check loginid	
	if(obj.id == 'loginid'){
	checkNick();
	return;
	}
	
	//check email
	if(obj.id == 'email'){
	checkEmail()
	return;
	}

	if(obj.id=='auth_code'){
		checkAuthCode();
		return;
	}

	if(obj.id=='com_name'){
		checkCompanyName()
		return;
	}
	
		
	if(obj.id){	
		if(eval(obj.id).c && document.getElementById(eval(obj.id).c)){
			if(document.getElementById(eval(obj.id).c).innerHTML.indexOf("IMG") < 0 && document.getElementById(eval(obj.id).c).innerHTML.indexOf("img") < 0 ){ 
				document.getElementById(eval(obj.id).c).innerHTML = "&nbsp;<img src=\"new_images/icon_right_19x19.gif\" width=\"19\" height=\"16\" align=\"absmiddle\"> " + document.getElementById(eval(obj.id).c).innerHTML;
			}
		}
			document.getElementById(eval(obj.id).i).className = 'note';
			document.getElementById(eval(obj.id).i).innerHTML = '填写正确。'
		}
	}
	
	
	if(errorCode >= 1){
	if(obj.id){
	//alert(eval(obj.id).i);
	if(eval(obj.id).i && document.getElementById(eval(obj.id).i)) 
	document.getElementById(eval(obj.id).i).className = 'noteawoke';
	document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
	}
		//showStatus(obj,"Error");
		
	if(document.getElementById(eval(obj.id).c).innerHTML.indexOf("img") > 0 || document.getElementById(eval(obj.id).c).innerHTML.indexOf("IMG") > 0){
	var start =  document.getElementById(eval(obj.id).c).innerHTML.indexOf('>');
	var end = document.getElementById(eval(obj.id).c).innerHTML.length;
	document.getElementById(eval(obj.id).c).innerHTML = document.getElementById(eval(obj.id).c).innerHTML.substring(start +1,end);
	}
	
	}
	
	if(errorCode < 0){
	
	if(document.getElementById(eval(obj.id).c).innerHTML.indexOf("img") > 0 || document.getElementById(eval(obj.id).c).innerHTML.indexOf("IMG") > 0){
	var start =  document.getElementById(eval(obj.id).c).innerHTML.indexOf('>');
	var end = document.getElementById(eval(obj.id).c).innerHTML.length;
	document.getElementById(eval(obj.id).c).innerHTML = document.getElementById(eval(obj.id).c).innerHTML.substring(start +1,end);
	}
	
	if(obj.id){
	//alert(eval(obj.id).i);
	if(eval(obj.id).i && document.getElementById(eval(obj.id).i) ) 
	document.getElementById(eval(obj.id).i).className = 'note';
	document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[0];
	//document.getElementById(eval(obj.id).i).innerHTML = '&nbsp;';
	}
	
	
		//showStatus(obj,"Normal");
	}
	

}


function showInfo(obj,errorCode,forcible)
//Show Information in Infobox
//errorCode==0 for hint message
//if forcible==true, no matter what the status of infobox now, change it,
//otherwise,if the status of infobox is "Error", do not change it forever.
{
	var infobox = getInfobox(obj);
	
	if(infobox){
		if(infobox.className != infoboxErrorClass || forcible){
			if(errorCode == 0 ){
				infobox.innerHTML	= getErrorMsg(obj,errorCode);
				if(infobox.innerHTML != '&nbsp;'){
				infobox.className	= infoboxWarningClass;
				}
			}
			if(errorCode >0){
				infobox.className	= infoboxErrorClass;
				infobox.innerHTML	= getErrorMsg(obj,errorCode);
			}
			if(errorCode <0){
				infobox.className	= infoboxHintClass;
			}
		}
	}	
}
function showMyStatus(evnt){
	var obj,errorCode;
	if (isIE()) {
		obj = event.srcElement;
	}else {
		obj = evnt.target;
	}

	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":
			obj.className = inputWarningClass;
			break;
		case "Error":
			obj.className = inputErrorClass;
			break;
		case "Ok":
			obj.className = inputOkClass;
			break;
		default:
			obj.className = inputNormalClass;
			break;
	}
}

var lastNick = "";
function checkNick() {
	var nick = document.getElementById("loginid").value;
	if (nick == "") {
		return false;
	}
	if (nick == lastNick) {
		return false;
	}


	if(nick.length>13){
		document.getElementById("loginid_info").innerHTML = "帐号的长度不能长于12个字符!";
		document.getElementById("loginid_info").className = "noteawoke";
		return false;
	}else if(nick.length<6){
		document.getElementById("loginid_info").innerHTML = "帐号的长度不能小于6个字符!";
		document.getElementById("loginid_info").className = "noteawoke";
		return false;
	}
	exp=/\D\S{5,12}\d{0}/;
	aa=exp.test(nick);
	if(!aa){
//		errors+= nm+'的格式不正确请重新检查！\n';
		document.getElementById("loginid_info").innerHTML = "帐号的格式不正确请重新检查！!";
		document.getElementById("loginid_info").className = "noteawoke";
		return false;
	}


	document.checkNickForm.TPL_NICK.value = nick;
	document.getElementById("loginid_info").innerHTML = "检测中，请稍等...";
	document.getElementById("loginid_info").className = "notetrue";
	document.checkNickForm.submit();
	return true;
}



function checkEmail() {
	var email = document.getElementById("email").value;
	if (email == "") {
		return false;
	}
	
	document.checkEmailForm.TPL_EMAIL.value = email;
	document.getElementById("email_info").innerHTML = "检测中，请稍等...";
	document.getElementById("email_info").className = "notetrue";
	document.checkEmailForm.submit();
	return true;
}

function checkAuthCode(){
	var auth_code = document.getElementById("auth_code").value;
	if (auth_code == "") {
		return false;
	}
	document.checkAuthCodeForm.TPL_AUTH_CODE.value = auth_code;
	document.getElementById("auth_code_info").innerHTML = "检测中，请稍等...";
	document.getElementById("auth_code_info").className = "notetrue";
	document.checkAuthCodeForm.submit();
	return true;
}

function checkCompanyName(){
	var com_name = document.getElementById("com_name").value;
	if (com_name == "") {
		return false;
	}
	document.checkCompanyNameForm.TPL_COM_NAME.value = com_name;
	document.getElementById("com_name_info").innerHTML = "检测中，请稍等...";
	document.getElementById("com_name_info").className = "notetrue";
	document.checkCompanyNameForm.submit();
	return true;
}

function submitForm(obj) {
	step = document.registerActionForm.step.value;
	if(step =='two'){
		var ret = true;
	}else{
		var ret = validateAll(obj);
	}
	if(document.forms[0].pro_gro_id!=undefined){
		for(i = document.forms[0].pro_gro_id.length-1;i>0;i--){
			if(document.forms[0].pro_gro_id[i].value>0)
				document.forms[0].pro_gro_id[i].selected=true;
		}
	}
	if (ret == true) {
		if (document.registerActionForm.Submit) {
			document.registerActionForm.Submit.disabled = true;
		}
	}
	return ret;
}
