// holds an instance of XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();
// holds the remote server address and parameters

function createXmlHttpRequestObject() {
 
  var xmlHttp;
  // this should work for all browsers except IE6 and older
  try  { // try to create XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)  { // assume IE6 or older
    
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
   
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)  { // try every prog id until one works
      try  {  
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);// try to create XMLHttpRequest object
      } 
      catch (e) {}
    }
  }
  // return the created object or display an error message
  if (!xmlHttp)
    alert("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}


function process(swap,input) { // call server asynchronously
  
  if (xmlHttp)  { // only continue if xmlHttp isn't void
    
    try  { // try to connect to the server

		switch (swap) {
			case 0: 
					var cparam = "c=0";
					var params = cparam+"&id="+input;
					var serverAddress = "include/ys_addsite.php";
			break;
			case 1:
					if (document.getElementById("cnew") != null ) {
						var cnew = document.getElementById("cnew").value;
						var cparam = "cnew="+cnew;
					} else {
						var c = document.getElementById("c").value;
						var cparam = "c="+c;
					}
					var params = cparam+"&id="+input;
					var serverAddress = "include/ys_addsite.php";
			break;
			case 2:
					if (document.getElementById("username") != null ) {
						var uname = document.getElementById("username").value;
						var cparam = "username="+uname;
					} 
					if (document.getElementById("passwd") != null ) {
						var pwd = document.getElementById("passwd").value;
						var cparam2 = "&passwd="+pwd;
					} 
					var params = cparam+cparam2+"&id="+input;
					var serverAddress = "include/ys_addsite.php";
			break;
			case 3:
					var elements_arr = new Array("name","username","email","email2","country","passwd","rkey");
					var container_arr = new Array();
					var params = '';

					for (var i=0; i < elements_arr.length; i++) {
						if (document.getElementById(elements_arr[i]) != null ) {
							container_arr[i] = elements_arr[i]+"="+document.getElementById(elements_arr[i]).value;
							if (i==0) {
								params = container_arr[i];
							} else {
								params += "&"+container_arr[i];
							}
						} 
					}
					var serverAddress = "include/ys_createacount.php";
			break;
			case 4:
					var elements_arr = new Array("email","rkey");
					var container_arr = new Array();
					var params = '';

					for (var i=0; i < elements_arr.length; i++) {
						if (document.getElementById(elements_arr[i]) != null ) {
							container_arr[i] = elements_arr[i]+"="+document.getElementById(elements_arr[i]).value;
							if (i==0) {
								params = container_arr[i];
							} else {
								params += "&"+container_arr[i];
							}
						} 
					}
					var serverAddress = "include/ys_resetpwd.php";
			break;
		}
		
        xmlHttp.open("POST", serverAddress, true);
        xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        xmlHttp.onreadystatechange = handleRequestStateChange;
        xmlHttp.send(params);
    }
   
    catch (e) { // display the error in case of failure
      alert("Can't connect to server.\n");
    }
  }
}


////////////////////////////////////////

function handleRequestStateChange() {

  if (xmlHttp.readyState == 4) {// when readyState is 4, we are ready to read the server response
    
    if (xmlHttp.status == 200) {// continue only if HTTP status is "OK"
      try   {
        handleServerResponse();// do something with the response from the server
      }
      catch(e) {
        alert("Error reading the response: " + e.toString());// display error message
      }
    } else  {
      alert("There was a problem retrieving the data:\n" + xmlHttp.statusText);// display status message
    }
  }
}

function handleServerResponse() { // handles the response received from the server
  	
  	var response = xmlHttp.responseText; // retrieve the server's response 
  	var mydiv = document.getElementById("dialogbox");
	
	// display the HTML output
  	mydiv.innerHTML = response + "<br/>";
} 

function closeDiv() {
	
	// display the HTML output
	var mydiv = document.getElementById("dialogbox");
  	mydiv.innerHTML = "";
}

function addinputfield() {

	var inputfield =  '<p style="position:relative;z-index:0;">add new category<br> <input id="cnew" name="newc" type="text" size="20" maxlength="60" /></div>';
  	document.getElementById("newcategorie").innerHTML = inputfield;
}

function freeze() { // Preserve scroll position
	
    	var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
    	var sl = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
    	
    	window.scrollTo(sl,st);
    	setTimeout('window.scrollTo(' + sl + ',' + st + ');',1);
}

