

var JsWindow = {
	/**
	 * 
	 * @param {Object} params
	 */
	open : function(params){
		//get window dimensions
		var myDimensions = JsWindow.windowDimensions();
		var pageDimensions = JsWindow.pageDimensions();
		
		var winSrc = params.src || '';
		var winScrolling = params.scrolling || 'yes';		
		var winWidth = params.width || '800px';
		var winHeight = params.height || '75%';
		var addBar = params.addBar || false;
		var addOverlay = params.addOverlay || 'yes';
		//SCREEN OVERLAY
		if(addOverlay == 'yes'){
			var screenOverlay = document.createElement('div');
			screenOverlay.id = 'screenOverlay';
			screenOverlay.style.filter = 'alpha(opacity=20)';
			screenOverlay.style.width = myDimensions[0] +'px';
			screenOverlay.style.height = pageDimensions[1] + 'px';
			//ADD IT
			document.body.appendChild(screenOverlay);
		}
		
		//SHOW THE WINDOW 
		var myDiv = document.getElementById('JsWindow');
		//it doesnt exist so create it
		if (!myDiv){
			var myDiv = document.createElement("div");
			myDiv.id = "JsWindow";
		}
		
		myDiv.style.visibility = '';
		myDiv.style.zIndex = '1000';
		//SET HEIGHT OF WINDOW
		if (winHeight.search(/px/) != -1){
			var winHeightNumber = new Number(winHeight.substr(0,winHeight.length - 2));	
		} else {
			var winHeightNumber = new Number(winHeight.substr(0,winHeight.length - 1)) ;
			winHeightNumber = Math.round(myDimensions[1] * (winHeightNumber / 100));
		}
		if (winWidth.search(/px/) != -1){
			var winWidthNumber = new Number(winWidth.substr(0,winWidth.length - 2));	
		} else {
			var winWidthNumber = new Number(winWidth.substr(0,winWidth.length - 1));
			winWidthNumber =  Math.round((winWidthNumber / 100) * myDimensions[0]);
		}
		myDiv.style.height = winHeightNumber+'px';
		
		//now for the iframe that goes inside the asset window
		var myIframe = document.getElementById('assetIframe');
		var iframeExists = true;
		
		if (!myIframe){
			var myIframe = document.createElement('iframe');	
			myIframe.id = 'assetIframe';
			iframeExists = false;
		}
		
		myIframe.src = winSrc;
		myIframe.scrolling = winScrolling;
		myIframe.frameBorder = "0";		
		myIframe.style.width = '100%';
		myIframe.style.visibility ='';
		myIframe.style.height = winHeightNumber+'px';
		
		//Add the close button if its in the params
		if (addBar){
			var topBar = document.createElement('div');
			topBar.id = 'JsWindowBar';
			topBar.innerHTML = '<a href="#" class="close" onclick="return JsWindow.closeQuiet()"></a>';	
		}
		
		//Append
		if (!iframeExists){
			if (addBar){
				myDiv.appendChild(topBar);				
			}
			myDiv.appendChild(myIframe);
		}
		if (addBar){
			myIframe.style.height = ( winHeightNumber - 30 ) +'px';
		}	
		var myWidth = myDimensions[0];
		myDiv.style.width = winWidth;
		
		myDiv.style.left = (myWidth / 2) - (winWidthNumber / 2) + "px";
		
		if (!iframeExists){
			document.body.appendChild(myDiv);	
		}
	},
	/**
	 * @return array - window dimensions 
	 */
	windowDimensions : function(){
		var myWidth = 0, myHeight = 0, yscroll = 0; 
		if( typeof( window.innerWidth ) == 'number' ) {
			//Non-IE
			myWidth = window.innerWidth;
			myHeight = window.innerHeight;		
			
		} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
			//IE 6+ in 'standards compliant mode'
			myWidth = document.documentElement.clientWidth;
			myHeight = document.documentElement.clientHeight;
			
		} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
			//IE 4 compatible
			myWidth = document.body.clientWidth;
			myHeight = document.body.clientHeight;		
		}
		
		return [myWidth, myHeight];
	},
	/**
	 * Returns the x, y page dimensions
	 */
	pageDimensions : function (){
		
		if( window.innerHeight && window.scrollMaxY ){
			var pageWidth = window.innerWidth + window.scrollMaxX;
			var pageHeight = window.innerHeight + window.scrollMaxY;
						
		}
		else if( document.body.scrollHeight > document.body.offsetHeight ) // all but Explorer Mac
		{
			var pageWidth = document.body.scrollWidth;
			var pageHeight = document.body.scrollHeight;
			
		}
		else // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		{ 
			var pageWidth = document.body.offsetWidth + document.body.offsetLeft; 
			var pageHeight = document.body.offsetHeight + document.body.offsetTop; 
		}
		var windowDimensions = JsWindow.windowDimensions();
		pageWidth = pageWidth < windowDimensions[0]  ? windowDimensions[0] : pageWidth;
		pageHeight = pageHeight < windowDimensions[1]  ? windowDimensions[1] : pageHeight;
		return [pageWidth, pageHeight];
	},
	/**
	 * Closes the asset manager window that was opened. (from the edit screen)
	 * @return bool - true if it closed, false otherwise
	 */
	close : function(){
		
		var e = document.getElementById('JsWindow');
		var screenOverlay = document.getElementById('screenOverlay');
		var assetIframe = document.getElementById('assetIframe');
		
		if (e || screenOverlay){
			if (screenOverlay){
				screenOverlay.parentNode.removeChild(screenOverlay);	
			}
			assetIframe.parentNode.removeChild(assetIframe);
			e.parentNode.removeChild(e);
			//e.style.visibility = 'hidden';	
			//assetIframe.src = '';
			return true;
		} else {
			return false;
		}
	},
	/**
	 * 
	 */
	closeQuiet : function(){
		JsWindow.close();
		return false;
	}
}