function xmlsub(f,file) 
{ 
   var str = getFormValues(f); 
   xmlReq = getXML(file,str); 
} 

function getXML(file,str) 
{ 
   if (typeof window.ActiveXObject != 'undefined' ) 
   { 
       doc = new ActiveXObject("Microsoft.XMLHTTP"); 
       doc.onreadystatechange = displayState; 
   } 
   else 
   { 
       doc = new XMLHttpRequest(); 
       doc.onload = displayState; 
   } 

   doc.open( "POST", file, true ); 
   doc.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); 
   doc.send(str); 
	 
	 msgObj = document.getElementById('form_message');
	 if(msgObj)
	 {
	 		msgObj.innerHTML = "Update in progress - please wait...";
			msgObj.style.color = "orange";
	 }
	
   return doc; 
}


function getFormValues(fobj) 
{
   var str = ""; 
   var valueArr = null; 
   var val = ""; 
   var cmd = ""; 
   for(var i = 0;i < fobj.elements.length;i++) 
   { 
       switch(fobj.elements[i].type) 
       { 
           case "text": 
           case "hidden":
           case "password":
           case "file":
           case "button":
                str += fobj.elements[i].name + 
                //"=" + escape(fobj.elements[i].value) + "&";	//091123 
                "=" + encodeURIComponent(fobj.elements[i].value) + "&"; //091123
                 break; 
								  
           case "textarea":
				// 20070705 checks if textarea is wysiwyg
        	   //091124 check if tinyMCE defined
				if(typeof tinyMCE!="undefined" && tinyMCE.getInstanceById(fobj.elements[i].name)!=null)
				{
  					x = tinyMCE.getContent(fobj.elements[i].name);
  					//str += fobj.elements[i].name + "=" + escape(x) + "&";	//091123
  					str += fobj.elements[i].name + "=" + encodeURIComponent(x) + "&";	//091123
				}
				else
				{ 
					//str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&"; //091123
					str += fobj.elements[i].name + "=" + encodeURIComponent(fobj.elements[i].value) + "&";	//091123
				} 
                break; 
					  
           case "select-one": 
                str += fobj.elements[i].name + 
                "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&"; 
                break; 
								
       }
       //alert(str);
   } 
   str = str.substr(0,(str.length - 1));
   //alert(str);
   return str; 
}

function displayState() {
    if(doc.readyState == 4)
		{
        // only if "OK"
        if(doc.status == 200)
				{
					// Identify a 'callback' javascript routine in which the
					// xml reply will be parsed and from which the data will
					// be processed.
    			n = doc.responseXML.getElementsByTagName('responseHandler');
    			handler = n[0].firstChild.nodeValue;
    			eval(handler + '(doc)');
        }
        else
				{
            alert("There was a problem retrieving the data:\n" +
            		doc.statusText);
        }
    }
}

function myOnChangeHandler()
{
	//alert("something changed");
}





//*****************************************************************************
// Do not remove this notice.
//
// Copyright 2001 by Mike Hall.
// See http://www.brainjar.com for terms of use.
//*****************************************************************************

// Determine browser and version.

function Browser() {

  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.isFF	   = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Firefox";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isFF = true;
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
  
  
}

var browser = new Browser();

// Global object to hold drag information.

var dragObj = new Object();
dragObj.zIndex = 0;

function dragStart(event, id) {

  var el;
  var x, y;

  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Save starting positions of cursor and element.

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

  // Update element's z-index.

  dragObj.elNode.style.zIndex = ++dragObj.zIndex;

  // Capture mousemove and mouseup events on the page.

  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event) {

  var x, y;

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Move drag element by the same amount the cursor has moved.

  dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";

  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function dragStop(event) {

  // Stop capturing mousemove and mouseup events.

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
}




