
//runs a php file without refreshing the page;
function ajax(overwrite_id,phpfile,form_id,callback_func) {
 

	if (window.XMLHttpRequest) {
		// code for IE7+, Firefox, Chrome, Opera, Safari;
		xmlhttp=new XMLHttpRequest();

	} else {
		// code for IE6, IE5;
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}


	//insert new div;
	xmlhttp.onreadystatechange=function() {

		if (xmlhttp.readyState==4 && xmlhttp.status==200) {	
			
			document.getElementById(overwrite_id).innerHTML=xmlhttp.responseText;
			
			//execute callback_func after complete;
			if(typeof callback_func !== "undefined") {
				callback_func();
			}
			
			//if overwrite_id=status set timeout;
			if(overwrite_id == 'status') setTimeout('document.getElementById("status").innerHTML = ""', 7000);
			
			


		}
	}

	
		
		var elements = [];
		var parameters = '';
		
		//Find all input tags
		if(typeof form_id !== "undefined") {
		
			//assign current overwrite_id contents to "previous_content";
			if(typeof form_id !== 'object')	var form_id=[form_id];
			parameters += 'previous_content=' + encodeURIComponent(document.getElementById(overwrite_id).innerHTML)+ '&';
		
		
			 //assign post values;
			for (var i=0; i<form_id.length; i++) {
			
				//inputs;
				var inputs = document.getElementById(form_id[i]).getElementsByTagName("input");
					
				for (var j=0; j<inputs.length; j++) {
					if (inputs[j].name != null && inputs[j].value != null) {
			
						if (	inputs[j].type == 'text' || 
								inputs[j].type == 'password' ||
								inputs[j].type == 'hidden' ||
								(inputs[j].type == 'checkbox' && inputs[j].checked==true) ||
								(inputs[j].type == 'radio' && inputs[j].checked==true)) {
				
									parameters += inputs[j].name + '=' + encodeURIComponent(inputs[j].value) + '&';
						}
					}
				}
				
				//selects;
				var selects = document.getElementById(form_id[i]).getElementsByTagName("select");
				
				for (var j=0; j<selects.length; j++) {
					if (selects[j].name != null && selects[j].value != null) {

						parameters += selects[j].name + '=' + encodeURIComponent(selects[j].options[selects[j].selectedIndex].value) + '&';
					}
				}			

				//textareas;
				var textareas = document.getElementById(form_id[i]).getElementsByTagName("textarea");

				for (var j=0; j<textareas.length; j++) {
					if (textareas[j].name != null && textareas[j].value != null) {

						parameters += textareas[j].name + '=' + encodeURIComponent(textareas[j].value) + '&';
					}
				}
				
			}
		}



		
		//add waiting image;
		document.getElementById(overwrite_id).innerHTML='<img src="js/images/trans.gif" />';
	
	
		//add date and time to end as GET variable to prevent caching;
		var today = new Date();
		
		if(phpfile.indexOf("?")==-1) {
			phpfile += "?" + today;
		} else {
			phpfile += "&" + today;
		}

    	//Send the proper header information along with the request;		
		xmlhttp.open("POST",phpfile,true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.send(parameters);

 }
