/*******************************************
This code use functions from:
Generic DHTML do everything script
By Mark 'Tarquin' Wilton-Jones .
You can see  the full original and complete script file dhtmlapi.js.
The script was provided for free by http://www.howtocreate.co.uk/
*******************************************/

/*---
Last update : 06/05/2008
---*/

var nIdStatus = null;
var nTop = 5;
var nLeft = 0;
var nWidth = 0;
var	nScrWidth = 0;
var bHintOn = false;
var nHintWidth = 50;
var nXOffSet = 0;
var nYOffSet = 0;
var cDivHelp = 'wsHelpWin';
var hwHelp, hwTooltip;
var bInitialized = false;
var bRightScroll = true;
var bTooltip = false;

var aDivs = [];
var aSkins = [];

var bWH_NS = (document.layers)? true:false;
var bWH_IE = (document.all)? true:false;

function myWinsInitialized() {

	if( ! bInitialized )  {	
		hwHelp = document.createElement("div");
		hwHelp.id = "wsHelpWin";
		hwHelp.setAttribute("id","wsHelpWin");
		hwHelp.className = "wsHelpClass";
		hwHelp.style.position = "absolute";
		hwHelp.style.visibility = "hidden";
		document.getElementsByTagName("body")[0].appendChild( hwHelp );
		
		
		hwTooltip = document.createElement("span");
		hwTooltip.id = "wsTooltipWin";
		hwTooltip.setAttribute("id","wsTooltipWin");
		hwTooltip.style.position = "absolute";
		document.getElementsByTagName("body")[0].appendChild( hwTooltip );
						
		if( typeof hwHelp !== 'undefined' ) {
			MWJ_changeZIndex( cDivHelp, 5 );
			
			MWJ_monitorMouse( 
				function () {
					if( bHintOn )
						MWJ_changePosition( cDivHelp, 
							MWJ_getMouse[0] + nXOffSet, 
							MWJ_getMouse[1] + nYOffSet,
							true
						);
				}
			);
			bInitialized = true;			
		}
	}

	return bInitialized;
}

function ScrollR() { 
	nLeft = nLeft + 20;
	MWJ_changePosition( cDivHelp, nLeft, nTop, true );

	if( bRightScroll ) {
		if( nLeft < nScrWidth )
	   		nIdStatus = window.setTimeout( 'ScrollR()', 50 );
		else
	  		MWJ_changeVisibility( cDivHelp, false );		
	}
	else {
		if( nLeft < 5 ) 
	   		nIdStatus = window.setTimeout( 'ScrollR()', 50 );
	}
}

function ScrollL() { 
	nLeft = nLeft - 20;
	MWJ_changePosition( cDivHelp, nLeft, nTop, true );

	if( bRightScroll ) {
		nAux = nScrWidth - nWidth;
		if( nLeft > nAux ) 
			nIdStatus = window.setTimeout( 'ScrollL()', 50 );
	}
	else {
		if( nLeft > -120 ) 
	   		nIdStatus = window.setTimeout( 'ScrollL()', 50 )
	   	else
	  		MWJ_changeVisibility( cDivHelp, false );
	}
}

function hintOn(msg,nWidth) {
	if( ! myWinsInitialized() ) return false;

	MWJ_changeVisibility( cDivHelp, false );
	if( nIdStatus != null ) window.clearTimeout( nIdStatus );  

	cEffect = "z-index:5";

	if( nWidth != null ) 
		nXOffSet = nWidth / 2 * (-1); // ( nWidth * (-1) ) + 15;
	else
		nXOffSet = nHintWidth / 2 * (-1);

	if( document.body.scrollLeft && ( nXOffSet < ( document.body.scrollLeft + 5 ) ) ) nXOffSet = 5;

	nYOffSet = 18;

	var content = "<table class='wsTooltipClass'";

	if( nWidth != null ) 
		content += " style='width:"+ nWidth +"px'";  

	// content += " style=' ' ";
	content += "><tr><td align='center'>";
	content += "&nbsp;"+msg+"&nbsp;"
	content += "</td></tr></table>"	

	if( hwHelp.style.filter ) {
		hwHelp.style.filter = cEffect;
		hwHelp.filters[0].Apply();
	} 

	if ( bWH_IE ) 
		hwHelp.innerHTML = content
	else
	if ( bWH_NS ) { 
		hwHelp.document.write(content); 
		hwHelp.document.close();
	}
	else
		hwHelp.innerHTML = content;

	MWJ_changeVisibility( cDivHelp, true );
	if( hwHelp.style.filter ) hwHelp.filters[0].Play();

	bHintOn = true;
}

function pop(msg) {
	popext( msg, null, null );
}

function popext(msg, cTitle, cWidth ) {
	if( ! myWinsInitialized() ) return false;

	MWJ_changeVisibility( cDivHelp, false );
	if( nIdStatus != null ) window.clearTimeout( nIdStatus );  

	if( cWidth == null )
		nWidth = 120;
	else {
		if( typeof( window.innerWidth ) == 'number' )
			nWidth = cWidth
		else
			nWidth = parseInt( cWidth );
	}
	
	nTop = wsGetTop( 5 );
	nScrWidth = wsGetWidth();
	if( bRightScroll )
		nLeft = nScrWidth + 115;
	else
		nLeft = -115;
	MWJ_changePosition( cDivHelp, nLeft, nTop, true );

	if( cTitle == null ) cTitle = 'Ayuda';

	var content = "<table class='wsPopScroll'";
	cStyle = "";
	if( cWidth !== null ) 
		cStyle += "width:" + cWidth + "px !important;";
	if( cStyle !== '' )
		content += ' style="' + cStyle + '"';
	content += "><tr><th>" + cTitle + "</th></tr>"
	content += "<tr><td>"+msg+"</td></tr></table>";

	if ( bWH_IE ) 
		document.all(cDivHelp).innerHTML = content
	else
	if ( bWH_NS ) { 
		hwHelp.document.write(content); 
		hwHelp.document.close();
	}
	else
		hwHelp.innerHTML = content;

	MWJ_changeVisibility( cDivHelp, true );

	if( nIdStatus != null ) window.clearTimeout( nIdStatus );  

	if( bRightScroll )
		ScrollL();
	else
		ScrollR();
}

function freeWin( cTitle, cHTML, nX, nY, bIsHintOn ) {
	if( ! myWinsInitialized() ) return false;

	if( bIsHintOn == null ) bIsHintOn = true;

	MWJ_changeVisibility( cDivHelp, false );
	if( nIdStatus != null ) window.clearTimeout( nIdStatus );  
	
	var nLeftMargin = 5;
	var nTopMargin = 5;

	var content = "<table class='wsPopMouseClass'>";
	content += "<tr><th>"+cTitle+"</th></tr>"
	content += "<tr><td>"+cHTML+"</td></tr></table>";

	if ( bWH_IE ) 
		hwHelp.innerHTML = content
	else
	if ( bWH_NS ) { 
		hwHelp.document.write(content); 
		hwHelp.document.close();
	}
	else
		hwHelp.innerHTML = content;

	nYOffSet = wsGetTop( nTopMargin );
	nXOffSet = wsGetLeft( nLeftMargin );
	
	if( ! bIsHintOn ) {
		nXOffSet += nX;
		nYOffSet += nY;
		
		MWJ_changePosition( cDivHelp, nXOffSet, nYOffSet, true );
	}
	else {
		var nLeft = MWJ_getMouse[0] + nX;
		if( nLeft < nXOffSet ) nX += nXOffSet - nLeft;

		var nTop = MWJ_getMouse[1] + nY;
		if( nTop < nYOffSet ) nY += nYOffSet - nTop;

		nYOffSet = nY;
		nXOffSet = nX;
		
		MWJ_changePosition( cDivHelp, MWJ_getMouse[0] + nXOffSet, MWJ_getMouse[1] + nYOffSet, true );
	}

	MWJ_changeVisibility( cDivHelp, true );

	bHintOn = bIsHintOn;
}

function wsGetTop( nMargin ) {
	if( window.innerHeight )
		return window.pageYOffset + nMargin;
	else
	if (document.documentElement && document.documentElement.scrollTop)
		return document.documentElement.scrollTop + nMargin;
	else
	if (document.body)
		return document.body.scrollTop + nMargin;
	else
		return nMargin;	
}

function wsGetLeft( nMargin ) {
	if (document.documentElement && document.documentElement.scrollLeft)
		return document.documentElement.scrollLeft + nMargin;
	else if (document.body)
		return document.body.scrollLeft + nMargin;
	else
		return nMargin;
}

function wsGetWidth() {
  if( typeof( window.innerWidth ) == 'number' )
    nAux = window.innerWidth; // no IE
  else 
  if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) //IE 6+ in 'standards compliant mode'      
    nAux = document.documentElement.clientWidth;
  else 
  if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) //IE 4 compatible
    nAux = document.body.clientWidth;
  if( ! bIE ) nAux -= 20;
  return nAux;
}

function wsGetHeight() {
  if( typeof( window.innerWidth ) == 'number' )
    return window.innerHeight; //Non-IE
  else 
  if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) //IE 6+ in 'standards compliant mode'
    return document.documentElement.clientHeight;
  else 
  if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) //IE 4 compatible
    return document.body.clientHeight;
}

function kill() { 
	if( ! myWinsInitialized() ) return false;
	
	if( nIdStatus != null ) window.clearTimeout( nIdStatus );
	if( bRightScroll )
		ScrollR();
	else
		ScrollL();
}

function hintOff() {
	if( ! myWinsInitialized() ) return false;
	
	bHintOn = false;
	if( nIdStatus != null ) window.clearTimeout( nIdStatus );  
	MWJ_changeVisibility( cDivHelp, false );
}

// Waly Windows Functions

function IsDiv( cId ) {
	nPos = -1;
	for( i=0; i<aDivs.length; i++ ) 
		if( aDivs[i] == cId ) {
			nPos = i;
			break;
		};
	return nPos;
}

function DoModalDiv( cId ) {
	nPos = IsDiv( cId );
	if(  nPos < 0 ) {
		nPos = aDivs.length;
		document.write( '<div id="' + cId + '" class="wsHelpWin"></div>' );
		aDivs[nPos] = cId;
		aSkins[nPos] = MWJ_findObj( aDivs[nPos] );
	}
}

function ShowModal( cId, cTitle, cClass, cHTML, nWidth, nX, nY ) {
	nPos = IsDiv(cId);
	if( nPos < 0 ) return;
	
	hwHelpMW = aSkins[nPos];
	cModalWin = aDivs[nPos];

	C = "'";	
	cHTML = '<table class="'+cClass+'" style="width:'+nWidth+'"><tr><th style="text-align:left"><a href="javascript:CloseModal(' +C+ cId +C+ ')"><span title="Cerrar Ventana" style="background:black;color:white;border:1px solid red">X</span></a>&nbsp;'+cTitle+'</th><tr><td>' + cHTML + '</td></tr></table>';
	
	CloseModal( cId );
	
	if ( bWH_IE ) 
		hwHelpMW.innerHTML = cHTML
  	else
  	if ( bWH_NS ) 
  	{ 
		hwHelpMW.document.write(cHTML); 
		hwHelpMW.document.close();
  	}
  	else
		hwHelpMW.innerHTML = cHTML;
	
	if( ( nX != null ) && ( nY != null ) ) {
		aPos = MWJ_getMouseCoords();
		MWJ_changePosition( cModalWin, 
							MWJ_getMouse[0] + nX, 
							MWJ_getMouse[1] + nY,
							true
		);
	}
	MWJ_changeVisibility( cModalWin, true );
}

function CloseModal( cId ) {
	nPos = IsDiv(cId);
	if( nPos >= 0 )
		MWJ_changeVisibility( aDivs[nPos], false );
}	


/* *** BEGIN TOOLTIPS *** */
/*
javascript for Bubble Tooltips by Alessandro Fulciniti - http://pro.html.it - http://web-graphics.com 
*/
function enableTooltips( cControl, cTag, cId ) {
	var aControls, i;

	if( ! document.getElementById || ! document.getElementsByTagName ) return false;
	if( ! myWinsInitialized() ) return false;
	
	// AddCss();
	if( cTag == null ) cTag = "a";
	if ( cControl == null )
		aControls = document.getElementsByTagName( cTag );
	else
		aControls = document.getElementById( cControl ).getElementsByTagName( cTag );
	for( i=0; i < aControls.length; i++)
	    Prepare( aControls[i], cId );
}

function Prepare( oElement, cId ) {
	var oTooltip, cTitle = '', acTexts, oB, oSpan, cLink;
	
	cTitle = oElement.getAttribute( "title" );
	if( ( cTitle == null ) || ( cTitle.length == 0 ) ) return;
	if( cId !== null ) {
		if( cTitle.indexOf( cId ) !== 0 ) return;
		else 
			cTitle = cTitle.substr( cId.length );
	}
	oElement.removeAttribute( "title" );
	oElement.removeAttribute( "alt" );
	oTooltip = CreateEl( "span", "wsTooltipClass" );
	acTexts = cTitle.split('\\n');
	for( var i in acTexts ) {
	 	oTooltip.appendChild( document.createTextNode(acTexts[i]) );
		oTooltip.appendChild( document.createElement('br') );
	}
	setOpacity( oTooltip );
	oElement.oTooltip = oTooltip;
	oElement.onmouseover = showTooltip;
	oElement.onmouseout = hideTooltip;
	oElement.onmousemove = Locate;
}

function showTooltip(e){
	hwTooltip.appendChild( this.oTooltip );
	Locate(e);
}

function hideTooltip(e){
	if( hwTooltip.childNodes.length > 0 ) hwTooltip.removeChild( hwTooltip.firstChild );
}

function setOpacity(e){
	e.style.filter = "alpha(opacity:95)";
	e.style.KHTMLOpacity = "0.95";
	e.style.MozOpacity = "0.95";
	e.style.opacity = "0.95";
}

function CreateEl(cTag,cClass){
	var o = document.createElement(cTag);
	o.className = cClass;
	o.style.display = "block";
	return(o);
}

/*
function AddCss(){
	var oLink = CreateEl("link");
	oLink.setAttribute("type","text/css");
	oLink.setAttribute("rel","stylesheet");
	oLink.setAttribute("href","../opacHTML/bt.css");
	oLink.setAttribute("media","screen");
	document.getElementsByTagName("head")[0].appendChild(oLink);
}
*/

function Locate(e){
	var aCoords = MWJ_getMouseCoords(e);
	var nX=aCoords[0], nY=aCoords[1];
	var w = wsGetWidth(), h = wsGetHeight();
		
	if( ( nX + hwTooltip.clientWidth - 20 ) < w ) nX -= 20; else nX -= ( ( nX + hwTooltip.clientWidth ) - w ) + 10;
	if( ( nY + hwTooltip.clientHeight + 15 ) < h ) nY += 15; else nY -= hwTooltip.clientHeight + 10; 
	
	hwTooltip.style.top = nY + "px";
	hwTooltip.style.left = nX + "px";
}

/* *** END TOOLTIPS *** */

 // make the specified div a windowed control in IE6
 // this masks an iframe (which is a windowed control) onto the div,
 // turning the div into a windowed control itself
 function makeWindowed(p_div)
 {
	var is_ie6 =
	   document.all && 
	   (navigator.userAgent.toLowerCase().indexOf("msie 6.") != -1);
	if (is_ie6)
	{
	   var html =
		  "<iframe style=\"position: absolute; display: block; " +
		  "z-index: -1; width: 100%; height: 100%; top: 0; left: 0;" +
		  "filter: mask(); background-color: #ffffff; \"></iframe>";
	   if (p_div) p_div.innerHTML += html;
	   // force refresh of div
	   var olddisplay = p_div.style.display;
	   p_div.style.display = 'none';
	   p_div.style.display = olddisplay;
	};
 }

/* ******************************************
    Generic DHTML do everything script
By Mark 'Tarquin' Wilton-Jones 28-29/9/2002
Updated 19/10/2004 for event handler bug fix
******************************************* */

function MWJ_findObj( oName, oFrame, oDoc ) {
	if( !oDoc ) { if( oFrame ) { oDoc = oFrame.document; } else { oDoc = window.document; } }
	if( oDoc[oName] ) { return oDoc[oName]; } if( oDoc.all && oDoc.all[oName] ) { return oDoc.all[oName]; }
	if( oDoc.getElementById && oDoc.getElementById(oName) ) { return oDoc.getElementById(oName); }
	for( var x = 0; x < oDoc.forms.length; x++ ) { if( oDoc.forms[x][oName] ) { return oDoc.forms[x][oName]; } }
	for( var x = 0; x < oDoc.anchors.length; x++ ) { if( oDoc.anchors[x].name == oName ) { return oDoc.anchors[x]; } }
	for( var x = 0; document.layers && x < oDoc.layers.length; x++ ) {
		var theOb = MWJ_findObj( oName, null, oDoc.layers[x].document ); if( theOb ) { return theOb; } }
	if( !oFrame && window[oName] ) { return window[oName]; } if( oFrame && oFrame[oName] ) { return oFrame[oName]; }
	for( var x = 0; oFrame && oFrame.frames && x < oFrame.frames.length; x++ ) {
		var theOb = MWJ_findObj( oName, oFrame.frames[x], oFrame.frames[x].document ); if( theOb ) { return theOb; } }
	return null;
}
function MWJ_changeVisibility( oName, oVis, oFrame ) {
	var theDiv = MWJ_findObj( oName, oFrame ); if( !theDiv ) { return; }
	if( theDiv.style ) { theDiv.style.visibility = oVis ? 'visible' : 'hidden'; } else { theDiv.visibility = oVis ? 'show' : 'hide'; }
}
function MWJ_changePosition( oName, oXPos, oYPos, oRel, oFrame ) {
	var theDiv = MWJ_findObj( oName, oFrame ); if( !theDiv ) { return; }
	if( theDiv.style ) { theDiv = theDiv.style; } var oPix = document.childNodes ? 'px' : 0;
	if( typeof( oXPos ) == 'number' ) { theDiv.left = ( oXPos + ( oRel ? 0 : parseInt( theDiv.left ) ) ) + oPix; }
	if( typeof( oYPos ) == 'number' ) { theDiv.top = ( oYPos + ( oRel ? 0 : parseInt( theDiv.top ) ) ) + oPix; }
}
function MWJ_changeZIndex( oName, ozInd, oFrame ) {
	var theDiv = MWJ_findObj( oName, oFrame ); if( !theDiv ) { return; }
	if( theDiv.style ) { theDiv = theDiv.style; } theDiv.zIndex = ozInd;
}
function MWJ_changeDisplay( oName, oDisp, oFrame ) {
	var theDiv = MWJ_findObj( oName, oFrame ); if( !theDiv ) { return; }
	if( theDiv.style ) { theDiv = theDiv.style; } if( typeof( oDisp ) == 'string' ) { oDisp = oDisp.toLowerCase(); }
	theDiv.display = ( oDisp == 'none' ) ? 'none' : ( oDisp == 'block' ) ? 'block' : ( oDisp == 'inline' ) ? 'inline' : '';
}
function MWJ_getSize( oFrame ) {
	if( !oFrame ) { oFrame = window; } var myWidth = 0, myHeight = 0;
	if( typeof( oFrame.innerWidth ) == 'number' ) { myWidth = oFrame.innerWidth; myHeight = oFrame.innerHeight; }
	else if( oFrame.document.documentElement && ( oFrame.document.documentElement.clientWidth || oFrame.document.documentElement.clientHeight ) ) {
		myWidth = oFrame.document.documentElement.clientWidth; myHeight = oFrame.document.documentElement.clientHeight; }
	else if( oFrame.document.body && ( oFrame.document.body.clientWidth || oFrame.document.body.clientHeight ) ) {
		myWidth = oFrame.document.body.clientWidth; myHeight = oFrame.document.body.clientHeight; }
	return [myWidth,myHeight];
}
function MWJ_getScroll( oFrame ) {
	if( !oFrame ) { oFrame = window; } var scrOfX = 0, scrOfY = 0;
	if( typeof( oFrame.pageYOffset ) == 'number' ) { scrOfY = oFrame.pageYOffset; scrOfX = oFrame.pageXOffset; }
	else if( oFrame.document.documentElement && ( oFrame.document.documentElement.scrollLeft || oFrame.document.documentElement.scrollTop ) ) {
		scrOfY = oFrame.document.documentElement.scrollTop; scrOfX = oFrame.document.documentElement.scrollLeft; }
	else if( oFrame.document.body && ( oFrame.document.body.scrollLeft || oFrame.document.body.scrollTop ) ) {
		scrOfY = oFrame.document.body.scrollTop; scrOfX = oFrame.document.body.scrollLeft; }
	return [scrOfX,scrOfY];
}
function MWJ_monitorMouse(oFunc) {
	if( document.captureEvents && Event.MOUSEMOVE ) { document.captureEvents( Event.MOUSEMOVE ); }
	window.MWJ_getMouse = [0,0]; window.MWJstoreFunc = oFunc;
	document.onmousemove = function (e) { window.MWJ_getMouse = MWJ_getMouseCoords(e); if( window.MWJstoreFunc ) { window.MWJstoreFunc(); } };
}
function MWJ_getMouseCoords(e) {
	if( !e ) { e = window.event; } if( !e || ( typeof( e.pageX ) != 'number' && typeof( e.clientX ) != 'number' ) ) { return[0,0]; }
	if( typeof( e.pageX ) == 'number' ) { var xcoord = e.pageX; var ycoord = e.pageY; } else {
		var xcoord = e.clientX; var ycoord = e.clientY;
		if( !( ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) || ( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) || window.navigator.vendor == 'KDE' ) ) {
			if( document.documentElement && ( document.documentElement.scrollTop || document.documentElement.scrollLeft ) ) {
				xcoord += document.documentElement.scrollLeft; ycoord += document.documentElement.scrollTop;
			} else if( document.body && ( document.body.scrollTop || document.body.scrollLeft ) ) {
				xcoord += document.body.scrollLeft; ycoord += document.body.scrollTop;
			} } } return [xcoord,ycoord];
}
