

String.prototype.trim = function(){
	return this.replace(/^\s+|\s+$/, '');
};
/*
function jsAddAttrUserLogAllInputs(){
	usrLog=jsJQueryIt('sessionnow.php?valor=gUsr');
	$('input,textarea').attr('usrLog',usrLog);
}
*/
function jsLlenarDatos(selector){
	//alert(selector)
	var EsteCheckBoxesTrue=false;
	$(selector).not('input[type=button],*[id|=c]').each(function(i,el){
		if (el.id.trim()!="" && el.id.trim().substr(0,1)=='c'){				
			switch(el.tagName.toLowerCase()){
				case 'select':
					valorArchivo=jsJQueryIt('core.php?acc=3&file='+el.id);
					arrVals=valorArchivo.split('||');
					if (arrVals.length>1){
						$(el).val(arrVals[0]);
						$(el).attr('otro',arrVals[1]);
						
						opts=$(el).attr('options');
						
						valOri=$(opts[opts.selectedIndex]).attr('text');
						$(opts[opts.selectedIndex]).attr('text',valOri+'('+arrVals[1]+')')
						
					}else
						$(el).val(valorArchivo);
				break;
				case 'input':
					//if (!confirm(el.id+'-'+el.type+'-'+el.tagName)) return false;
					switch(el.type.toLowerCase()){
						case 'checkbox':
							//if (!confirm($(this).attr('id')+'(Selector:'+selector+')')) return false;
							EsteCheckBoxesTrue=eval(jsJQueryIt('core.php?acc=3&file='+el.id))
							if (EsteCheckBoxesTrue){
								//alert(el.id+'='+EsteCheckBoxesTrue+'(Selector:'+selector+')')
								$(el).click().attr('checked','checked');
							}
							EsteCheckBoxesTrue=false;
						break;
						case 'radio':
							EsteCheckBoxesTrue=eval(jsJQueryIt('core.php?acc=3&file='+el.id))
							
							if (EsteCheckBoxesTrue){
								//alert(el.id+'='+EsteCheckBoxesTrue+'(Selector:'+selector+')')
								$(el).click().attr('checked','checked');
							}
							EsteCheckBoxesTrue=false;
							break;
						default:
							//if (!confirm(jsJQueryIt('core.php?acc=3&valor='+el.id))) return false;		
							$(el).val(jsJQueryIt('core.php?acc=3&file='+el.id));
					}
				break;
				case 'textarea':
					el.value=jsJQueryIt('core.php?acc=3&file='+el.id);
				break;
			}
		}
	});
}

function jsGuardarDatos(){
	var guardo=false;
	//$('input,textarea,select').not('input[type=button]').each(function(i,el){
	//alert($('fieldset[selected=si] *').length)
	$('fieldset[selected=si] *').not('input[type=button]').each(function(i,el){
		if (el.id.trim()!="" && el.id.trim().substr(0,1)=='c'){				
			switch(el.tagName.toLowerCase()){
				case 'select':
					if (el.value.trim()!=""){
						//if (!confirm(el.id+'-'+el.type+'-'+el.tagName+'-'+el.value.trim())) return false;
						valor=$(el).val().trim();
						if ($(el).attr('otro')===undefined)
							$(el).attr('otro','');
						
						//alert($(el).attr('className'))	
						
						if ($(el).attr('otro')!="")
							valor+='||'+$(el).attr('otro');
							
						guardo=parseInt(jsJQueryIt('core.php?acc=4&file='+el.id+'&valor='+escape(valor)));
					}
				break;
				case 'input':
					//if (!confirm(el.id+'-'+el.type+'-'+el.tagName)) return false;
					switch(el.type.toLowerCase()){
						case 'checkbox':
							guardo=parseInt(jsJQueryIt('core.php?acc=4&file='+el.id+'&valor='+$(el).attr('checked')));
						break;
						case 'radio':
							guardo=parseInt(jsJQueryIt('core.php?acc=4&file='+el.id+'&valor='+$(el).attr('checked')));
						break;
						default:
							
							if (el.value.trim()!=""){
								//if (!confirm(el.id+'-'+el.type+'-'+el.tagName+'-'+el.value.trim())) return false;
								guardo=parseInt(jsJQueryIt('core.php?acc=4&file='+el.id+'&valor='+escape($(el).val().trim())));
							}
					}
				break;
				case 'textarea':
							if (el.value.trim()!=""){
								//alert(el.value.trim())
								guardo=parseInt(jsJQueryIt('core.php?acc=4&file='+el.id+'&valor='+escape($(el).val().trim())));
							}
				break;
			}
			//if (!guardo){
				//alert('No se pudo guardar el campo '+$('laber[for='+el.id+']').val());
			//}				
		}
	});
}
$(document).bind('ready',function (){
	if (document.location.href.indexOf('index')==-1){							   
		//jsAddAttrUserLogAllInputs();
		jsLlenarDatos('input,textarea,select');
		
		
		
		$('select').bind('change',function(){
				$(this).attr('otro','');
		});		
		
		//esto es temporal en lo que arreglan ids
		//alert($('.duplicador *>input,.duplicador *>select,.duplicador *>textarea').not('input[type=button]').length)
		$('.duplicador *>input,.duplicador *>select,.duplicador *>textarea').not('input[type=button]').each(function (i,el){																											  
			//if(!confirm(el.id+'-'+el.tagName)) return false	
					el.id=el.id.replace(/_i(\d{2})/g,"")+'_i01';
		});
	}
});
/*
Autor: Elbert Castañeda
*/
function jsGetProp(Arreglo, Propiedad, PorDefecto){
	var r = PorDefecto;
	if (Arreglo.length==0)
		return r;
	
	
	for (i=0;i<=Arreglo.length-1;i++)
		{
			if ($.trim(Arreglo[i].toUpperCase()) != "") 
			{
				if (Arreglo[i].indexOf(Propiedad+"=") != -1)
					{
						r= Arreglo[i].replace(Propiedad+"=","")
						return r;
					}
				}
		}
		return r;
	}

/*
Autor: Elbert Castañeda
*/
// esta funcion te carga una url en un dialog de jquery y ademas se acarga del manejo de las ventanas dentro del sistema
function jsWindowIt(Url,title, opciones){
	if (opciones === undefined)
		opciones="";
	else
		{
			if ( (opciones != "") )
				opciones += ",";
			}
	ops = opciones.split(",");
	Altura=parseInt(jsGetProp(ops, "height",600));
	Ancho=parseInt(jsGetProp(ops, "width",900));
	esModal =jsGetProp(ops, "modal","false");
	esResizable =jsGetProp(ops, "esResizable","true");
	CerrarConEscape =jsGetProp(ops, "closeOnEscape","true");
	NoClose =jsGetProp(ops, "noClose","false");
	CallBack=jsGetProp(ops, "CallBack","");
	OnClose=jsGetProp(ops, "OnClose",'');
	OnBeforeClose=jsGetProp(ops, "OnBeforeClose",'');
	draggable=jsGetProp(ops, "draggable",'true');
	
	OnAcept=jsGetProp(ops, "onAcept",'');
	strConfirm=jsGetProp(ops, "strConfirm",'');
	//alert(CallBack)
	var r=Math.floor(Math.random() * (1000000 - 1 + 1)) + 1;   //se genera un numero aleatorio entero para concatenarselo al nombre  del nuevo div a crear y evitar duplicidad
	if (title===undefined) title = "Titulo";

		
	Existe = $("div[jrUrl='" + Url.replace(/ /g,'') + "']").is("div");  // verificamos si ya hay una ventana con esta url en el dom del document
	if (!Existe) //de no existir
	{
		
		$(document.body).append('<div ecUrl="' + Url.replace(/ /g,'') + '" id="ECdialog' + r + '" title="'+title+'"></div>'); // se crea el div para crear el dialog jquery y le ponemos la url en un atributo para poder tener un atributo para hacer referencia a esta venta y haci poder teneer control sobre ellas
		
		if (OnAcept != "") {
			//alert(strConfirm)
			$("#ECdialog" + r).attr("innerHTML", strConfirm);
			$("#ECdialog" + r).dialog({width:400,
				close: function(){
					$("div[id=" + this.id + "]").remove();
				},
				buttons: {
					'Cancelar': function(){
					
						$(this).dialog('close');
					},
					'Aceptar': function(){
						eval(OnAcept);
						$(this).dialog('close');
					}
				},
				modal:true,
				resizable: false, 
				draggable:false
			});
		}
		else{
			$("#ECdialog" + r).hide();
			$("#ECdialog" + r).load(Url.replace(/ /g, '%20'), {}, function(){ //cargamos la url en el div

				$(this).dialog({
					height: Altura,
					width: Ancho,
					modal: eval(esModal),
					resizable: eval(esResizable),
					draggable: eval(draggable),
					closeOnEscape: eval(CerrarConEscape),
					beforeclose: function(e, u){
						
						if (OnBeforeClose != "") {
							eval(OnBeforeClose + "()");
						}
					},
					close: function(){
						
						$("div[id=" + this.id + "]").remove();
						if (OnClose != "") {
							eval(OnClose + "()");
						}
					},
					open: function(){
						//CODIGO A EJECUTAR AL ABRIR
						$(this.parentNode).hide().show('clip',function(){
							if (CallBack!="")
								eval(CallBack);																			   
																	   },700);
						if (eval(NoClose)) {
							$(".ui-dialog-titlebar-close").css("display", "none");
						}
						
					}
					
					
				});
			});
		}
	} // de si existir
	else
	{
		$("div[ecUrl='" + Url.replace(/ /g,'') + "']").dialog('moveToTop'); // la traemos al frente
		obj=$("div[ecUrl='" + Url.replace(/ /g,'') + "']").get(0);
		
		$(obj.parentNode).effect('shake',{},100);
	}
}

function jsJQueryIt(url){  /// 
	/* *******************************************************************************************
	 * Importancia: ALTA
	 Esta funcion te devuelve el resultado de una consulta a un php con ajax
	 url: trae la direccion del archivo php con sus respectivos parametros
	 CallBackFunction: Una cadena con codigo javascript que sera evaluada cuando la operacion ajax se complete
	 Autor: EHCL
	 Fecha: 28 Enero 2009
	******************************************************************************************* **/

	var WinSt;
	var resul;
	//if (!mode) mode=false;
	
	$.ajax({
		async:false,
		type: "GET",
		dataType: "html",
		contentType: "application/x-www-form-urlencoded",
		url: url,
		beforeSend:function(){
			
			WinSt=window.status;
			window.status = "Procesando...";					
		},
		success: function(datos){
			resul=datos;
			resul=resul.trim();
			//alert(resul);
		},  //  me contesta con una variable en la funcion mandada ejem. jsValidarUs(Resp) : te llenaria la variable Resp con el resultado por lo que en datos  llega lo que respondio el php
		error:function(XMLHttpRequest, textStatus){
			alert('['+textStatus+'] Ocurrio un Error al intentar ejecutar '+url)
		},
		complete: function(objeto, exito){
			window.status=WinSt;
			if(exito=="success"){
				//alert("Y con �xito");
				//eval(CallBackFunction);
			}
		}
	});
	if(resul===undefined) resul=false;
	return resul;
}

/**
 * 
 * @author iZam
 */

// Abre un cuadro de dialogo con una carga dinámica (sustituto de jsWindowIt)
function jsDialogIt(url, id, titulo, ancho, alto, bloquear, cerrar, arrastra, resize, data){
	var dlgId = id || 'ididid';
	ancho = ancho || 600;
	alto = alto || 130;
	titulo = titulo || '';
	date = data || '';
	bloquear = bloquear===undefined?true:bloquear;
	cerrar = cerrar===undefined?true:cerrar;
	arrastra = arrastra===undefined?true:arrastra;
	resize = resize===undefined?false:resize;
	if ($('#'+dlgId).length == 0) {
		var newDialog = document.createElement('DIV');
		newDialog.id = dlgId;
		$('body').prepend(newDialog);
		$('#'+newDialog.id).html('<div class="loading">Procesando...</div>');
		$('#'+newDialog.id).load(url, data);
		$('#'+newDialog.id).dialog({
			modal: bloquear,
			width: ancho,
			height: alto,
			closeOnEscape: cerrar,
			draggable: arrastra,
			resizable: resize,
			title: titulo,
			zIndex: 1000000,
			hide: 'fold',
			close: function(){
				$('#'+newDialog.id).remove();
			}
		});
	}
	else {
		$('#'+dlgId).effect('shake',{},50);
	}
}

function jsCheca(elemento){
	if (elemento.tagName.toUpperCase() == "INPUT"){
		if (!jsValida(elemento)) {
			elemento.style.border = "1px solid #f00";
			return false;
		}
		else {
			elemento.style.border = "1px solid #666";
			return true;
		}
	}
	if (elemento.tagName.toUpperCase() == "SELECT"){
		if (elemento.value == "na") {
			elemento.style.backgroundColor = "#f66";
			return false;
		}
		else {
			elemento.style.backgroundColor = "#c0c0c0";
			return true;
		}
	}
}

function jsEnseña(id, esta){
	if (esta.checked){
		$("#" + id).show();
	}
	else {
		$("#" + id).hide();
	}
}

function jsExpand(id, esta){
	if (esta.checked){
		$("label[for="+esta.id+"]").after($("#" + id).clone().attr("id", esta.id+"_div").removeClass("hidden"));
		$("label[for="+esta.id+"]+div").html($("label[for="+esta.id+"]+div").html().replace(/_z(\d{2})/g, esta.id+"$&"));
		jsLlenarDatos("#"+esta.id+"_div *");
	}
	else{
		$("#"+esta.id+"_div").remove();
	}
}

function jsValida(element){
	if (element.getAttribute('valida')){
		var cadena = RegExp(element.getAttribute('valida'));
		return cadena.test(element.value);
	}
	else{
		return true;
	}
}

function jsAnterior(){
	jsGuardarDatos();
	var current = $("#formulario fieldset[selected=si]").attr("tabNumber");
	current--;
	if (current.toString().length == 1)
		current = "0" + current.toString();
	$("#formulario fieldset").hide().attr("selected", "no");
	if (current == "00" || !$("#formulario fieldset[tabNumber="+current+"]").get(0))
		$("#formulario fieldset[tabNumber]:last").show().attr("selected", "si");
	else
		$("#formulario fieldset[tabNumber="+current+"]").show().attr("selected", "si");
	
}

function jsPrimera(){
	jsGuardarDatos();
	$("#formulario fieldset").hide().attr("selected", "no");
	$("#formulario fieldset[tabNumber=01]").show().attr("selected", "si");
}

function jsSiguiente(){
	jsGuardarDatos();
	var current = $("#formulario fieldset[selected=si]").attr("tabNumber");
	current++;
	if (current.toString().length == 1)
		current = "0" + current.toString();
	$("#formulario fieldset").hide().attr("selected", "no");
	if (!$("#formulario fieldset[tabNumber="+current+"]").get(0))
		current = "01";
	$("#formulario fieldset[tabNumber="+current+"]").show().attr("selected", "si");
	
}

function jsUltima(){
	jsGuardarDatos();
	$("#formulario fieldset").hide().attr("selected", "no");
	$("#formulario fieldset[tabNumber]:last").show().attr("selected", "si");
	
}


function jsDuplica(esta){
	while (!$(esta).hasClass("duplicante"))
		esta = esta.parentNode;
	var x = $("#"+esta.id+" *.duplicador").length + 1;
	var maximo = $("#"+esta.id).attr("maximo") || 16;
	if (x == maximo){
		alert("Ya se alcanzó el número permitido de opciones");
		return;
	}
	x = "000" + x;
	x = x.substr(x.length-2);
	$("#"+esta.id+" *.duplicador:first").clone(true).appendTo("#"+esta.id);
	$("#"+esta.id+" *.duplicador:last input").not("input[type=button]").val("").html("");
	$("#"+esta.id+" *.duplicador:last textarea").val("").html("");
	$("#"+esta.id+" *.duplicador:last").html($("#"+esta.id+" *.duplicador:last").html().replace(/_i(\d{2})/g, "_i"+x));
}
function jsRemove(esta){
	while ($(esta).attr("class").indexOf("duplicante") == -1)
		esta = esta.parentNode;
	var primero = $("#"+esta.id+" *.duplicador:first").get(0)
	var ultimo = $("#"+esta.id+" *.duplicador:last").get(0)
	if (primero == ultimo){
	}
	else{
		$("#"+esta.id+" *.duplicador:last").remove()
	}
}


function jsAbreOtra(){
	jsLimpiaOtra(this.id);
	if ($('#' + this.id + ' option:selected').hasClass('otra')) {
		var label = $('label[for=' + this.id + ']').text()
		jsDialogIt("input.php", "otra_window", "", "400", "30", true, true, true, false, {
			label: label,
			id: this.id
		});
	}
}

function jsLimpiaOtra(id){
	var texto = $('#' + id + ' option.otra').text();
	var x = texto.indexOf('(');	
	if (x > 1)	
		texto = texto.substring(0, texto.indexOf('('));
	$('#' + id + ' option.otra').text(texto);
}

function jsCopiaOtra(){
	var id = $('#otro_id').val();
	
	$('#'+id).attr('otro',$('#otro_select').val());   //agregado por elbert
	$('#' + id + ' option:selected').append(' ('+$('#otro_select').val()+')');
	$('#otra_window').remove();
}

function jsSaveUsr(usr){
	if (usr===undefined)
		usr="";
	pwd=$('#frmUsuario'+usr+' input:password[id=txtPwd'+usr+']').val().trim();
	
	if (usr ==""){
		Valusr=$('#frmUsuario input:text[id=txtUsr]').val().trim();
		EsNew=1;
	}else{
		Valusr=usr.trim();
		EsNew=0;
	}
	if(Valusr != ""){
		if(pwd != "" || usr!=""){
			url='core.php?acc=1&usr='+Valusr+'&pwd='+pwd+'&esnew='+EsNew;
			respServ=jsJQueryIt(url);
			//alert(respServ);
			if (respServ==1){		
				if ($('div [ecUrl=catUsr.php?usuario='+usr+']').is("div")) 
					$('div [ecUrl=catUsr.php?usuario='+usr+']').dialog("close"); //quitar la ventana de contratos
				else 
					if ($('div [ecUrl=catUsr.php?]').is("div")) 
						$('div [ecUrl=catUsr.php?]').dialog("close"); //quitar la ventana de contratos
						
				jsRefreshListaUsuarios();
			}else if (respServ==2){
				alert('El usuario que intenta crear ya existe !!!');
			}else
				alert('No se pudo Guardar reportarselo al administrador !!!');
		}else{
			alert('Capture Contraseña !!!')
			$('#frmUsuario'+usr+' input:password[id=txtPwd'+usr+']').select();
		}
	}else{
		alert('Capture Usuario !!!')
		$('#frmUsuario input:text[id=txtUsr]').select();
	}
}


function jsDelUsr(usr){
	if (confirm('Esta seguro que desea Eliminar el Registro de '+usr+' ???')){
		url='core.php?acc=2&usr='+usr;
		respServ=jsJQueryIt(url);
		if (respServ==1){		
			if ($('div [ecUrl=catUsr.php?usuario='+usr+']').is("div")) 
				$('div [ecUrl=catUsr.php?usuario='+usr+']').dialog("close"); //quitar la ventana de contratos
			 jsRefreshListaUsuarios();
		}else
			alert('No se pudo Borrar reportarselo al administrador !!!');
	}
}

function jsRefreshListaUsuarios(){
	$($('#tbUsuarios').get(0).parentNode.parentNode.parentNode.parentNode.parentNode.parentNode).load('institucionesxregion.php');
}

function jsOpenListausuarios(){
		Url="institucionesxregion.php";
	
		title="Investigadores";
		
		
		opciones="height=310,width=370,esResizable=false,modal=true";
		jsWindowIt(Url,title, opciones)	
}