	// Functions.js
	
	/* START Pop-up Windows Script */

	function popup ( url, name, width, height, posx, posy, 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;
	
		newWindow = open ( url, name, 'width=' + width + ',height=' + height + ',screenX=' + posx + ',left=' + posx + ',screenY=' + posy + ',top=' + posy + ',' + features );

		return newWindow;
	}
	
	/* END Pop-up Windows Script */
	
	/* START SortTable Script */

	function sortTable ( column )	{
		column = toObject ( column );
		if ( column )	{
			var table = findParentNode ( column, 'table' );
			if ( table == null )
				return;
			var groups = table.getElementsByTagName ( 'tbody' );
			for(var i = 0; i < groups.length; i++)	{
				sortTableRows ( groups[i], 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 ( compareAsString );	//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 */

	function toObject ( something )	{
		if ( something.toString().toLowerCase().indexOf ( "[object" ) == -1 && something.toString().toLowerCase().indexOf ( "http://" ) == -1  )
			something = document.getElementById ( something );
		return something;
	}
	
	function hide ( something )	{
		something = toObject ( something );
		if ( something )
			something.style.display = "none";
	}
	
	function anime ( something )	{
		something = toObject ( something );
		if ( something )
			if ( something.style.display == "none" )
				show ( something );
			else
				hide ( something );
	}
	
	function show ( something )	{
		something = toObject ( something );
		if ( something )
			something.style.display = "block";
	}
	
	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 ( something, source ){
		something = toObject ( something );
		if ( something )
			something.src = imagen;
	}
	
	function checkMaxChars( area, maxChars ){
		something = toObject ( something );
		if ( something && something.value.length > maxChars )
			something.value = something.value.substring( 0, maxChars );
	}
	
	function textChange ( something, text )	{
		something = toObject ( something );
		if ( something )
			something.innerHTML = text;
	}
	
	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 compareAsString ( 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 findParentNode ( something, parentName )	{
		var elem = toObject ( something );
		if ( elem )	{
			while ( elem.parentNode.nodeName.toLowerCase ( ) != parentName.toLowerCase ( ) && elem.parentNode.nodeName.toLowerCase ( ) != 'body' )
				elem = elem.parentNode;
	
			if ( elem.parentNode.nodeName.toLowerCase ( ) != parentName.toLowerCase ( ) )
				return null;
			else
				return elem.parentNode;
		}
	}
	
	
	/* START ToolTips Script */

	function initTips ( )	{
		var layer = document.getElementById ( 'tipsLayer' );
		if ( !layer )	{
			document.write ( '<div id="tipsLayer"></div>' );
			layer = document.getElementById ( 'tipsLayer' );
		}
		if ( !layer )	{
			var str =	'        Do You Like ToolTips?\n' +
						'Please Add This Somewhere In Your Page!\n' +
						'      <div id="tipsLayer"></div>';
			alert ( str );
			return;
		}

		layer.style.visibility = 'hidden';
		layer.style.position = 'absolute';
	}
	
	// Use like this: showTip ( 'see this text', '#000000', '#FFFFFF' )

	function showTip ( msg, color, bgcolor ) {
		var layer = null;
		var style = null;

		initTips ( );
		layer = document.getElementById ( 'tipsLayer' );
		if ( !layer )
			return;
		style = layer.style;

		if ( document.onmousemove && document.onmousemove != tipToMouse )	{
			style.visibility = "hidden";
		}
		else if ( showTip.arguments.length < 1 ) {
			// hide
			document.onmousemove = null;
			style.visibility = "hidden";
		}
		else {
			// show
			if ( !color )
				color = "#555555";
			if ( !bgcolor )
				bgcolor = "#FFFFFF";
			var content =
			'<table border="0" cellspacing="0" cellpadding="1" bgcolor="' + color + '"><td>' +
			'<table border="0" cellspacing="0" cellpadding="1" bgcolor="' + bgcolor + 
			'"><td align="center" class="textos">&nbsp\;' + msg + '&nbsp\;</td></table></td></table>';
	
			layer.innerHTML = content;
			//style.visibility = "visible";
			document.onmousemove = tipToMouse;
		}
	}

	function tipToMouse ( evt ) {
		var x = 0;
		var y = 0;
		var layer = document.getElementById ( 'tipsLayer' );
		var style = null;
		if ( !layer )
			return;
		style = layer.style;

		if ( !document.all )
		{
			//NS
			x = evt.pageX;
			y = evt.pageY;
		}
		else
		{
			//IE
			x = event.x + document.body.scrollLeft;
			y = event.y + document.body.scrollTop;
		}
		style.left = x + 5;
		style.top = y + 23;
		style.visibility = "visible";
		return true;
	}

	/* END ToolTips 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;
					}
			}
	}

	window.executeScript = function(text) {
		var startPos = text.indexOf('<script');
		if (startPos >= 0)
			startPos = text.indexOf('>', startPos) + 1;
		while (startPos >= 0) {
			var endPos = text.indexOf('<\/script>', startPos);
			var script = text.substring(startPos, endPos);
			if (window.execScript)
				window.execScript(script);
			else
				window.eval(script);
			if (endPos > startPos) {
				startPos = text.indexOf('<script', endPos);
				if (startPos >= 0)
					startPos = text.indexOf('>', startPos) + 1;
			}
		}
	}

	function sendForm(formObject, idContent, mode) {
		var idcont = document.getElementById(idContent);
		var idform = document.getElementById(formObject);
		if (idcont == undefined) {
			alert("Zona de Contenido no Existe");
			return;
		}
		if (idform == undefined) {
			alert("Formulario no Existe");
			return;
		}
		var callback = {
			success : function(o) {
				idcont.innerHTML = o.responseText;
				executeScript(o.responseText);
//				idcont.style.opacity=1;idcont.filters.alpha.opacity=100;
			},
			failure : function(o) {
				idcont.innerHTML = (mode != 'silent' ? 'Error en la Comunicacion.'
						: '');
			}
		}
		YAHOO.util.Connect.setForm(idform);
		var cObj = YAHOO.util.Connect.asyncRequest('POST', idform.action, callback);
//		idcont.style.opacity=0.4;idcont.filters.alpha.opacity=40;
		mode != 'silent' ? idcont.innerHTML = "<img src='/site/images/loader.gif' border='0'>" : idcont.innerHTML = ' ';
	}

	
	function validateEmail(email) {
		var pos = 0;
		if (email.length > 6 && 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;
	}

	
	function browser(){
		
		if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.indexOf("5.") >= 0){
		return 'IE';
		}
		else if (navigator.appName == "Netscape" && navigator.appVersion.indexOf("5.") >= 0){
		return 'NT';
		}
		else
		return false;
		}
	
	
	function changeEyelashes(id, count, name_eyelash, name_zone )
	{
		for(var i=0 ; i < count ; i++)
		{
			var pt = document.getElementById( name_eyelash + i );
			var zn = document.getElementById( name_zone + i );
			if(pt && zn)
			{
				if(i == id)
				{
					zn.style.display = 'block';
					YAHOO.util.Dom.replaceClass( pt.id , 'notSelected','selected');
				}
				else
				{
					zn.style.display='none';
					YAHOO.util.Dom.replaceClass( pt.id , 'selected', 'notSelected');
				}
			}
		}
	}
