//
var app_path = "glbt_aec/free/";

//
function emailCheck (emailStr)
{
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(filter.test(emailStr)) {
		return true;
	}
	return false;
}

//
function GAjax() {

	this.createAjaxObj = function() {
		var httprequest=false;
		if (window.XMLHttpRequest){ 
			httprequest=new XMLHttpRequest();
		if (httprequest.overrideMimeType)
			httprequest.overrideMimeType('text/xml');
		}
		else if (window.ActiveXObject){ 
		try {
			httprequest=new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e){
			try{
				httprequest=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
			}
		}
		return httprequest;
	}

	this.ajaxpack=new Object();
	this.ajaxpack.basedomain="http://"+window.location.hostname;
	this.ajaxpack.ajaxobj=this.createAjaxObj();
	this.ajaxpack.filetype="txt";
	this.ajaxpack.addrandomnumber=0;

	this.getAjaxRequest = function(url, parameters, callbackfunc, filetype){
		this.ajaxpack.ajaxobj=this.createAjaxObj(); 
		var parameters=parameters+"&ajaxcachebust="+new Date().getTime();
		if (this.ajaxpack.ajaxobj){
			this.ajaxpack.filetype=filetype;
			this.ajaxpack.ajaxobj.onreadystatechange=callbackfunc;
			this.ajaxpack.ajaxobj.open('GET', url+"?"+parameters, true);
			this.ajaxpack.ajaxobj.send(null);
		}
	}

	this.postAjaxRequest=function(url, parameters, callbackfunc, filetype){
		this.ajaxpack.ajaxobj=this.createAjaxObj();
		if (this.ajaxpack.ajaxobj){
			this.ajaxpack.filetype=filetype;
			this.ajaxpack.ajaxobj.onreadystatechange = callbackfunc;
			this.ajaxpack.ajaxobj.open('POST', url, true);
			this.ajaxpack.ajaxobj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			this.ajaxpack.ajaxobj.setRequestHeader("Content-length", parameters.length);
			this.ajaxpack.ajaxobj.setRequestHeader("Connection", "close");
			this.ajaxpack.ajaxobj.send(parameters);
		}
	}	
}

//
var regi_vars = "";
//
function ValidateForm() {
	var witherr = false;
	var err_msg = "Please complete the following: \n-------------------------------------------------------------\n";
	regi_vars = "";
	//
	var name = document.getElementById("name").value;
	if(name=="") {
		witherr = true;
		err_msg += "\t - Name \n";
	} else regi_vars += "name=" + name;
	var uname = document.getElementById("username").value;
	if(uname=="") {
		witherr = true;
		err_msg += "\t - Username \n";
	} else regi_vars += "&username=" + uname;	
	var email = document.getElementById("email").value;
	if(email=="") {
		witherr = true;
		err_msg += "\t - Email \n";
	} else {
		if(!emailCheck(email)) {
			witherr = true;
			err_msg += "\t - Invalid Email Address \n";			
		} else regi_vars += "&email=" + email;
	}
	var pword = document.getElementById("password").value;
	if(pword=="") {
		witherr = true;
		err_msg += "\t - Password\n";
	} else regi_vars += "&password=" + pword;
	var pword2 = document.getElementById("password2").value;
	if(pword2!=pword) {
		witherr = true;
		err_msg += "\t - Verify Password not Match\n";
	} 	
	var is_accept = document.getElementById("terms");
	if(!is_accept.checked) {
		witherr = true;
		err_msg += "\t - You must read and accept the terms and agreement\n";
	}
	//
	if(witherr) {
		alert(err_msg);	
		return false;
	} else {
		btn_regi = document.getElementById("btn_regi");
		btn_regi.value = "Processing registration...wait";
		btn_regi.disabled = "disabled";
		//
		ProcessRegistration();
	}
	return true;
}

//
function ReportProcessError(xml_error) {
	var err_type = xml_error['type_desc'];
	var err_msg = err_type + ": \n-------------------------------------------------------------\n";
	//
	if(xml_error['err_email']) {
		var err_email = xml_error['err_email'].toString();
		//
		if(err_email.length>0) {
			err_msg += "\t - Email already exist\n";
		}		
	}
	if(xml_error['err_username']) {
		var err_username = xml_error['err_username'].toString();
		if(err_username.length>0) {
			err_msg += "\t - Username already exist\n";
		}	
	}
	//
	alert(err_msg);
}

//
function ProcessRegistration() {
	var url = app_path+"free-proc.php"
	var method = "post";
	var ObjAjax =  new GAjax();
	var parameters=regi_vars;

	//
	this.processGetPost = function(){
		var myajax=ObjAjax.ajaxpack.ajaxobj;
		var myfiletype=ObjAjax.ajaxpack.filetype;
		if (myajax.readyState == 4){ 
			if (myajax.status==200 || window.location.href.indexOf("http")==-1){ 
				var arr_response = XDoc_ToArray(myajax.responseXML);
				if(arr_response['registration']['status']=="success") {
					var divFree = document.getElementById("divFree");
					divFree.innerHTML = decodeURIComponent(arr_response['registration']['notice'].toString().replace(/\+/g,  " "));
				} else if(arr_response['registration']['status']=="failed") {
					ReportProcessError(arr_response['registration']['error']);
					//
					btn_regi = document.getElementById("btn_regi");
					btn_regi.value = "Register";
					btn_regi.disabled = "";
				} else {
					alert("Unable to process registration. Please try again later.");
					//
					btn_regi = document.getElementById("btn_regi");
					btn_regi.value = "Register";
					btn_regi.disabled = "";					
				}
			} else {
				alert("Unable to send http request.");	
			}
		}
	}
	//
	ObjAjax.postAjaxRequest(url, parameters, this.processGetPost, 'xml');
	return;	
}

//
function LoadRegiForm() {
	var url = app_path+"free-regi.php";
	var method = "post";
	var ObjAjax =  new GAjax();
	var parameters = "";
	
	//
	this.processGetPost = function(){
		var myajax=ObjAjax.ajaxpack.ajaxobj;
		var myfiletype=ObjAjax.ajaxpack.filetype;
		if (myajax.readyState == 4){ 
			if (myajax.status==200 || window.location.href.indexOf("http")==-1) {	
				var divFree = document.getElementById("divFree");
				 divFree.innerHTML = myajax.responseText;
			} else {
				alert("Unable to send http request.");				 
			}
		}
	}
	//
	ObjAjax.postAjaxRequest(url, parameters, this.processGetPost, 'txt');
	return;				
}

