//begin function for xml http request
//source: http://www.w3schools.com/ajax/default.asp

var xmlHttp;
function GetXmlHttpObject(handler){ 

var objXmlHttp=null;

 if (navigator.userAgent.indexOf("Opera")>=0) {
  //alert("This example doesn't work in Opera"); 
  return; 
 }

 if (navigator.userAgent.indexOf("MSIE")>=0) { 

  var strName="Msxml2.XMLHTTP";
  if (navigator.appVersion.indexOf("MSIE 5.5")>=0) {
    strName="Microsoft.XMLHTTP";
  } 
 try { 
  objXmlHttp=new ActiveXObject(strName)
  objXmlHttp.onreadystatechange=handler; 
  return objXmlHttp;
 } catch(e) { 
  //alert("Error. Scripting for ActiveX might be disabled"); 
  return ;
 } 
 
} 

if (navigator.userAgent.indexOf("Mozilla")>=0) {
  objXmlHttp=new XMLHttpRequest();
  objXmlHttp.onload=handler;
  objXmlHttp.onerror=handler; 
  return objXmlHttp;
 }

}  
//end functions for xml http request

//SponsorLink Object
function SponsorLink(title, description, site_host, click_url) {
 this.title = title;
 this.description = description;
 this.site_host = site_host;
 this.click_url = click_url;
}

//handling function when xml http request is completed
function handleSponsorLinks(){ 
  
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
   var xml_root = xmlHttp.responseXML;
   if(xml_root) {
    var sponsor_links = processSponsorLinks(xml_root.documentElement);
    displaySponsorLinks(sponsor_links);
   }

  } 

} 

//function to go through the xml document and store sponsor link values to an array
function processSponsorLinks(root) {
 var sponsor_links = new Array();
 
 var listings = root.getElementsByTagName("Listing");
 
 for(i=0; i < listings.length; i++) {
 
   var title = listings[i].getAttribute("title");
   title = title.replace(/<b>|<\/b>/g,"");
   var description = listings[i].getAttribute("description");
   description = description.replace(/<b>|<\/b>/g,"");
   var site_host = listings[i].getAttribute("siteHost");
   var click_urls = listings[i].getElementsByTagName("ClickUrl");
   var click_url = click_urls[0].firstChild.nodeValue;
   sponsor_links[i] = new SponsorLink(title, description, site_host, click_url);
   
 }
 
 return sponsor_links;
 
}


function encodeUrl(url) {
  var url = url.replace(/\?/g, '%3F');
      url = url.replace(/=/g, '%3D');
      url = url.replace(/&/g, '%26');
      url = url.replace(/:/g, '%3A');
  return url;
}

//function to format and display sponsor links in html
function displaySponsorLinks(sponsor_links) {
 if (sponsor_links.length) {

  var dom = document.getElementById(sponsor_links_dom);
  var html = "<div style=\"padding-bottom:10px;\"><div class=\"slHeader\">Sponsored Links</div></div>";
 
  for (i=0; i < sponsor_links.length; i++) {
     the_link = sponsor_links[i];
     var url = encodeUrl(the_link.click_url);
     html += "<a href=\"http://www.homegain.com/goto?ht=" + click_ht + "&dest=" + url + "\" target=\"_top\">";
     html += the_link.title + "</a></span></div>";
     html += "<div class=\"slDesc\">" + "<span style=\"color:#000000;\">" + the_link.description + "</span></div>";
     html += "<div class=\"slSiteHost\">" + "<span style=\"color:#777777;\">" + the_link.site_host + "</span></div>";
  }
  dom.innerHTML = html;
 }
}


function getSponsorLinks (url) {
 xmlHttp=GetXmlHttpObject(handleSponsorLinks);
 xmlHttp.open("GET", url, true)
 xmlHttp.send(null)
}