var rte_UA='';
var rte_OverLayer;
var rte_DummyLayer;
var rte_PicLayer;

function rte_InitPopup(bgcolor, border_color, button, button_width, button_height){

	rte_OverLayer = document.createElement('div');
	rte_OverLayer.style.position = 'absolute';
	rte_OverLayer.style.display  = 'none'; 
	rte_OverLayer.style.backgroundColor = bgcolor;
	rte_OverLayer.onclick = rte_CloseLayer;
	document.getElementsByTagName("body").item(0).appendChild(rte_OverLayer); 

	rte_DummyLayer = document.createElement('iframe');
	rte_DummyLayer.style.position = 'absolute';
	rte_DummyLayer.style.display  = 'none';
	document.getElementsByTagName("body").item(0).appendChild(rte_DummyLayer); 

	rte_PicLayer = document.createElement('div');
	rte_PicLayer.style.position = 'absolute';
	rte_PicLayer.style.display  = 'none'; 
	rte_PicLayer.innerHTML ="<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0>"
	+ "<TR><TD BGCOLOR=#FFFFFF STYLE='border:3px solid " + border_color + ";'><DIV STYLE='margin:5px;'><IMG NAME='RTE_POPUP_PIC'></DIV></TD><TR>"
	+ "<TR><TD><DIV STYLE='margin:2px 5px 2px 0px; text-align:right;'><IMG SRC='" + button + "' BORDER=0 WIDTH=" + button_width + " HEIGHT=" + button_height + " onClick='rte_CloseLayer();'></TD></TR>"
	+ "</TABLE>";
	document.getElementsByTagName("body").item(0).appendChild(rte_PicLayer); 

	if(navigator.userAgent.indexOf("Opera")!=-1)		 { rte_UA='opera';     } 
	else if(navigator.userAgent.indexOf("Safari")!=-1)	 { rte_UA='safari';    }
	//else if(navigator.userAgent.indexOf("Konqueror")!=-1){ rte_UA='konqueror'; }
	else if(navigator.userAgent.indexOf("Gecko")!=-1)    { rte_UA='gecko';     }
	else if(navigator.userAgent.indexOf("MSIE")!=-1)     { rte_UA='ie';        }

	window.onresize=rte_OnWindowResize;

}

function rte_DoPopup(pic){

	if(rte_UA==''){ return; }
	if(!rte_OverLayer || !rte_PicLayer || !rte_DummyLayer){ return true; }

	rte_SetOpacity(rte_PicLayer, 0);
	with(rte_PicLayer.style){
		zIndex  = 303;
		display = '';
	}

	imgPreloader = new Image();
	imgPreloader.src = pic.src;
	if(imgPreloader.complete){
	    document.images['RTE_POPUP_PIC'].src = pic.src;
		rte_SetPicLayer();
	} else {
		imgPreloader.onload = function() {
		    document.images['RTE_POPUP_PIC'].src = pic.src;
			rte_SetPicLayer();
		}
	}

}

function rte_SetPicLayer(){
	var ps = rte_GetPageSize();
	posX = Math.floor((ps[2] - rte_PicLayer.offsetWidth) / 2);  if(posX < 0){ posX = 0; } posX += ps[4];
	posY = Math.floor((ps[3] - rte_PicLayer.offsetHeight) / 2); if(posY < 0){ posY = 0; } posY += ps[5];
	rte_PicLayer.style.left = posX + 'px';
	rte_PicLayer.style.top  = posY + 'px';
	rte_SetOpacity(rte_OverLayer, 70);
	with(rte_OverLayer.style){
		zIndex  = 301;
		width   = ps[0] + 'px';
		height  = ps[1] + 'px';
		left    = '0px';
		top     = '0px';
		display = '';
	}
	with(rte_DummyLayer.style){
		zIndex  = 302;
		width   = ps[0] + 'px';
		height  = ps[1] + 'px';
		left    = '0px';
		top     = '0px';
	}
	setTimeout("rte_ZoomIn(0)", 50);
}

function rte_ZoomIn(zoom){
	zoom += 10;
	if(zoom > 100){ zoom = 100; }
    rte_SetOpacity(rte_PicLayer, zoom);
	if(zoom < 100){
		setTimeout("rte_ZoomIn(" + zoom + ")",50);
	}
}

function rte_CloseLayer(){

	rte_DummyLayer.style.display = 'none';
	rte_OverLayer.style.display  = 'none';
	rte_PicLayer.style.display   = 'none';

}

function rte_SetOpacity(elem, opacity){
	if(rte_UA=='ie'){
		elem.style.filter = 'Alpha(opacity=' + opacity + ')';
	} else if(rte_UA=='gecko' || rte_UA=='opera'){
		opacity = opacity/100;
		elem.style.opacity = opacity;
	} else if(rte_UA=='safari'){
		opacity = opacity/100;
		elem.style.opacity = opacity;
	}
}

function rte_OnWindowResize(){
    if(rte_OverLayer.style.display != 'none'){
    	var ps = rte_GetPageSize();
	    with(rte_OverLayer.style){
    		zIndex  = 301;
		    width   = ps[0] + 'px';
		    height  = ps[1] + 'px';
		    left    = '0px';
		    top     = '0px';
		    display = '';
	    }
    	with(rte_DummyLayer.style){
	    	zIndex  = 302;
		    width   = ps[0] + 'px';
    		height  = ps[1] + 'px';
    		left    = '0px';
    		top     = '0px';
    	}
    }
}

function rte_GetPageSize(){
	var pageWidth, pageHeight;
	if (window.innerHeight && window.scrollMaxY) {	
		pageWidth = window.innerWidth + window.scrollMaxX;
		pageHeight = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		pageWidth = document.body.scrollWidth;
		pageHeight = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		pageWidth = document.body.offsetWidth;
		pageHeight = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth  = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth  = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	var scrollX, scrollY;
	scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
	scrollY = document.documentElement.scrollTop || document.body.scrollTop;
	if(pageWidth  < windowWidth) { pageWidth  = windowWidth;  }
	if(pageHeight < windowHeight){ pageHeight = windowHeight; }
	arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight, scrollX, scrollY) 
	return arrayPageSize;
}

function rte_GetPosition(elem){
	var p,x,y;
	if(elem){
		x = elem.offsetLeft;
		y = elem.offsetTop;
		p = elem.offsetParent;
		while(p != null) {
			x += p.offsetLeft;
			y += p.offsetTop;		
			p = p.offsetParent;
		}
		// Mac IE Adjustment
		if (document.all && navigator.appVersion.indexOf("Mac") >= 0){
			y += parseInt(document.body.topMargin);
			x += parseInt(document.body.leftMargin);
		}
	} else {
		x = 0;
		y = 0;
	}
	return new Array(x,y);
}

