/*******************************************************************************************
*	popUpMiniPopin( param1, param2, param3 ) -> first function 
*	param1: imagen q lo llama
*	param2: control a ser llenado al seleccionar un MiniPopin (param2.value = "#codColor";)
*	param3: funcion javascript, llamada al seleccionar un color
*	closeColor() -> last function
******************************************************************************************* */
getScrollPos = function()
{
	var docElem = document.documentElement;
	this.scrollX = self.pageXOffset || (docElem&&docElem.scrollLeft) || document.body.scrollLeft;
	this.scrollY = self.pageYOffset || (docElem&&docElem.scrollTop) || document.body.scrollTop;
}

getPageSize = function()
{
	var docElem = document.documentElement
	this.width = self.innerWidth || (docElem&&docElem.clientWidth) || document.body.clientWidth;
	this.height = self.innerHeight || (docElem&&docElem.clientHeight) || document.body.clientHeight;
}

getElementSize = function(elem)
{
	this.width = elem.offsetWidth ||  elem.style.pixelWidth;
	this.height = elem.offsetHeight || elem.style.pixelHeight;
}

maintPos = function() {
    var box_w = document.getElementById('divSwMiniPopin');
    var pagesize = new getPageSize();
    var ua = navigator.userAgent;
    if(ua.indexOf("MSIE ") != -1) {box_w.style.width = pagesize.width+'px';} 
    else {box_w.style.width = pagesize.width-16+'px';}
    if(ua.indexOf("Opera/9") != -1) {box_w.style.height = document.body.scrollHeight+'px';}
    else {box_w.style.height = document.body.scrollHeight+0+'px';}	
}

posToCenter = function(elem, xx, yy )
{
	if ( xx == null ) xx = 0;
	if ( yy == null ) yy = 0;
	var scrollPos = new getScrollPos();
	var pageSize = new getPageSize();
	var emSize = new getElementSize(elem);
	var x = Math.round(pageSize.width/2) - (emSize.width /2) + scrollPos.scrollX;
	var y = Math.round(pageSize.height/2) - (emSize.height /2) + scrollPos.scrollY;	
	x = x + xx;
	y = y + yy;
	elem.style.left = x+'px';
	elem.style.top = y+'px';
}

/* *********************************** START *** CUSTOMIZE ******************************** */
var bAjaxIsMac = (navigator.appVersion.toLowerCase().indexOf("mac") != -1);
var imgDirMiniPopin = "Images";			// directory for images ... e.g. var imgDirCol="/img/"
var autoMoveLayerMiniPopin = true; // reubicar pop-up si sale de pantalla?
/* *********************************** END *** CUSTOMIZE ******************************** */
var callFunctionMiniPopin = "";
var	fixedXMiniPopin = -1			// x position (-1 if to appear below control)
var	fixedYMiniPopin = -1			// y position (-1 if to appear below control)
var	crossobjMiniPopin, ctlNowMiniPopin
var	bPageLoadedMiniPopin=false
var	ieMiniPopin=document.all
var	domMiniPopin=document.getElementById

var	ns4MiniPopin=document.layers
var bShow_MiniPopin = false;

if (domMiniPopin)
{
	//general table
	document.write ("<div id='divSwMiniPopin' style='DISPLAY:none'></div>");
	document.write ("<div onclick='bShow_MiniPopin=true' id='divMiniPopin' style='z-index:+998;position:absolute;visibility:hidden;'></div>");
}

/*********/
function mShadow(){
    document.getElementById( "divSwMiniPopin" ).style.display="block";
    setOpacity( "divSwMiniPopin", 0 );
    var ibox_op_level = 4;
    setIboxOpacity = setOpacity;
    for (var i=0;i<=ibox_op_level;i++) {setTimeout("setIboxOpacity('divSwMiniPopin',"+i+")",70*i);}
}
setOpacity = function (elemid,value)
{
    var e = document.getElementById(elemid);
    e.style.opacity = value/10;
    e.style.filter = 'alpha(opacity=' + value*10 + ')';
}

/***********/
function hideElement(elmId, overDiv)
{
	if (document.all)
	{
		// Find the div's offsetTop and offsetLeft relative to the BODY tag.
		divLeft = overDiv.offsetLeft;
		divTop = overDiv.offsetTop;
		divParent = overDiv.offsetParent;
		if (divParent)
		{
			if (divParent.tagName)
			{
				while (divParent.tagName.toUpperCase() != "BODY")
				{
					divLeft  += divParent.offsetLeft;
					divTop   += divParent.offsetTop;
					divParent = divParent.offsetParent;
				}
			}
		}
		divBottom = divTop + overDiv.offsetHeight - 1;
		divRight = divLeft + overDiv.offsetWidth - 1;
		for (i=0; i<document.getElementsByTagName(elmId).length; i++)
		{
			obj = document.getElementsByTagName(elmId)[i];
			if (!obj || !obj.offsetParent)
			{
				continue;
			}
			// Find the element's offsetTop and offsetLeft relative to the BODY tag.
			objLeft   = obj.offsetLeft;
			objTop    = obj.offsetTop;
			objParent = obj.offsetParent;
			while (objParent.tagName.toUpperCase() != "BODY")
			{
				objLeft  += objParent.offsetLeft;
				objTop   += objParent.offsetTop;
				objParent = objParent.offsetParent;
			}
			objBottom = objTop + obj.offsetHeight - 1;
			objRight = objLeft + obj.offsetWidth - 1;
			if ((
				((objLeft >= divLeft) && (objLeft <= divRight)) ||
				(((objRight) >= divLeft) && (objRight <= divRight)) ||
				((objLeft <= divLeft) && (objRight >= divRight))
				)
				&&
				(
				((objTop >= divTop) && (objTop <= divBottom)) ||
				((objBottom >= divTop) && (objBottom <= divBottom)) ||
				((objTop <= divTop) && (objBottom >= divBottom))
				))
			{
				obj.style.visibility = "hidden";
			}
		}
	}
}
function showElement(elmId)
{
	if (document.all)
	{
		for (i=0; i<document.getElementsByTagName(elmId).length; i++)
		{
			obj = document.getElementsByTagName(elmId)[i];	  
			if (!obj || !obj.offsetParent)
			{
				continue;
			}
			obj.style.visibility = "";
		}
	}
}
function GetPageNamePopin(){
	var sTextSeparator = "#minipopin#";
	var sActualPageNameForHelp = document.getElementById( "hdnPageLocation" ).value;
	var iIndexChar = sActualPageNameForHelp.indexOf( sTextSeparator );
	if ( iIndexChar != -1 ) sActualPageNameForHelp = sActualPageNameForHelp.substring( 0, iIndexChar );
	else sActualPageNameForHelp = aPageHistorySystem[ iPageHistorySystem ];
	return sActualPageNameForHelp;
}

function getStartMiniPopin( sTitle )
{
	var s = "";
	var txt ="<table class='external_1' cellspacing=0 cellpadding=0 border=0><tr><td>";
	txt+="<table class='external_2' cellspacing=0 cellpadding=0 border=0><tr><td>";
	txt+="<table class='external_3' cellspacing=0 cellpadding=0 border=0><tr><td>";
	txt+="<table class='external_4' cellspacing=0 cellpadding=0 border=0><tr><td>";
	txt+="<table class='external_5' cellspacing=0 cellpadding=0 border=0><tr><td>";
	s+=txt;
	if ( sTitle != "" )
	{
	s+='<table class="externalMiniPopin" cellSpacing="0" cellPadding="0" border="0">';// width="481"
		s+='<tr vAlign="top">';
			s+='<td align="right"><div style="position:absolute;top:5px;right:5px"><img onmouseover="this.style.cursor=\'pointer\'"; id="btnClose_MiniPopin" src="' + imgDirMiniPopin + '/closebox.gif"';
					s+='onclick="closeMiniPopin();" name="btnClose_MiniPopin"></div></td>';
		s+='</tr>';
		s+='<tr vAlign="top">';
			s+='<td>';
				s+='<table border="0" cellSpacing="0" cellPadding="0" width="100%">';
					s+='<tr>';
						s+='<td>';
	}
	return s;
}
function getEndMiniPopin( sTitle )
{
	var s = "";
	if ( sTitle != "" )
	{
						s+='</td>';
				s+='</tr>';
			s+='</table>';
			s+='</td>';
		s+='</tr>';
	s+='</table>';
	}
	var txt="</td></tr></table>";
	txt+"</td></tr></table>";
	txt+"</td></tr></table>";
	txt+"</td></tr></table>";
	txt+"</td></tr></table>";
	s+=txt;

	return s;
}
function initMiniPopin(){
	if (!ns4MiniPopin)
	{
		crossobjMiniPopin=(domMiniPopin)?document.getElementById("divMiniPopin").style : ieMiniPopin? document.all.divMiniPopin : document.divMiniPopin
		hideMiniPopin()
		bPageLoadedMiniPopin=true
	}
}
function hideMiniPopin(){
	if (crossobjMiniPopin)
	{
		document.getElementById("divMiniPopin").innerHTML = "";
		if ( crossobjMiniPopin.visibility != "hidden" )
		{
			if (document.getElementById( "hdnPageLocation" ))
				document.getElementById( "hdnPageLocation" ).value = GetPageNamePopin();
			crossobjMiniPopin.visibility="hidden";

			showElement( 'SELECT' );
			showElement( 'APPLET' );
			
			if ( bAjaxIsMac )
				showDivScroll("list","listhidescrollbyminipopin");		
		}
	}
}
function closeMiniPopin()
{
	var	sTmp;
	
	fnSetMiniPopin = "setMiniPopin()";		
	
	document.getElementById("divSwMiniPopin").style.display="none";
	hideMiniPopin();
	
	if ( callFunctionMiniPopin != "" )
	{
		eval( callFunctionMiniPopin );
	}
}
/*** MiniPopin ***/
function constructMiniPopin( sText, sTitle )
{
	sHTML = sText;
	//if ( sTitle != "" ) 
	if ( typeof( sTitle ) == "boolean" )
	{
		if ( sTitle == false )
			document.getElementById("divMiniPopin").innerHTML = sHTML;
	}
	else
		document.getElementById("divMiniPopin").innerHTML = getStartMiniPopin( sTitle ) + sHTML + getEndMiniPopin( sTitle );
	//else document.getElementById("divMiniPopin").innerHTML = sHTML;
}

var bIfInitExecuted_MiniPopin = false;
var OldFunction_MiniPopin = "";

function popUpMiniPopin( sContent, ctl, bFromControl, sTitle, bCentered, bIsPage, bAutoMoveLayerMiniPopin)
{
    mShadow();
	autoMoveLayerMiniPopin = true;
	if ( bAutoMoveLayerMiniPopin != null ) autoMoveLayerMiniPopin = bAutoMoveLayerMiniPopin;
	if ( bIsPage == null ) bIsPage = false;
	bShow_MiniPopin = true;
	if ( bFromControl != null ){ bShow_MiniPopin = bFromControl;}
	else {bFromControl = false;}
	if ( !bIsPage ) document.getElementById( "hdnPageLocation" ).value += "#minipopin#OnlyText";
	if ( sTitle == null ){ sTitle = "";}
	if (!bIfInitExecuted_MiniPopin)
	{
		bIfInitExecuted_MiniPopin = true;
		initMiniPopin();
	}
		/*OldFunction_MiniPopin = document.onclick;
		document.onclick = function hideMiniPopin2() {
			if (!bShow_MiniPopin)
			{
				hideMiniPopin()
			}
			bShow_MiniPopin = false
		}*/

	callFunctionMiniPopin = "";
	var	leftpos=0
	var	toppos=0

	if (bPageLoadedMiniPopin)
	{
		if ( crossobjMiniPopin.visibility == "hidden" )
		{
			if ( bAjaxIsMac )//if (!document.all)//
			{
				showDivScroll("listhidescrollbyminipopin","list");
			}			
			//ctlToPlaceValue	= ctl2
			aTag = ctl
			do {
				aTag = aTag.offsetParent;
				leftpos	+= aTag.offsetLeft;
				toppos += aTag.offsetTop;
				//if (aTag.scrollTop) toppos -=  aTag.scrollTop;
			} while(aTag.tagName!="BODY");

			var iScrollPos = 0;
			aTag = ctl
			do {
			    aTag = aTag.parentNode;
			    if (aTag.scrollTop)
			        iScrollPos += aTag.scrollTop;
			} while (aTag.tagName != "BODY");
			toppos = toppos - iScrollPos;
			
			crossobjMiniPopin.left =	fixedXMiniPopin==-1 ? ctl.offsetLeft	+ leftpos :	fixedXMiniPopin
			crossobjMiniPopin.top = fixedYMiniPopin==-1 ?	ctl.offsetTop +	toppos + ctl.offsetHeight +	2 :	fixedYMiniPopin
			constructMiniPopin( sContent, sTitle );
			
			if ( autoMoveLayerMiniPopin )
			{
				heightLayer = document.getElementById( "divMiniPopin" ).offsetHeight + 30;
				widthLayer = document.getElementById( "divMiniPopin" ).offsetWidth + 15;
				if (window.innerHeight) {
					if ((parseInt(crossobjMiniPopin.top) + heightLayer) > (window.innerHeight + window.pageYOffset))
						crossobjMiniPopin.top = window.innerHeight + window.pageYOffset - heightLayer;
				} else {
					if ((parseInt(crossobjMiniPopin.top) + heightLayer) > (document.body.clientHeight + document.body.scrollTop))
						crossobjMiniPopin.top = document.body.clientHeight + document.body.scrollTop - heightLayer;
				}
				if (window.innerWidth) {
					if ((parseInt(crossobjMiniPopin.left) + widthLayer) > (window.innerWidth + window.pageXOffset))
						crossobjMiniPopin.left = window.innerWidth + window.pageXOffset - widthLayer;
				} else {
					if ((parseInt(crossobjMiniPopin.left) + widthLayer) > (document.body.clientWidth + document.body.scrollLeft))
						crossobjMiniPopin.left = document.body.clientWidth + document.body.scrollLeft - widthLayer;
				}
			}
			else
			{
				heightLayer = document.getElementById( "divMiniPopin" ).offsetHeight + 30;
				widthLayer = document.getElementById( "divMiniPopin" ).offsetWidth + 15;
				var topC = crossobjMiniPopin.top;
				var leftC = 0;
				if (window.innerHeight) {
					if ((parseInt(crossobjMiniPopin.top) + heightLayer) > (window.innerHeight + window.pageYOffset))
						topC = window.innerHeight + window.pageYOffset - heightLayer;
				} else {
					if ((parseInt(crossobjMiniPopin.top) + heightLayer) > (document.body.clientHeight + document.body.scrollTop))
						topC = document.body.clientHeight + document.body.scrollTop - heightLayer;
				}
				if (window.innerWidth) {
					if ((parseInt(crossobjMiniPopin.left) + widthLayer) > (window.innerWidth + window.pageXOffset))
						leftC = window.innerWidth + window.pageXOffset - widthLayer;
				} else {
					if ((parseInt(crossobjMiniPopin.left) + widthLayer) > (document.body.clientWidth + document.body.scrollLeft))
						leftC = document.body.clientWidth + document.body.scrollLeft - widthLayer;
				}
				if ( bAjaxIsMac )
				{
					if ( topC != parseInt( crossobjMiniPopin.top ) )
					{
						crossobjMiniPopin.top = topC;
						heightLayer = document.getElementById( "divMiniPopin" ).offsetHeight + 30;
						crossobjMiniPopin.top = parseInt(crossobjMiniPopin.top) - heightLayer + 5;
					}
				}
				else
				{
					heightLayer = document.getElementById( "divMiniPopin" ).offsetHeight + 30;
					crossobjMiniPopin.top = parseInt(crossobjMiniPopin.top) - heightLayer + 5;
				}
				crossobjMiniPopin.left = leftC;
			}
			hideElement( 'SELECT', document.getElementById("divMiniPopin") );
			hideElement( 'APPLET', document.getElementById("divMiniPopin") );
			
			//if(bCentered) centerMiniPopin(heightLayer, widthLayer);
			
			constructMiniPopin( sContent, sTitle);
			crossobjMiniPopin.visibility=(domMiniPopin||ieMiniPopin)? "visible" : "show"
			//bShow_MiniPopin = true;
		}
		else
		{
			hideMiniPopin()
			if (ctlNowMiniPopin!=ctl)
			{
				popUpMiniPopin( sContent, ctl, bFromControl, sTitle, bIsPage, bAutoMoveLayerMiniPopin, bCentered);
				//popUpMiniPopin( sContent, ctl )
			}
		}
		ctlNowMiniPopin = ctl
		posToCenter(document.getElementById("divMiniPopin"),0,30);
	}
}

function centerMiniPopin(heightLayer, widthLayer){
    var browserWidth = 0;
    var browserHeight = 0;
    if ( document.all ){
        browserWidth = document.body.clientWidth;
        browserHeight = document.body.clientHeight;
    } else {
        browserWidth = window.innerWidth;
        browserHeight = window.innerHeight;
    }
        
    var iSpacePopin = parseInt( ( browserWidth - widthLayer ) / 2 );
    var iSpacePopinTop = parseInt( ( browserHeight - heightLayer ) / 2 );

    if (window.innerHeight) {
        if ((parseInt(iSpacePopinTop) + heightLayer) > (window.innerHeight + window.pageYOffset))
        iSpacePopinTop = window.innerHeight + window.pageYOffset - heightLayer;
    } else {
        if ((parseInt(iSpacePopinTop) + heightLayer) > (document.body.clientHeight + document.body.scrollTop))
        iSpacePopinTop = document.body.clientHeight + document.body.scrollTop - heightLayer;
    }
    if (window.innerWidth) {
        if ((parseInt(iSpacePopin) + widthLayer) > (window.innerWidth + window.pageXOffset))
        iSpacePopin = window.innerWidth + window.pageXOffset - widthLayer;
    } else {
        if ((parseInt(iSpacePopin) + widthLayer) > (document.body.clientWidth + document.body.scrollLeft))
        iSpacePopin = document.body.clientWidth + document.body.scrollLeft - widthLayer;
    }
    document.getElementById( "divMiniPopin" ).style.top = iSpacePopinTop+50;
    document.getElementById( "divMiniPopin" ).style.left = iSpacePopin;
}

window.onscroll = maintPos;
window.onresize = maintPos;
