if (!rootpath) var rootpath = "";

function SubmitReq(_process, _this) {

			switch (_process){
			
				case "foo": 
					fooAjax(http)
					break;
					
				case "boo": 
					booXmlReq(http)
					break;
					
				case "FORGOTPASSWORD": 
					_params = getFormData(_this);
					ajaxReq('POST', '/community/sme/php/user_forgotpassword_json.php', _params, _process, true)
					break;
					
				case "VALIDATELOGIN": 
					_params = getFormData(_this);
					ajaxReq('POST', rootpath+'php/user_login_json.php', _params, _process, true)
					break;
					
				case "CHECKUSERNAME":
					_params = "user=" + _this.value;
					ajaxReq('POST', rootpath+'php/user_checkname_json.php', _params, _process, true)
					break;
					
				case "CHECKUSEREMAIL":
					_params = "email=" + _this.value;
					ajaxReq('POST', rootpath+'php/user_checkemail_json.php', _params, _process, true)
					break;
					
				default : alert( _process + " Not Recognized");
			} // end switch
}

var uPass;

function getFormData(_this) {
		//Build param list to pass to request
			var SepChar = "";
			var _params = "";
			frm = document.getElementById(_this);
			for (i=0;i<frm.length;i++) {
				frmElement = frm.elements[i]
				if (frmElement.id > "") {
					switch (frmElement.type) {
						case "checkbox":
							if(frmElement.checked) {
								_params += SepChar + "" + frmElement.id + "=" + frmElement.value;
							} else {
								continue;
							}
							break;
						case "text":
							_params += SepChar + "" + frmElement.id + "=" + frmElement.value;
							break;
						case "password":
							uPass = frmElement.value
							_params += SepChar + "" + frmElement.id + "=" + hex_md5(frmElement.value);
							break;
					}
					var SepChar = "&";
				}
			}
	return _params;
}

///////////////////////////////////////////////////////
// Ajax set up
var http;

function createRequestObject() {
    var ro;
    if (window.ActiveXObject) {
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

// Ajax Request
function ajaxReq(_action, _url, _params, _process, _asych) {
	http = createRequestObject();
    http.open(_action, _url, _asych);
	http.onreadystatechange = new Function("handleAjaxReq('"+_process+"')");
	switch (_action) {
		case "POST":
			http.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
			http.send(_params);
			break;
		case "GET":
    		http.send(null);
			break
	}
}

// Ajax Result
function handleAjaxReq(_process) {
    if (http.readyState == 4) {
		if (http.status == 200) {
			switch (_process){
				case "foo": 
					fooAjax(http)
					break;
				case "boo": 
					fooXmlReq(http)
					break;

				case "FORGOTPASSWORD": 
					FORGOTPASSWORD(http)
					break;
				case "VALIDATELOGIN": 
					VALIDATELOGIN(http)
					break;
				case "CHECKUSERNAME": 
					CheckUsernameJsonReq(http)
					break;
					
				case "CHECKUSEREMAIL":
					CheckUserEmailJsonReq(http)
					break;
				
				default : alert( _process + " Not Recognized");
			} // end switch
		} else {
			// status not ok
			alert("Ajax Error: " + http.status);
		}
    } // end ready state
} // end HandleAjaxReq



//////////////////////////////////////////////////////////////////////////////
// Ajax Application Functions
function fooAjax(_http) {
	var response = _http.responseText;
	alert(response)
	document.getElementById("ajat").innerHTML = response;
}

function booXmlReq(_http) {
	var xmldoc = _http.responseXML;
	//var root_node = xmldoc.getElementsByTagName('root').item(0);
	//alert(root_node.firstChild.data);
	
	var my_node = xmldoc.getElementsByTagName('answer');
	for (i=0; i < my_node.length; i++) {
		alert(my_node[i].firstChild.nodeValue);
		document.getElementById("ajax").innerHTML = xmldoc;
	}
}
function gooJsonReq(_http) {
    var local=new Function("return "+_http.responseText)();
    alert(local[0].message);
}

function FORGOTPASSWORD(_http) {
	var response = _http.responseText;
	response = response.replace(/^\s+|\s+$/g,'');
	try {
	    var local=new Function("return "+response)();
	    if (local[0].message > "") {
			if ( local[0].message == "OK" ) {
				document.getElementById("msgRequiredDiv").className = "msgRequired";
				document.getElementById("msgRequiredDiv").innerHTML = "<em style='color:blue;'>Your password has been reset.<br>Please check your email address for the new password.</em>";
			} else {
				document.getElementById("msgRequiredDiv").className = "msgRequired";
				document.getElementById("msgRequiredDiv").innerHTML = local[0].message;
			}
		} else {
			alert("Message Empty : " + _http.responseText)
		}
	} catch (ex) {
		alert ("ERROR " + ex.message + "\n" + response)
	}
}
function VALIDATELOGIN(_http) {
	var response = _http.responseText;
	response = response.replace(/^\s+|\s+$/g,'');
	//alert(response);
	
	try {
	    var local=new Function("return "+response)();
	    if (local[0].message > "") {
			if ( local[0].message == "CORRECT" ) {
				window.location.href = "index.php"; 
			} else {
				document.getElementById("msgRequiredDiv").innerHTML = local[0].message;
			}
			
		} else {
			alert("Message Empty : " + response)
		}
	} catch (ex) {
		alert ("ERROR " + ex.message + "\n" + response)
	}
}

function CheckUsernameJsonReq(_http) {
	try {
	var response = _http.responseText;
	response = response.replace(/^\s+|\s+$/g,'');
	//alert(response);
    var local=new Function("return "+response)();
    if (local[0].message > "") {
		document.getElementById("msgRequiredDiv_user").innerHTML = local[0].message;
		document.getElementById("user").className = "reqXp";
	} else {
		document.getElementById("msgRequiredDiv_user").innerHTML = "";
		document.getElementById("user").className = "winXp";
	}
	} catch (ex) {
		document.getElementById("msgRequiredDiv_user").innerHTML = "An error has occured in validating the USERNAME";
		document.getElementById("user").className = "reqXp";
	}
}
function CheckUserEmailJsonReq(_http) {
	try {
	var response = _http.responseText;
	response = response.replace(/^\s+|\s+$/g,'');
	//alert(response);
    var local=new Function("return "+response)();
    if (local[0].message > "") {
		document.getElementById("msgRequiredDiv_email").innerHTML = local[0].message;
		document.getElementById("email").className = "reqXp";
	} else {
		document.getElementById("msgRequiredDiv_email").innerHTML = "";
		document.getElementById("email").className = "winXp";
	}
	} catch (ex) {
			document.getElementById("msgRequiredDiv").innerHTML = "An error has occured in validating the USEREMAIL"
			document.getElementById("email").className = "reqXp";
	}
}