// Load functions once the DOM has loaded. Bulletproof Ajax p98.
function addLoadEvent(func) {
  var oldonload=window.onload;
  if (typeof window.onload!='function') {
    window.onload=func;
  } else {
    window.onload=function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
//Create a boolean variable to check for a valid Internet Explorer instance.
	var xmlhttp = false;	
	//Check if we are using IE.
	try {
		//If the Javascript version is greater than 5.
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		//If not, then use the older active x object.
		try {
			//If we are using MS.
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			//Else we must be using a non-IE browser.
			xmlhttp = false;
		}
	}
	//If we are using a non-IE browser, create a javascript instance of the object.
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	// Function to show Ajax update status
	function ajaxUpdateStatus(updateStatus) {
		switch(updateStatus)
		  {
		  case 'updating':
			document.getElementById("update_status").innerHTML='<div id=updating></div>';
			break;										
		  default:
			document.getElementById("update_status").innerHTML='';
			break;
		  }
	}
	function select_display(selectedType, selectedValue) {
		ajaxUpdateStatus('updating');
		serverPage="select_display.php?selectedType="+selectedType+"&selectedValue="+selectedValue;
		xmlhttp.open("POST", serverPage);
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                if ((selectedType!='selected_current_timepoint') && (selectedType!='selected_future_timepoint'))
                  {
                  switch(selectedType)
				    {
				    case 'search': case 'login_main': case 'about_us': case 'terms_of_use': case 'site_map': case 'joined_up_diy_wealth_planning':
					  document.getElementById("left_nav").innerHTML='';
					  break;
				    default:
					  document.getElementById("left_nav_exc_when").innerHTML=xmlhttp.responseText;
					  break;
				    }
				  }
                switch(selectedType)
				  {
				  case 'search':
				    serverPage="search_results.php?selectedValue="+selectedValue;
					break;										
				  default:
				    serverPage="panes.php?selectedType="+selectedType;
					break;
				  }
				switch(selectedType)
				  {
				  case 'gender_id':
				  case 'age_id':
				  case 'houses_id':
				  case 'live_with_id':
				  case 'children_id':
				  case 'education_id':
				    serverPage="panes.php?selectedType="+selectedType+"&selectedValue=21";
				    makerequest1(selectedType, serverPage, 'pane21');
				    break;
				  default:
				    makerequest1(selectedType, serverPage, 'panes');
					break;
				  } 			
			}
		}
		xmlhttp.send(null);
	}
	// Function to run the MySQL database update script.
	function makerequest1(selectedType, serverPage, objID) {
		var obj=document.getElementById(objID);
		xmlhttp.open("POST", serverPage);
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState==4 && xmlhttp.status==200) {
				obj.innerHTML=xmlhttp.responseText;
				switch(objID)
				  {
				  case 'pane21':
				    serverPage="panes.php?selectedType="+selectedType+"&selectedValue=23";
				    makerequest1(selectedType, serverPage, 'pane23');
				    break;
				  case 'pane23':
				    serverPage="panes.php?selectedType="+selectedType+"&selectedValue=60";
				    makerequest1(selectedType, serverPage, 'pane60');
				    break;
				  default:
				    serverPage="panes_title.php?selectedType="+selectedType;
				    makerequest(selectedType, serverPage, 'panes_title');
					break;				  
				  }				
			}
		}
		xmlhttp.send(null);
	}
	// Function to run the MySQL database update script.
	function makerequest(selectedType, serverPage, objID) {
		var obj=document.getElementById(objID);
		xmlhttp.open("POST", serverPage);
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState==4 && xmlhttp.status==200) {
				obj.innerHTML=xmlhttp.responseText;
				ajaxUpdateStatus('updated');			
			}
		}
		xmlhttp.send(null);
	}

