//object detection to return the correct object depending upon broswer type. Used by the getAXHA(); function.
function getNewHttpObject() {
	 var objType = false;
	 try {
		  objType = new ActiveXObject('Msxml2.XMLHTTP');
	 } catch(e) {
		  try {
				objType = new ActiveXObject('Microsoft.XMLHTTP');
		  } catch(e) {
				objType = new XMLHttpRequest();
		  }
	 }
	 return objType;
}


//Function used to update page content with new xhtml fragments by using a javascript object, the dom, and http.
function getAXAH(url,elementContainer,title,pageid,extra,dofunction){
	if (typeof extra == "undefined") {
		extra = false;
	}
	if (typeof dofunction == "undefined") {
		dofunction = false;
	}


	if (document.getElementById("AxahLoading") != null ) {
		document.getElementById("AxahLoading").innerHTML = '<center><img src="http://www.kaearien.com/v2/images/ajax-loader.gif"></center>'
	}
	else if (document.getElementById("AxahLoadingFAT") != null ) {
                document.getElementById("AxahLoadingFAT").innerHTML = '<center><img src="http://www.kaearien.com/v2/images/ajax_indicator.gif"></center>'
        }
	else {
		var tmp = document.getElementById(elementContainer).innerHTML;
                document.getElementById(elementContainer).innerHTML = '<center><img src="http://www.kaearien.com/v2/images/ajax-loader.gif"></center>' + tmp;
	}

	var theHttpRequest = getNewHttpObject();
	theHttpRequest.onreadystatechange = function() {processAXAH(elementContainer,title,pageid,extra,dofunction);};
	theHttpRequest.open("GET", url);
	theHttpRequest.send(false);

		function processAXAH(elementContainer,title,pageid,extra,dofunction){
			if (theHttpRequest.readyState == 4) {
				if (theHttpRequest.status == 200) {
					document.getElementById(elementContainer).innerHTML = theHttpRequest.responseText;
					if (document.getElementById("AxahLoading") != null) {
						document.getElementById("AxahLoading").innerHTML = '';
					}
					if (document.getElementById("AxahLoadingFAT") != null) {
                                                document.getElementById("AxahLoadingFAT").innerHTML = '';
                                        }
					LoadTitleTips();
					if(extra){
						document.title = title;
					}
					if(dofunction){
						setTimeout(dofunction,0);
					}
				} else {
					document.getElementById(elementContainer).innerHTML="<p><span class='redtxt'>Error!<\/span> HTTP request return the following status message:&nbsp;" + theHttpRequest.statusText +"<\/p>";
				}
			}
		}

}

function getAXAH2(url,elementContainer,title,pageid,extra,dofunction){
	if( document.getElementById("fsx") ) {
                $('html, body').animate({scrollTop:0}, '1');
		document.getElementById("fsx").src = url;
		return false;
	}
	else {
		var tmp = document.getElementById(elementContainer).innerHTML;
		AXAH2_data = document.getElementById(elementContainer).innerHTML;
		document.getElementById(elementContainer).innerHTML = '' + tmp + '<iframe id="fsx" src="'+url+'" width="654" height="300" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" style="margin-top:-300px; margin-left:1px;" allowtransparency="true"></iframe>';
                $('html, body').animate({scrollTop:0}, '1');
		return false;
	}
	return false;
}

//Some things that should be run when a page is started
function run(page){
	switch(page){
		case "overview":

			break;
	}
}

//Mr box
function mrbox(url,width,margintop,title,method){
	var oldtitle = document.title;
	if (typeof title == "undefined") {
		title = oldtitle;
	}
	document.title = "Loading";
	document.getElementById('mrbox').style.display = 'block';

	if (typeof width != "undefined") {
		document.getElementById('mrbox_content').style.width = width+'px';
	}
	if (typeof margintop != "undefined") {
		document.getElementById('mrbox_content').style.marginTop = margintop+'px';
	}
	if(method == 'div'){
		document.getElementById('mrbox_content').innerHTML = document.getElementById(url).innerHTML;
		document.title = "title";
	}else{
		getAXAH(url,'mrbox_content',title,document.body.id,true);
	}
}
function mrbox_close(title){
	if (typeof title != "undefined") { document.title = title; }
	document.getElementById('mrbox').style.display = 'none';
}

//Simple laod page function
function loadpage(url,title,pageid){
	document.title = "Chargement...";
	getAXAH(url,'body',title,pageid,true);
}

//And finaly the bit we've been waiting for, the ajax.
function ajax(url,elementContainer,timeout,dofunction){
	getAXAH(url,elementContainer,'','',false,dofunction);
	t=setTimeout("ajax('"+url+"','"+elementContainer+"',"+timeout+",'"+dofunction+"')",timeout);
}

//For forms
function form2get(formid) {
	//Start the string
	var str = document.getElementById(formid).action;
	//Get elements int he form
	var elem = document.getElementById(formid).elements;
	//Foreach item in the form
	for(var i = 0; i < elem.length; i++){
		//if the item has a name and vlue andit not prefixed js_
		if(elem[i].name && elem[i].value && elem[i].name.substr(0,3) != 'js_'){
			//For input items
			if(elem[i].tagName.toLowerCase() == "input"){
				//If its a text item then we can jsut say the name-value
				if (elem[i].type.toLowerCase() == "text" || elem[i].type.toLowerCase() == "text") {
					str += "&" + elem[i].name + "=" + elem[i].value;
				//If its a checkbox or radio, it should only have that value if its checked.
				}else if (elem[i].type.toLowerCase() == "checkbox" || elem[i].type.toLowerCase() == "radio") {
					if(elem[i].checked){
						str += "&" + elem[i].name + "=" + elem[i].value;
					}
				}
				//Otherwise just send its value
				else {
					str += "&" + elem[i].name + "=" + elem[i].value;
				}
			}
			//For select options
			else if(elem[i].tagName.toLowerCase() == "select"){
				//We need to get the value of the selected item
				str += "&" + elem[i].name + "=" + elem[i].options[elem[i].options.selectedIndex].value;
			}
			//For text boxes
			else if(elem[i].tagName.toLowerCase() == "textarea"){
				//We need to get the value of the selected item
				str += "&" + elem[i].name + "=" + elem[i].value;
			}
			
		}
	}
	return str;
}

function submitform(formid,title,pageid){
	loadpage(form2get(formid),title,pageid);
}

