var K_TitleBar="TitleBar";
var K_Content="Content"
var K_Width="width"
var isIE=document.all;
var isNN=!document.all&&document.getElementById;
var isN4=document.layers;
var moveDivAlertEnabled=false;
var restoreDivAlertPositionEnabled=false;
var statusDivAlert="normal"
var divAlertName="";
var isHot=false;
var coffsetinix=0,coffsetiniy=0,cposinix=0,cposiniy=0;
var moveOnlyIe7=navSupportMove();


function navSupportMove(){
	var agt=navigator.userAgent.toLowerCase();
	var is_major = parseInt(navigator.appVersion);    
	var is_ie  = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
	var is_ie7 = (is_ie && (is_major == 4) && (agt.indexOf("msie 7.")!=-1));
	
	return is_ie7 || !is_ie;
}


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}


function iniDivAlert(e){
	if (divAlertName=="") return;
	topParent=isIE ? "BODY" : "HTML";		
	divAlert = MM_findObj(divAlertName);
	titleDivAlert = MM_findObj(divAlertName+K_TitleBar);
	titleDivAlert=isIE ? event.srcElement : e.target;  
	while (titleDivAlert.id!=divAlertName+K_TitleBar&&titleDivAlert.titleDivAlert!=topParent){
		titleDivAlert=isIE ? titleDivAlert.parentElement : titleDivAlert.parentNode;
	}  
	if (titleDivAlert.id==divAlertName+K_TitleBar){
		offsetx=isIE ? event.clientX : e.clientX;
		offsety=isIE ? event.clientY : e.clientY;
		nowX=parseInt(divAlert.offsetLeft);
		nowY=parseInt(divAlert.offsetTop);		
		enableDivAlert();
	}else{
		disableDivAlert();
	}
}

function moveDivAlert(e){
	if (!moveOnlyIe7 || !moveDivAlertEnabled || statusDivAlert!="normal") return;	
	divAlert = MM_findObj(divAlertName);
	divAlert.style.left=isIE ? nowX+event.clientX-offsetx : nowX+e.clientX-offsetx; 
	divAlert.style.top=isIE ? nowY+event.clientY-offsety : nowY+e.clientY-offsety;	
	return false;  
}

function moveDivAlertN4(){
	if (!isN4 || statusDivAlert!="normal") return;
	DivAlertN4=eval(MM_findObj(divAlertName));
	DivAlertN4.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
	DivAlertN4.onmousedown=function(e){
		DivAlertN4.captureEvents(Event.MOUSEMOVE);
		DivAlertN4x=e.x;
		DivAlertN4y=e.y;
	}
	DivAlertN4.onmousemove=function(e){
		if (isHot){
		DivAlertN4.moveBy(e.x-DivAlertN4x,e.y-DivAlertN4y);
		return false;
		}
	}
	DivAlertN4.onmouseup=function(){
		DivAlertN4.releaseEvents(Event.MOUSEMOVE);
	}
}

function hideDivAlert(divAlertName){
	disableDivAlert();
	hideDiv(divAlertName);
}

function hideDiv(divAlertName){
	divAlert = MM_findObj(divAlertName)
	if (isIE||isNN) divAlert.style.display="none";
	else if (isN4) divAlert.display="none";
}

function showDivAlert(divAlertName){
	enableDivAlert();
	showDiv(divAlertName);
}

function showDiv(divAlertName){
	divAlert = MM_findObj(divAlertName)
	if (isIE||isNN) divAlert.style.display="block";
	else if (isN4) divAlert.display="block";
}

function minimizeWindow(divAlertName){
	hideDivAlert(divAlertName+K_Content);
	divAlert = MM_findObj(divAlertName)
	titleDivAlert = MM_findObj(divAlertName+K_TitleBar);
	
	divAlert.style.left=0-divAlert.parentNode.offsetLeft;
	divAlert.style.top=document.body.clientHeight - divAlert.parentNode.offsetTop + titleDivAlert.offsetHeight;

	statusDivAlert = "minimize";	
	restoreDivAlertPositionEnabled=false;
}

function maximizeWindow(divAlertName){
	if (statusDivAlert == "minimize")
		showDivAlert(divAlertName+K_Content)

	divAlert = MM_findObj(divAlertName)

	divAlert.style.left=0 - divAlert.parentNode.offsetLeft;
	divAlert.style.top=0 - divAlert.parentNode.offsetTop;
	
	divAlert.style.position="absolute";
	divAlert.style.width=document.body.clientWidth;
	divAlert.style.height=document.body.clientHeight;
	
	statusDivAlert = "maximize";
	restoreDivAlertPositionEnabled=false;
}

function restoreWindow(divAlertName){
	if (statusDivAlert == "minimize")
		showDivAlert(divAlertName+K_Content)
		
	divAlert = MM_findObj(divAlertName)
	var hw = MM_findObj(divAlertName+K_Width)

	divAlert.style.position="relative";
	divAlert.style.left=0;
	divAlert.style.top=0;
	divAlert.style.width=hw.style.width;
	divAlert.style.height=hw.style.height;

	statusDivAlert = "normal";	
	/* Fx anulada manualmente
	restoreDivAlertPositionEnabled=true;
	*/
}

function minimizeDivAlert(divAlertName){
	if (statusDivAlert == "minimize")
		restoreWindow(divAlertName);	
	else
		if (statusDivAlert == "maximize"){
			restoreWindow(divAlertName);	
			minimizeWindow(divAlertName);
		}
	else
		minimizeWindow(divAlertName);
		
	disableDivAlert();
}

function maximizeDivAlert(divAlertName){
	
	divAlert = MM_findObj(divAlertName)

	if (statusDivAlert == "minimize" || statusDivAlert == "maximize"){		
		restoreWindow(divAlertName)		
	}else if(statusDivAlert == "normal"){
		maximizeWindow(divAlertName)
	}
	disableDivAlert();
}

function quietDivAlert(){
	if (!moveDivAlertEnabled) return;
	restoreDivAlertPosition();
	disableDivAlert();
}

function restoreDivAlertPosition(){
	if (!restoreDivAlertPositionEnabled) return;
	coffsetinix=(coffsetinix==0 ? offsetx : coffsetinix);
	coffsetiniy=(coffsetiniy==0 ? offsety : coffsetiniy);
	
	if(divAlert.style.position=="absolute"){
		if((nowY >= cposiniy-30 && offsety <= coffsetiniy+30) && 
			(nowX >= cposinix-30 && offsetx <= coffsetinix+30)){
			divAlert.style.left = cposinix;
			divAlert.style.top = cposiniy;
			divAlert.style.position="relative";
		}
	}else{
		divAlert.style.position="absolute";
	}
}

function disableDivAlert(){
	moveDivAlertEnabled = false;
	divAlertName="";
}

function enableDivAlert(){
	moveDivAlertEnabled = true;
}

function setDivAlertName(nombre){
	divAlertName = nombre;
}