var tpiWindowStatus;
var tpiWindowOffsetX;
var tpiWindowOffsetY;


function TPIWindow(pInstanceName) {	
	if(pInstanceName != null && pInstanceName != '') {
		this.instanceName = pInstanceName;
	} else {
		this.instanceName = 'tpiWindow';
	}

	this.oldBodyMouseUp = null;	
	this.oldBodyMouseDown = null;
	this.oldBodyMouseMove = null;
	
	function setMouseHandler(obj) {
		// salvando os eventos anteriores
		if(this.oldBodyMouseUp == null) {
			this.oldBodyMouseUp = document.onmouseup;
			document.onmouseup = this.mouseUp;
		}
		if(this.oldBodyMouseDown == null) {
			this.oldBodyMouseDown = document.onmousedown;
			document.onmousedown = this.mouseDown;
		}
		if(this.oldBodyMouseMove == null) {
			this.oldBodyMouseMove = document.onmousemove;
			document.onmousemove = this.mouseMove;
		}
	}
	this.setMouseHandler = setMouseHandler;
	
	function mouseDown(evt) {
		if(browserCheck.ie){
			var idElem=window.event.srcElement;	
			if(idElem.id == "imgTpiWindowDrag") {
				tpiWindowStatus = "down";
				tpiWindowOffsetX = window.event.offsetX;
		        tpiWindowOffsetY = window.event.offsetY;
			}
		} else {
			var clickPosX = evt.pageX;
			var clickPosY = evt.pageY;
			var testElem = document.getElementById("divTpiWindow");
	
			if ((clickPosX > parseInt(testElem.style.left)) && (clickPosX < parseInt(testElem.style.left) +
	           parseInt(testElem.style.width)) && (clickPosY > parseInt(testElem.style.top)) &&
	           (clickPosY < parseInt(testElem.style.top) + parseInt(25))) {
				tpiWindowOffsetX = evt.pageX - parseInt(testElem.style.left);
				tpiWindowOffsetY = evt.pageY - parseInt(testElem.style.top);
				tpiWindowStatus = "down";
			}
		}
	}
	this.mouseDown = mouseDown;
	
	function mouseMove(evt) {
		if(tpiWindowStatus == "down") {
			var elem1=document.getElementById("divTpiWindow");
			if(browserCheck.ie){
				var elem2=document.getElementById("frameTpiWindowBkg");
				elem1.style.pixelLeft = window.event.clientX - tpiWindowOffsetX -8;
				elem1.style.pixelTop = (window.event.clientY - tpiWindowOffsetY) + document.body.scrollTop;
				elem2.style.pixelLeft = window.event.clientX - tpiWindowOffsetX -8;
				elem2.style.pixelTop = (window.event.clientY - tpiWindowOffsetY) + document.body.scrollTop;
				return false;
			}
			else{
				elem1.style.left = evt.pageX - tpiWindowOffsetX;
				elem1.style.top = ( evt.pageY - tpiWindowOffsetY ) + window.pageYOffset;
				return false;
			}
		}
	}
	this.mouseMove = mouseMove;
	
	function mouseUp() {
		tpiWindowStatus = "up";
	}
	this.mouseUp = mouseUp;
	
	
	function hideWindow() {
		document.getElementById("divTpiWindow").style.display="none";
		document.getElementById("frameTpiWindowBkg").style.display="none";
		document.getElementById("divTpiWindowTitle").style.display="none";
		document.getElementById("imgTpiWindowDrag").style.display="none";
		document.getElementById("imgTpiWindowClose").style.display="none";
		document.getElementById("frameTpiWindowContent").style.display="none";
		document.getElementById("divTpiWindowLoading").style.display="none";
		document.getElementById("divTpiWindowBorder").style.display="none";

		
		// Recuperando os eventos do body
		document.onmouseup = this.oldBodyMouseUp;
		document.onmousedown = this.oldBodyMouseDown;
		document.onmousemove = this.oldBodyMouseMove;
		
		this.oldBodyMouseUp = null;
		this.oldBodyMouseDown = null;
		this.oldBodyMouseMove = null;
	}
	this.hideWindow = hideWindow;
	
	function redimensionaJanela(w,h) {
	    var elem1=document.getElementById("divTpiWindow");
	    var elem2=document.getElementById("divTpiWindowBorder");
		var elem3=document.getElementById("frameTpiWindowBkg");
	//	var elem3=document.getElementById("divTpiWindowTitle");

		var elem5=document.getElementById("imgTpiWindowDrag");
		var elem6=document.getElementById("imgTpiWindowClose");
		var elem7=document.getElementById("frameTpiWindowContent");
		
		var borderLeft = document.getElementById("divTpiWindowBorderLeft");
		var borderRight = document.getElementById("divTpiWindowBorderRight");

	    elem1.style.height=h;
	    
	    elem2.style.height=h+1;

	    elem3.style.width=w;
	    elem3.style.height=h;
	    
	    elem5.style.width=w;
	    
	    //elem6.style.left=w-20;

	    elem7.width=w-1;
	    elem7.height=h-21;
	    
	    borderLeft.style.height = h;
		borderRight.style.height = h;
	}
	this.redimensionaJanela = redimensionaJanela;
	
	
	function stopLoadingAnimation() {
		document.getElementById('divTpiWindowLoading').style.display = 'none';
	}
	this.stopLoadingAnimation = stopLoadingAnimation;
	
	function startLoadingAnimation() {
		document.getElementById('divTpiWindowLoading').style.display = 'block';
	}
	this.startLoadingAnimation = startLoadingAnimation;
	
	
	function openSimpleWindowTPI(id, titulo,url,x,y,w,h) {
		this.openWindowTPI(parent.document.getElementById(id),titulo,"verdana","normal","bold","8","#000000","img/tpiWindow/btn_close_out.png","img/tpiWindow/btn_close_over.png",url,x,y,w,h,2);
	}
	this.openSimpleWindowTPI = openSimpleWindowTPI;
	
		
	function openWindowTPI(local,titulo,titleFontFamily,titleFontStyle,titleFontWeight,titleFontSize,titleFontColor,botClose,botClose_on,src,x,y,w,h,align) {
		var str;

		if(browserCheck.ie) {
			str = ''+
			'<div id="frameTpiWindowBkg" style="left:'+(x)+'px;top:'+y+'px;height:'+h+'px;width:'+w+'px;"></div>\n' +
			'<div id="divTpiWindow" style="left:'+x+'px; top:'+y+'px; width:'+(w+17)+'px;height:'+(h)+'px;">\n' +
			'	<div style="position:relative">\n' +
			'		<div id="divTpiWindowBorderTop"></div>\n' +
			'		<div style="position:relative;">\n' +
			'			<div id="divTpiWindowBorderLeft" style="height:'+(h)+'px;"></div>\n' +
			'			<div id="divTpiWindowMiddle">\n' +
			'			    <div id="divTpiWindowBorder" style="height:'+(h+1)+'px;width:'+(w+1)+'px;">\n' +
			'					<div id="divTpiWindowTitle" style="font-family:'+titleFontFamily+';font-style:'+titleFontStyle+';font-weight:'+titleFontWeight+';font-size:'+titleFontSize+'pt;color:'+titleFontColor+';width:'+(w-2)+'px;">'+titulo+'</div>\n' +
			'						<img id="imgTpiWindowDrag" src="img/tpiWindow/bkg_top_bar.png" style="width:'+(w)+'px;"/>\n' +
			'						<img id="imgTpiWindowClose" src="'+botClose+'" onmouseover="this.src=\''+botClose_on+'\'" onmouseout="this.src=\''+botClose+'\'" onclick="javascript:'+this.instanceName+'.hideWindow();" style="left:'+(w-20)+'px;"/>\n' +
			'						<iframe src="" style="left:1px;" name="frameTpiWindowContent" id="frameTpiWindowContent" scrolling="no" width='+(w-1)+' height='+(h-21)+' marginwidth="0" marginheight="0" frameborder="no"></iframe>\n' +
			'						<div id="divTpiWindowLoading" style="left:'+(w/2)+'px; top:'+(h/2)+'px;"></div>\n' +
			'				</div>\n' +
			'			</div>\n' +
			'		</div>\n' +
			'		<div id="divTpiWindowBorderRight" style="height:'+(h)+'px;"></div>\n' +
			'	</div>\n' +
			'	<div id="divTpiWindowBorderBottom" style="width:'+(w+14)+'px;"></div>\n' +
			'</div>\n';
		}
		else{
			str = ''+
			'<div id="frameTpiWindowBkg" style="left:'+(x)+'px;top:'+y+'px;height:'+h+'px;width:'+w+'px;"></div>\n' +
			'<div id="divTpiWindow" style="left:'+x+'px; top:'+y+'px; width:'+(w+17)+'px;height:'+(h)+'px;">\n' +
			'	<div style="position:relative;">\n' +
			'		<div id="divTpiWindowBorderTop"></div>\n' +
			'		<div style="position:relative;">\n' +
			'			<div id="divTpiWindowBorderLeft" style="height:'+(h)+'px;"></div>\n' +
//			'			<div id="divTpiWindowMiddle">\n' +
			'			<div id="divTpiWindowMiddle" style="background-color:#FFFFFF;">\n' +
			'			    <div id="divTpiWindowBorder" style="height:'+(h+1)+'px;width:'+(w+1)+'px;">\n' +
			'					<div id="divTpiWindowTitle" style="cursor:move;font-family:'+titleFontFamily+';font-style:'+titleFontStyle+';font-weight:'+titleFontWeight+';font-size:'+titleFontSize+'pt;color:'+titleFontColor+';width:'+(w-2)+'px;">' +
			'   				    <ilayer width="100%" onSelectStart="return false">'+
	        '     						<layer width="100%">'+titulo+
			'     						</layer>'+
			'   					</ilayer>'+
			'                   </div>\n' +
			'					<img id="imgTpiWindowDrag" src="img/tpiWindow/bkg_top_bar.png" style="width:'+(w)+'px;"/>\n' +
			'					<img id="imgTpiWindowClose" src="'+botClose+'" onmouseover="this.src=\''+botClose_on+'\'" onmouseout="this.src=\''+botClose+'\'" onclick="javascript:'+this.instanceName+'.hideWindow();" style="left:'+(w-20)+'px;"/>\n' +
			'					<iframe src="" style="left:1px;" name="frameTpiWindowContent" id="frameTpiWindowContent" scrolling="no" width='+(w-1)+' height='+(h-21)+' marginwidth="0" marginheight="0" frameborder="no"></iframe>\n' +
			'					<div id="divTpiWindowLoading" style="left:'+(w/2)+'px; top:'+(h/2)+'px;"></div>\n' +
			'				</div>\n' +
			'			</div>\n' +
			'		</div>\n' +
			'		<div id="divTpiWindowBorderRight" style="height:'+(h)+'px;"></div>\n' +
			'	</div>\n' +
			'	<div id="divTpiWindowBorderBottom" style="width:'+(w+14)+'px;"></div>\n' +
			'</div>\n';
		}
		// setandoi os eventos
		this.setMouseHandler();
		// carregando o esquelo da janela
		local.innerHTML = str;

		// carregando o conte?do da janela
		document.getElementById('frameTpiWindowContent').src = src;
	}
	this.openWindowTPI = openWindowTPI;
}