/**
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=
 * MapQuest AD TOGGLING JavaScript
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=
 * js for Ad Toggling features
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=
 * TOC
 * - add ad contents
 * - make xmlhttp request
 */
 
 
/**
 * =ADD AD CONTENTS
 * @creates the <div> tag and add all Ad(html) contents as a child Element
 */
function addAdContents(adLoc, contents) 
{
 var adLocation;
 var browser = getBrowserInfo();
 var arrContentSplit = splitJavascriptFromHtmlIfIE(contents);
 if(contents.length > 0)
 {
    if(adLoc == "quad")
    {
       adLocation = getElementById("quadad");
       if(browser.name == "msie" && browser.version <= 6.0)
       {
         // browser hack to make wrapper work properly
         changeBodyClass(adLoc);
       }
    }
    else
    {
       adLocation = getElementById("rightad");
       if(!window.opera)
       {
           // browser hack to make wrapper work properly
           changeBodyClass(adLoc);
       }
       else
       {
           // modified opera formpage width to accommodate right column ad
           // modified width in JS because of opera issue with changeBodyClass()
           getElementById("formpage").style.width = "956px";
       }
       
       if(browser.name == "msie")
       {
          document.getElementsByTagName("body")[0].style.width = "955px";
       }
       else
       {
          var newwidth = document.body.clientWidth + "px";
          document.getElementsByTagName("body")[0].style.width = newwidth;
       }
    }
    var newdiv = document.createElement("div");
    var divIdName = adLoc+"1";
    newdiv.setAttribute("id",divIdName);
    newdiv.innerHTML = arrContentSplit[0];
    adLocation.appendChild(newdiv);
    var element = document.getElementById("ajaxpagescript");
    if(browser.name == "msie") {
        element.setAttribute('text', arrContentSplit[1]);
    } else {
        element.innerHTML = arrContentSplit[1];
    }
    var ele = getElementById("formpanel");
    var rightADTop = 0;
    while(ele)
    {
      rightADTop += ele.offsetTop;
      ele         = ele.offsetParent;
    }
    var topADEle = getElementById("topadspace");
    if(topADEle)
    {
        getElementById("topadspace").style.marginTop = "0px";
        getElementById("topadspace").style.marginBottom = "0px";
    }
    if(adLoc == "rightad" && browser.name == "msie") 
    {
        getElementById("formpage").style.width = (765 + getElementById("farright").offsetWidth) + "px";
    }
 }
 else
 {
   if(browser.name == "msie" && browser.version <= 6.0)
    {
       changeBodyClass(adLoc);
    }
 }
}//addAdContents()
/**
 * @Splits html data from any javascript functions & places into 2 seperate variables
 * in var  = html
 * out var = Array sub[0] = html only, sub[1] = javascript
 */
function splitJavascriptFromHtmlIfIE(strInHtml) {
    var arrHtml = strInHtml.split("<script");
    var arrOut = new Array();
    arrOut[0] = "";
    arrOut[1] = "";
    
    if(arrHtml.length > 0) {
        arrOut[0] += arrHtml[0];
        for(var i = 1; i < arrHtml.length; i++) {
            var pos = arrHtml[i].indexOf('>');
            pos++;
            arrHtml[i] = arrHtml[i].substring(pos);
            var arrJavascript = arrHtml[i].split("</script>");
            if(arrJavascript.length > 0 && arrJavascript.length < 3) {
                arrOut[1] += arrJavascript[0];
                if(arrJavascript.length == 2) {
                    arrOut[0] += arrJavascript[1];
                }
            } else {
                arrOut[0] = strInHtml;
                break;
            }
        }
    } else {
        arrOut[0] = strInHtml;
    }
    return arrOut;
}//splitJavascriptFromHtml
/**
 * =LOAD AD
 * @decides which ad(Quad or Right) to be loaded and sends xmlHttp request
 */
function loadAD(adType,fa)
{
    var xmlHttp1 = mqXMLHttpRequest();
    var browserSize = getBrowserSize();
    var adLoc;
    if(browserSize.width < 1000) 
    {
      adLoc = "quad";  
    }
    else
    {
      adLoc = "rightad";
    }
    var adUpdateUrl = "/apart/loadAD.adp?adLoc="+adLoc+"&adtype="+adType+"&fa="+fa+"&rand="+(Math.round((Math.random() * 10000)));    
    if(xmlHttp1 == null)
    {   // browser doesn't support xmlhttp, try loadJS
        loadJS(adUpdateUrl, "adUpdateUrl", "body");
    }
    else
    {
        xmlHttp1.open("GET", adUpdateUrl, true);
        xmlHttp1.onreadystatechange  = function()
        {
           if (xmlHttp1.readyState == 4)
           {
              if (xmlHttp1.status == 200)
              {
                  eval(xmlHttp1.responseText);
              }
              else 
              {   //request failed, try fallback
                 loadJS(adUpdateUrl, "adUpdateUrl", "body");
              }
           }
        }
        xmlHttp1.send(null);
     }
}//loadAD()

/**
 * =CHANGE BODY CLASS
 * @changes the class associated with the body tag
 */
function changeBodyClass(className)
{
   document.getElementsByTagName("body")[0].className = className;
}
