﻿// JScript File
//variables to tell what browser we're using.
var IE, FireFox;

//The callback parameter is the function to run when the response is received back from the server
function makeAjaxRequest(url, callback, parameters)
{
    url = PreventCaching(url);
	
    http_request = false;

    if (window.XMLHttpRequest)  // Mozilla, Safari,...
    {
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType)
        {
	        http_request.overrideMimeType('text/xml');
	        // See note below about this line
        }
    }
    else if (window.ActiveXObject) // IE
    {
        try
        {
	        http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
	        try
	        {
		        http_request = new ActiveXObject("Microsoft.XMLHTTP");
	        }
	        catch (e) {}
        }
    }

    if (!http_request)
    {
        //alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
	
    if(callback)
        http_request.onreadystatechange = callback;
	
	if(!parameters)
	{
        http_request.open('GET', url, true);
        http_request.send(null);
    }
    else
    {
        http_request.open('POST', url, true);
        http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        http_request.send(parameters);
    }

}

//addEvent adds an event listener to an element
function addEvent(elm, evType, fn, useCapture) {
  // cross-browser event handling for IE5+, NS6 and Mozilla 
  // By Scott Andrew 
  if(elm) {
      if (elm.addEventListener) { 
        elm.addEventListener(evType, fn, useCapture); 
        return true; 
      } else if (elm.attachEvent) { 
        var r = elm.attachEvent('on' + evType, fn);
        EventCache.add(elm, evType, fn); 
        return r; 
      } else {
        elm['on' + evType] = fn;
      }
   }
}

//Stops an event from "bubbling up"
function StopEvent(e)
{
    if(window.event)
    {
      window.event.cancelBubble = true;
      window.event.returnValue = false;      
    }
    
    if(e && e.stopPropagation && e.preventDefault)
    {
      e.stopPropagation();
      e.preventDefault();      
    }
}

//function sets what browser is being used.
function DetectBrowser()
{
    var browserID = navigator.userAgent.toLowerCase();
    
    if(browserID.indexOf('msie') != -1)
    {
        IE = true;
        FireFox = false;
    }
        
    if(browserID.indexOf('firefox') != -1)
    {
        IE = false;
        FireFox = true; 
    }
    
}

//Prevents the caching of a page accessed by javascript in IE
function PreventCaching(url)
{
    var newUrl;
    
    newUrl = url;
    
    if(newUrl.indexOf('?') != -1)	//has ?	        
        newUrl += "&ms=" + new Date().getTime();	        
    else	        
        newUrl += "?ms=" + new Date().getTime();
        
    return newUrl;
}
