var PUW = {};
var popLoadImage = "/images/poploading.gif";
var loadingImg;
PUW.PopWindow = {
	init:function(){
		var imgObjs = YAHOO.util.Dom.getElementsByClassName("popImage");
		for (var i in imgObjs){
			YAHOO.util.Event.addListener(imgObjs[i], "click", function(e){
			 	YAHOO.util.Event.preventDefault(e);
				var t = this.title || this.name || null;
				var u = this.href || this.alt;
				
				PUW.PopWindow.popupShow(t, u);
				
				this.blur();
				return false;
			});
		}
	},
	
	popupShow:function(title,url){
		try{
			var popWidth = 750;
			var popHeight = 650;
			
			var popmask = YAHOO.util.Dom.get("pop_mask");
			if(popmask === null){ 
				popmask = document.createElement("div");
				with(popmask){id = "pop_mask";}
			} 
			
			var popwin = YAHOO.util.Dom.get("pop_window");
			if(popwin === null){ 
				popwin = document.createElement("div");
				with(popwin){id = "pop_window";}
			} 
			
			YAHOO.util.Event.addListener(popmask, "click", PUW.PopWindow.popRemove);
			YAHOO.util.Dom.addClass(popmask,"maskBG");
			
			document.body.appendChild(popmask);
			document.body.appendChild(popwin);
			
			if(title === null) title = "";
			var baseURL;
	   		if(url.indexOf("?") !== -1){
				baseURL = url.substr(0, url.indexOf("?"));
	   		}else{ 
	   			baseURL = url;
	   		}
	   		
	   		loading = document.createElement("div");
	   		with(loading){id = "pop_load";}
	   		loading.innerHTML = "<img src='"+loadingImg.src+"' />";
	   		document.body.appendChild(loading);
	   		YAHOO.util.Dom.setStyle(loading, "display", "inline");
			
	   		myImg = new Image();
	   		
			myImg.onload = function(){
				myImg.onload = null;
				var pagesize = PUW.PopWindow.getPageSize();
				var x = pagesize[0] - 150;
				var y = pagesize[1] - 150;
				var imageWidth = myImg.width;
				var imageHeight = myImg.height;
				if(imageWidth > x){
					imageHeight = imageHeight * (x / imageWidth); 
					imageWidth = x; 
					if(imageHeight > y){ 
						imageWidth = imageWidth * (y / imageHeight); 
						imageHeight = y; 
					}
				}else if(imageHeight > y){ 
					imageWidth = imageWidth * (y / imageHeight); 
					imageHeight = y; 
					if(imageWidth > x){ 
						imageHeight = imageHeight * (x / imageWidth); 
						imageWidth = x;
					}
				}
				
				popWidth = imageWidth + 30;
				popHeight = imageHeight + 40;
				
				popwin.innerHTML += "<img id='pop_img' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt=\""+title+"\"/>" + "<div id='pop_title'>"+title+"</div><div id='pop_close'><a href='#' id='pop_closeButton' title='Close'>CLOSE</a></div>";
				var cl = YAHOO.util.Dom.get("pop_closeButton");
				YAHOO.util.Event.addListener(cl, "click", function(e){
					YAHOO.util.Event.preventDefault(e);
					PUW.PopWindow.popRemove();
				});

				document.onkeydown = function(e){ 	
					if(e == null){ // ie
						keycode = event.keyCode;
					}else{ // mozilla
						keycode = e.which;
					}
					//alert(keycode);
					if(keycode == 27){ // close
						PUW.PopWindow.popRemove(e);
					} 
				};
			
				PUW.PopWindow.popPosition(popwin,popWidth,popHeight);
				
				if(loading != null) loading.parentNode.removeChild(loading);
				var popframe = YAHOO.util.Dom.get("pop_frame");
				YAHOO.util.Event.addListener(popframe, "click", function(){YAHOO.util.Event.preventDefault(e); return false;});
				YAHOO.util.Dom.setStyle(popwin, "display", "block");
			};
			
			myImg.src = url;
		}catch(e){
			alert("Something's wrong!");
		}
	},
	
	popRemove:function(){
		var popmask = YAHOO.util.Dom.get("pop_mask");
		var popwin = YAHOO.util.Dom.get("pop_window");
		var cl = YAHOO.util.Dom.get("pop_closeButton");
		var popframe = YAHOO.util.Dom.get("pop_frame");
		
		if(popframe != null) YAHOO.util.Event.removeListener(popframe, "click", null);
		if(cl != null) YAHOO.util.Event.removeListener(cl, "click", null);
		
		if(popwin != null) popwin.parentNode.removeChild(popwin);
		if(popmask != null) popmask.parentNode.removeChild(popmask);
		
		var popload = YAHOO.util.Dom.get("pop_load");
		if(popload != null) loading.parentNode.removeChild(popload);
		
		/*if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
			$("body","html").css({height: "auto", width: "auto"});
			$("html").css("overflow","");
		}*/
		
		document.onkeydown = "";
		document.onkeyup = "";
		
		return false;
	},
	
	getPageSize:function(){
		var de = document.documentElement;
		var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
		var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
		arrayPageSize = [w,h];
		return arrayPageSize;
	},
	
	popPosition:function(o,w,h){
		YAHOO.util.Dom.setStyle(o, "marginLeft", '-' + parseInt((w/2),10) + 'px');
		YAHOO.util.Dom.setStyle(o, "width", w + 'px');
		if(!(YAHOO.env.ua.ie > 0 && YAHOO.env.ua.ie < 7))
			YAHOO.util.Dom.setStyle(o, "marginTop", '-' + parseInt((h/2),10) + 'px');
	}
};

var popLoadImage = "/images/poploading.gif";
			
YAHOO.util.Event.onDOMReady(init);function init(){
	loadingImg = new Image();
	loadingImg.src = popLoadImage;
	PUW.PopWindow.init();
}

