function consultaCP(){
	window.open('http://www.correos.es/contenido/13-MenuRec2/04-MenuRec24/1010_s-CodPostal.asp');
}

var BLANK_PAGE = 'about:blank';

function MM_findObj(n, d) { //v4.01
	var p,i,x; 
	if(!d) 
		d=document; 
	
	if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; 
		n=n.substring(0,p);
	}
	
	if(!(x=d[n])&&d.all) 
		x=d.all[n]; 
	
	for (i=0;!x&&i<d.forms.length;i++) 
		x=d.forms[i][n];
	
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
		x=MM_findObj(n,d.layers[i].document);
	
	if(!x && d.getElementById) 
		x=d.getElementById(n); 
	
	return x;
}

function ejecutarConfirm(pageOperation, message, action){
	if (confirm(message)){
		ejecutar(pageOperation, action);
		return false;
	}
}

function ejecutarMultipart(pageOperation, action){
	document.TBSForm.encoding = "multipart/form-data";
	ejecutar(pageOperation,action);
}

function ejecutar(paramPageOperation, paramAction, paramTarget) {
	with(document.TBSForm){
		if (paramAction) action = paramAction;
		var targetOld=null;
		if (paramTarget){ 
			targetOld = target;
			target = paramTarget;
		}	
		pageOperation.value = paramPageOperation;
		submit();
		if (targetOld != null) target=targetOld;	
	}	

	return false;
}



function irAPagina(pag, pageOperation){
	document.TBSForm.pagActual.value = pag;
	ejecutar(pageOperation);
}

function creaArray(n) 
{		
	this.length = n;		
	for (var i=1; i<=n; i++) 
		this[i] = 0;				
	return this;	
}


function trim(text){
	//delete initial spaces
	var counter = 0, lastPosition;
	while(text.indexOf(" ", counter)==counter){
		counter++;
	}
	text = text.substr(counter);

	//delete ending spaces
	lastPosition = text.length - 1;
	while(text.lastIndexOf(" ", lastPosition) == lastPosition){
		lastPosition--;
	}
	text = text.substr(0, lastPosition + 1);

	return text;
}

function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
}

function conDecimales(num){
	if (isNaN(num)) return false;
	var cadNum = getDecimal(num.toString());
	return (cadNum.indexOf('.') != -1);
}


function getDecimal(num) {
	return trim(num).replace(',', '.');
}


function getDecimalHTML(num, decimales)
{
	num = redondear(num,decimales);
	return num.toString().replace('.',',');
}

function getCadMonedaHTML(num){
	return getDecimalHTML(num,2) + "&nbsp;&euro;";
}

function redondear(cantidad, decimales) {
	var cantidad = parseFloat(cantidad);
	var decimales = parseFloat(decimales);
	decimales = (!decimales ? 2 : decimales);
	return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales);
} 





function deshabilitarRadio(objRadio, deshabilitar){
	if (objRadio[0] == null){  // solo hay 1 objeto
		if (deshabilitar)
       		objRadio.checked = false;
       	objRadio.disabled = deshabilitar;
     }else{   	
		for(i=0; i< objRadio.length; i++){
			if (deshabilitar)
        		objRadio[i].checked = false;
        	objRadio[i].disabled = deshabilitar;
 		}
 	}	
}


function setValorSelect(objSelect, valueSeleccionado){
	for (i=0; i<objSelect.options.length ; i++) {
		if (objSelect.options[i].value == valueSeleccionado) {
			objSelect.options[i].selected = true;
			break;
		}
	}
}

//Valida que la longitud del texto de un text area no supere un limite
function valorTextarea(objTextArea,limite)
{
	if (objTextArea.value.length >= limite) return false;
	
}

// valida que haya una opcion de un input de tipo radio seleccionada
function valorRadio(objRadio){       
	var valor = false;
	
	if (objRadio[0] == null )  // Solo hay uno
    {
    	if(objRadio.checked){
        	valor = true;                
        }
    }
    else
    {
    	for(i=0; i< objRadio.length; i++){
        	if(objRadio[i].checked){
 				valor = true;
            	break;
 			}
 		}
    } 
    return valor;
}

function estaDeshabilitadoRadio(objRadio){       
	var valor = false;
	var deshabilitados;
	if (objRadio[0] == null )  // Solo hay uno
    {
    	if(objRadio.disabled)
    	{
        	valor = true;                
        }
        else
        {
        	valor = false;
        }
    }
    else
    {
    	valor = true;
    	  	for(i=0; i< objRadio.length; i++){
        	if(!objRadio[i].disabled)
        	{
 				valor = false;
            	break;
 			}
 		}
    } 
    return valor;
}

// valida que haya una opcion de un input de tipo checkbox seleccionada
function valorCheck(objCheck){
	return valorRadio(objCheck);
}	


function valorText(objText){
	return (trim(objText.value) != "");
	
}

function valorTextArea(objTextArea){
	return valorText(objTextArea);
}

function valorCombo(objSelect){
	return valorCombo(objSelect, 0);
}

function valorCombo(objSelect, optionDefault){
	var ok = true;
	if (objSelect && !objSelect.disabled){
		if (objSelect.options.length > optionDefault && objSelect.selectedIndex < optionDefault){
			ok = false;
		}
	}
	return ok;	
	

}

function getValorRadio(objRadio){
	if (objRadio[0]==null)
	{
		if(objRadio.checked){
       			return objRadio.value;
 			}
	}
	else
	{
		for(i=0; i< objRadio.length; i++){
      	 	if(objRadio[i].checked){
       			return objRadio[i].value;
 			}
 		}
 	}	
 	return null;	
}
function setValorRadio(objRadio,value)
{
	if (objRadio[0] == null)
	{
		objRadio.checked = true;
	}
	else
	{
		for (i=0;i<objRadio.length;i++)
		{
			if (objRadio[i].value == value)
			{
				objRadio[i].checked = true;
			}
			else
			{
				objRadio[i].checked = false;
			}
		
		}
	
	}
	return true;
}


function resetValorRadio(objRadio){
	if (objRadio[0] == null)
	{
		objRadio.checked = false;
	}
	else
	{
		for(i=0; i< objRadio.length; i++){
     	objRadio[i].checked = false;
 		}	
 	}
}

// Devuelve una cadena con los 4 digitos del anyo
// "19" ->"2019"; "51" ->"1951"
// "4"  ->"2004";
// "019"->"2019"; "997"->"1997"
function strYear(campo){
        var res="";
	var campoValue=campo.value;
	//if(isNaN(campoValue)){return false;}
	if(campoValue.length==2){
		if(campoValue<=50){res="20"+campoValue;}
		else{res="19"+campoValue;}
	}else if(campoValue.length==1){
		res="200"+campoValue;
	}else if(campoValue.length==3){
		if(campoValue <=50){res="2"+campoValue;}
		else{res="1"+campoValue;}
        }else if(campoValue.length==4){
                res=""+campoValue;
        }
	return res;
}

function addOption(list,optionText,optionValue){
    list.options[list.options.length] = new Option(optionText,optionValue);
}


// -------------------------
// FUNCIONES DE VALIDACION
// -------------------------
// Valida un rango de fechas
function validarFechas(objDia1,objMes1,objAgno1,objDia2,objMes2,objAgno2){
  var hoy=new Date();
  var fecha1=null;
  var fecha2=null;
  var anio;  

  if (!validaFecha(objDia1,objMes1,objAgno1)){return false;}
  if (!validaFecha(objDia2,objMes2,objAgno2)){return false;}
  
  // Si hay fecha de inicio, no debe ser posterior a la actual
  if (objDia1.value!=""){
    anio=strYear(objAgno1);
    fecha1=new Date(anio,new Number(objMes1.value)-1,objDia1.value);
    //if (fecha1.getTime()>hoy.getTime()) {error(objDia1,ERROR_FECHAINICIO_POSTERIOR);return false;}
  }  
  // Si estan las dos fechas, la fecha de inicio no debe ser posterior a la actual
  if ((objDia1.value!="")&&(objDia2.value!="")){
    anio=strYear(objAgno2);
    fecha2=new Date(anio,new Number(objMes2.value)-1,objDia2.value);
    if (fecha1.getTime()>fecha2.getTime()) {error(objDia1,ERROR_FECHAFIN_MAYOR);return false;}
  }
  return true;
}


function validaFecha(objDia,objMes,objAgno){
  // si todas son vacias OK
  if ((objDia.value=="") && (objMes.value=="") && (objAgno.value=="")) return true;
  // al menos una es distinta de vacio, con lo cual deben estar todas rellenas
  if (objDia.value=="") {error(objDia,ERROR_FECHA_NAN_DIA);return false;}
  if (objMes.value=="") {error(objMes,ERROR_FECHA_NAN_MES);return false;}
  if (objAgno.value=="") {error(objAgno,ERROR_FECHA_NAN_ANYO);return false;}
  // validacion  
  if (isNaN(objDia.value)) {error(objDia,ERROR_FECHA_NAN_DIA);return false;}
  var dia = parseInt(objDia.value,10);
  if (isNaN(objMes.value)){error(objMes,ERROR_FECHA_NAN_MES);return false;}
  var mes = parseInt(objMes.value,10);
  if (mes>12 || mes<1) {error(objMes,ERROR_FECHA_MES_LIMITE);return false;}
  if (isNaN(objAgno.value)) {error(objAgno,ERROR_FECHA_NAN_ANYO);return false;}
  var ano = parseInt(objAgno.value,10);
  
  var bisiesto;
  var days = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
  var fecha = objDia.value.toString();
  var limite = 0;
  var indice;
  var fecha1 = new Date();
  var actual = Date.parse(fecha1);
  indice = mes--;
  (ano % 4 == 0) ? ((ano %100 ==0)?((ano % 400 ==0)? bisiesto = true : bisiesto = false) : bisiesto = true) : bisiesto = false;
  if ((bisiesto==true) && (indice==2)) {limite=29;} else {limite = days[mes];}
  if (dia<=0 || dia>limite) {error(objDia,ERROR_FECHA_DIA_LIMITEIZQ+limite+ERROR_FECHA_DIA_LIMITEDER);return false;}
  return true;
}


var extFichArray = new Array(".pdf");
var maxLongNombreFichDefault = 20;

function validarExtFichero(objFich,nombreFich) {
	var ok = false; 
	var ext = nombreFich.slice(nombreFich.lastIndexOf(".")).toLowerCase();
	
	for (var i = 0; i < extFichArray.length; i++) {
		if (extFichArray[i] == ext) { ok = true; break; }
	}
	if (!ok)
			error(objFich,ERROR_FICH_EXT);
	return ok;
}

function validarLongitudNombreFichero(objFich, nombreFich, maxLongNombreFich){
	var ok = true;
	
	if (!maxLongNombreFich)
		maxLongNombreFich = maxLongNombreFichDefault;
	
	if (nombreFich.length > maxLongNombreFich){
		ok = false;
		error(objFich,ERROR_FICH_LONG_NOMBRE_IZQ + maxLongNombreFich + ERROR_FICH_LONG_NOMBRE_DER);
	}
	
	return ok;
}

function nombreFichero(objFich)
{
	var tokens = replaceAll(objFich.value,"\\","/").split("/");
	var nombreFich;
	if (tokens.length >0 ){
		nombreFich = tokens[tokens.length -1];
		}
	return nombreFich;
}

function replaceAll(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replaceAll(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

function validarFichero(objFich, maxLongNombreFich){
	var tokens = replaceAll(objFich.value,"\\","/").split("/");
	var ok = false;
	if (tokens.length >0 ){
		var nombreFich = tokens[tokens.length -1];
		ok = validarLongNombreFich(objFich,nombreFich,maxLongNombreFich);
		if (ok) ok = validarExtFichero(objFich,nombreFich);
	}
	return ok;
}

function validarPorcentaje(objPorcentaje){
	var valor = getDecimal(objPorcentaje.value);
	if (isNaN(valor)) return false;
	
	var porcentaje = parseFloat(valor);
	if (porcentaje <=0 || porcentaje > 100){
		return error(objPorcentaje, ERROR_PORCENTAJE);
	}
	return true;
}

function validarNumDecimal(objDecimal)
{
	var num = getDecimal(objDecimal.value);
	if (isNaN(num)) return false;
	/**
	for (i=0;i<num.length;i++)
	{
		if (!isDigit(num.charAt(i)) && (num.charAt(i) != '.'))
		{
			return false;
		}
	}
	*/
	return true;
}

/**
 * Valida que una lista de porcentajes sume 100.00
 */
function validarParticipacion(codigos) {
	var suma = 0;
	for(i = 0; i < codigos.length; i++) {
		var porcentaje = parseFloat(getDecimal(eval('document.TBSForm.'+codigos[i]).value));
		if (porcentaje <= 0 || porcentaje > 100) return false;	
		suma +=	porcentaje;
	}
	return (suma == 100);
}


function validarTfnoFax(valor){
        if (isNaN(valor)) {return false;}
        //if (valor.length != 9) {return false;}
        return true;
}

function validarCP(valor){
        if (isNaN(valor)) {return false;}
        if (valor.length != 5) {return false;}
        return true;
}

function orden(columna, pageOperation, action) {
	document.TBSForm.colOrdenar.value = columna;
	ejecutar(pageOperation, action);
}

function volver(){
	window.history.back();
}

function irA(url){
	top.location.href=url;
}

function abrirV(ruta,nombre, ancho, alto, caracteristicas){
	var car = 'width=' + ancho + ',height='+alto;
	car = car + ', left=' + ((screen.width)?(screen.width-ancho)/2:100);
	car = car + ', top=' + ((screen.height)?(screen.height-alto)/2:100);		
    car = car +	', scrollbars=yes, resizable=yes';
	if (caracteristicas != null && caracteristicas != '')
		car = car + ', ' + caracteristicas;
	return window.open(ruta,nombre,car);
}

//DEPRECATED, usar mostrarPDF()
function abrirPDF(urlPDF){
	/**
	abrirV(BLANK_PAGE,'nameVentana',screen.availWidth, screen.availHeight,null);
	ejecutar(pageOperation,servlet, 'nameVentana');
**/
	return abrirV(urlPDF,'',screen.availWidth, screen.availHeight,null);
}

function mostrarV(objWin, url, nombre, ancho, alto, caracteristicas){
	if (!objWin || objWin.closed)
		objWin = abrirV(url, nombre, ancho, alto, caracteristicas);
	
	objWin.focus();
	return objWin;
}

function mostrarPDF(objWin, url, name, pageOperation, servlet){
	if (!objWin || objWin.closed){
		//objWin=abrirV(BLANK_PAGE,name,screen.availWidth, screen.availHeight,null);
		//ejecutar(pageOperation,servlet,name);
		objWin = abrirV(url,name,screen.availWidth, screen.availHeight,null);
	}	
	
	objWin.focus();
	return objWin;
}

