function myAttachEvent(obj, event, handler) {
	if (obj.attachEvent) obj.attachEvent("on"+event,handler);	//ie
	else if (obj.addEventListener) obj.addEventListener(event, handler, false); //gecko
	else alert("FATAL: Can't add event listener. Your browser must support 'attachEvent' or 'addEventListener' DOM function!"); 
}

function smartDownload(url, handler, params) {
	var iframe=document.body.appendChild(document.createElement("iframe"));
	iframe.style.width="0px";
	iframe.style.height="0px";
	iframe.style.border="0px";
	var framewin=iframe.contentWindow || iframe;
	myAttachEvent(iframe, "load",
		function() {
			if(framewin.location && framewin.location!="about:blank") {
				if (handler) {
					var innerHTML=iframe.contentDocument?(iframe.contentDocument.body?iframe.contentDocument.body.innerHTML:"")
						:framewin.document?(framewin.document.body?framewin.document.body.innerHTML:"")
						:"FATAL ERROR: Can't get iframe content";
					handler(innerHTML, params);
				}
				setTimeout(function() {iframe.parentNode.removeChild(iframe)}, 1000);
			} else {
				framewin.location=url;
			}
		}
	);
}

function evalScripts(elem) {
	var scripts=elem.getElementsByTagName("SCRIPT");
	for(var i=0;i<scripts.length; i++) {
		eval(scripts[i].innerHTML);
	}
}