	// Validar si existen solo espacios.
	function isTrim( input, msg1, msg2 ) {
		var strError = "";
		
		if( input.value.replace( / /g, "" ) == "" ) {
			input.value = "";
			if( msg2 == "undefined" || msg2 == null ) {
				strError += "- " + msg1 + " es requerido.\n";
			}
			else {
				strError += "- " + msg1 + " es requerido y no acepta solo espacios.\n";
			}
		}
		
		return strError;
	}
	
	// Validar si un Drop-Down es seleccionado
	function isSelected( Select, msg ) {
		var strError = "";
		
		if( Select[ Select.selectedIndex ].value == "-1" ) {
			strError = "- " + msg + " es requerido.\n";
		}
		
		return strError;
	}
	
	function isMatchPassword( input1, msg1, input2, msg2 ) {
		var errors = "";
		
		errors += isTrim( input1, msg1, "" );
		errors += isTrim( input2, msg2, "" );
		
		if( errors == "" && ( ( input1.value != input2.value ) || ( input1.value.length < 5 || input2.value.length < 5 ) ) ) {
			errors = "- " + msg1 + " y " + msg2 + " no coinciden y debe contar como mínimo de 5 caracteres.\n";
		}
		
		return errors;
	}
	
	function lengthPassword( input, msg, count ) {
		var errors = "";
		
		if( input.value.length < count ) {
			errors = "- " + msg + " debe contener por lo menos " + count + " caracteres.\n";
		}
		
		return errors;
	}
	
	// Mensaje y DecripciÃ³n de las excepciones.
	function getException( exception ) {
		return "Descripcion: " + exception.description + "\nMensaje: " + exception.message;
	}
	
	// Validar si es un email valido.
 	function isEmail( input, msg ) {
		var strError = "";
		var listAcentos = "Á,É,Í,Ó,Ú,á,é,í,ó,ú";
	
		strError = isTrim( input, msg );
		
		if( strError != "" ) {
			return strError;
		} 
		
		if( input.value.indexOf( "." ) == -1 || input.value.indexOf( "@" ) == -1 || this.isAcentos( input, listAcentos ) ) {
			return strError = "- El " + msg + " enviado no es una dirección válida.\n";
		}
		
		return "";
	}	
	
	// Para los popups.var popUpWin=0;
	var popUpWin=0;
	
	function popUpWindow( URLStr, left, top, width, height, scrollbars, resize, center ) {
		  if( center ) {	
			  var left = ( screen.width - width ) / 2;	
			  var top = ( screen.height - height ) / 2 - 30;	
		  }
		
		  if(popUpWin) {		
			  if(!popUpWin.closed) popUpWin.close();
		  }
		
		  popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menubar=no,' + 
						  'scrollbars=' + scrollbars + ',' + 'resizable=' + resize + ',copyhistory=yes,width='+ 
						  width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
	
	}
	
	// El correo no debe de llevar acentos.
	function isAcentos( input, listAcentos ) {
		var existsAcentos = false;
		var acentosArray = listAcentos.split( "," );
		
		for( var i = 0;  i < acentosArray.length;  i ++ ) {
			if( input.value.indexOf( acentosArray[ i ] ) > -1 ) {
				existsAcentos = true;
				break;
			}
		}
	
		return existsAcentos;
	}		
	
	// Codigo postal de 5 digitos.
	function isCodigoPostal( input, msg, required ) {
		var strError = "";
			strError = isTrim( input, msg );
			
		if( strError != "" ) {
			return strError;
		}
		
		if( isNaN( input.value ) || input.value.indexOf( "." ) != -1 || input.value.indexOf( "-" ) != -1 ) {
			return "- " + msg + " no es un formato valido. Debe constar de 5 digitos numericos.\n";
		}
		
		return "";
	}
	
	function isSelectedRadio( radio, msg ) {
		var isSelected = false;
		var strError = "";
		var size = radio.length;
		
		for( var i = 0;  i < size;  i ++ ) {
			if( radio[ i ].checked ) {
				isSelected = true;
			}
		}
		
		if( !isSelected ) {
			strError = "- " + msg + " es requerido.\n";
		}
		
		return strError;
	}
	
	function getTextoSelect( Select ) {
		var texto = Select[ Select.selectedIndex ].text;
		
		return texto;
	}

	// Regresar una lista de elementos de acuerdo al las selecciones. 
	function toListValues( objeto, delimiter ) {
		var listValues = "";
		
		for( var i = 0;  i < objeto.length;  i ++ ) {
			if( objeto[ i ].checked ) {
				listValues += objeto[ i ].value + delimiter;
			}
		}
		
		return listValues;
	}
	
	function isJpg( input, msg, required ) {
		var strError = "";
		var msgbox = isTrim( input, msg );
		
		if( required && msgbox != "" ) {
			return msgbox;
		}
		
		if( input.value != "" ) {
			var ext = input.value.substring( input.value.length, input.value.length - 3 ).toLowerCase();
			
			if( ext != "jpg" ) {
				strError = "- " + msg + " debe tener el formato: [ .jpg ].\n";
			} 
		}
		
		return strError;
	}

	function isZipRar( input, msg, required ) {
		var strError = "";
		
		
		var msgbox = isTrim( input, msg );
		
		if( required && msgbox != "" ) {
			return msgbox;
		}

		if( input.value != "" ) {
			var ext = input.value.substring( input.value.length, input.value.length - 3 ).toLowerCase();
			
			if( ext != "zip" && ext != "rar" ) {
				strError = "- " + msg + " debe tener extenciÃ³n: [ .zip Ã³ .rar ].\n";
			} 
		}
		
		return strError;
	}

	// Validar si el campo es un valor real.
	function isInteger( input, msg, iniRango, finRango ) {
		var strError = "";
		
		input.value = input.value.replace( / /g, "" );
		
		strError = isTrim( input, msg );
									
		if( strError != "" ) {
			return strError;
		}
		
		if( isNaN( input.value ) || input.value.indexOf( "." ) > -1 ||
		    parseInt( input.value ) < iniRango || parseInt( input.value ) > finRango ) {
			return "- " + msg + " no es un valor entero valido.\n   El rango debe ser de " + iniRango + " a " + finRango + "\n";
		}		
			
		return "";
	}

// Validar si el campo es un valor real.
	function isDouble( input, msg, iniRango, finRango, unidad ) {
		var strError = "";
		
		input.value = input.value.replace( / /g, "" );
		
		strError = isTrim( input, msg );
									
		if( strError != "" ) {
			return strError;
		}
		
		if( isNaN( input.value ) || parseFloat( input.value ) < iniRango || parseFloat( input.value ) > finRango ) {
			return "- " + msg + " no es un dato numerico válido:  El rango debe ser de " + iniRango + "" + 
			       unidad + " a " + finRango + "" + unidad + "\n";
		}		
			
		return "";
	}
	
/*
// Obtener los valores de un checkbox.
	function getValuesCheckbox( form, objeto ) {
		var listValues = "";
		
		for( var i = 0;  i < form.objeto.length;  i ++ ) {
			if( form.objeto[ i ].checked ) {
				listMedios += form.objeto[ i ].value + "|";
			}
		}		
		
		return listValues;
	}
*/
// Example:

// var b = new BrowserInfo();

// alert(b.version); 

	function getBrowserInfo() {	
		this.name = navigator.appName;
		this.codename = navigator.appCodeName;
		this.version = navigator.appVersion.substring(0,4);
		this.platform = navigator.platform;
		this.javaEnabled = navigator.javaEnabled();
		this.screenWidth = screen.width;
		this.screenHeight = screen.height;
		
		return this.name;
	}


	// Variables para las fechas.
	strMesesArray = new Array( '', 'Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic' );
	intMesesArray = new Array( -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 );
	intDiasArray  = new Array( -1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
//	var month = "10";
	var FEBRERO = 2;

	// Crear la fecha.
	function createDate( idTable, drpDay, drpMonth, drpYear, day, month, year, _iniYear ) {
		var iniYear = ( _iniYear == null ? 1949 : _iniYear );
		//alert( iniYear );
		var dias = getDias( month, year );
		var idFchNac = "" + idFchNac;
		var nameBrowser = getBrowserInfo();
		
//		alert( "Fecha: " + day + "-" + month + "-" + year + " : " + getDias( month, year ) );
		
		// Para no crear la tabla, para llamarse desde cualquier lugar.
		var strTable  = '<table width="100" border="0" cellspacing="1" cellpadding="4">';
			strTable += '	<tr>';
			strTable += '		<td width="7" align="left" id="id_' + drpDay + '">&nbsp;</td>';
			strTable += '		<td width="6" align="center">-</td>';
			strTable += '		<td width="16" align="left" id="id_' + drpMonth + '">&nbsp;</td>';
			strTable += '		<td width="6" align="center">-</td>';
			strTable += '		<td width="19" align="left" id="id_' + drpYear + '">&nbsp;</td>';
			strTable += '	</tr>';
			strTable += '</table>';
		
		document.getElementById( idTable ).innerHTML = strTable;

		var strIdObj = "<select name='" + drpDay + "'>-";
		
		// Crear los dias de la semana.
		for( var i = 1;  i <= dias;  i ++ ) {
			var dia = ( i < 10 ) ? "0" + i : i;	
			strIdObj += "	<option value='" + dia + "' " + ( day == dia ? "selected" : "" ) + ">" + dia + "</option>";
		}

		strIdObj += "	</select>";

		document.getElementById( "id_" + drpDay ).innerHTML = strIdObj;

		strIdObj = "<select name='" + drpMonth + "' onchange='javascript:setDays( document.forms[ 0 ]." + drpDay + ", " + 
																			    " document.forms[ 0 ]." + drpMonth + ", " +
																			    " document.forms[ 0 ]." + drpYear + " );'";
		
		var iniArray = ( nameBrowser == "Netscape" ) ? 1 : 0;

		// Crear los nombres de los meses.
		for( var j = iniArray;  j < intMesesArray.length;  j ++ ) {
			intMes = j;

			strIdObj += "<option value='" + intMes + "'" + ( j == month ? " selected" : "" ) + ">" + strMesesArray[ j ]; 
						//+ " [ " + intMes + " ]</option>"; 	
		}
		
		strIdObj += "</select>";

		document.getElementById( "id_" + drpMonth ).innerHTML = strIdObj;

		strIdObj = "<select name='" + drpYear + "' onchange='javascript:setDays( document.forms[ 0 ]." + drpDay + ", " + 
																			   " document.forms[ 0 ]." + drpMonth + ", " +
																			   " document.forms[ 0 ]." + drpYear + " );'";
		year = parseInt( year );
		
		//alert( year );
		// Crear los aÃ±os.
		for( var j = iniYear;  j <= year;  j ++ ) {
			strIdObj += "<option value='" + j + "' " + ( year == j ? "selected" : "" ) + ">" + j + "</option>"; 	
		}

		strIdObj += "</select>";
		
		document.getElementById( "id_" + drpYear ).innerHTML = strIdObj;
	}
	
	function setDays( drpDay, drpMonth, drpYear ) {
		var oldDia  = drpDay[ drpDay.selectedIndex ].value;
		var month   = drpMonth[ drpMonth.selectedIndex ].value;
		var year    = drpYear[ drpYear.selectedIndex ].value;
		var dias    = getDias( month, year );
		var dayName = drpDay.name.toString();
		
		//alert( dias + "/" + month + "/" + year );
		var strIdObj = "<select name='" + dayName + "'>-";
		
		// Crear los dias de la semana.
		for( var i = 1;  i <= dias;  i ++ ) {
			var dia = ( i < 10 ) ? "0" + i : i;	
			strIdObj += "	<option value='" + dia + "' " + ( oldDia == i ? "selected" : "" ) + ">" + dia + "</option>";
		}

		strIdObj += "	</select>";
		
		document.getElementById( "id_" + dayName ).innerHTML = strIdObj;
	}
		
	function getDias( month, anyoActual ) {
		var dias = 31; // iniciar a -1
		var intmonth = parseInt( month, 10 );
	//	alert( month );
	//	alert( intmonth );
		if( intmonth == FEBRERO && anyoActual % 4 == 0 ) {
			dias = 29;
		}
		else {
			dias = intDiasArray[ intmonth ];
		}

		//alert( month + " : " + dias );
		
		return dias;
	}

	function ocultarFila( num, ver, tabla ) { 
		dis=ver?'':'none'; 
		tab=document.getElementById( tabla ); 
		tab.getElementsByTagName('tr')[num].style.display=dis; 
	} 

	function ocultarColumna( num, ver, tabla ) { 
		dis= ver?'':'none'; 
		fila=document.getElementById( tabla ).getElementsByTagName('tr'); 
		for(i=0;i<fila.length;i++) 
		fila[i].getElementsByTagName('td')[num].style.display=dis; 
	} 
	var myWindow = 0;
 	
	function openWindow( url, width, height ){ 
		var left = ( screen.width - width ) / 2;
		var top = 30; 
		
		if( myWindow ) {
			myWindow.close();
		}
		
		myWindow = open( url, "ventana1", "left=" + left + ",top=" + top + ",width=" + width + ",height=" + height + ",scrollbars=yes" ); 
		//myWindow.focus();
	}
	function openWindowWS( url, width, height ){ 
		var left = ( screen.width - width ) / 2;
		var top = 30; 
		
		if( myWindow ) {
			myWindow.close();
		}
		
		myWindow = open( url, "ventana1", "left=" + left + ",top=" + top + ",width=" + width + ",height=" + height + ",scrollbars=no" ); 
		//myWindow.focus();
	} 

