function changeScreenSize(w, h){
    window.resizeTo(w, h)
}
 
/*
Funcion que retorna un objeto XMLHttpRequest
*/
 function nuevoAjax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (E) {
					try{
						xmlhttp = new XMLHttpRequest();
					} catch(E2){
						xmlhttp = false;
					}
			}
	}
	
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

/*
 * Funcion para retornar objetos por su id o su nombre
 * Mas rapido que tipear el nombre de la funcion completa
 * @param {String} id del objeto a buscar
 */
function findObj(id){
    var obj = null;
    obj = document.getElementById(id);
    //	if (!obj) {
    //		obj = document.getElementsByName(id);
    //	}
    return obj;
}



/*
 * Funcion para marcar el codigo del pais en el span "num_pais"
 */
function numPais(){
//	'reseteamos' estado de los campos
	findObj('num_pais').innerHTML = '';
	findObj('pais_id').value = ''; 
    try {
        var sel = document.getElementById('countrycode_id')
        var codPais = sel.options[sel.selectedIndex].value;
		// si no hay un codigo (option en blanco), salimos. Como los campos fueron reseteados, quedan en blanco
		if(codPais=='')return;
        // p= Array de paises con elementos en formato "key|id,|code". Se crea en la vista de popup (show)
        for (var i = 0; i < p.length; i++) {
            var partes = p[i].split('|')//key, id, code
            if (partes[0] == codPais) {
                var elCod = partes[2]
                var elId = partes[1]
                break
            }// fin if partes			
        }// fin for
		findObj('num_pais').innerHTML = elCod + ' - ';
		findObj('pais_id').value = elId; 
    }catch(e){}
}

/*
 * Funcion para quitar ceros a la izquierda y controlar que sean sólo números
 * MODIFICACION: Ahora acepta el nombre del objeto o el objeto mismo, para usar 'this' al llamar la función
 * @param {String} cmp nombre del campo a formatear Ó
 * @param {Object} Objeto input a ser formateado
 */
function formatNumero(elCmp){
	cmp = (typeof elCmp == 'string') ? findObj(elCmp) : elCmp
	while(cmp.value.match(/\D/) || cmp.value.match(/^0+/)){
	    cmp.value = cmp.value.replace(/\D/, '')// elimina lo que no sea dígito
    	cmp.value = cmp.value.replace(/^0+/, '')// elimina ceros a la izquierda
	}
//	while(findObj(cmp).value.match(/\D/) || findObj(cmp).value.match(/^0+/)){
//	    findObj(cmp).value = findObj(cmp).value.replace(/\D/, '')// elimina lo que no sea dígito
//    	findObj(cmp).value = findObj(cmp).value.replace(/^0+/, '')// elimina ceros a la izquierda
//	}
}

/*
 * Funcion para escribir el numero del area en un span
 */
function numArea(){
    formatNumero('areacode')
    var cod = findObj('areacode').value;
    findObj('num_ciud').innerHTML = cod + ' - ';
}

/*
 * Funcion para escribir el numero de telefono en un span
 */
function numFono(){
    formatNumero('phonenumber')
    var cod = findObj('phonenumber').value;
    findObj('num_fono').innerHTML = cod;
}


/*
 * Funcion para validar que haya un número ingresado antes de hacer submit
 */
function validaNumero() {
	formatNumero('areacode')
	formatNumero('phonenumber')
	try{
		var sel = findObj('countrycode_id')
		if(sel.selectedIndex==0){
			alert('Por favor seleccione su país');
			return false;
		}
	}catch(e){/* Nada. Significa que no hay un select de paises: hay solo 1 pais para este popup */}
	if (findObj('areacode').value == ''){
		alert('Por favor ingrese su código de área');
		findObj('areacode').focus()
		return false;
	}	
	if (findObj('phonenumber').value.length < 6){
		alert('Por favor ingrese su teléfono');
		findObj('phonenumber').focus()
		return false;
	}	
	return true;
}


/*
 * Funcion para cargar funciones a la página, similar al <body onload="">
 * @param {Object} func la función a cargar
 */
function addLoadEvent(func){
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    }
    else {
        window.onload = function(){
            if (oldonload) {
                oldonload();
            }
            func();
        }
    }
}

/*
 * Asigna de manera no intrusiva los comportamientos de cada campo
 * De esta manera, al cambiar el valor de alguno de los campos
 * se rescata este nuevo valor y se escribe en su span correspondiente
 */
function muestraNumero(){
    try {
        findObj('countrycode_id').onchange = numPais;
    } catch (e) {}
    findObj('areacode').onkeyup = numArea;
    findObj('phonenumber').onkeyup = numFono;
	findObj('form_popup').onsubmit = validaNumero;
}

/*
 * Iniciamos los elementos necesarios
 */
function init(){
    //	por algun motivo, al refrescar guarda los valores que estaban seleccionados
    //	asi que vaciamos los campos
    //findObj('areacode').value = ''
    //findObj('phonenumber').value = ''
	if (findObj('countrycode_id')) {
		numPais();//para que parta marcando el número del país que parte seleccionado
	}
	addLoadEvent(muestraNumero);
}

/*
* Los validadores javascript que están en el popup pueden fallar bajo ciertas circunstancias 
* (ej: pegar texto en los campos en vez de tipearlo, dejar una tecla pegada, etc) 
* Acá revalidamos todo al hacer submit
*/
function revalidarPopup(){
	formatNumero('areacode')
	formatNumero('phonenumber')
	res = validaNumero()
	muestraNumero()
	return res;
}


/*
 * Función que reemplaza los textos de los options en el campo select, 
 * para que traduzca los nombres de los paises que aparece en
 * el listado de paises del administrador
 * @param {Array} p los paises, con los elementos en formato "key|texto" 
 * @param {String} id nombre del campo select. 
 * Los options del select deben ser en formato value:id_pais, text: key del pais
 */
function traduceLista(p, id){
	var sel = findObj(id);
	opVacia = false
	var listaOrdenar = new Array();
	for(var i = 0; i<sel.length; i++){
		for(var j = 0;j<p.length; j++){
			var partesPais = p[j].split('|');
			opVacia = (sel.options[i].value.length==0 || opVacia==true);// Si hay una opcion sin value, es porque viene un option vacio con "Seleccione"
			if(sel.options[i].text == partesPais[0]){
				// creamos un arreglo, con elementos en formato [nombre_pais|id_pais], para ordenar
				listaOrdenar.push(partesPais[1] + '|' + sel.options[i].value + '|' + sel.options[i].selected);
				break;
			}
		}
	}
	listaOrdenar.sort()
	limpiaSelect(id);
	if 	(opVacia){ listaOrdenar.unshift('Seleccione||');}
	// Ahora, rearmamos el select, traducido y ordenado
	sel.options[0] = new Option('Seleccione','');
	for(var i = 0; i<listaOrdenar.length; i++){
		var parte = listaOrdenar[i].split('|');
		sel.options[i] = new Option(parte[0],parte[1]);
		sel.options[i].selected = eval(parte[2])
	}
}

/*
 * Funcion que vacía un campo select
 * @param {String} id nombre del campo select. 
 */
function limpiaSelect(id){
	var sel = findObj(id);
	while(sel.length>0){
		sel.options[0] = null;
	}
}

/*
 * Función que vacía los campos de rango de fechas, en el filtraje de llamadas. 
 * Se utiliza en campo select que marca el mes que queremos revisar
 */
function limpiaRango(){
	findObj('fec_ini').value = ''
	findObj('fec_fin').value = ''
	findObj('form_filtraje').submit();
}

/*
 * Funcion que cambia el estado de display de un elemento dado, para mostrar u ocultar
 * @param {String} id del elemento. 
 */
function toogle(id){
	findObj(id).style['display'] = findObj(id).style['display']=='none' ? '' : 'none'
}

function periodo(){
	//lunes a viernes
	if (findObj('check1').checked == true){
		findObj('popup[horario][lunes][0]').disabled = true;
		findObj('popup[horario][lunes][1]').disabled = true;
		findObj('popup[horario][lunes][2]').disabled = true;
		findObj('popup[horario][lunes][3]').disabled = true;
		findObj('popup[horario][lunes][4]').disabled = true;
		findObj('popup[horario][lunes][5]').disabled = true;
		findObj('popup[horario][lunes][6]').disabled = true;
		findObj('popup[horario][lunes][7]').disabled = true;
	}
	if (findObj('check1').checked == false){
		findObj('popup[horario][lunes][0]').disabled = false;
		findObj('popup[horario][lunes][1]').disabled = false;
		findObj('popup[horario][lunes][2]').disabled = false;
		findObj('popup[horario][lunes][3]').disabled = false;
		findObj('popup[horario][lunes][4]').disabled = false;
		findObj('popup[horario][lunes][5]').disabled = false;
		findObj('popup[horario][lunes][6]').disabled = false;
		findObj('popup[horario][lunes][7]').disabled = false;
	}	
	//sabado
	if (findObj('check2').checked == true){
		findObj('popup[horario][sabado][0]').disabled = true;
		findObj('popup[horario][sabado][1]').disabled = true;
		findObj('popup[horario][sabado][2]').disabled = true;
		findObj('popup[horario][sabado][3]').disabled = true;
		findObj('popup[horario][sabado][4]').disabled = true;
		findObj('popup[horario][sabado][5]').disabled = true;
		findObj('popup[horario][sabado][6]').disabled = true;
		findObj('popup[horario][sabado][7]').disabled = true;
	}
	if (findObj('check2').checked == false){
		findObj('popup[horario][sabado][0]').disabled = false;
		findObj('popup[horario][sabado][1]').disabled = false;
		findObj('popup[horario][sabado][2]').disabled = false;
		findObj('popup[horario][sabado][3]').disabled = false;
		findObj('popup[horario][sabado][4]').disabled = false;
		findObj('popup[horario][sabado][5]').disabled = false;
		findObj('popup[horario][sabado][6]').disabled = false;
		findObj('popup[horario][sabado][7]').disabled = false;
	}	
	//domingo
	if (findObj('check3').checked == true){
		findObj('popup[horario][domingo][0]').disabled = true;
		findObj('popup[horario][domingo][1]').disabled = true;
		findObj('popup[horario][domingo][2]').disabled = true;
		findObj('popup[horario][domingo][3]').disabled = true;
		findObj('popup[horario][domingo][4]').disabled = true;
		findObj('popup[horario][domingo][5]').disabled = true;
		findObj('popup[horario][domingo][6]').disabled = true;
		findObj('popup[horario][domingo][7]').disabled = true;
	}
	if (findObj('check3').checked == false){
		findObj('popup[horario][domingo][0]').disabled = false;
		findObj('popup[horario][domingo][1]').disabled = false;
		findObj('popup[horario][domingo][2]').disabled = false;
		findObj('popup[horario][domingo][3]').disabled = false;
		findObj('popup[horario][domingo][4]').disabled = false;
		findObj('popup[horario][domingo][5]').disabled = false;
		findObj('popup[horario][domingo][6]').disabled = false;
		findObj('popup[horario][domingo][7]').disabled = false;
	}	
}

function comparaClaves(cmp1, cmp2){
	if (findObj(cmp1).value == '' || findObj(cmp2).value == ''){
		alert('Por favor complete los campos');
		findObj(cmp1).focus();
		return false;
	}
	if (findObj(cmp1).value != findObj(cmp2).value){
		alert('Las claves  no coinciden');
		findObj(cmp1).focus();
		findObj(cmp2).value = '';
		return false;
	}
	 return true;
}

function clickclear(thisfield, defaulttext) {
if (thisfield.value == defaulttext) {
	thisfield.value = "";
	if (defaulttext == 'área' || defaulttext == 'area') {
	findObj('areacode').className = 'areacode';
	}
	else {
		findObj('phonenumber').className = 'areacode';
	}
}
}

function clickrecall(thisfield, defaulttext) {
if (thisfield.value == "") {
thisfield.value = defaulttext;
if (defaulttext == 'área' || defaulttext == 'area') {
	findObj('areacode').className = 'areacode2';
}
else {
	findObj('phonenumber').className = 'areacode2';
}
}
}

function ini(textt,valor){
	//findObj('areacode').value = 'área';
	//findObj('phonenumber').value = 'número';
	findObj('areacode').className = 'areacode2';
	findObj('phonenumber').className = 'areacode2';
}
