function error_handler(a,b,c)
{
 window.status = (c +"\n" + b + "\n\n" + a + "\n\n" + error_handler.caller);
 return true;
}
window.onerror = error_handler;
String.prototype.trim=function(){return this.replace(/(^\s+)|\s+$/g,"");}

$d = document;
$root = document.documentElement;


function $id()
{
	var objs = new Array();
	for(var i=0;i<$id.arguments.length;i++)
	{
		objs[i] = document.getElementById($id.arguments[i]);
	}
	if(objs.length==1){objs = objs[0];}
	else if(objs.length==0){objs = null;}
	return objs;
}

function $names(elName)
{
	return document.getElementsByName(elName);
}

function $attr(srcNode,attributeName,setValueAs)
{
	attributeName = attributeName || "";
	if(setValueAs)
	{
		 srcNode.setAttribute(attributeName,setValueAs);
	}
	else
	{
		return srcNode.getAttribute(attributeName);
	}	
}

function $tags(nodeName,srcDoc)
{
	srcDoc = srcDoc || document;
	nodeName = nodeName || "*";
	return srcDoc.getElementsByTagName(nodeName);
}


$setId.x = 0;
function $setId(el)
{
	var randomID = "wd_random_id_for_element_" + Math.ceil ( Math.random() * 100000 + Date.parse(new Date())	) ;
	while($id(randomID))
	{
		 randomID = "wd_random_id_for_element_" + Math.ceil ( Math.random() * 100000 + Date.parse(new Date())	) ;
	}

	if(el==null)
	{
		return randomID;
	}
	if( (el.id==null) || (el.id=="") )
	{ 
		$setId.x++; 
		el.id = randomID;
	}
	return el.id;
}



self.WD = {
/*begin of functions==============================*/
browser:new Object(),
dull:function (){},


addEvent:function(obj, evType, fn)
{ 
	if (obj.addEventListener)
	{  
		obj.addEventListener(evType, fn, false);  return true; 
	}
	else if (obj.attachEvent)
	{   
		var r = obj.attachEvent("on"+evType, fn); 	
		WD.EventCache.add(obj, evType, fn);
		return r;
	}
	else 
	{
		//Mac IE5 sucks here
		return false;
	} 
},

removeEvent:function (obj, evType, fn)
{ 
	if (obj.removeEventListener){  obj.removeEventListener(evType, fn, false);  return true; }
	else if (obj.detachEvent){   var r = obj.detachEvent("on"+evType, fn);    return r; }
	else { return false; } 
},


removeClass:function(el,className)
{
	var c = el.className.split(" ");
	for(var i=0;i<c.length;i++)
	{
		if(c[i]==className){c[i]="";};
	}
	el.className = c.join(" ").trim();
	
}


/*endof functions==============================*/
}

WD.EventCache = function()
{
	var listEvents = [];
	
	return {
		listEvents : listEvents,
	
		add : function(node, sEventName, fHandler, bCapture){listEvents[listEvents.length] = arguments;},
		
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1)
			{
				item = listEvents[i];				
				if(item[0].removeEventListener){item[0].removeEventListener(item[1], item[2], item[3]);};			
				if(item[1].substring(0, 2) != "on"){	item[1] = "on" + item[1];};				
				if(item[0].detachEvent){item[0].detachEvent(item[1], item[2]);};				
				item[0][item[1]] = null;
			};
		}
	};
}();


WD.addEvent(window,"unload",WD.EventCache.flush);

var BO = WD.browser;
var c =[];
BO["ie"] =  (document.all!=null)&&(window.opera==null); 
BO["ie4"]  =  BO["ie"] && (document.getElementById==null); 
BO["ie5"]  =   BO["ie"] && (document.namespaces==null) && (!BO["ie4"]) ; 
BO["ie55"]  =  BO["ie"] && (document.namespaces!=null) && (document.compatMode==null); 
BO["ie6"]  =  BO["ie"] && (document.implementation!=null) && (document.compatMode!=null) && (window.XMLHttpRequest==null) ;
BO["ie7"] = BO["ie6"] && (window.XMLHttpRequest!=null) ;
BO["ie5_6"] =  BO["ie5"] || BO["ie55"] || BO["ie6"];/*rules for IE5~IE6*/
BO["ie55_6"] =  BO["ie55"] || BO["ie6"] ;/*rules for IE5.5~IE6*/
BO["ie6_7"] =  BO["ie6"] || BO["ie7"] ;/*rules for IE6~IE7*/
BO["ie5_7"] =  BO["ie55_6"] || BO["ie6_7"] ;/*rules for IE5~IE7*/
BO["ns4"]  = !BO["ie"] &&  (document.layers !=null) &&  (window.confirm !=null) && (document.createElement ==null); 
BO["opera"] =  (self.opera!=null); 
BO["gecko"] =  (document.getBoxObjectFor!=null); 
BO["firefox15"] = BO["gecko"] && (c.map!=null);
BO["khtml"] = (navigator.vendor =="KDE"); 
BO["konq"] =  ((navigator.vendor == 'KDE')||(document.childNodes)&&(!document.all)&&(!navigator.taintEnabled)); 
BO["safari"] = (document.childNodes)&&(!document.all)&&(!navigator.taintEnabled)&&(!navigator.accentColorName); 
BO["safari12"] = (parseInt(0).toFixed==null) && (BO["safari"] && (window.XMLHttpRequest!=null)); 
/*BO["safari13"] = (parseInt(0).toFixed!=null) && BO["safari"] && !BO["safari12"] ;*/
BO["safari13"] = (document.implementation!=null) && (document.implementation.createHTMLDocument!=null) && (window.opera==null);/*I found this method from http://www.quirksmode.org/dom/w3c_html.html*/
BO["safari11"] = BO["safari"] && !BO["safari12"]  &&!BO["safari13"] ;
BO["macie"] = document.createElement!=null && (document.createElement("tr").insertCell==null);


for(i in BO) {if(BO[i]){c[c.length]=i;}; };
for(i in BO) {if(!BO[i]){c[c.length]="not_"+i;}; };

document.documentElement.className = c.join(" ");


for(i in self.WD)
{
 if(self[i]==null)
	{
		self[i] = self.WD[i];//synchronize for faster deelopement
	}
}

function promotion_rotator_init(){
    var pr = document.getElementById("adr");
    var delay = 3;
    if(pr.getAttribute("delay")){
        if( !isNaN( pr.getAttribute("delay")) ){
            delay = parseInt( pr.getAttribute("delay") );
            delay = Math.max(0,delay);
        }
    }
    if(!pr){return;}
    var dl = pr.getElementsByTagName("dl");
    if(dl.length==0){ return;}
    if(dl[0].parentNode!=pr){return;};
    dl = dl[0];
    var dds ;
    function setDDZindex(){
        dds = new Array();
        var dd = dl.getElementsByTagName("dd");
        for(var i=0;i<dd.length;i++){
            if(dd[i].parentNode==dl){
                dd[i].style.left = 0;
                dd[i].style.zIndex = 9999 - dds.length ;
                dds[dds.length] =dd[i];
                dd[i].style.position="absolute";
            }
        }
    }
    setDDZindex();
    if( dds.length <= 1 ){return;};
    pr.transition = function() {
        var opac = 100;
        function applyOpacity(isClear) {
            if(isClear==true){
                dds[0].style.zIndex = 10;
                if(dds[0].runtimeStyle && document.namespaces ){dds[0].runtimeStyle.filter=""; }
                else{dds[0].style.top = 0;}
            }
            else {
                if(dds[0].runtimeStyle && document.namespaces){dds[0].runtimeStyle.filter="alpha(opacity:"+opac+")"; }
                else {
                    var py = parseInt(dds[0].style.left);
                    py = pr.offsetHeight * (100-opac)/100;
                    dds[0].style.top = py + "px";
                }
            }
        }
        var fader = function(){
            if(opac>0){
                var rspeed = (document.body.getBoundingClientRect!=null && document.namespaces)?20:5;
                opac = Math.floor( (0-opac/rspeed) + opac );
                applyOpacity();
                setTimeout(fader,25);
            }
            else {
                opac= 100;
                dds[0].style.zIndex=0;
                applyOpacity(true);
                var top_dd = dds[0];
                dds = dds.slice(1,dds.length);
                dds.push(top_dd);
                for(var i=0;i<dds.length;i++) {
                    dds[i].style.zIndex = 9999 - i ;
                }
                setTimeout(fader,delay * 1000);
            }
        }
        setTimeout(fader,delay * 1000);
    }
    pr.transition();
}
addEvent(window,"unload",EventCache.flush);
