////////////////////////////////////////////////////////////////
//                                                            //
//           BYKLEIN CHROMELESS WINDOW OBJECT 2.0             //
//             FOR MICROSOFT IEXPLORER 5.5 & UP               //
//                                                            //
//   (c) Copyright 2003. Mariano Klein || www.byklein.com     //
//         Distributed under the terms of the GNU GPL         //
//                                                            //
//    Thanks to Gabriel Suchowolski || www.microbians.com     //
////////////////////////////////////////////////////////////////

ChromelessWindow = function ()
{
	var a = ChromelessWindow.arguments;
////////////////////////////////////////////////////////////////////PRIVATE PROPERTIES
	var URL = a[0];
	var title = a[1];
	var titlebarImage = a[2];
	var titlebarHeight = a[3];
	var titleFont = a[4];
	var titleSize = a[5];
	var titleColor = a[6];
	var scrollbars = a[7];
	var w = a[8]+(a[14]*2);
	var h = a[9]+a[14]+a[3];
	var centered = a[10];
	var xPos = a[11];
	var yPos = a[12];
	var borderColor = a[13];
	var borderSize = a[14];
	var minimizeButton = a[15];
	var closeButton = a[16];
	this.author = "Mariano Klein";
	this.version = "ByKlein Chromeless Windows 2.0";
	
	
	var win = (navigator.appVersion.indexOf("Windows"))?true:false;
	var ie= (navigator.appName == "Microsoft Internet Explorer")?true:false;
	var v = navigator.appVersion;
	var v55 = v.indexOf("MSIE 5.5")?true:false;
	var v60 = v.indexOf("MSIE 6.0")?true:false;
	var chromelessCompatible = null;
	var titlebarContent = null;
	var chromelessWW = null;
////////////////////////////////////////////////////////////////////PUBLIC METHODS
	openChromeless = function(){if(chromelessWW==null || chromelessWW.closed){openParent();setChrome();moveChromeless();setParentSource();}else{chromelessWW.execScript("showChromeless()");}}
	closeChromeless = function(){if(chromelessWW && !chromelessWW.closed)chromelessWW.close();chromelessWW=null}
	minimizeChromeless = function(){if(chromelessWW && !chromelessWW.closed)chromelessWW.execScript("minimizeChromeless()")}
	setURL = function(){URL = arguments[0];if(chromelessWW && !chromelessWW.closed){chromelessWW.execScript("b.all.canvas.URL='"+URL+"'");chromelessWW.execScript("showChromeless()");}}
	moveChromeless= function()
	{
		if (arguments.length == 0)
		{
			if (centered)
			{
				var tempX = w;
				var tempY = h;
				xPos = (screen.availWidth/2)-(tempX/2);
				yPos = (screen.availHeight/2)-(tempY/2);	
			}
		}
		else if(arguments[0]=="center")
		{
			var tempX = w;
			var tempY = h;
			xPos = (screen.availWidth/2)-(tempX/2);
			yPos = (screen.availHeight/2)-(tempY/2);
		}
		else
		{	
			xPos = arguments[0];
			yPos = arguments[1];
			
		}
		if((chromelessWW)&&(arguments.length != 0))
		{
			if(chromelessCompatible)
			{
				chromelessWW.execScript('var cx='+xPos+';');
				chromelessWW.execScript('var cy='+yPos+';');
				chromelessWW.execScript("showChromeless()");
				chromelessWW.execScript("focus()");
			}
			else
			{
				chromelessWW.moveTo(xPos,yPos);
			}
		}
	}
	resizeChromeless = function()
	{
		w = arguments[0];
		h = arguments[1];
		cH = (h-titlebarHeight)-borderSize;
		cW = w -(borderSize*2);
		if(chromelessWW)
		{
			chromelessWW.execScript('var cw='+w+';');
			chromelessWW.execScript('var ch='+h+';');
			chromelessWW.execScript("b.all.canvas.style.width='"+cW+"'");
			chromelessWW.execScript("b.all.canvas.style.height='"+cH+"'");
			chromelessWW.execScript("b.all.closeButton.style.right='"+borderSize+"'");
			chromelessWW.execScript("b.all.minimizeButton.style.right='"+(borderSize+20)+"'");
			chromelessWW.execScript("showChromeless();focus()");
		}
	}
////////////////////////////////////////////////////////////////////PRIVATE METHODS
	openParent = function()
	{
		chromelessCompatible = win && ie && (v55 || v60);
		var sc = (scrollbars)?"yes":"no";
		if (chromelessCompatible)
		{
			chromelessWW = window.open("about:blank","","top=5000,left=5000,width=100,height=100,scrollbars="+sc);
		}
		else
		{	
			chromelessWW = window.open(URL, "chromelessWindow","top="+yPos+",left="+xPos+",width="+w+",height="+(h-20)+",scrollbars="+sc+",resizable=0");
			chromelessWW.document.title = title;
		}	
	}	
	setChrome = function()
	{
		var cH = (h-titlebarHeight)-borderSize;
		var cW = w -(borderSize*2);
		this.c = "<object style='position:absolute;z-index:2;top:"+titlebarHeight+"px;left:"+borderSize+"px;width:"+cW+"px;height:"+cH+"px;' data='"+URL+"' id='canvas'></object>";
	
		if((titlebarImage==undefined)||(titlebarImage==null)||(titlebarImage==""))
		{
			titlebarContent="";
			tb = false;
		}
		else
		{
			titlebarContent="<img id='menu' unselectable='on' src='"+titlebarImage+"' style='position:absolute; top:0px; left:0px;z-index:2'>";
			tb = true;
		}
		menu = "\<div id='Title' unselectable='on' style='font-family:Arial;font-size:11px;font-weight:bold;position:absolute;top:5px;left:"+borderSize+"px;width:70%;height:15px;cursor:default;font-family:"+titleFont+";font-size:"+titleSize+";color:"+titleColor+";z-index:3'>"+title+"</div>\
			<img id='closeButton' unselectable='on' src='"+closeButton+"' width='15' height='15' style='position:absolute; top:5px; right:"+(borderSize)+"px;z-index:3'>\
			"+titlebarContent+"\<img id='minimizeButton' unselectable='on' src='"+minimizeButton+"' width='15' height='15' style='position:absolute; top:5px; right:"+(borderSize+20)+"px;z-index:3'>\
			<div id='fondo' unselectable='on' style='position:absolute; top:0px; left:0px; width:100%; height:100%; background-color:"+borderColor+";z-index:1'></div>";
		
	}	
	setParentSource = function()
	{
		if(chromelessWW)
		{
			chromelessWW.document.open();
			parentSource = '\
			<html>\n\
			<head>\n\
			<META HTTP-EQUIV="imagetoolbar" CONTENT="no">\n\
			<script>\n\
			var idsi = setInterval(objControl,50);\n\
			function objControl(){objContent = b.all("canvas").object;if(objContent!=null){setUpContent();}};\n\
			</script>\n\
			</head>\n\
			<body>\n\
			<script>\n\
			tempOpener = opener;\n\
			opener = self;\n\
			var c=window.createPopup();\n\
			var b=c.document.body;\n\
			var ox=oy=ix=iy=0;\n\
			var allContent =\"<html><head></head><body>'+menu+c+'</body></html>\";\n\
			b.innerHTML=allContent;\n\
			var cx='+xPos+';\n\
			var cy='+yPos+';\n\
			var cw='+w+';\n\
			var ch='+h+';\n\
			window.showChromeless = function(){\n\
			c.show(cx,cy,cw,ch)}\n\
			var mm=false;\n\
			var cmove=b.all("fondo");\n\
			var cmove2=(b.all("menu"))?b.all("menu"):"";\n\
			var ctitle=b.all("Title");\n\
			ctitle.style.visibility=('+tb+')?"hidden":"visible";\n\
			var cclose=b.all("closeButton");\n\
			var cminimize=b.all("minimizeButton");\n\
			self.resizeChromeless = function(){w = arguments[0];h = arguments[1];cH = (h-'+titlebarHeight+')-'+borderSize+';cW = w -('+borderSize+'*2);cw=w;ch=h;b.all.canvas.style.width=cW;b.all.canvas.style.height=cH;b.all.closeButton.style.right='+borderSize+';b.all.minimizeButton.style.right='+(borderSize+20)+';showChromeless();focus()}\n\
			self.moveChromeless = function(){if(arguments[0]=="center"){var tempX = '+w+';var tempY = '+h+';xPos = (screen.availWidth/2)-(tempX/2);yPos = (screen.availHeight/2)-(tempY/2);}else{xPos = arguments[0];yPos = arguments[1];}cx=xPos;cy=yPos;showChromeless();focus()};\n\
			self.setURL = function(){b.all.canvas.URL=arguments[0];showChromeless()};\n\
			self.closeChromeless = function(){opener=self;self.close()};\n\
			self.dragChromeless = function(){m = (arguments[0])?1:0};\n\
			function setUpContent(){\n\
			objContent.parentWindow.resizeChromeless = self.resizeChromeless;\n\
			objContent.parentWindow.moveChromeless = self.moveChromeless;\n\
			objContent.parentWindow.setURL = self.setURL;\n\
			objContent.parentWindow.closeChromeless = self.closeChromeless;\n\
			objContent.parentWindow.dragChromeless = self.dragChromeless;\n\
			};\n\
			cclose.onclick=function(){opener=self;self.close()};\n\
			cminimize.onclick=function(){if(tempOpener&&!tempOpener.closed){tempOpener.window.focus()}else{opener.blur();blur()}};\n\
			var m=ox=oy=ix=iy=0;\n\
			ctitle.onmousedown=cmove.onmousedown=cmove2.onmousedown=function(){m=1};\n\
			ctitle.onmouseup=cmove.onmouseup=cmove2.onmouseup=function(){m=0};\n\
			document.body.onclick=function(){if (m){ focus();cx=ix+event.screenX-ox;cy=iy+event.screenY-oy;c.show(cx,cy,cw,ch) }else {ix=cx; iy=cy; ox=event.screenX; oy=event.screenY } };\n\
			setInterval("document.body.click()",20);\n\
			onfocus=function(){showChromeless();focus()}\n\
			</script>\n\
			</body>\n\
			</html>\n\
			';
			chromelessWW.document.write(parentSource);
			chromelessWW.document.close();
			chromelessWW.document.title = title;
			chromelessWW.focus();
		}
	}
	////////////////////////////
	//     PUBLIC METHODS    ///
	////////////////////////////
	this.openChromeless = openChromeless;
	this.closeChromeless = closeChromeless;
	this.minimizeChromeless = minimizeChromeless;
	this.setURL = setURL;
	this.resizeChromeless = resizeChromeless;
	this.moveChromeless = moveChromeless;
}
