
var ajax_form_http_request = false;

function startUpdate () {
   var FormSubmits=document.getElementsByTagName('input');
   for (i=0; i<FormSubmits.length; i++) {
   	if (FormSubmits.item(i).type == 'submit') {
	      FormSubmits.item(i).disabled = true;
      }
   }
   var FormDiv=document.getElementById('FormDiv');
   if (FormDiv) {
      FormDiv.style.display = 'block';
   }
}

function endUpdate () {
   var FormSubmits=document.getElementsByTagName('input');
   for (i=0; i<FormSubmits.length; i++) {
   	if (FormSubmits.item(i).type == 'submit') {
	      FormSubmits.item(i).disabled = false;
      }
   }
   var FormDiv=document.getElementById('FormDiv');
   if (FormDiv) {
      FormDiv.style.display = 'none';
   }
}

function reloadPage(url) {
   document.location = url;
}

function showError(message) {
   alert(message);
}

function ajaxFormMakeRequest(method, form) {
   startUpdate();
  
   ajax_form_http_request = false;

   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      ajax_form_http_request = new XMLHttpRequest();
      if (ajax_form_http_request.overrideMimeType) {
         ajax_form_http_request.overrideMimeType('text/xml');
      }
   } else if (window.ActiveXObject) { // IE
      try {
         ajax_form_http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         try {
           ajax_form_http_request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
      }
   }

   if (!ajax_form_http_request) {
      alert('Giving up: Cannot create an XMLHTTP instance');
      return false;
   }
   
   url = 'index.php';
   params = '';
   for(var ii = 0; ii < form.elements.length; ii++) {
   	if (form.elements[ii].type == 'checkbox' || form.elements[ii].type == 'radio') {
   		if (form.elements[ii].checked == true) {
   			params += ('&' + form.elements[ii].name + "=" + encodeURIComponent(form.elements[ii].value));
   		}
   	} else {
	      params += ('&' + form.elements[ii].name + "=" + encodeURIComponent(form.elements[ii].value));
	   }
   }
   params += '&mode=xml';

   ajax_form_http_request.onreadystatechange = ajaxFormProcessResponse;
   if (method == 'POST') {
      ajax_form_http_request.open('POST', url, true);
      ajax_form_http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      ajax_form_http_request.send(params);
   } else {
      ajax_form_http_request.open('GET', url + '?' + params, true);
      ajax_form_http_request.send(null);
   }

   return true;
}

function ajaxFormProcessResponse() {
   // xml shoul be like:
   //
   // <vdesk>
   // <result>1</result>
   // <gau>abcdefghijk</gau>
   // </vdesk>
   //
   // or
   //
   // <vdesk>
   // <result>0</result>
   // <error>Error message</error>
   // </vdesk>
   
   if (ajax_form_http_request.readyState == 4) {
      if (ajax_form_http_request.status == 200) {
         //alert(ajax_form_http_request.responseText);

         var xmldoc = ajax_form_http_request.responseXML;
         var root_node = xmldoc.getElementsByTagName('vdesk').item(0);
         if (root_node) {
            var XmlResultNode = root_node.getElementsByTagName('result');
            if (root_node && XmlResultNode) {
               XmlResult = XmlResultNode.item(0).firstChild.data;

               if (XmlResult == 1) {
	              var GAUNode = root_node.getElementsByTagName('gau');
	              reloadPage(GAUNode.item(0).firstChild.data);
               } else {
	              var ErrorNode = root_node.getElementsByTagName('error');
	              showError(ErrorNode.item(0).firstChild.data);
   			   }               
            } else {
               alert('Wrong XML');
            }
         } else {
            alert('Wrong XML');
         }
      } else {
         alert('There was a problem with the request.');
      }
      endUpdate();
   }
}

////// File upload

function formAddFile(inputName, panelName) {
   winUrl = 'index.php?inputName=' + inputName + '&panelName=' + panelName + '&mode=addfile';
   winParams = 'menubar=no, toolbar=no, location=no, scrollbars=no, resizable=no, status=no, width=300, height=250, modal=yes';
	var win = window.open(winUrl, 'Window', winParams);
   win.focus();
}
