// JavaScript Document
var isDivIframe = false;
var myIframe, iframeContainer, progressBarLayer, fadingLayer, iframeHeight, externalPage = false;

function layerHTML () {
	var _iframeHTML = {
		code: '\
			<div id="iframeContainer"> \
				<div id="iframeContainerHeader"> \
					<div id="iframeContainerCloseButton"> \
						<a href="#top" onClick="closeIframeLayer()">'
	}
	var _close = "Close [x]";
	var _iframeHTML2 = {
		code: '\
						</a> \
					</div> \
				</div> \
				<iframe id="myIframe" name="myIframeName" frameborder="0" src="" width="100%" height="100%"></iframe> \
			</div> \
			<div id="fadingLayer"></div><div id="progressBarLayer"><img src="/iframe-layer/images/loading.gif" alt="Searching ..." style="margin-top:200px;"></div>'
	}
	return _iframeHTML.code + _close + _iframeHTML2.code;
}


var showIframe = function() {
	
	progressBarLayer.style.display = "none";	
	
	fadingLayer.style.display = "block";
	iframeContainer.style.display = "block";
	
	var myIframeDocument = window.frames[myIframe.id + "Name"].document;	
	myIframe.style.height = myIframeDocument.documentElement.scrollHeight + "px";	
	fadingLayer.style.height = Math.max(document.documentElement.scrollHeight,Math.max(document.documentElement.clientHeight, iframeContainer.offsetHeight + getAbsolutePosition(iframeContainer).y + 20)) + "px";
	
	//alert(myIframeDocument.documentElement.offsetHeight + " " + myIframeDocument.body.scrollHeight + " " + myIframeDocument.documentElement.clientHeight + " " + myIframeDocument.documentElement.scrollHeight);
	//alert(document.documentElement.offsetHeight + " " + document.body.scrollHeight + " " + document.documentElement.clientHeight + " " + document.documentElement.scrollHeight);
}
var showIframeExternal = function() {	
	progressBarLayer.style.display = "none";
	fadingLayer.style.display = "block";
	iframeContainer.style.display = "block";	
	fadingLayer.style.height = Math.max(document.documentElement.scrollHeight,Math.max(document.documentElement.clientHeight, iframeContainer.offsetHeight + getAbsolutePosition(iframeContainer).y + 20)) + "px";
}

function getVarValueFromURL(url, varName) {	
	var query = url.substring(url.indexOf('?') + 1);	
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++) {
		var pair = vars[i].split("=");
		if (pair[0] == varName) {
			return pair[1];
		}
	}

	return null;	
} 

function openIframeLayer () {
	hideObjects();
	var url = openIframeLayer.arguments[0];	
	
	if (!isDivIframe) {
		//document.body.innerHTML += layerHTML();		
		isDivIframe = true;
		initIframeVars();
	}
	progressBarLayer.style.height = document.documentElement.scrollHeight + "px";
	
	progressBarLayer.style.display = "block";
	
	if(url.indexOf("http://")==-1) {// if inner URL
		externalPage = false;
		myIframe.src = url;
		if(myIframe.addEventListener){ // Mozilla, Netscape, Firefox
			myIframe.addEventListener("load",showIframe, false);		
		} else { // IE
			myIframe.attachEvent("onload", showIframe);
		}	
	}
	else {// if external URL		
		externalPage = true;
		iframeHeight = parseInt(openIframeLayer.arguments[1]?openIframeLayer.arguments[1]:400);
		
		if(getVarValueFromURL(url, "width")!=null) {
			myIframe.style.width = getVarValueFromURL(url, "width") + "px";
		}
		if(getVarValueFromURL(url, "height")!=null) {
			myIframe.style.height = getVarValueFromURL(url, "height") + "px";
		}
		
		myIframe.src = url;	
		if(myIframe.addEventListener){ // Mozilla, Netscape, Firefox
			myIframe.addEventListener("load",showIframeExternal, false);		
		} else { // IE
			myIframe.attachEvent("onload", showIframeExternal);
		}	
		//showIframeExternal();
			
	}	
}
function closeIframeLayer() {
	showObjects();
	fadingLayer.style.display = "none";
	progressBarLayer.style.display = "none";
	fadingLayer.style.height = 0 + "px";
	progressBarLayer.style.height = 0 + "px";

	
	
	iframeContainer.style.display = "none";
	if (externalPage) {
		if(myIframe.removeEventListener){ // Mozilla, Netscape, Firefox
			myIframe.removeEventListener("load",showIframeExternal, false);		
		} else { // IE
			myIframe.detachEvent("onload", showIframeExternal);
		}	
	}
	else {
		if(myIframe.removeEventListener){ // Mozilla, Netscape, Firefox
			myIframe.removeEventListener("load",showIframe, false);		
		} else { // IE
			myIframe.detachEvent("onload", showIframe);
		}	
	}
	myIframe.src = "";
}

function initIframeVars () {
	myIframe = document.getElementById("myIframe");
	iframeContainer = document.getElementById("iframeContainer");	
	if(document.getElementById('navbar')) {
		iframeContainer.style.left = getAbsolutePosition(document.getElementById('navbar')).x - 50 + "px";
		iframeContainer.style.top = getAbsolutePosition(document.getElementById('navbar')).y - 50 + "px";
	}

	progressBarLayer = document.getElementById('progressBarLayer');
	fadingLayer = document.getElementById('fadingLayer');
}


function hideObjects () {


	if(document.getElementsByTagName("embed")!=null) {
  		for(i=0; (flash = document.getElementsByTagName("embed")[i]); i++) {
     		flash.style.visibility = "hidden";
		}
	}

	if(document.getElementsByTagName("object")!=null) {
  		for(i=0; (flash = document.getElementsByTagName("object")[i]); i++) {
     		flash.style.visibility = "hidden";
  		}
	}
	if(document.getElementsByTagName("select")!=null) {
  		for(i=0; (selbox = document.getElementsByTagName("select")[i]); i++) {
     		selbox.style.visibility = "hidden";
  		}
	}
}

function showObjects () {

	if(document.getElementsByTagName("embed")!=null) {
  		for(i=0; (flash = document.getElementsByTagName("embed")[i]); i++) {
     		flash.style.visibility = "visible";
		}
	}

	if(document.getElementsByTagName("object")!=null) {
  		for(i=0; (flash = document.getElementsByTagName("object")[i]); i++) {
     		flash.style.visibility = "visible";
  		}
	}
	if(document.getElementsByTagName("select")!=null) {
  		for(i=0; (selbox = document.getElementsByTagName("select")[i]); i++) {
     		selbox.style.visibility = "visible";
  		}
	}
}