// We are using toolbar_ as prefix so that it don't mix with other applications javascript

function toolbar_createXmlHttpRequest() {
	var xmlHttp;
	try  {
  		// Firefox, Opera 8.0+, Safari
  		xmlHttp=new XMLHttpRequest();
  	} catch (e) {
  		// Internet Explorer
  		try {
		    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    	} catch (e) {
    		try {
      			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      		} catch (e) {
      			alert("Your browser does not support AJAX!");
      			return false;
      		}
    	}
  	}
  	
  	return xmlHttp;
}

function toolbar_postRequest(url,params,responseElement) {
	
	var http = toolbar_createXmlHttpRequest();
	// check if browser support
	if (!http) return false;
	
	http.open("POST", url, true);

	//Send the proper header information along with the request
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");

	//Call a function when the state changes.
	http.onreadystatechange = function() {
		if(http.readyState == 4 && http.status == 200) {
			responseElement.innerHTML = http.responseText;
		} else  if (http.readyState == 4) {
			responseElement.innerHTML = "<div style='color:white'>Error ocurred retrieving the information. Please close and try again. <a style='color:red' onclick='toolbar_clearPage();'>Close</a></div> ";
		} else {
			responseElement.innerHTML = "<img align='center' src='/toolbar/images/loading.gif' />";
		}
	}

	http.send(params);
}

function toolbar_getParams(formObj) {
	var getstr = "?";
	for (i=0; i < formObj.length; i++) {
		if (formObj[i].tagName == "INPUT") {
			if ((formObj[i].type == "hidden")||(formObj[i].type == "text")||(formObj[i].type == "password")) {
				getstr += formObj[i].name + "=" + formObj[i].value + "&";
			}	
			if (formObj[i].type == "checkbox") {
				if (formObj[i].checked) {
					getstr += formObj[i].name + "=" + formObj[i].value + "&";
				} else {
					getstr += formObj[i].name + "=&";
				}
			}
			if (formObj[i].type == "radio") {
				if (formObj[i].checked) {
					getstr += formObj[i].name + "=" + formObj[i].value + "&";
				}
			}
		}   
		if (formObj[i].tagName == "SELECT") {
			var sel = formObj[i];
				getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
		}
         
	}
	return getstr;
}

function toolbar_remoteSubmit(formId, responseId) {
	var form = document.getElementById(formId);
	var response = document.getElementById(responseId);
	
	// check if form and response exist
	if ((!form)||(!response)) return false;
	
	// get paramaters
	var params = toolbar_getParams(form);
	
	// get actionUrl
	var actionUrl = form.action;
	
	toolbar_postRequest(actionUrl, params, response);
}

function toolbar_getRequest(url, params, responseElement) {
	
	var http = toolbar_createXmlHttpRequest();
	
	// check if browser support
	if (!http) return false;
	
	http.open("GET", url, true);

	//Call a function when the state changes.
	http.onreadystatechange = function() {
		if(http.readyState == 4 && http.status == 200) {
			responseElement.innerHTML = http.responseText;
			responseElement.style.display = "block";	
		} else if (http.readyState == 4) {
                        responseElement.innerHTML = "<div style='color:white'>Error ocurred retrieving the information. Please close and try again. <a style='color:red' onclick='toolbar_clearPage();'>Close</a></div> ";
                } else {
                        responseElement.innerHTML =  "<img align='center' src='/toolbar/images/loading.gif' />"; 
                        responseElement.style.display = "block";
		}
	}
	http.send(params);
}

function toolbar_loadPage(url, responseId) {
	var response = document.getElementById(responseId);
	
	// check if form and response exist
	if (!response) return false;
	
	toolbar_getRequest(url, "", response);
}

function toolbar_clearPage() {
	var page = document.getElementById('page');
 	page.innerHTML = "";	
	page.style.display = "none";
}


