var XMLHttpRequestObject = createXMLHttpRequestObject();
var loading = '<img src="images/model/loading.gif" alt="loading" /><br>Loading...';

function createXMLHttpRequestObject()
{
  var XMLHttpRequestObject = false;
  
  try
  {
    XMLHttpRequestObject = new XMLHttpRequest();
  }
  catch(e)
  {
    var aryXmlHttp = new Array("MSXML2.XMLHTTP", "Microsoft.XMLHTTP", "MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", 
															  "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0");
                               
    for (var i=0; i<aryXmlHttp.length && !XMLHttpRequestObject; i++)
    {
      try
      {
        XMLHttpRequestObject = new ActiveXObject(aryXmlHttp[i]);
      } 
      catch (e) {}
    }
  }
  
  if (!XMLHttpRequestObject)
  {
    alert("Error: failed to create the XMLHttpRequest object.");
  }
  else 
  {
    return XMLHttpRequestObject;
  }
}

function getData(source, divID)
{
  if(XMLHttpRequestObject)
  {
    source += "&parm="+new Date().getTime();
    var objDiv = document.getElementById(divID);
		
    XMLHttpRequestObject.open("GET", source);
    XMLHttpRequestObject.onreadystatechange = function()
    {
      try
      {
        switch(XMLHttpRequestObject.readyState)
        {
          case 1:
            objDiv.innerHTML = loading;
						break;
          case 4:
            if(XMLHttpRequestObject.status == 200) {
							try {
								eval(XMLHttpRequestObject.responseText);
								objDiv.innerHTML = '';
							} catch (e) {
								objDiv.innerHTML = XMLHttpRequestObject.responseText;
							}
						} else {
              objDiv.innerHTML = 'Error getting from php result...';
						}
						break;
        }
      }
      catch(e){}
    }
    try
    {
      XMLHttpRequestObject.send(null);
    }
    catch(e){}
  }
}

function sendFormData(formID, source, divID) {
	var postData='';
  var strReplaceTemp;
	
  if (XMLHttpRequestObject) {
		
    XMLHttpRequestObject.open("POST", source, true);
    XMLHttpRequestObject.setRequestHeader("Method", "POST " + source + " HTTP/1.1");
	  XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	  
    XMLHttpRequestObject.onreadystatechange = function() {
			
      var objDiv = document.getElementById(divID);
			objDiv.innerHTML = loading;
			
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				
        try {
					
					eval(XMLHttpRequestObject.responseText);
					objDiv.innerHTML = '';
					
        } catch (e) {
					
					objDiv.innerHTML = XMLHttpRequestObject.responseText;
					
				}
      }
    }
		
    for(i=0; i<document.getElementById(formID).elements.length - 1; i++) {
			
			if (document.getElementById(formID).elements[i].type == 'radio') {
				
				if (document.getElementById(formID).elements[i].checked)
					value = document.getElementById(formID).elements[i].value;
				else
					value = '';
					
			} else {
				
				value = document.getElementById(formID).elements[i].value;
				
			}
			
			if (value != '') {
				
				strReplaceTemp = document.getElementById(formID).elements[i].name.replace(/\[\]/i, "");
				postData += "&form["+strReplaceTemp+"]="+value;
			
			}
			
		}
    
    try {
			
      XMLHttpRequestObject.send(postData);
			
    } catch (e) {}
		
	}
}

function postData(source, divID)
{
  if(XMLHttpRequestObject)
  {
    XMLHttpRequestObject.open("POST", source);
    XMLHttpRequestObject.setRequestHeader("Method", "POST " + source + " HTTP/1.1");
	  XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    
    XMLHttpRequestObject.onreadystatechange = function()
    {
      try
      {
        if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
        {
          var objDiv = document.getElementById(divID);
          objDiv.innerHTML = XMLHttpRequestObject.responseText;
        }
      }
      catch(e){}
    }
    
    source += "&parm="+new Date().getTime();
    try
    {
      XMLHttpRequestObject.send(source);
    }
    catch(e){}
  }
}

function checkFunction(keyEvent, source, divID, parseID)
{
  keyEvent = (keyEvent) ? keyEvent: window.event;
  input = (keyEvent.target) ? keyEvent.target : keyEvent.srcElement;
	
	if (source.indexOf('?') == -1)
		set = '?';
	else
		set = '&';
	
  if (keyEvent.type == "keyup")
  {
    try
    {
      var objDiv = document.getElementById(divID);
      objDiv.innerHTML = "<div></div>";
      if (input.value)
      {
        
				source += set+"parseID[0]="+parseID+"&parseID[1]="+input.value;
        getData(source, divID);
      }
    }
    catch(e){}
  }
  else if(keyEvent.type == "change")
  {
    try
    {
      var objDiv = document.getElementById(divID);
      objDiv.innerHTML = "<div></div>";
      if (input.value)
      {
        source += set+"parseID[0]="+parseID+"&parseID[1]="+encodeURIComponent(input.value);
        getData(source, divID);
      }
    }
    catch(e){}
  }
}

function checkFormInput(keyEvent, divID, source, formID)
{
  keyEvent = (keyEvent) ? keyEvent: window.event;
  input    = (keyEvent.target) ? keyEvent.target : keyEvent.srcElement;
	
  if (keyEvent.type == "keyup")
  {
    var objDiv = document.getElementById(divID);
    objDiv.innerHTML = "<div></div>";
    if (input.value)
    {
      if(XMLHttpRequestObject)
      {
        source += '?divid='+divID;
        for(i=0; i<document.getElementById(formID).elements.length - 1; i++)
        {
          source += "&"+document.getElementById(formID).elements[i].name+"="+document.getElementById(document.getElementById(formID).elements[i].name).value;
        }
        source += "&parm="+new Date().getTime();
        
        XMLHttpRequestObject.open("GET", source);
        
        XMLHttpRequestObject.onreadystatechange = function()
        {
          try
          {
            if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
            {
              var objDiv = document.getElementById(divID);
              objDiv.innerHTML = XMLHttpRequestObject.responseText;
              eval(XMLHttpRequestObject.responseText);
            }
          }
          catch(E){}
        }
        XMLHttpRequestObject.send(null);
        
      } /* end: if(XMLHttpRequestObject)*/
    } /* end: if (input.value)*/
  } /* end: if (keyEvent.type == "keyup")*/ 
}