// JavaScript Document
function openImage(name,width,height){
  newWindow = window.open(name,"","top=0,height="+height+",width="+width+"");
  newWindow.focus();
}

//Función que desactiva o activa el campo de adjuntar files
function setOnOff(file){
   if(file.disabled==true)
      file.disabled=false;
  else if(file.disabled==false)
      file.disabled=true;	  
	
}


//Función que es usada para confirmar y redireccionar al delete de un item
function isDeleted(url,idiom){
	var msg="";
 if(idiom=='es')
    msg="Desea eliminar la información seleccionada?";
 else if(idiom=='us')
   msg="Do you want delete this item?";
 /*  
 if(navigator.userAgent.indexOf("Firefox")!=-1){
	  window.location.href=url;	
  }*/
  //else{
  	if(window.confirm(msg)){
	  window.location.href=url;	
	}
  //}
	
}

//Función que pregunta si se quieren eliminar uno o varios items
function isDeletedMuch(form,url,idiom){
  	var msg="";
 if(!isElementChecked(form)){
    if(idiom=='es')
      msg="Debe escoger uno o varios elementos para poder borrar";
   else if(idiom=='us')
      msg="Do you choosen some item for delete";	 
      window.alert(msg);
 }
 else{
 if(idiom=='es')
    msg="Desea eliminar la información seleccionada?";
 else if(idiom=='us')
   msg="Do you want delete this item?";
   
  /*if(navigator.userAgent.indexOf("Firefox")!=-1){ 
    form.action=url;
	form.submit();
  }
   
  else{ */
   	if(window.confirm(msg)){
		form.action=url;
		form.submit();
	}
  //}
  
 }
}

//Función que determina si hay elementos seleccionados
function isElementChecked(form){
  var cant = form.length;
  var isSelected=false;
  for(var i=0;i<cant;i++){
	    if(form.elements[i].type=="checkbox"){
		   if(form.elements[i].checked) 
		      isSelected=true;
		}
  }
  return isSelected;
}

//Función que selecciona a todos los items de una pantalla
function selectAllItems(form){
   var cant = form.length;
   var toggle = form.toggle;
   for(var i=0;i<cant;i++){
	  if(form.elements[i].type=="checkbox"){
		 if(toggle.checked) 
		   form.elements[i].checked=true;  
		 else
		   form.elements[i].checked=false;  
	  }
   }
}

//Función que activa busqueda de productos segun una categoría específica
function searchByCat(url,form){
	form.action=url;
  	form.submit();
}

// JavaScript Document
//Función que genera el menu
function generateMenu(roles){
	// window.alert(roles); 
  var title1=false,title2=false;
tmenu='var tmenuItems = [';

   aroles = roles.split("/");
   var i = 0;
  for(i=0;i<aroles.length;i++){
	if(aroles[i]!=""){
		
	 if(((aroles[i]=="about")||(aroles[i]=="contactos")||(aroles[i]=="faq"))&&title1==false){
       tmenu+='["Informacion General", "", "","","", "Informacion General",,"1","0"],';
	   title1=true;
	 }
	 
	 if(((aroles[i]=="cat_prod")||(aroles[i]=="galeria"))&&title2==false){
       tmenu+='["Seccion de imagenes",   "", "", "","","Seccion de imagenes",,"1","0"],';
	   title2=true;
	 }
	 
	 tmenu+=getMenuItem(aroles[i]);
	}
  }
  
tmenu+='["Informacion del usuario",   "", "", "","","Informacion del usuario",,"1","0"],';
tmenu+='["|Usuario", "usuarios.php","img/user.png",,, "Usuario","_self","2"],';
tmenu+='["|Salir", "login_out.php","img/logout.png",,, "Salir","_self","2"],';
tmenu+='["Ayuda",   "", "", "","","Ayuda",,"1","0"],';
tmenu+='["|Manual de usuario", "help.php","img/def_small.gif",,, "Usuario","_self","2"],';
tmenu+='];';	 
  	
eval(tmenu);    
   
return tmenuItems;
}

//Función que devuelve una variante de tmenuItems con el objetivo de hacer filtros
function getMenuItem(rol){
	var texto="";
  	switch(rol){
	  case "about":
	    texto='["|Sobre nosotros", "about.php", "img/frontpage.png", "",  "", "Sobre nosotros","_self","2"],';
		break;
	  case "contactos":	 
	    texto='["|Contactos",     "contactos.php",  "img/get_msgs_f2.gif",   "", "", "Contactos","_self", "2"],'; 
		break;
	  case "faq":	
	    texto='["|FAQ",       "faq.php", "img/paste_f2.gif", "", "", "Foros","_self","2"],';
		break;
	  case "cat_prod":
	    texto='["|Categorias de productos", "categorias.php", "img/categories.png",,, "Categorias de productos","_self"],';
        texto+='["|Productos", "productos.php","img/systeminfo.png",,, "Productos","_self","2"],';
		break;
	  case "galeria":
	    texto='["|Galerias", "galerias.php","img/mediamanager.png",,, "Galerias","_self","2"],';
		break;
	}
	return texto;
}

//Función que manda a imprimir la ventana actual
function printWindow(){
  window.print();	
}

//Función que solo permite que se escriban numeros enteros
  function numbersonly(myfield, e, dec)
 {
var key;
var keychar;
if (window.event)
	key = window.event.keyCode;
else if (e)
	key = e.which;
else
	return true;
	keychar = String.fromCharCode(key);
	//window.alert(keychar);
	// control keys
if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
	return true;
// numbers
  else if ((("0123456789").indexOf(keychar) > -1))
  return true;
// decimal point jump
  else if (dec && (keychar == "."))
  {
//  window.alert(myfield.form.elements[dec]);
  //myfield.form.elements[dec].focus();
  return true;
  }
  else
  return false;
}

//Función que retorna true si ambos parámetros son iguales, false en caso contrario
function isEqualValues(value1,value2){
	  if(value1!=value2)
	     return false;
	return true;	 
}
  
 //Función usada para posicionar el cursor en los diversos elementos de cada formulario
 function setCursorForm(file){
	switch(file){
 	 case "admin":
	      setCursorDoc(document.adminForm.username);
	      break;
	 case "proyectos":
	      setCursorDoc(document.proyectosForm.titulo);
	      break;	  
	case "miembros":
	      setCursorDoc(document.miembrosForm.nombre);
	      break;
	case "company":
	      setCursorDoc(document.companyForm.texto);
	      break;
	case "hotels":
	      setCursorDoc(document.hotelsForm.texto);
	      break;	  
	case "newprojects":
	      setCursorDoc(document.newprojectsForm.titulo);
	      break;
	case "noticias":
	      setCursorDoc(document.noticiasForm.titulo);
	      break;
	case "imgnews":
	      setCursorDoc(document.imgnewsForm.descripcion);
	      break;	  
	}
 }
 
 //Función que crea el posicionamiento del cursor
 function setCursorDoc(campo){
	campo.select();
	campo.focus(); 
 }
 
 //Función que cambia el texto del campo de adjuntar de aumento de trabajo...
 function changeTextA(headForm){
	 var texto_aumento=headForm.texto_aumento; 
	if(headForm.aumento[0].checked){
	 texto_aumento.value="                          Aprobación de la reestructuración y formato"; 
	}
	else if(headForm.aumento[1].checked){
	 texto_aumento.value="Enumere las funciones adicionales del puesto y sus razones"; 
	}
 }
 
 
 //Función que es utilizada para evaluar la condición de integridad de cedula y pty, al momento de un update
function updateRegistro(cedula,username){
	ind="";
	fcedula=document.registrosForm.cedula.value;
	fusername=document.registrosForm.username.value;
  if(!isEqualValues(fcedula,cedula)&&isEqualValues(fusername,username)){
	  ind="ced";
  }
  else if(isEqualValues(fcedula,cedula)&&!isEqualValues(fusername,username)){
	 ind="user"; 
  }
  else if((!isEqualValues(fcedula,cedula))&&(!isEqualValues(fusername,username))){
	 ind="ceduser";
  }
//  window.alert("entrer: "+ind);
  return ind;
}


//Función que es utilizada para comprobar si se valida el area o no al momento de actualizar
function updateRegistro2(cedula){
	ind=false;
	fcedula=document.registrosForm.cedula.value;
	fcedula=trim(fcedula);
  if(!isEqualValues(fcedula,cedula)){
	  ind=true;
  }
  return ind;
}

//Función que es utilizada para comprobar si se valida la posicion o no al momento de actualizar
function updatePosicion(posicion){
	ind=false;
	fposicion=document.posicionesForm.posicion.value;
  if(!isEqualValues(fposicion,posicion)){
	  ind=true;
  }
  return ind;
}


//Función que es utilizada para comprobar si se valida la prestacion o no al momento de actualizar
function updatePrestacion(estacion){
	ind=false;
	festacion=document.prestacionesForm.estacion.value;
  if(!isEqualValues(festacion,estacion)){
	  ind=true;
  }
  return ind;
}


//Función que es utilizada para comprobar si se valida la ubicacion o no al momento de actualizar
function updateUbicacion(ubicacion){
	ind=false;
	fubicacion=document.ubicacionesForm.ubicacion.value;
  if(!isEqualValues(fubicacion,ubicacion)){
	  ind=true;
  }
  return ind;
}


//Función que es utilizada para comprobar si se valida el username o no al momento de actualizar
function updateAdmin(username){
	ind=false;
	fusername=document.adminForm.username.value;
  if(!isEqualValues(fusername,username)){
	  ind=true;
  }
  return ind;
}


/*Esta funcion sirve para ocultar o mostrar campos, lo que hace basicamente es que si type es 0
entonces si valor del select o cualquier input es igual a cond se ocultan los campos, pero si no son iguales se muestran.

Luego si type fuera 1 entonces si valor fuera igual a cond se muestran los campos, de lo contrario si
no son iguales se ocultan dichos campos.

Hay que tener en cuenta que aunque se oculten dichos campos, aun almacenan valor y al momento de procesarlos
el programa php puede capturar sus valores y guardarlos en la bd. Por ese motivo se deben hacer juegos de programación
en php que dependiendo del valor seleccionado en el campo que llama a esta función, se procesen o no los valores de los
otros campos que dependen del resultado de dicho campo.  

Este tipo de programación es poco comun y se basa solo en un simple juego de css con javascript y se esta usando
porque el cliente la solicitó, para evitar tener los formularios muy cargados de campos.

*/
function showMeOrNot(array,valor,cond,type){
	var display1='', display2='';
  switch(type){
	  case 0 :
	      display1='none';
		  display2='block';
		  break;
	  case 1 :
	     display1='block';
		 display2='none';
		  break;
	       
  }
	
	if(valor==cond){
	 for(i=0;i<array.length;i++)	
	  document.getElementById(array[i]).style.display=display1;
	}
	else { 
  for(i=0;i<array.length;i++)	
	  document.getElementById(array[i]).style.display=display2;
	}
}


/*Función usada por los radiobuttons del formulario de headcount*/
function showRazon(name){
  switch(name){	
	case "razon1":
		document.getElementById(name).style.display='block';
		document.getElementById("razon2").style.display='none';
		document.getElementById("razon3").style.display='none';
	  break;
	  
	case "razon2":
		document.getElementById(name).style.display='block';
		document.getElementById("razon1").style.display='none';
		document.getElementById("razon3").style.display='none';
	  break;
	
	case "razon3":
		document.getElementById(name).style.display='block';
		document.getElementById("razon1").style.display='none';
		document.getElementById("razon2").style.display='none';
	  break;
  }
}

//Función que determina si se muestra el mensaje de fecha o no...
function showDateMessage(frm){
 var msg_ctr = frm.msg_ctr.value;
 if(msg_ctr=="true"){
   window.alert("La fecha de contratación debe contemplar la fecha de capacitación de su personal.");
   frm.msg_ctr.value=false;
 }
}

//Función que agrega un item a un select
function AddName(p_FormName,p_SelectName,p_OptionText,p_OptionValue)
{
  document.forms[p_FormName].elements[p_SelectName].options[document.forms[p_FormName].elements[p_SelectName].length] = new Option(p_OptionText,p_OptionValue);
}


function hasOptions(obj) {
	if (obj!=null && obj.options!=null) { return true; }
	return false;
	}

function removeAllOptions(from) { 
	if (!hasOptions(from)) { return; }
	for (var i=(from.options.length-1); i>=0; i--) { 
		from.options[i] = null; 
		} 
	from.selectedIndex = -1; 
	} 

//Función que rellena un select...
function fillSelect(array,fname,sname){
  for(var i=1;i<array.length;i++){
	 if(array[i]!=null) 
	   AddName(fname,sname,array[i],i); 
  }
}

//Función que que selecciona el item del select correspondiente al valor obtenido en la DB...
function setSelectFill(list,value){
  for(var i=0;i<list.length;i++){
	 //window.alert("valor 1: "+list.options[i].value);
	  //window.alert("valor 2: "+value);
	 if(list.options[i].value==value)
	   list.options[i].selected=true;
  }
}


//Funciones usadas para hacer filtro en el formulario de posiciones...
function fillSindicato(planilla){	
	switch(planilla){	  
	  case "0":
	     removeAllOptions(document.posicionesForm.sindicato);
		 AddName("posicionesForm","sindicato","Seleccione el sindicato",0);
		 break;
	  case "1":
	     var opciones = new Array();
	     opciones[1]="Ejecutiva"; 
	     removeAllOptions(document.posicionesForm.sindicato);
		 AddName("posicionesForm","sindicato","Seleccione el sindicato",0); 
	     fillSelect(opciones,"posicionesForm","sindicato");
		 break;
	  case "2":
	     var opciones = new Array();
	     opciones[2]="Estacion"; 
	     removeAllOptions(document.posicionesForm.sindicato);
		 AddName("posicionesForm","sindicato","Seleccione el sindicato",0); 
	     fillSelect(opciones,"posicionesForm","sindicato");
		 break;	 
	  case "3":
	     var opciones = new Array();
	     opciones[3]="Sielas";
	     opciones[4]="SIPAC";
	     opciones[5]="SIPANAB";
	     opciones[6]="SITECMAP";
	     removeAllOptions(document.posicionesForm.sindicato);
		 AddName("posicionesForm","sindicato","Seleccione el sindicato",0); 
	     fillSelect(opciones,"posicionesForm","sindicato");
		 break;	 
	}
}


function fillSelectPos(array,fname,sname,cant){
  for(var i=1;i<=cant;i++){
	 if(array[i]!=null) 
	   AddName(fname,sname,array[i],array["id"][i]); 
  }
}

//Función encargada de enviar un formulario...
function sendForm(form,url){
  form.action=url;
  form.submit();	
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

//Función utilizada para enviar el carrito de compras...
function sendCart(){
  if(validarCart(document.cartForm))
    document.cartForm.submit();	
}