﻿/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var bustcachevar = true; //bust potential caching of external pages after initial request? (1 = yes, 0 = no)
var loadedobjects = "";
var rootdomain = "http://" + window.location.hostname;
var bustcacheparameter = "";

function ajaxpage(url, containerid)
{
   var xmlHttp = null; // Defines that xmlHttp is a new variable.
   // Try to get the right object for different browser
   try
   {
      // Firefox, Opera 8.0+, Safari, IE7+
      xmlHttp = new XMLHttpRequest(); // xmlHttp is now a XMLHttpRequest.
   }
   catch (e)
   {
      // Internet Explorer
      try
      {
         xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e)
      {
         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
   }
   
   xmlHttp.onreadystatechange = function()
   {      
      if (xmlHttp.readyState == 4)
      {
         try
         {
            // In some instances, status cannot be retrieved and will produce an error (e.g. Port is not responsive)
            if (xmlHttp.status == 200)
            {
               // Set the main HTML of the body to the info provided by the AJAX Request
               var nod = document.createElement("div");
               nod.innerHTML = xmlHttp.responseText;
               
               var obj = document.getElementById(containerid);
               obj.innerHTML = "";
               obj.appendChild(nod);
            }
         }
         catch (e)
         {
            document.getElementById(containerid).innerHTML = "Error on Ajax return call : " + e.description;
         }
      }
   }
   
   if (bustcachevar) //if bust caching of external page
      bustcacheparameter = (url.indexOf("?") != -1) ? ("&" + new Date().getTime() + "=" + new Date().getTime()) : ("?" + new Date().getTime() + "=" + new Date().getTime());
  
   xmlHttp.open("get", (url + bustcacheparameter)); // .open(RequestType, Source);
   xmlHttp.send(null); // Since there is no supplied form, null takes its place  as a new form.
}

function ajaxpageWithCallback(url, containerid, callBackFunc)
{
   var xmlHttp = null; // Defines that xmlHttp is a new variable.
   // Try to get the right object for different browser
   try
   {
      // Firefox, Opera 8.0+, Safari, IE7+
      xmlHttp = new XMLHttpRequest(); // xmlHttp is now a XMLHttpRequest.
   }
   catch (e)
   {
      // Internet Explorer
      try
      {
         xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e)
      {
         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
   }
   
   xmlHttp.onreadystatechange = function()
   {      
      if (xmlHttp.readyState == 4)
      {
         try
         {
            // In some instances, status cannot be retrieved and will produce an error (e.g. Port is not responsive)
            if (xmlHttp.status == 200)
            {
               // Set the main HTML of the body to the info provided by the AJAX Request
               document.getElementById(containerid).innerHTML = xmlHttp.responseText;
               window.setTimeout(callBackFunc, 200);
            }
         }
         catch (e)
         {
            document.getElementById(containerid).innerHTML = "Error on Ajax return call : " + e.description;
            window.setTimeout(callBackFunc, 200);
         }
      }
   }
   
   if (bustcachevar) //if bust caching of external page
      bustcacheparameter = (url.indexOf("?") != -1) ? ("&" + new Date().getTime() + "=" + new Date().getTime()) : ("?" + new Date().getTime() + "=" + new Date().getTime());
  
   xmlHttp.open("get", (url + bustcacheparameter)); // .open(RequestType, Source);
   xmlHttp.send(null); // Since there is no supplied form, null takes its place  as a new form.
}

function loadpage(page_request, containerid)
{
  if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1))
    document.getElementById(containerid).innerHTML = page_request.responseText;
}

function loadobjs()
{
  if (!document.getElementById)
    return;

  for (i = 0; i < arguments.length; i++)
  {
    var file = arguments[i];
    var fileref = "";
    
    if (loadedobjects.indexOf(file) == -1)
    { //Check to see if this object has not already been added to page before proceeding
      if (file.indexOf(".js") != -1 || file.indexOf("addthis_widget.php") != -1)
      { //If object is a js file
        fileref = document.createElement('script');
        fileref.setAttribute("type","text/javascript");
        fileref.setAttribute("src", file);
      }
      else if (file.indexOf(".css") != -1)
      { //If object is a css file
        fileref = document.createElement("link");
        fileref.setAttribute("rel", "stylesheet");
        fileref.setAttribute("type", "text/css");
        fileref.setAttribute("href", file);
      }
    }
    
    if (fileref != "")
    {
      document.getElementsByTagName("head").item(0).appendChild(fileref);
      loadedobjects += file + " "; //Remember this object as being already added to page
    }
  }
}
