﻿// JavaScript File
var browser = navigator.appName; //string for browser type

//consts for browser types
var brwMSIE = "Microsoft Internet Explorer";
var brwFF = "Netscape";

function isMSIE()
{
    if (browser == brwMSIE)
        return true;
        
    return false;
}


//FF does not support the selectNodes function, this adds it
function selectNodes(sXPath , xmlDoc)
{
    if (isMSIE())
    {
        return xmlDoc.selectNodes(sXPath);
    }
    else
    {
        //FFX
        try
        {
        var oEvaluator = new XPathEvaluator();
        var oResult = oEvaluator.evaluate(sXPath, xmlDoc, null, 
          XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);    
    	 }
    	 catch (ex)
    	 {
    	  alert(ex.message);
    	  }
	    var aNodes = new Array;
        
        if (oResult != null) {
            var oElement = oResult.iterateNext();
            while(oElement) {
                aNodes.push(oElement);
                oElement = oResult.iterateNext();
            }
        }
        
        return aNodes;
    }
}


function selectSingleNode(sXPath , xmlDoc)
{
    if (isMSIE())
        return xmlDoc.selectSingleNode(sXPath);
    else
    {
        //FFX
        var xpe = new XPathEvaluator();
        //var nsResolver = xpe.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);
        
        var results = xpe.evaluate(sXPath, xmlDoc, null, 
          XPathResult.FIRST_ORDERED_NODE_TYPE, null);
        
        
        //var results = xpe.evaluate(sXPath,xmlDoc,nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE, null);
        return results.singleNodeValue; 
    }
}



function getElementText(el)
{
    if (isMSIE())
        return el.text;
    else
        return el.textContent;
}


//checks if the object is an event, if so returns the events target
function getEventTarget(evt)
{
    if (!isMSIE())
    {
        if (evt.constructor.toString().match("Event")!=null)
            return evt.target;
        else
            return evt;
    }
    else
    {
        return evt; //in msie the the evt is already the target
    }
}


function getParentElement(el)
{
    if (isMSIE())
        return el.parentElement;
    else
        return el.parentNode;
}





function getAjaxRequest(functionPointer)
{
    //Get ajax request object
    var xhr; 
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr = new XMLHttpRequest();     }
          catch (e3) {  
          xhr = false;   
          }
        }
    }
    //set code to run when the result is received
    xhr.onreadystatechange  = function()
    { 
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200) 
                  functionPointer(xhr.responseText); 
              else 
                 alert("Error code " + xhr.status);
         }
    }; 
     
    return xhr;
}


function getChildNode(parentNode, nodeName)
{
    for (var i = 0; i < parentNode.childNodes.length; i++)
    {
        if (parentNode.childNodes[i].nodeName == nodeName)
            return parentNode.childNodes[i];
    }
    return null;
}

function Debug()
{
}

function GetAppURL()
{
    return document.getElementById("txtAPP_URL").value;
}

function newWindow(url)
{
    window.open(url);
}

function newWindowWithParams(url, params)
{
    window.open(url,null, params + ",status=yes,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=no");
}


function nav(url)
{
    if (isMSIE())
        top.navigate(url);
    else
        top.location = url;
}


function navFrame(url)
{
        
    var trackCookieValue = $(".TrackCookieHiddenField").val();
    url = AppendTrackCookieValue(url, trackCookieValue);
    
    var sep = "&";
//    if (url.substring(url.length -5) == ".aspx")
//        sep = "?";
    
    if (isMSIE())
    {    
        window.location.href = url + sep + sessionVars;
        }
    else
        window.location = url + sep + sessionVars;
}

function navFrameSimple(url)
{
    if (isMSIE())
    {    
        window.location.href = url;
        }
    else
        window.location = url;
}

function getFlashMovieObject(movieName)
{

    var result;
    if (!isMSIE())
    {
        if (document.embeds)
        {
            for (var i=0; i<document.embeds.length; i++)
            {
                if (document.embeds[i].name == movieName)
                {
                    result = document.embeds[movieName];
                    break;
                }
            }
            
        }
    }
    else 
    {
        result = document.getElementById(movieName);
    }
    
    return result;
}

function reloadFrame()
{
    var trackCookieValue = $(".TrackCookieHiddenField").val();

    var windowLocationTemp="";
    
    if (isMSIE())
        windowLocationTemp = window.location.href;
    else
        windowLocationTemp = window.location;

    var windowLocation = AppendTrackCookieValue(windowLocationTemp.toString(), trackCookieValue);

    if (isMSIE())
        window.location.href = windowLocation;
    else
        window.location = windowLocation;
}


/* functions that came with the cut html */
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=SysImagePath + a[i];}}
}