﻿// JScript File
var MaethorAjax_m_nCalls = 0;
var MaethorAjax_mstrLoaderImage = 'images/ajax-loader.gif';
function setAjaxWaitImage(strImage)
{
  MaethorAjax_mstrLoaderImage = strImage;
}
function packageUpFormContents(strFormDomId)
{
    var theForm = document.getElementById(strFormDomId)
    var nLength = theForm.elements.length
    var nCurrent = 0;
    var strContents = ""
    while (nCurrent < nLength)
    {
        var oneElement = theForm.elements[nCurrent];

        if (oneElement.type != "button")
        {
            var bHandledSpecifically = false;

            if (oneElement.type == "radio")
            {
                if (oneElement.checked)
                {
                    if (strContents.length > 0)
                    {
                       strContents = strContents + "&"
                    }
                    strContents = strContents + oneElement.name + "=" + oneElement.value
                }
                bHandledSpecifically = true;
            }
            if (oneElement.type == "checkbox") 
            {
                if (strContents.length > 0) {
                   strContents = strContents + "&"
                }
                if (oneElement.checked) {
                    strContents = strContents + oneElement.name + "=on"
                }
                else {
                    strContents = strContents + oneElement.name + "=off"
                }
                bHandledSpecifically = true;
            }
            if (oneElement.type == "select-one") {
                if (strContents.length > 0) {
                   strContents = strContents + "&"
                }
                strContents = strContents + oneElement.name + "=" + oneElement.value;
                bHandledSpecifically = true;
            }
             if (oneElement.type == "select-multiple") {
                  var strLstContents = ""; 
                  for(i=0; i< oneElement.length; i++)
		          {  
		              if (oneElement.options[i].selected == true)
		             {
		                    if (strLstContents.length > 0 )
		                    {
		                       strLstContents += ",";
		                    }
		                    strLstContents += oneElement.options[i].value;
		             } 
                  }
                strContents += oneElement.name + "=" + strLstContents;  
                bHandledSpecifically = true;
            }

            
            if (!bHandledSpecifically) {
                if (strContents.length > 0) {
                   strContents = strContents + "&"
                }
                var strTheValue = oneElement.value;
                if (strTheValue.indexOf('&') > 0) {
                    strTheValue = strTheValue.replace('&', '-123AND321-'); // see central form handler
                }
                strContents = strContents + oneElement.name + "=" + strTheValue;
            }
        }
        nCurrent++;
    }
    return strContents
}
function sendContentsToServer(strUrl, strContents)
{
    var strRc = "";
    MaethorAjax_m_nCalls++;
    var req = new XMLHttpRequest() 
    var strUrlToCall = strUrl + '&ivct=' + MaethorAjax_m_nCalls;
    //alert(url);
    req.open('POST',strUrlToCall,false)
    req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    //alert(strContents);
    req.send(strContents);
    strRc = req.responseText;
    return strRc
}
function callServerValidation(url, strFormDomId) 
{
 var strRc = "";
  try {
    var strContents = packageUpFormContents(strFormDomId);
    strRc = sendContentsToServer  (url, strContents)
    } catch (e) {
        alert(e);
    }
    return strRc
}
// JScript File
var m_nTAFFiringInstances = 0
var m_TASasyncReq = null;
var m_strTASresultsDiv;
var m_TASonCompleteFunc = null;
function TASgetRemoteData(url) {
    m_nTAFFiringInstances ++;
    var theDate = new Date();
    var strUnique = theDate.getTime ();
    var strUrl = url + '&jscajxcl=' + m_nTAFFiringInstances + '&x=' + strUnique ;
    var strRc = ""
    try {
        m_TASasyncReq = new XMLHttpRequest() 
        m_TASasyncReq.open('GET',strUrl,true)
        m_TASasyncReq.onreadystatechange = TASComplete;
        m_TASasyncReq.send("");
    } catch (e) {
        alert(e);
    }
    return strRc
}
function TASComplete() {
    if (m_TASasyncReq.readyState == 4) {
        var resultsArea = document.getElementById (m_strTASresultsDiv)
        resultsArea.innerHTML = m_TASasyncReq.responseText;
        m_TASasyncReq = null;
        if (m_TASonCompleteFunc != null) {
            m_TASonCompleteFunc();
        }
    }
}
function doContentAsyncFetch(strUrl, strResultsDiv, onCompleteFunc) {
    m_strTASresultsDiv = strResultsDiv
    m_TASonCompleteFunc = onCompleteFunc;
    var resultsArea = document.getElementById (m_strTASresultsDiv)
    if (resultsArea == null)
    {
      alert("Javascript error: no such element '" + strResultsDiv + "' was found in the document.")
    }
    else
    {
      resultsArea.innerHTML = "<img  alt='loading' src='" + MaethorAjax_mstrLoaderImage + "'>";
      TASgetRemoteData(strUrl)
    }
}
var MaethorAjax_IsLoaded = 1;

function TASScriptingError(strMsg) 
{
    var strMsg = "The Maethor Javascript  layer has detected a problem.\n\nError Message: \"' + strMsg + '\" \n\nOther errors will most like occur on this page."
    alert(strMsg); 
}

function TASGetRemoteContentSynchronous(url) 
{
//alert(url)        
    var theDate = new Date();
    var strUnique = theDate.getTime ();
    url = url + "&ncvxz=" + strUnique;
    var strRc = ""
    try 
    {
        var req = new XMLHttpRequest() 
        req.open('GET',url,false)
        req.send("");
        strRc = req.responseText
    } catch (e) {
        alert(e);
    }
    return strRc
}

function TASSafeGetElement(strDom)
{
    var theElement = document.getElementById(strDom);
    if (theElement == null)
    {
       TASScriptingError("No element with a Dom Id of '" + strDom + "' was found in this document."); 
    }  
    return theElement;  
}

function TASShowDomElement(strDom, nHeight)
{
   var theArea = TASSafeGetElement(strDom);
   theArea.style.visibility = 'visible';
  if (nHeight > 0) 
    theArea.style.height = nHeight + 'px';
  theArea.style.display = 'inline';   
}
function TASHideDomElement(strDom)
{
   var theArea = TASSafeGetElement(strDom);
   theArea.style.visibility = 'hidden';
   //theArea.style.height = '0px';
  theArea.style.display = 'none'; 
}
function TASCopyDiv(strDomFrom, strDomTo)
{
   var from = TASSafeGetElement(strDomFrom);
   var to = TASSafeGetElement(strDomTo);
   to.innerHTML = from.innerHTML;
}
function TASgetComboSelectedValue(strDom)
{
   var cbo = TASSafeGetElement(strDom);
   return cbo.options[cbo.selectedIndex].value;
}
function TASPageFetch(strUrl)
{
  if (strUrl == "")
  {
       TASScriptingError("TASPageFetch: can't fetch a blank url.");
  }    
 else
 { 
   document.location = strUrl;
 }  
}
