//to encode/decode the special charactors
escapeSpecial = function(str) {
	return escape(encodeURIComponent(str));
};

unescapeSpecial = function(str) {
	return unescape(decodeURIComponent(str));
};

//is password legal
function checkPWD(str) {
	return /^[A-Za-z0-9~`!@#\$%^&*\(\)-_=\+\{\}\[\]|\:;\"\/'<>,.\?]{6,12}$/.test(str);
};

//null check
function isNull(str) {
	str = str.replace(/\s+/g,"");   
	return str == "";	
};

//email check
function isEmail(str) {
	return /^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/.test(str);
};

//character is lowerCase and number
function isLowerCaseAndNumber(str) {
	return /^[a-z0-9]+$/.test(str);
};

function isPositiveInteger(str) {
	return /^[0-9]*[1-9][0-9]*$/.test(str);
};

/*	clear caution	*/
function clearCaution(objThis) {
	var sTestDriveCaution 		= document.getElementById(objThis);
	sTestDriveCaution.innerHTML	= "";
};

////the code for Ajax
function addURLParam(sURL, sParamName, sParamValue) {
	sURL += (sURL.indexOf("?") == -1 ? "?" : "&");
	sURL += encodeURIComponent(sParamName) + "=" + encodeURIComponent(sParamValue);
	return sURL;
};

/// for Ajax Cross Domain 
var ACD = function(whichChk) {
	var time = 0;
	var timerID;
	var timeout = 50;
	var chk = whichChk;
	var url;
	var el = document.getElementById("idProxyScript");	
	var cb = null;
	var cbArgs = null;
	var defaultCB = function() {
		if(chk == "email") {
			if(status == 406){alert(js.msg.chkEmailRegistered);}
	    	if(status == 200){alert(js.msg.chkEmailAcceptable);}
	    	if(status == 500){alert(js.msg.serverBusy);}
		} 
		else if(chk == "url") {
			if(status == 406){alert(js.msg.chkURLRegistered);}
	    	if(status == 200){alert(js.msg.chkURLAcceptable);}
	    	if(status == 500){alert(js.msg.serverBusy);}
		}
		else {
			if(status == 406){alert(js.msg.chkURLRegistered);}
	    	if(status == 200){alert(js.msg.chkURLAcceptable);}
	    	if(status == 500){alert(js.msg.serverBusy);}
		}
	}
	
	this.request = function(sURL) {
		url = sURL;
		if(el != null) {	//if exist this script element.
			el.src = url;		// work for IE, but FF not request server
			//so, bellow code let FF request again besides IE, IE doesn't request again.   
			//not need to be window.top.ifmMainContent.document 
			var script = document.createElement("script");
   			script.setAttribute("src", sURL);
   			script.setAttribute("id", "idProxyScript");
   			script.setAttribute("type", "text/javascript");
   			document.body.appendChild(script);
		}
		else {
			//if not exist this script element, creat it.
			var script = document.createElement("script");
   			script.setAttribute("src", sURL);
   			script.setAttribute("id", "idProxyScript");
   			script.setAttribute("type", "text/javascript");
   			document.body.appendChild(script);
		}
	}
	
	this.processACD = function(cbOption, cbArgsOption) {
		cb = cbOption;
		cbArgs	= cbArgsOption;
		timerID = window.setTimeout(getStatus,100);
	};
	
	var getStatus = function() {
   		time++;
   		window.clearTimeout(timerID);
   		if(status != null && status != "") {
   			try {
   				cb(cbArgs);
   			} 
   			catch(e) {
   				defautCB();
   			}
   			
   			status = null;
   			return;
   		}
   		if(time > timeout) {
   			alert("Server is busy now.");
   		}
   		else { 			
   			timerID = window.setTimeout(getStatus,100);
   		}
    };
};
