// JavaScript Document


//if(typeof(window.external) != 'undefined'){
//yes, this is evil browser sniffing, but only IE has this bug

//document.getElementsByName = function(name, tag){
//    if(!tag){
//        tag = '*';
//    }
//    var elems = document.getElementsByTagName(tag);
//    var res = []
//    for(var i=0;i<elems.length;i++){
//        att = elems[i].getAttribute('name');
//        if(att == name) {
//			//alert(att);
//           res.push(elems[i]);
//        }
//    }
//    return res;
//	//alert( res[0]);
//}

//}

var timerObjSize=0;
var timerObjSize1=0;
var timerObjSize2=0;
var timerObjSize3=0;
var timerObjSize4=0;



function objScan(tag) //zoek naar objecten waarvan de naam begint met "pos" (top-left-height-width) en pas de betreffende parameters aan volgens naam parameters
{
 	var objName, objId, objs;
	var t=0, l=0, h=0, w=0;
	var i=0, j=0, k=0;
	var n=0;
	var a=0;
	var num="01234567890"
	
	objs = document.getElementsByTagName(tag);
	n = objs.length;
	for (i=0; i<n; i++)
	{
		if (typeof objs[i].getAttribute("name") != 'undefined')
		{
			objName = objs[i].getAttribute("name");
			if (objName)
			{
				if (objName.substring(0,3) == "pos")
				{
					//alert(objName);
					functions = objName.split("_");
					for (j=1; j<functions.length; j++)
					{
						a = 0;
						//alert(j+":"+functions[j]);
						parts = functions[j].split("#");
						switch (parts[0])
						{
							case "h" : attr = "height"; break;
							case "w" : attr = "width"; break;
							default : alert ("parse error: "+parts[0]);
						}
						for (k=1; k<parts.length; k++)
						{
							//alert(parts[k]);
							if (num.indexOf(parts[k].substr(1,1))>=0)
							{
								c = Number(parts[k].substr(1));
							}
							else
							{
								t=parts[k].substr(1); //alert(t);
								//partObjs = document.getElementsByName(parts[k].substr(1));
								partObjs = document.getElementsByName(t);
								//alert(partObjs.length);
								//alert(partObjs[0].getAttribute(attr));
								if (partObjs.length>1) alert("duplicate objects named: "+parts[k]);
								if (tag == "img")
								{
									if (! partObjs[0].completed) 
									{
										alert("loaded");
										if (timerObjSize != 0) clearTimeout(timerObjSize);
										timerObjSize=setTimeout(objSize,500);
										return;
									}
								}

								b = partObjs[0].getAttribute("name");
								c = partObjs[0].getAttribute(attr);
								d = partObjs[0].getAttribute("id");
								e = partObjs[0];
								if ( !c )
								{
									switch (attr)
									{
										case "width": c = e.offsetWidth; break;
										case "height": c = e.offsetHeight; break;
										default: alert("error in pos");
									}
								}
								//alert(attr+" "+a+" "+b+" "+c+" "+d+" "+sign);
								
								//a += sign * partObjs[0].getAttribute(attr);
							}
							switch (parts[k].substr(0,1)) 
							{
								case "+": a += c; break;
								case "-": a -= c; break;
								case "/": a = a / c; break;
								case "*": a = a * c; break;
								default: alert("error in operator");
							}
							
							//alert(a);
						}
						//alert(a);
						//objs[i].style.setAttribute(attr,""+a+"px");
						switch (attr)
						{
							case "width": objs[i].style.width=""+a+"px"; break;
							case "height": objs[i].style.height=""+a+"px"; break;
							default: alert("error");
						}
					}
				}		
			}
		}
	}
}

function objSize()
{
	var tags = [ "div", "img", "td", "tr", "table" ];
	var i, j, k, n;
	
	//alert("objSize");
	n = tags.length;
	for (i=0; i<n; i++)
	{
		objScan(tags[i]);
	}
}

function objTimer()
{
	if ( timerObjSize != 0 )
	{
		clearTimeout(timerObjSize);
	}
	timerObjSize=setTimeout(objSize,100);
}

function objTimer2()
{
	//alert("resize");
	if ( timerObjSize != 0 )
	{
		clearTimeout(timerObjSize);
	}
	timerObjSize=setTimeout(objSize,500);
	timerObjSize1=setTimeout(objSize,1000);
	timerObjSize2=setTimeout(objSize,2000);
	timerObjSize3=setTimeout(objSize,5000);
	timerObjSize4=setTimeout(objSize,10000);

}

addLoadListener(objTimer2);
addResizeListener(objTimer2);

