function newXMLHttpRequest() {
    var reqHttp;   
    if (window.ActiveXObject) { 
        try {
            reqHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                reqHttp =  new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e1) {               
                reqHttp =  null;
            }
        }
    } else if (window.XMLHttpRequest){  
        try {
            reqHttp =  new XMLHttpRequest();
        } catch (e) {
            reqHttp =  null;
        }
    }
    if (reqHttp == null) errorMessage();   
    return reqHttp;
}

function errorMessage() {               
    alert("Current browser cannot be used for registration.\nPlease use Internet Explore or Mozilla Firefox."); 
}

String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/gi, "");
}

function chk_only_char2(ctrlnm) {
	if( ctrlnm.value.match(/[^a-zA-Z0-9]/) ) {
		return false;
	}
	return true;
}

function CheckDuplication(mode, layerName) {
	var value = eval("document.getElementById('"+mode+"').value");
	var form_div = eval("document.getElementById('"+mode+"_div')");
	var layer_available = eval(mode+"_available");	
	var formElement = eval("document.joinform."+mode);	
	var chkFlag = true;
    var getPost = "POST";
	var urlFileAppl;
	var sendData;

	if (value.trim()=="")
	{
		form_div.innerHTML = "<table cellpadding='0' cellspacing='0'><tr><td></td><td width='392'><font color='#FF0000'>Required field cannot be left blank</font></td><td></td></tr></table>";
		layer_available.style.display="block";
		chkFlag = false;
	}else{
		layer_available.style.display="none";
		
		if (mode != "vcode"){
			if (mode == "email")
			{
				if( chk_char_email_a(formElement) == false ) {
					email_div.innerHTML = "<table cellpadding='0' cellspacing='0'><tr><td></td><td width='392'><font color='#FF0000'>Sorry, your email address is not valid.</font></td><td></td></tr></table>";
					email_available.style.display="block";
					chkFlag = false;
				}else{
					email_available.style.display="none";
				}
			}else{
				var filter = /^[a-zA-Z0-9_]+$/;
				if(filter.test(value)==false){
					form_div.innerHTML = "<table cellpadding='0' cellspacing='0'><tr><td></td><td width='392'><font color='#FF0000'>Sorry, your "+mode+" must be between 6 and 30 characters long.</font></td><td></td></tr></table>";			

					if (layer_available.style.display=="none")
					{
						layer_available.style.display="block";
					}
					
					chkFlag = false;
				}
			}
		}
	

	//if (chkFlag)
	//{
	//	if (mode != "vcode"){
	//		urlFileAppl = "/account/check_popup.asp";
	//		sendData ="mode="+mode+"&value="+ encodeURIComponent(value); 
	//	}else{
	//		urlFileAppl = "/account/charcheck.asp";
	//		sendData = "vcode="+encodeURIComponent(value); 
	//	}

		var trueFalse = true;
		openSendStatus(getPost, urlFileAppl, trueFalse, sendData, layerName, mode, layer_available);
	}
}

function openSendStatus(getPost, urlFileAppl, trueFalse, sendData, layerName, mode, layer_available) {
	var xmlHttp = new XMLHttpRequest();		
    xmlHttp.open(getPost, urlFileAppl, trueFalse);      
    xmlHttp.onreadystatechange = function() {         
        if (xmlHttp.readyState == 4) {								
            if (xmlHttp.status == 200) {						
                mainControl(xmlHttp, mode);
            } else {
                exceptionControl(xmlHttp);	
            }
        }
    }
    
	var conType = "application/x-www-form-urlencoded; charset=UTF-8";
	xmlHttp.setRequestHeader("Content-Type", conType);
	xmlHttp.send(sendData);  
}

function exceptionControl(xmlHttp) {
    var exceptShow = "Stauts: " + xmlHttp.status;
    exceptShow += ",  It has been terminated unexpectedly.";
    alert(exceptShow);
}

function mainControl(xmlHttp, mode) {
	var xmlHttpData = decodeURIComponent(xmlHttp.responseText);  
	var splitData = xmlHttpData.split("|"); 
	var hidden_checked = eval("document.joinform."+mode+"_checked");
	var form_div = eval("document.getElementById('"+mode+"_div')");
	var layer_available = eval(mode+"_available");	
	
	if (splitData[1].length > 0)
	{		
		
		layer_available.style.display = "block";
		form_div.innerHTML = splitData[1];
	}else{
		form_div.innerHTML = "";
		layer_available.style.display = "none";
	}
	
	if (splitData[0]=="0")
	{	
		hidden_checked.value = "T";
	}else{
		hidden_checked.value = "F";
	}
}

