//
// Copyright 2006 Nelson Daza. nelson.daza@gmail.com. All rights reserved.
// DOM HTML 
// ----------------------------------------------------
//
// Functions.js
//
//	version 2.1.8.4 major.minor[.revision[.build]]
//
	
	/* START Pop-up Windows Script */

	function popup ( url, name, width, height, posx, posy, features )	{
		if ( typeof( posx ) == 'undefined' )
			posx = 'center';
		if ( typeof( posy ) == 'undefined' )
			posy = 'middle';
		if ( typeof( features ) == 'undefined' )
			features = '';

		if ( posx.toLowerCase ( ) == 'center' )
			posx = ( screen.width - width ) / 2;
		else if ( posx.toLowerCase ( ) == 'right' )
			posx = (screen.width - width - 30);
		else if ( posx < 0 )
			posx = screen.width - width + posx;
		else 
			posx = 0;
	
		if ( posy.toLowerCase ( ) == 'middle' )
			posy = ( screen.height - height ) / 2;
		else if ( posy.toLowerCase ( ) == 'bottom' )
			posy = ( screen.height - height - 60 );
		else if ( posy < 0 )
			posx = screen.height - height - posy - 30;
		else 
			posy = 0;
	
		if ( typeof( name ) == 'undefined' || typeof( width ) == 'undefined' || typeof( height ) == 'undefined' )
			return open( url );
		else
			return open( url, name, 'width=' + width + ',height=' + height + ',screenX=' + posx + ',left=' + posx + ',screenY=' + posy + ',top=' + posy + ',' + features );
	}
	
	/* END Pop-up Windows Script */

	function validateEmail ( email )	{
		var pos = 0;
		if ( email.length > 7 && email.indexOf ( ' ', 0 ) == -1 )	{
			pos = email.indexOf ( '@', 0 );
			if ( pos > 2 && email.indexOf ( '@', pos ) && email.indexOf ( '.', pos ) > ( pos + 2 ) )	{
				pos = email.indexOf ( '.', pos );
				if ( pos > -1 && pos < email.length - 2 )
					return true;
			}
		}			
		return false;
	}

	var font_size = 9;
	var MAX = 17;
	var MIN = 11;
	
	function changeFont( num )	{
		font_size += num;
		if( font_size > MAX )
			font_size = MAX;
		if( font_size < MIN )
			font_size = MIN;
		 document.getElementsByTagName( 'body' )[0].style.fontSize = font_size + 'px';
	}

	function toObject ( something )	{
		if ( typeof( something ) == 'string' )
			return document.getElementById ( something );
		if ( typeof( something.nodeName ) != 'undefined' )
			return something;
		return null;
	}
	
	function jumpTo ( url )	{
		document.location.href = url;
	}
	
	function hideElement ( something )	{
		something = toObject ( something );
		if ( something )	{
			something.style.visibility = 'hidden';
			something.style.display = 'none';
		}
	}
	
	function showElement ( something )	{
		something = toObject ( something );
		if ( something )	{
			something.style.visibility = 'visible';
			something.style.display = 'block';
		}
	}
	
	function changeVisibility ( something )	{
		something = toObject ( something );
		if ( something )	{
			if ( something.style.visibility == 'visible' )
				hideElement ( something );
			else
				showElement ( something );
		}
	}
	
	function setElementPosition( something, posx, posy )	{
		something = toObject( something );
		something.style.position = 'absolute';
		something.style.left = posx + 'px';
		something.style.top = posy + 'px';
	}
	
	function isDate ( year, month, day )	{
		if ( year.toString().length == 0 )
			return false;
		if ( day == null )	{
			month = ( month == null ) ? '-' : month;
			if ( year.toString().indexOf( month ) == -1 )
				return false;
			
			var arr = year.toString().split( month );
			if ( arr.length != 3 )
				return false;
			year = arr[0];
			month = arr[1];
			day = arr[2];
		}
		month = month - 1;  // javascript month range : 0- 11
		var tempDate = new Date ( year, month, day );
		var nyear = ( tempDate.getYear ( ) < 1000 ) ? tempDate.getYear ( ) + 1900 : tempDate.getYear ( )
		
		return ( ( nyear == year ) && ( month == tempDate.getMonth ( ) ) && ( day == tempDate.getDate ( ) ) );
	}
	
	function imagenChange ( image, source )	{
		image = toObject ( image );
		if ( image )
			image.src = source;
	}
	
	function checkMaxChars( something, maxChars ){
		something = toObject ( something );
		if ( something && something.value.length > maxChars )
			something.value = something.value.substring( 0, maxChars );
	}
	
	function innerChange ( something, child )	{
		something = toObject ( something );
		if ( something )	{
			while ( something.hasChildNodes( ) )
				something.removeChild( something.firstChild );
			if ( typeof ( text ) == 'string' )
				something.appendChild( document.createTextNode( child ) )
			else
				something.appendChild( child )
		}
	}
	
	function bookMark ( value )	{
		var bookData = new Array ( );
		bookData = value.split ( '|' );
		if ( document.all )
			window.external.AddFavorite ( bookData[0], bookData[1] );
		else
			alert( 'Lo Sentimos, los usuarios de Netscape o Mozilla deben agregar a \nfavoritos manualmente desde el menu o haciendo uso de <Ctrl-D>' );
	}

	function moveElement ( elem, nX, nY, nXStepIn, nYStepIn, bPercent, nInterval, onCallBack )	{
		elem = toObject( elem );
		var style = elem.style;
		var nDirX = 0;
		var nDirY = 0;
		var nXStep = nXStepIn;
		var nYStep = nYStepIn;
		
		if ( nXStep <= 0 )
			nXStep = 1;
	
		if ( nYStep <= 0 )
			nYStep = 1;
			
		var left = Number ( style.left.replace( 'px', '' ) );
		var top = Number ( style.top.replace( 'px', '' ) );
		
		if ( Math.abs( nX - left ) > 0 )	{
			if ( bPercent )
				nXStep = Math.ceil ( ( nXStepIn ) * Math.abs ( nX - left ) / 100 );
			
			if ( Math.abs( nX - left ) < Math.abs( nXStep ) + 1 )
				nXStep = Math.abs( nX - left );
			
			nDirX = ( nX - left ) >= 0 ? 1 : -1;
			
			left += nXStep * nDirX;
			style.left = left + 'px';
		}

		if ( Math.abs( nY - top ) > 0 )	{
			if ( bPercent )
				nYStep = Math.ceil ( ( nYStep ) * Math.abs( nY - top ) / 100 );

			if ( Math.abs( nY - top ) < Math.abs( nYStep ) + 1 )
				nYStep = Math.abs( nY - top );
			
			nDirY = ( nY - top ) >= 0 ? 1 : -1;
			
			top += nYStep * nDirY;
			style.top = top + 'px';
		}
		
		if ( nDirX == 0 && nDirY == 0 )	{
			if ( onCallBack != undefined )	{
				var func = new Function( onCallBack );
				func( );
			}
		}
		else
			elem.timeout = setTimeout( "moveElement ( '" + elem.id + "', " + nX + ", " + nY + ", " + nXStepIn + ", " + nYStepIn + ", " + bPercent + ", " + nInterval + ", \"" + onCallBack + "\" )", nInterval );
	}

	/* START SortTable Script */

	function compare ( obj1, obj2 )	{
		var str1 = obj1.toString( ).toLowerCase( );
		var str2 = obj2.toString( ).toLowerCase( );
		if ( str1 == str2 )
			return 0;
		if ( isNaN ( str1 ) && isNaN ( str2 ) )	{
			return ( str1 > str2 ) ? 1 : -1;
		}
		
		return Number( str1 ) - Number ( str2 );
	}

	function sortTable ( column )	{
		column = toObject ( column );
		if ( column )	{
			var table = column;
			while ( table && table.parentNode && table.parentNode.nodeName.toLowerCase( ) != 'table' )
				table = table.parentNode;
			if ( table )	{
				var groups = table.getElementsByTagName ( 'tbody' );
				alert( groups.length )
				for( var c = 0; c < groups.length; c++ )
					sortTableRows ( groups[c], column.parentNode.cellIndex );
			}
		}
	}
	
	function sortTableRows ( group, col )	{
		var oRows = new Array ( );	//set the rows to be removed as an array of cloneNodes
		var iRows = new Array ( );	//set those rows' indexes as array

		for ( var c = 0; c < group.rows.length; c++ )	{
			oRows[c] = group.rows[c].cloneNode ( true );
			iRows[c] = group.rows[c].sectionRowIndex;
		}
		var oCol = new Array ( );			//set the string content of column cells as array
		var vCol = new Array ( );			//set the "compare" array for a future sort/reverse

		for ( c = 0; c < iRows.length; c++ )	{
			if ( group.rows[c].cells[col] )
				vCol[c] = oCol[c] = [group.rows[c].cells[col].firstChild.nodeValue,iRows[c]];
			else
				vCol[c] = oCol[c] = ['',iRows[c]];
		}

		oCol.sort ( compare );	//sorts the content array

		if ( vCol.toString ( ) == oCol.toString ( ) )
			oCol.reverse ( );	//if the content was already sorted, reverse

		for ( c = 0; c < group.rows.length; c++ )	{
			group.replaceChild ( oRows[oCol[c][1]], group.rows[c] );	//writes the rows in a sorted/reversed order
		}
	}

	/* END SortTable Script */

	/**********************************/
	/* BEGIN General Functions Script */
	/**********************************/
	
	function MM_swapImgRestore ( ) {	//v3.0
		var i, x, a = document.MM_sr;
		for ( i = 0; a && i < a.length && ( x = a[i] ) && x.oSrc; i++ )
			x.src = x.oSrc;
	}
	
	function MM_preloadImages ( ) {	//v3.0
		var d = document;
		if ( d.images )	{
			if ( !d.MM_p )
				d.MM_p = new Array();
			var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
			for ( i = 0; i < a.length; i++ )
				if ( a[i].indexOf("#") != 0 )	{
					d.MM_p[j] = new Image;
					d.MM_p[j++].src = a[i];
				}
		}
	}
	
	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 MM_swapImage ( )	{	//v3.0
		var i, j = 0, x, a = MM_swapImage.arguments;
		document.MM_sr = new Array;
		for( i = 0; i < ( a.length - 2 ); i += 3 )
			if ( ( x = MM_findObj( a[i] ) ) != null )	{
				document.MM_sr[j++] = x;
			if( !x.oSrc )
				x.oSrc = x.src;
			x.src = a[i+2];
		}
	}
	
	function MM_jumpMenu ( targ, selObj, restore )	{	//v3.0
		eval ( targ + ".location='" + selObj.options[selObj.selectedIndex].value + "'" );
		if ( restore )
			selObj.selectedIndex = 0;
	}
	
	function MM_nbGroup ( event, grpName ) { //v6.0
		var i, img, nbArr, args = MM_nbGroup.arguments;
		if ( event == "init" && args.length > 2 ) {
			if ( ( img = MM_findObj ( args[2] ) ) != null && !img.MM_init ) {
				img.MM_init = true;
				img.MM_up = args[3];
				img.MM_dn = img.src;
				if ( ( nbArr = document[grpName] ) == null ) nbArr = document[grpName] = new Array ( );
					nbArr[nbArr.length] = img;
				for ( i = 4; i < args.length - 1; i += 2 )
					if ( ( img = MM_findObj ( args[i] ) ) != null ) {
						if ( !img.MM_up )
							img.MM_up = img.src;
						img.src = img.MM_dn = args[i + 1];
						nbArr[nbArr.length] = img;
					}
				}
			} else if ( event == "over" ) {
				document.MM_nbOver = nbArr = new Array ( );
				for ( i = 1; i < args.length - 1; i += 3 )
					if ( ( img = MM_findObj ( args[i] ) ) != null ) {
						if ( !img.MM_up )
							img.MM_up = img.src;
						img.src = ( img.MM_dn && args[i + 2] ) ? args[i + 2] : ( ( args[i + 1] )? args[i + 1] : img.MM_up );
						nbArr[nbArr.length] = img;
					}
			} else if ( event == "out" ) {
				for ( i = 0; i < document.MM_nbOver.length; i++ ) {
					img = document.MM_nbOver[i];
					img.src = ( img.MM_dn ) ? img.MM_dn : img.MM_up;
				}
			} else if ( event == "down" ) {
				nbArr = document[grpName];
				if ( nbArr )
					for ( i = 0; i < nbArr.length; i++ ) {
						img = nbArr[i];
						img.src = img.MM_up;
						img.MM_dn = 0;
					}
				document[grpName] = nbArr = new Array ( );
				for ( i = 2; i < args.length - 1; i += 2 )
					if ( ( img = MM_findObj ( args[i] ) ) != null ) {
						if ( !img.MM_up )
							img.MM_up = img.src;
						img.src = img.MM_dn = ( args[i + 1] )? args[i + 1] : img.MM_up;
						nbArr[nbArr.length] = img;
					}
			}
	}
	

	function setFontSize( size )	{
		var childNodes = document.body.childNodes;
		for( var c = 0; c < childNodes.length; c ++ )	{
			setNodeFontSize( childNodes.item( c ), size );
		}
		
		if( window.frame_content ){
			window.frame_content.setFontSize( size );
		}
	}
	
	function imprimir() {
		window.open("print.html", "", "width=563, height=500, resizable=false, scrollbars=yes");
	}
	
	function enviar(idFile) {
		window.open("pages/amigo.php?send=" + escape(document.location.search), "", "width=500, height=370, scrollbars=no, resizable=false");
	}
	
	function DownloadIt (idFile) {
		if (!document.getElementById("downloadit_zone")) {
			elDiv 		= document.createElement ("div");
			elDiv.id 	= "downloadit_zone";
			
			document.body.appendChild (elDiv);
			hideElement ('downloadit_zone');
		}
		
		if (document.captureEvents)
			document.captureEvents (Event.MOUSEMOVE);
			
		document.onmousemove = tipToMouse;
		
		
		var HTML = 	'<div style="width: 189px; height: 152px; position:absolute; top:5px; left:5px; filter: alpha(opacity=30); -moz-opacity: 0.3;">' +
						'<img name="popup_r2_c1" width="189" src="site/images/popup_fondo.gif"  height="152" border="0" id="popup_r2_c1" alt="" />' +
					'</div>' +
					'<div style="position:absolute; top:0px; left:0px;">' +
						'<table border="0" cellpadding="0" cellspacing="0" width="189">' +
							'<tr>' +
								'<td><img name="popup_r1_c1" src="site/images/popup_r1_c1.gif" width="189" height="24" border="0" id="popup_r1_c1" alt="" /></td>' +
							'</tr>' +
							'<tr>' +
							'<td>' +
								'<table align="left" border="0" cellpadding="0" cellspacing="0" width="189">' +
									'<tr>' +
										'<td width="4"><img name="popup_r2_c1" width="4" src="site/images/popup_r2_c1.jpg"  height="109" border="0" id="popup_r2_c1" alt="" /></td>' +
										'<td id="content_zone" bgcolor="#FFFFFF" valign="top" class="textos"></td>' +
										'<td width="5"><img name="popup_r2_c3" src="site/images/popup_r2_c3.jpg" width="5" height="109" border="0" id="popup_r2_c3" alt="" /></td>' +
									'</tr>' +
									'</table>' +
								'</td>' +
							'</tr>' +
							'<tr>' +
								'<td><img name="popup_r3_c1" src="site/images/popup_r3_c1.gif" width="189" height="19" border="0" id="popup_r3_c1" alt="" /></td>' +
							'</tr>' +
						'</table>' +
					'</div>';
		
		document.getElementById("downloadit_zone").innerHTML = HTML;
		
		showElement ('downloadit_zone');
		
		getDownloadItInfo (idFile, 'content_zone');
	}
	
	function HideDownloadIt () {
		hideElement ('downloadit_zone');
	}
	
	function tipToMouse ( e ) {
		var currentX = 0;
		var currentY = 0;

		if ( !e )
			e = window.event;
		if ( e.pageX || e.pageY )	{
			currentX = e.pageX
			currentY = e.pageY
		}
		else if ( e.clientX || e.clientY )	{
			currentX = e.clientX + document.body.scrollLeft;
			currentY = e.clientY + document.body.scrollTop;
		}

		setElementPosition( 'downloadit_zone', currentX - 150, currentY - 160 );
		return true;
	}
	
	function getDownloadItInfo (idFile, divId) {
		
		var objLayer = document.getElementById (divId);
		objLayer.innerHTML = '<img src="site/images/tiny_red.gif" width="10" height="10" hspace="5"><span style="font-family:verdana;font-size:12px">Cargando ...</span>';
		
		var ht = HTTPRequest.get (
			{
				'url' : "site/pages/showContent.php?idFile=" + idFile,
		
				'cache' : false,
				'onSuccess' : function ( request )            
				{
					objLayer.innerHTML = request.responseText;
				},
				'onError' : function ( obj )            
				{
					objLayer.innerHTML = '<span class="verdanabasicarojo"><b>En este momento el servicio requerido no est&aacute; disponible.</b></span><br /><span class="verdanabasica"><b>Puedes recargar esta p&aacute;gina para intentarlo otra vez.</b></span>';
				 }
		
			  }
		);
	}