// Function to set up an XML object to call back to the server which is browser dependent
function GetXmlHttpObject()
{
  var xmlHttp=null;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
  return xmlHttp;
} 

// Function to handle a change in dimension
function setdimension() {
    var control=document.convert.unitselect;
	for (counter=control.options.length; counter>-1; counter--)
	    {
		control.options[counter]=null;
	    }
    var id=document.convert.dimselect.value;
    set_cookie("lastdim", id, 30, "", "", "");
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null)
        {
        alert ("Your browser does not support AJAX!");
        return;
        } 
    var url="newdim.php";
    url=url+"?dim="+id;
    url=url+"&sid="+Math.random();
    xmlHttp.onreadystatechange=dimChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}

// Function to implement a dimension change
function dimChanged() 
{ 
   if (xmlHttp.readyState==4)
      { 
      var returnvalue=xmlHttp.responseText;
	  var strarray=returnvalue.split(":");
      var control=document.convert.unitselect;
	  for (counter=0; counter<strarray.length/2; counter++)
	      {
	       control.options[counter]=new Option(strarray[counter*2+1],strarray[counter*2]);
		   if (counter == 0)
		       {
		       control.options[counter].selected=true;
			   }
		  }
	  recalculate();	  
      }
} 

// Function to recalculate values after a change
function recalculate() {
   var dim=document.convert.dimselect.value;
   var id=document.convert.unitselect.value;
   var value=document.convert.initialvalue.value;
   set_cookie("lastunitfrom", id, 30, "", "", "");
   set_cookie("lastvalue", value, 30, "", "", "");
   xmlHttp=GetXmlHttpObject();
   if (xmlHttp==null)
     {
     alert ("Your browser does not support AJAX!");
     return;
     } 
   var url="recalc.php";
   url=url+"?dim="+dim+"&unit="+id+"&value="+value;
   url=url+"&sid="+Math.random();
   xmlHttp.onreadystatechange=calcChanged;
   xmlHttp.open("GET",url,true);
   xmlHttp.send(null);
}

// Function to implement a recalculation
function calcChanged() 
{ 
   if (xmlHttp.readyState==4)
      { 
      document.convert.convertoutput.value=xmlHttp.responseText;
      }
} 

// Function to jump to another URL
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

// Function to execute a JavaScript call
function MM_callJS(jsStr) { //v2.0
  return eval(jsStr);
}

