/********************************************************************************
* Nombre:		  lib_java                                                          *
* Version:		1.00                                                              *
* Fecha:		  2007-05-01                                                        *
* Autor:  	  Iván Miranda                                                      *
* Licencia:   OpenSource                                                        *
*********************************************************************************
* Compilado de rutinas generales en desarrollos que relizan javascript          *
*********************************************************************************
*                                                                               *
*********************************************************************************
* Licencia:		OpenSource                                                        *
* Puedes modificar libremente este código, respetando el nombre de sus autores	*
* en las aplicaciones involucradas.                                             *
* Por favor, informa de las actualizaciones a este código en:                   *
* 		pa.ivan.miranda@gmail.com                                                 *
********************************************************************************/

/* *************************** */
/* ********* CADENAS ********* */
/* *************************** */

//Agrega la función trim al objeto String
String.prototype.trim= function() {
   return this.replace(/(^\s*)|(\s*$)/g,""); //elimina espacios a izquierda y derecha
};

/* *************************** */
/* ********* NAVEGADOR ******* */
/* *************************** */

//Identifica el explorador usado
function javIdentificaNavegador() {
	if(navigator.appName=="Microsoft Internet Explorer")
		return "MIE";
	if(navigator.appName=="Opera")
		return "OPERA";
	return "MOZILLA";
};

//Detecta si flash se encuentra instalado
function javDetectaFlash() {
	if(navigator.plugins["Shockwave Flash"])
		return 1;
	else 
		return 0;
};

/* **************************** */
/* ********* VENTANAS ********* */
/* **************************** */

//Lanza una venta pop
function javPopUp(Pagina,Titulo,Ancho,Alto,Herramientas,Menu,Scroll,Maximizar,Modal) {
	try {
  	window.open(Pagina, Titulo, 'width=' + Ancho + ',height=' + Alto + ',location=no,toolbar=' + Herramientas + ',menubar=' + Menu + ',scrollbars=' + Scroll + ',resizable=' + Maximizar);
	}
	catch(e){
	  window.open(Pagina, 'titulo');
  }
};

//Pide confirmación para abandonar una página
function javConfirmarCierre(){
//se puede validar la condicion para pedir confirmación
	if(1 != 1) {
	//solo si se quiere confirmación se debe regresar un valor
		var msj = "Los cambios no guardados se perderán.";
		return msj;
	}
};

/* *************************** */
/* ********* OBJETOS ********* */
/* *************************** */

//Obtiene un objeto del documento por su ID
function javObtenObjeto(objeto){
var objObjeto=(document.getElementById) ? document.getElementById(objeto) : eval("document.all['" + objeto + "']");
	return objObjeto;
};

//Obtiene el elemento seleccionado de un combo
function javValorCombo(combo) {
  var objCombo = javObtenObjeto(combo);
  return objCombo.options[objCombo.selectedIndex].value;
};

//Cambia es estatus de visibilidad de un objeto
function javDivisionVisible(division,valor){
	var objFrame=(document.getElementById) ? document.getElementById(division) : eval("document.all['" + division + "']");
	if(valor.trim()=="si" || valor.trim()=="SI" || valor.trim()=="Si")
	  objFrame.style.display="";
	else
		objFrame.style.display="none";
	return;
};

//Obtiene el HTML contenido en un objeto
function javInnerHTML(objeto){
	var objFrame=(document.getElementById) ? document.getElementById(objeto) : eval("document.all['" + objeto + "']");
	return objFrame.innerHTML;
};

//Cambia el HTML de un objeto
function javAsignaInnerHTML(objeto,valor){
	var objFrame=(document.getElementById) ? document.getElementById(objeto) : eval("document.all['" + objeto + "']");
	objFrame.innerHTML=valor;
	return;
};

/* ***** TEXTOS ***** */
//Obtiene el valor de un texto de formulario
function javValorText(elemento) {
	var objObjeto=javObtenObjeto(elemento);
	texto=objObjeto.value;
	return texto.trim();
};

//Asignar valor a un texto de formulario
function javAsignaValorText(elemento,valor) {
	var objObjeto=javObtenObjeto(elemento);
	texto=objObjeto.value=valor;
	return;
};

//Posiciona el cursor en un texto y marca su contenido si se desea
function javAsignarFoco(elemento,marcar) {
	var objObjeto=javObtenObjeto(elemento);
	objObjeto.focus();
	if(marcar)
		objObjeto.select();
	return;
};

//Selecciona el contenido de una caja de texto
function javSeleccionarTexto(elemento) {
	var objObjeto=javObtenObjeto(elemento);
	objObjeto.select();
	return;
};

function javValorOpt(objeto){
	var objObjeto=document.getElementsByTagName(objeto);
  for(var intContador=0; intContador<objObjeto.length; intContador++)	{
		if(objObjeto[intContador].checked) {
			return objObjeto[intContador].value;
		}
	}
};

function javValidaHora(valor){
 var strDatos = valor.split(/:\s*/);
 if(strDatos.length==2){
	 var intHoras = parseInt(strDatos[0]);
	 var intMinutos = parseInt(strDatos[1]);
	 var bolError = true;
	 if((isNaN(intHoras)) || (isNaN(intMinutos)))
	 	bolError = false;
	 if((intHoras < 0) || (intHoras >23))
	 	bolError = false;
	 if((intMinutos < 0) || (intMinutos >59))
	 	bolError = false;
	 return bolError;
 }
 else {
	 return false;
 }
};
//convierte la fecha en una cadena y en un valor entero 
function javConvierteFecha(valor){
	
	var strCadena = valor.split("/");
	var intFecha = parseInt(strCadena[2]+ strCadena[1]+ strCadena[0]);
	return intFecha;
};

function javFormatoHora(valor){
	var strDatos = valor.split(/:\s*/);
	var strHoras = strDatos[0];
	var strMinutos = strDatos[1];
	if(strHoras.length<2)
		strHoras = '0' + strHoras;
	if(strMinutos.length<2)
		strMinutos = '0' + strMinutos;
	return strHoras + ':' + strMinutos;
};

function javValidarAnio(valor){
	var strCadena = valor;
	var strAnio = strCadena.substring(6,10);
	return strAnio;
};

/* *************************** */
/* ********* REDONDEO ******** */
/* *************************** */

//Aplicar el redondeo de los elementos
function javRedondearDivs(){
  var settings = {
    tl: { radius: 1  },
    tr: { radius: 1  },
    bl: { radius: 10 },
    br: { radius: 10 },
    antiAlias: true,
    autoPad: true,
    validTags: ["div","fieldset"]
  }
  var myBoxObject = new curvyCorners(settings, "div_principal_titulos");
  myBoxObject.applyCornersToAll();
  var settings = {
    tl: { radius: 1  },
    tr: { radius: 10 },
    bl: { radius: 1  },
    br: { radius: 10 },
    antiAlias: true,
    autoPad: true,
    validTags: ["div","fieldset"]
  }
  var myBoxObject = new curvyCorners(settings, "div_principal_contenidos");
  myBoxObject.applyCornersToAll();
  var settings = {
    tl: { radius: 10 },
    tr: { radius: 1  },
    bl: { radius: 10 },
    br: { radius: 1  },
    antiAlias: true,
    autoPad: true,
    validTags: ["div","fieldset"]
  }
  var myBoxObject = new curvyCorners(settings, "div_principal_menu");
  myBoxObject.applyCornersToAll();
};

function javRedondearFrames(){
   settings = {
    tl: { radius: 5 },
    tr: { radius: 1 },
    bl: { radius: 1 },
    br: { radius: 5 },
    antiAlias: true,
    autoPad: true,
    validTags: ["fieldset","div"]
  }
  var myBoxObject = new curvyCorners(settings, "principal_frame");
  myBoxObject.applyCornersToAll();
  var myBoxObject = new curvyCorners(settings, "pop_mensaje");
  myBoxObject.applyCornersToAll();
  var myBoxObject = new curvyCorners(settings, "pop_mediano");
  myBoxObject.applyCornersToAll();
  var myBoxObject = new curvyCorners(settings, "pop_grande");
  myBoxObject.applyCornersToAll();
};




