﻿womAdd('LoadPortlets();');

//AJAX test to determine browser type
var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0; 
var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0; 
var is_opera = ((navigator.userAgent.indexOf("Opera 6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0; 
var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0; 

var xmlreqs;

function LoadPortlets ()
{

    xmlreqs = new Array();
	    
    var portlets = document.getElementsByClass('tdSidePortletMiddle','td');
    
    StartPortletAsync(portlets,"<img src='Images/loading_clear.gif' />");
    
    delete portlets;
    
//    var portlets = document.getElementsByClass('divAdvertisementSlot','div');
//         
//    if (document.location.protocol != "https:"){
//        
//        StartPortletAsync(portlets,"<img src='Images/loading_ad.gif' alt='' /><br />Loading Advertisement");
//    }
//    else{        
//    
//        for (i=0; i<portlets.length;i++){
//    
//            portlets[i].innerHTML = "&nbsp;";
//            
//        }    
//    
//    }
//        
//    delete portlets;    
	
}

function StartPortletAsync(portlets, loadingHTML){

    now = new Date();
    
    seed = now.getSeconds();

    loadingHTML = loadingHTML.replace('{RAND}',Math.floor(Math.random(seed)*1001));

    for (i=0; i<portlets.length;i++){
    
        var labels = portlets[i].getElementsByTagName('label');
        
        for (j=0;j<labels.length;j++){
	    
            if (labels[j].className =='PortletHref'){
            
                portlets[i].getElementsByTagName('div')[0].innerHTML = loadingHTML;
                
                portlets[i].getElementsByTagName('div')[0].className = 'portletInnerDiv_Loading';
    	        
                asynchGet(labels[j].innerHTML,portlets[i]);
    	        
            }
        
        }
        
        labels = null;
	    
    }

}

function asynchGet(updateURL,container){
    
    xmlreqGET(updateURL.replace(/,/g,""),container);
    
}

function setDIVContent(innerhtml,container,url){
    
    var containerDIV = container.getElementsByTagName('div')[0];
    
    containerDIV.className = 'portletInnerDiv';
    
    if (innerhtml.lastIndexOf("AD_IMAGE_URL=") != -1 && innerhtml.lastIndexOf("AD_IMAGE_WIDTH=") != -1 && innerhtml.lastIndexOf("AD_IMAGE_HEIGHT=") != -1){
    
        var data = innerhtml.substring(innerhtml.lastIndexOf("<br>") + 4);        
        innerhtml = innerhtml.substring(0,innerhtml.lastIndexOf("<br>"));
        
        var width = innerhtml.substring(innerhtml.lastIndexOf("AD_IMAGE_WIDTH")+ 15);        
        innerhtml = innerhtml.substring(0,innerhtml.lastIndexOf("AD_IMAGE_WIDTH"));
        
        var height = innerhtml.substring(innerhtml.lastIndexOf("AD_IMAGE_HEIGHT")+ 16);        
        innerhtml = innerhtml.substring(0,innerhtml.lastIndexOf("AD_IMAGE_HEIGHT"));
        
        var url = "PortletData/" + innerhtml.substring(innerhtml.lastIndexOf("AD_IMAGE_URL")+ 13);        
        innerhtml = innerhtml.substring(0,innerhtml.lastIndexOf("AD_IMAGE_URL"));
        
        containerDIV.innerHTML = data;        
        
        var so = new SWFObject(url, "csSWF", width, height, "9.0.28", "white");
		so.addParam( "quality", "best" );
		so.addParam( "allowFullScreen", "true" );
		so.addParam( "scale", "showall" );
		so.addParam( "allowScriptAccess", "always" );
		so.addVariable( "autostart", "true" );
		so.write("divFlashMovie");	
    
    }
    
    else{
    
        containerDIV.innerHTML = innerhtml;
    
    }

}

//HOW TO DO MULTIPLE ASYNC READS WITHOUT MEMORY LEAK FROM http://drakware.com/?e=2


function CXMLReq(freed) {
	this.freed = freed;
	this.xmlhttp = false;
	if (window.XMLHttpRequest) {
		this.xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function xmlreqGET(url,container) {
	var pos = -1;
	for (var i=0; i<xmlreqs.length; i++) {
		if (xmlreqs[i].freed == 1) { pos = i; break; }
	}
	if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
	if (xmlreqs[pos].xmlhttp) {
		xmlreqs[pos].freed = 0;
		url = url.replace(/&amp;/g,"&");
		xmlreqs[pos].xmlhttp.open("GET",url,true);
		xmlreqs[pos].xmlhttp.onreadystatechange = function() {
			if (typeof(xmlhttpChange) != 'undefined') { xmlhttpChange(pos,container,url); }
		}
		if (window.XMLHttpRequest) {
			xmlreqs[pos].xmlhttp.send(null);
		} else if (window.ActiveXObject) {
			xmlreqs[pos].xmlhttp.send();
		}
	}
}

function xmlhttpChange(pos,container,url) {
	if (typeof(xmlreqs[pos]) != 'undefined' && xmlreqs[pos].freed == 0 && xmlreqs[pos].xmlhttp.readyState == 4) {
		if (xmlreqs[pos].xmlhttp.status == 200 || xmlreqs[pos].xmlhttp.status == 304) {
			if (container != null){
				setDIVContent(xmlreqs[pos].xmlhttp.responseText,container,url);
			}
			else{
				//alert(xmlreqs[pos].xmlhttp.responseText);
			}
			
		} else {
			//alert(xmlreqs[pos].xmlhttp.responseText);
		}
		xmlreqs[pos].freed = 1;
	}
}

function GetXmlHttpObject(handler) { 

    var objXmlHttp = null;
			
    //is the browser IE?
    if (is_ie){ 
        var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'; 
        try{ 
            objXmlHttp = new ActiveXObject(strObjName); 
            objXmlHttp.onreadystatechange = handler; 
            return objXmlHttp; 
        } 
        catch(e){ 
            alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled'); 
            return; 
        } 
    } 
			
    //is the browser opera?
    else if (is_opera){ 
        alert('Opera detected. The page may not behave as expected.'); 
        return; 
    } 
			
    //is browser mozilla?
    else{ 
        objXmlHttp = new XMLHttpRequest(); 
        objXmlHttp.onload = handler; 
        objXmlHttp.onerror = handler; 
        return objXmlHttp; 
    } 
} 