﻿function opacity(id, opacStart, opacEnd, millisec, hideAtFinish) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
   
   if (hideAtFinish) 
		setTimeout("document.body.removeChild(document.getElementById('" + id + "'));", (timer * speed));
}

function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
} 

function displayBlocker(){
	var blocker = document.getElementById("divSPF1000");
	var w = document.body.clientWidth;
	var h = document.body.clientHeight;

	if (blocker == null)
	{
		blocker = document.createElement("div");
		blocker.id = "divSPF1000";
		blocker.className = "darkenBackground";
		blocker.innerHTML = "&nbsp;";
		document.body.appendChild (blocker);
	}

	blocker.style.width = w + 'px';
	blocker.style.height = h + 'px';
	blocker.style.display = "";
	changeOpac(70, "divSPF1000");

								//ffox														ie
//	(window.addEventListener) ? window.addEventListener('resize', displayBlocker, false) : window.attachEvent("onresize",displayBlocker);

}

function hideBlocker() {
	if (document.getElementById("divSPF1000") != null)
		opacity('divSPF1000', 70, 0, 250, true);
								//ffox														ie
//	(window.removeEventListener) ? window.removeEventListener('resize', displayBlocker, false) : window.detachEvent("onresize",displayBlocker);
}

function hideFrame(frameID) {
	if (document.getElementById(frameID) != null)
		opacity(frameID, 100, 0, 250, true);
	
	hideBlocker();
	clearInterval(scrollPoller);
}

var lastX, lastY, lastWidth, lastHeight;

function showPopupFrame(frameName, src, width, height){

	var framer = document.getElementById(frameName);
	var lefty = (document.body.clientWidth - width)/ 2;
	var toppy = (document.body.clientHeight - height)/ 2;
	if (lefty < 0) lefty = 0;
	if (toppy < 0) toppy = 0;
	
	displayBlocker();

	if (framer == null)
	{
		var div1 = document.createElement("div");

		div1.className = "msgHighPriority";
		div1.style.position = "absolute";
		div1.style.width = (width + 28) + 'px';
		div1.style.height = (height + 35) + 'px';
		div1.style.left= (lefty - 10) + 'px';	
		div1.style.top= (toppy - 10) + 'px';
		div1.id = frameName;

		var div2 = document.createElement("div");
		div2.style.backgroundPosition = "top left";
		div2.style.backgroundImage = "url('imgs/popup-border.png')";
		div2.style.backgroundRepeat = "no-repeat";
		div2.style.width = (width - 50) + 'px';
		div2.style.height = '20px';
		div2.style.position = "absolute";
		div2.style.top = "0px";
		div2.style.left="0px";

		var div3 = document.createElement("div");
		div3.style.backgroundPosition = "top right";
		div3.style.backgroundImage = "url('imgs/popup-border.png')";
		div3.style.backgroundRepeat = "no-repeat";
		div3.style.width = width + 'px';
		div3.style.height = '20px';
		div3.style.position = "absolute";
		div3.style.top = "0px";
		div3.style.right = "0px";
		
		var div4 = document.createElement("div");
		div4.style.backgroundPosition = "bottom left";
		div4.style.backgroundImage = "url('imgs/popup-border.png')";
		div4.style.backgroundRepeat = "no-repeat";
		div4.style.width = (width - 50) + 'px';
		div4.style.height = '15px';
		div4.style.position = "absolute";
		div4.style.top = (height + 10) + 'px';

		var div5 = document.createElement("div");
		div5.style.backgroundPosition = "bottom right";
		div5.style.backgroundImage = "url('imgs/popup-border.png')";
		div5.style.backgroundRepeat = "no-repeat";
		div5.style.width = (width - 50) + 'px';
		div5.style.height = '15px';
		div5.style.position = "absolute";
		div5.style.top = (height + 10) + 'px';
		div5.style.right = "0%";

		var div6 = document.createElement("div");
		div6.style.height = (height + 3) + 'px';
		div6.style.backgroundImage = "url('imgs/popup-border.png')";
		div6.style.backgroundPositionY = "-10px";
		div6.style.backgroundPosition = "center left";
		div6.style.backgroundRepeat = "no-repeat";
		div6.style.width = (width + 28) + 'px';
		div6.style.position = "absolute";
		div6.style.top = "15px";

        //the inner:
		framer = document.createElement("iframe");
		framer.style.width = width + 'px';
		framer.style.height = height + 'px';
		framer.style.position = "absolute";
		framer.style.left="14px";	
		framer.style.top="15px";
		framer.style.borderStyle="none";
		
        var but = document.createElement("div");
        but.style.width='20px';
		but.style.height='20px';
		but.style.position = "absolute";
		but.style.top = "0px";
		but.style.right = "0px";
		but.setAttribute("kittens", frameName);

		if(window.addEventListener)
			but.addEventListener('click', smartCloser, false);
		else
			but.attachEvent('onclick', smartCloser);

		div1.appendChild(div2);
		div1.appendChild(div3);
		div1.appendChild(but);
		div1.appendChild(div4);
		div1.appendChild(div5);
		div1.appendChild(div6);
		div1.appendChild(framer);
		document.body.appendChild (div1);
	}
	
	changeOpac(100, frameName);
	framer.src = src;
	scrollPoller = setInterval("poll('" + frameName + "')", 500);
    lastY=0;
    poll(frameName);
}

function smartCloser(evt){
	var eTrigger;
	var ie_var = "srcElement";
	var moz_var = "target";
	evt[moz_var] ? eTrigger = evt[moz_var] : eTrigger = evt[ie_var];
	hideFrame(eTrigger.getAttribute("kittens"));
}

function poll(FrameName){
	var currentX, currentY;
	var lefty;
	var toppy;
	var framer;
	var blocker;
	var w = document.body.clientWidth;
	var h = document.body.clientHeight;
	
	if (window.pageYOffset){
		currentY=window.pageYOffset;
		currentX=window.pageXOffset;
	}
	else {
		currentY=document.body.scrollTop;
		currentX=document.body.scrollLeft;
	}

	if (lastX!=currentX || lastY!=currentY || lastWidth!=w || lastHeight!=h){
		framer = document.getElementById(FrameName);
		blocker = document.getElementById("divSPF1000");
		
		framer.style.left = ( (w - parseInt(framer.style.width.replace('px','')) )/ 2 + currentX ) + 'px';
		framer.style.top =  ( (h -  parseInt(framer.style.height.replace('px','')) )/ 2 + currentY ) + 'px';

		if (lastWidth!=w || lastHeight!=h) {
			blocker.style.width = w + 'px';
			blocker.style.height = h + 'px'
		}
		blocker.style.left = currentX + 'px';
		blocker.style.top = currentY + 'px';
		
		lastX=currentX;
		lastY=currentY;
		lastWidth=w;
		lastHeight=h;
	}
}

function ActivateDefaultButton (btn, e) {

	if (!e) var e = window.event;
	if (e.which == 13) {
		//Firefox
		btn.click();
		return false;
	}
	else if (e.keyCode == 13) {
		// IE
		e.returnValue=false;
		e.cancel = true;
		btn.click();
	} 
}
