var PUW = {};
var popLoadImage = "/images/poploading.gif";
var loadingImg;
var popWidth;
var popHeight;
var baseObj = null;
var delaysize = null;
var sizestep = 10;
var curstep = 0;
var capid = 0;
PUW.PopWindow = {
	init:function(){
		var imgObjs = YAHOO.util.Dom.getElementsByClassName("popFile");
		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 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);
		
	   		var 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");
			
	   		if(title === null) title = "";
			
			var params = PUW.PopWindow.parseQuery(url.replace(/^[^\?]+\??/,''));
	   		popWidth = params['width']/1 + 30 || 750;
			popHeight = params['height']/1 + 40 || 650;
			if(params['bj']) baseObj = YAHOO.util.Dom.get(params['bj']);
			if(params['cp'] && params['af'] == 'y') capid = parseInt(params['cp']);
			
			popwin.innerHTML += "<div id='top_title'><div id='pop_title'>"+title+"</div><div id='pop_close'><a href='#' id='pop_closeButton' title='Close'>CLOSE</a></div></div><div id='pop_content' style='width:"+(popWidth - 30)+"px;height:"+(popHeight - 45)+"px;"+((baseObj!=null)? "display:none;":"")+"'></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();
				} 
			};
			
			document.onmousedown = function(e){ 
				if(e == null){ // ie
					mouseCode = event.button;
				}else{ // mozilla
					mouseCode = e.which;
				}
				
				if(mouseCode == 2 || mouseCode == 3) return false;
			};
			
			document.oncontextmenu = new Function("return false");
				
			getNextContentByURL('GET',url += "&random=" + (new Date().getTime()),'',null,PUW.PopWindow.getAjaxContent,null);
		
		}catch(e){
			alert("Error encountered!");
		}
	},
	
	getAjaxContent: function(HttpReqObj){
		if(HttpReqObj.readyState == 4 && HttpReqObj.status == 200){
			var popwin = YAHOO.util.Dom.get("pop_window");
			var popload = YAHOO.util.Dom.get("pop_load");
			var popcontent = YAHOO.util.Dom.get("pop_content"); 
			
			if(popcontent != null){ 
				popcontent.innerHTML = HttpReqObj.responseText;
				if(YAHOO.env.ua.ie > 0){
					YAHOO.util.Dom.setStyle(popcontent, "paddingLeft", '5px');
					YAHOO.util.Dom.setStyle(popcontent, "paddingRight", '25px');
				}
			}
			
			if(popwin != null) PUW.PopWindow.popPosition(popwin,popWidth,popHeight);
				
			if(popload != null) popload.parentNode.removeChild(popload);
			if(popwin != null) YAHOO.util.Dom.setStyle(popwin, "display", "block");
			
			if(capid > 0) YAHOO.util.Dom.get('caption_area').innerHTML = YAHOO.util.Dom.get('cp_'+capid).value;
		}	
	},
	
	parseQuery: function(query){
   		var Params = {};
   		if(!query) return Params;
   		var Pairs = query.split(/[;&]/);
  		for(var i = 0; i < Pairs.length; i++){
      			var KeyVal = Pairs[i].split('=');
      			if(! KeyVal || KeyVal.length != 2) continue;
      			var key = unescape( KeyVal[0] );
      			var val = unescape( KeyVal[1] );
      			val = val.replace(/\+/g, ' ');
      			Params[key] = val;
   		}
   		return Params;
	},
	
	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");
		var popcontent = YAHOO.util.Dom.get("pop_content"); 
		
		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) popload.parentNode.removeChild(popload);
		
		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');
	},
	
	animatePopWindow:function(){
		var popwin = YAHOO.util.Dom.get("pop_window");
		var popcontent = YAHOO.util.Dom.get("pop_content");
		++curstep;
		
		YAHOO.util.Dom.setStyle(popwin, "width", parseInt((popWidth * curstep/sizestep),10) + 'px');
		YAHOO.util.Dom.setStyle(popwin, "height", parseInt((popHeight * curstep/sizestep),10) + 'px');
		if(curstep >= sizestep){ 
			clearInterval(delaysize);
			curstep = 0;
			YAHOO.util.Dom.setStyle(popcontent, "display", 'inline');
		}
	}
};
			
YAHOO.util.Event.onDOMReady(init);function init(){
	loadingImg = new Image();
	loadingImg.src = popLoadImage;
	PUW.PopWindow.init();
}
