// JavaScript Document

function Hijax() {

 var container,url,canvas,data,loading,callback,request;

 this.setContainer = function(value) {
  container = value;
 };
 this.setUrl = function(value) {
  url = value;
 };
 this.setCanvas = function(value) {
  canvas = value;
 };
 this.setLoading = function(value) {
  loading = value;
 };
 this.setCallback = function(value) {
  callback = value;
 };

 this.captureData = function() {
  if (container.nodeName.toLowerCase() == "form") {
   container.onsubmit = function() {
    var query = "";
    for (var i=0; i<this.elements.length; i++) {
		 if (this.elements[i].checked == true || this.elements[i].type != "checkbox") {
			 query+= escape(this.elements[i].name);
			 query+= "=";	 
			 query+= escape(this.elements[i].value);
			 query+= "&";
		 }
    }
	query+="ajax=true";
    data = query;
    return !start();
   };
  } else {
   var links = container.getElementsByTagName("a");
   for (var i=0; i<links.length; i++) {
    links[i].onclick = function() {
     var query = this.getAttribute("href").split("?")[1];
     url+= "?"+query;
     return !start();
    };
   }
   links = null;
  }
 };

 var start = function() {
  request = getHTTPObject();
  if (!request || !url) {
   return false;
  } else {
   initiateRequest();
   return true;
  }
 };

 var getHTTPObject = function() {
  var xmlhttp = false;
  if (window.XMLHttpRequest) {
   xmlhttp = new XMLHttpRequest();
  } else if(window.ActiveXObject) {
   try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
    try {
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {
     xmlhttp = false;
    }
   }
  }
  return xmlhttp;
 };

 var initiateRequest = function() {
  if (loading) {
   loading();
  }
  request.onreadystatechange = completeRequest;
  if (data) {
   request.open("POST", url, true);
   request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   request.send(data);
  } else {
   request.open("GET", url, true);
   request.send(null);
  }
 };

 var completeRequest = function() {
  if (request.readyState == 4) {
   if (request.status == 200 || request.status == 304) {
    if (canvas) {
     canvas.innerHTML = request.responseText;
    }
    if (callback) {
     callback();
    }
   }
  }
 };

};

function prepareCalculatorForm() {
	if (document.getElementById("frmMoreEquity")) {
		prepareForm("frmMoreEquity", "calculatorform");
	}
	else if (document.getElementById("frmCalculator")) {
		prepareForm("frmCalculator", "calculatorform");
	}
	else {
		
	}
}

function prepareCallBackForm() {
	prepareForm("frmCallBack", "callbackform");
}

function prepareContactForm() {
	prepareForm("frmContact", "contactform");
}
 
function prepareEquityReleaseGuideForm() {
	prepareForm("frmEquity", "equityreleaseguideform");
}

function prepareIntroducersForm() {
	prepareForm("frmIntroducers", "introducersform");
}

 
function prepareForm(formID, canvasID) {
	//console.trace();
	if (!document.getElementById(formID)) {
	  return false;
	}
	//console.debug(formID);
	var xhr = new Hijax();
	xhr.setContainer(document.getElementById(formID));
	xhr.setUrl("/includes/processforms.asp");
	xhr.setCanvas(document.getElementById(canvasID));
	//  xhr.setLoading(function() {
	//   displayLoading(document.getElementById(canvas));
	//  });
	xhr.setCallback(function() {
	if (document.getElementById("formerror")) {
		//fadeUp(document.getElementById("formerror"),255,255,156);
	}
	prepareForm(formID, canvasID);   
	});
	xhr.captureData();
};
 
 
