/* -------------- */
/* XMLHTTPRequest */
/* -------------- */

function createRequestObject() {
    var request;

    if(window.XMLHttpRequest) { 
        request=new XMLHttpRequest();
    } else if(window.ActiveXObject) { 
        var ie_versions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
 
        for(var i=0; i <ie_versions.length; i++) {
            try {
                request = new ActiveXObject(ie_versions[i]);
            }
            catch (error) {}
        }
    }
    return request;
}

/* -------------- */
/* Banners	  */
/* -------------- */

function initbanner(bannerarr, el, position)
{
	if (bannerarr&&el)
	{
		if (bannerarr.length>0)
		{
		    if (!position) position=0;
		    if (position>=bannerarr.length) position=0;
		
		    // always in this form:
		    // [duration];[type];[backcolor];[data]
		
		    var item=''+bannerarr[position];
		    var duration=1000*item.substring(0, item.indexOf(';'));
		    var type=item.substring(item.indexOf(';')+1);
		    var backcolor=type.substring(type.indexOf(';')+1);
		    var data=backcolor.substring(backcolor.indexOf(';')+1);
		    type=type.substring(0, type.indexOf(';'));
		    backcolor=backcolor.substring(0, backcolor.indexOf(';'));
		
		    var imgnode=el.getElementsByTagName('img')[0];
		    var swfnode=el.getElementsByTagName('div')[0];
		    position++;
	            switch (type)
	            {
	                case 'image':
	                    imgnode.src=data;
	                    imgnode.style.display="block";
	                    swfnode.style.display="none";
	                    break;
	                case 'flash':
	                    swfnode.innerHTML="";
	                    var so = new SWFObject(data, "", "125", "125", "0");
	                    so.addParam("quality", "high");
	                    so.addParam("menu", "false");
	                    so.addParam("wmode", "opaque");
	                    so.addParam("align", "t");
	                    so.addParam("scale", "scale");
	                    so.write(swfnode.id);
	                    imgnode.style.display="none";
	                    swfnode.style.display="block";
	                    break;
	                case 'xhtml':
	                    swfnode.innerHTML=data;
	                    imgnode.style.display="none";
	                    swfnode.style.backgroundColor=backcolor;
	                    swfnode.style.display="block";
	                    break;
	                default:
	                    break;
			}
		    if (duration>0) window.setTimeout(function() {initbanner(bannerarr, el, position);}, duration);
        }
	}
}
