/*
 * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
 * in FIPS PUB 180-1
 * Copyright (C) Paul Johnston 2000 - 2002.
 * See http://pajhome.org.uk/site/legal.html for details.
 */

/*
 * Convert a 32-bit number to a hex string with ms-byte first
 */
var hex_chr = "0123456789abcdef";
function hex(num)
{
  var str = "";
  for(var j = 7; j >= 0; j--)
    str += hex_chr.charAt((num >> (j * 4)) & 0x0F);
  return str;
}

/*
 * Convert a string to a sequence of 16-word blocks, stored as an array.
 * Append padding bits and the length, as described in the SHA1 standard.
 */
function str2blks_SHA1(str)
{
  var nblk = ((str.length + 8) >> 6) + 1;
  var blks = new Array(nblk * 16);
  for(var i = 0; i < nblk * 16; i++) blks[i] = 0;
  for(var i = 0; i < str.length; i++)
    blks[i >> 2] |= str.charCodeAt(i) << (24 - (i % 4) * 8);
  blks[i >> 2] |= 0x80 << (24 - (i % 4) * 8);
  blks[nblk * 16 - 1] = str.length * 8;
  return blks;
}

/*
 * Add integers, wrapping at 2^32. This uses 16-bit operations internally
 * to work around bugs in some JS interpreters.
 */
function safe_add(x, y)
{
  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return (msw << 16) | (lsw & 0xFFFF);
}

/*
 * Bitwise rotate a 32-bit number to the left
 */
function rol(num, cnt)
{
  return (num << cnt) | (num >>> (32 - cnt));
}

/*
 * Perform the appropriate triplet combination function for the current
 * iteration
 */
function ft(t, b, c, d)
{
  if(t < 20) return (b & c) | ((~b) & d);
  if(t < 40) return b ^ c ^ d;
  if(t < 60) return (b & c) | (b & d) | (c & d);
  return b ^ c ^ d;
}

/*
 * Determine the appropriate additive constant for the current iteration
 */
function kt(t)
{
  return (t < 20) ?  1518500249 : (t < 40) ?  1859775393 :
         (t < 60) ? -1894007588 : -899497514;
}

/*
 * Take a string and return the hex representation of its SHA-1.
 */
function crispetes(str)
{
  var x = str2blks_SHA1(str);
  var w = new Array(80);

  var a =  1732584193;
  var b = -271733879;
  var c = -1732584194;
  var d =  271733878;
  var e = -1009589776;

  for(var i = 0; i < x.length; i += 16)
  {
    var olda = a;
    var oldb = b;
    var oldc = c;
    var oldd = d;
    var olde = e;

    for(var j = 0; j < 80; j++)
    {
      if(j < 16) w[j] = x[i + j];
      else w[j] = rol(w[j-3] ^ w[j-8] ^ w[j-14] ^ w[j-16], 1);
      var t = safe_add(safe_add(rol(a, 5), ft(j, b, c, d)), safe_add(safe_add(e, w[j]), kt(j)));
      e = d;
      d = c;
      c = rol(b, 30);
      b = a;
      a = t;
    }

    a = safe_add(a, olda);
    b = safe_add(b, oldb);
    c = safe_add(c, oldc);
    d = safe_add(d, oldd);
    e = safe_add(e, olde);
  }
  return hex(a) + hex(b) + hex(c) + hex(d) + hex(e);
}


function trobaData()
{
	var dia = this.getDate()
	var mes = this.getMonth() + 1
	var any = this.getFullYear()
	if (dia < 10)
	{
		dia = "0" + dia
	}
	if (mes < 10)
	{
		mes = "0" + mes
	}
	return dia+"-"+mes+"-"+any
}

function valida_juno(nou, nou2, old) {
    var raiko = document.getElementById(nou) ;
    var jamil = document.getElementById(nou2) ;
    var alonsox = document.getElementById(old) ;
    if ((raiko.value == jamil.value) && (old.value != "")) {
        return true ;
    } else {
        return false ;
    }    
}
//COMPROVAR NIFs
function comprova()
{
  cadena="TRWAGMYFPDXBNJZSQVHLCKET"
  posicio = parseInt(document.incidencies.nif.value) % 23
  lletra = cadena.substring(posicio,posicio+1)
  inputNif = document.incidencies.nif.value
  inputNifNum = inputNif.substring(0,8)
  inputNifLletra = (inputNif.substring(8,9)).toUpperCase()
  if (!(isNaN(inputNifNum)) && (isNaN(inputNifLletra)))  
  {
    if (inputNifLletra==lletra)
	{
      decolora(10) ;
	}
	else
	{
	  colorea(10) ;
	}
  }
  else
  {
    colorea(10) ;
  }
}


function capitaliza(ident) {
    var texto = document.getElementById(ident) ;
    texto.value =  texto.value.toUpperCase() ; 
}

function elimina_espacios(ident) {
    var texto = document.getElementById(ident) ;
    texto.value =  texto.value.replace(/\s+/g, '') ; 
}
function trimea(iden) {
    var texto = document.getElementById(iden) ;
    texto.value =  texto.value.replace(/^\s+|\s+$/g, '') ;
}
//FA VISIBLE UNA CAPA EN FUNCIÓ D'UN Id D'UN ALTRE CAMP DE FORMULARI
function activa(entero) {
    var pi = document.getElementById(entero) ;
    pi.style.visibility = "visible" ;
}   
  
function desactiva(entero) {
    var pi = document.getElementById(entero) ;
    pi.style.visibility = "hidden" ;
} 
function colorea(entero) {
    var pi = document.getElementById(entero) ;
    pi.style.color = "#FF0000" ;
} 

function decolora(entero) {
    var pi = document.getElementById(entero) ;
    pi.style.color = "#000000" ;
}
//VALIDADOR DEL FORMULARI PEL CIUTADA
//AL FINAL SERA GENERICA PER A TOTS ELS FORMULARIS, PASSANT-LI MES PARAMETRES
/*function valida_element(campo_a_validar, identificador, valor_no_valido) {
    if ((campo_a_validar == valor_no_valido)) {
        if (flag) {
            colorea(parseInt(identificador)) ;
            return  false ;
    } else {
        decolora(parseInt(identificador)) ;
        return true ; 
    }     
} */

function valida_ciutada(form) {
    var pinta = true ;
    var nombre_comercial = form.nom_comerc.value ;
    var comU = form.comunicant.value ;
    var telf = form.telefon.value ;
    var nivel1 = form.nivell1.value ;
    var nivel2 = form.nivell2.value ; 
    var inc = form.tipus.value ;
    var obs = form.observacions.value ;
    var carr = form.carrer.value ;
    var numero = form.num.value ;
    var mail = form.email.value ;
    //VALIDAMOS TUTTO
    if (document.getElementById(55).checked) { 
        if (nombre_comercial == "") {
            colorea(2) ;
            pinta = false ;
        } else {
            decolora(2) ;
        }
    }
    if (comU == "") {
        if (pinta) {
            pinta = false ;
        }
        colorea(3) ;        
    } else {
        decolora(3) ;
    } 
    if ((isNaN(telf)) || (telf.length != 9) || ((telf.substring(0, 1) != 9) && (telf.substring(0, 1) != 6))) {
        if (pinta) {
            pinta = false ;
        }
        colorea(4) ;        
    } else {
        decolora(4) ;
    }
    if (inc == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(34) ;        
    } else {
        decolora(34) ;
    }
    if (nivel1 == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(5) ;        
    } else {
        decolora(5) ;
    }
    if (nivel2 == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(33) ;        
    } else {
        decolora(33) ;
    }
    if (obs == "") {
        if (pinta) {
            pinta = false ;
        }
        colorea(6) ;        
    } else {
        decolora(6) ;
    }
    if (carr == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(7) ;        
    } else {
        decolora(7) ;
    }
    if ((isNaN(numero)) || (numero == "0") || (numero == '')) {
        if (pinta) {
            pinta = false ;
        }
        colorea(8) ;        
    } else {
        decolora(8) ;
    }
    //CAMPOS OPCIONALES
    if (mail != "") {
        if(mail.search(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/ig)){
            if (pinta) {
                pinta = false ;
            }
            colorea(9) ;
        } else {
            decolora(9) ;
        }
    } else {
        decolora(9) ;
    }
    return pinta ;
} 
//COMERCIAL
function valida_comercial(form) {
    var pinta = true ;
    var nombre_comercial = form.nom_comerc.value ;
    var telf = form.telefon.value ;
    var nivel1 = form.nivell1.value ;
    var nivel2 = form.nivell2.value ; 
    var inc = form.tipus.value ;
    var carr = form.carrer.value ;
    var numero = form.num.value ;
    var mail = form.email.value ;
    //VALIDAMOS TUTTO
    if ((document.getElementById(16).checked) ||  (document.getElementById(17).checked)){ //contenedor
		//OK
    } else {
		colorea(6) ;
		pinta = false ;
	}
	if (nombre_comercial == "") {
		colorea(2) ;
		pinta = false ;
	} else {
		decolora(2) ;
	}

    if ((isNaN(telf)) || (telf.length != 9) || ((telf.substring(0, 1) != 9) && (telf.substring(0, 1) != 6))) {
        if (pinta) {
            pinta = false ;
        }
        colorea(4) ;        
    } else {
        decolora(4) ;
    }
    if (inc == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(34) ;        
    } else {
        decolora(34) ;
    }
    if (nivel1 == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(5) ;        
    } else {
        decolora(5) ;
    }
    if (nivel2 == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(33) ;        
    } else {
        decolora(33) ;
    }
    if (carr == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(7) ;        
    } else {
        decolora(7) ;
    }
    if ((isNaN(numero)) || (numero == "0") || (numero == '')) {
        if (pinta) {
            pinta = false ;
        }
        colorea(8) ;        
    } else {
        decolora(8) ;
    }
    //CAMPOS OPCIONALES
    if (mail != "") {
        if(mail.search(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/ig)){
            if (pinta) {
                pinta = false ;
            }
            colorea(9) ;
        } else {
            decolora(9) ;
        }
    } else {
        decolora(9) ;
    }
    return pinta ;
} 


function valida_mobles(form) {
    var pinta = true ;
    var comU = form.comunicant.value ;
    var telf = form.telefon.value ;
    var obs = form.observacions.value ;
    var carr = form.carrer.value ;
    var numero = form.num.value ;
    var mail = form.email.value ; 
    //VALIDAMOS TUTTO
    if (comU == "") {
        if (pinta) {
            pinta = false ;
        }
        colorea(3) ;        
    } else {
        decolora(3) ;
    }
    if ((isNaN(telf)) || (telf.length != 9) || ((telf.substring(0, 1) != 9) && (telf.substring(0, 1) != 6))) {
        if (pinta) {
            pinta = false ;
        }
        colorea(4) ;        
    } else {
        decolora(4) ;
    }
    if (obs == "") {
        if (pinta) {
            pinta = false ;
        }
        colorea(6) ;        
    } else {
        decolora(6) ;
    }
    if (carr == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(7) ;        
    } else {
        decolora(7) ;
    }
    if ((isNaN(numero)) || (numero == "0") || (numero == '')) { 
        if (pinta) {
            pinta = false ;
        }
        colorea(8) ;        
    } else {
        decolora(8) ;
    }
    //CAMPOS OPCIONALES
    if (mail != "") {
        if(mail.search(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/ig)){
            if (pinta) {
                pinta = false ;
            }
            colorea(9) ;
        } else {
            decolora(9) ;
        }
    } else {
        decolora(9) ;
    }
    return pinta ;
}

//FUNCIONACA PARA ACTUALIZAR LOS SELECTS.CUIDADO CON LAS VARIABLES DE PHP DE PASO

  function modifica_combo(combo_modificado, combo_amodificar, array_ids1, array_desc1, array_id2, array_desc2) {
    var flag = true ;
    var ultima_h = 0 ;
	  if (combo_modificado.value == "-1") {
	  //BORRAMOS LO QUE HAY PARA ENGATILLAR TODAS LAS OPCIONES
	  //BORRAMOS TODAS LAS OPCIONES MENOS LA 1ª (TODOS)
		while (combo_amodificar.options.length > 1) {
			combo_amodificar.options.remove(1) ;
		}
	//AÑADIMOS TODAS LAS OPCIONES
		/*for (var h = 1 ; h < array_ids1.length ; h++) {
			var inelem = document.createElement("OPTION") ;
			inelem.text = array_desc2[h] ;
			inelem.value = array_id2[h] ;
			combo_amodificar.add(inelem) ;
		}   */
	 }
	 else {
	//BORRAMOS IGUAL Y SOLO PONEMOS LAS OPCIONES DE ESTE TIPO
		while (combo_amodificar.options.length > 1) {
			combo_amodificar.options.remove(1) ;
		}
		for (var h = 2 ; h < array_ids1.length ; h++) {
			if (array_ids1[h] == combo_modificado.value) {
                //alert(ultima_h) ;
                if(array_desc2[ultima_h] != array_desc2[h]) {
				    var inelem = document.createElement("OPTION") ;
				    inelem.text = array_desc2[h] ;
				    inelem.value = array_id2[h] ;
				    combo_amodificar.add(inelem) ;
                }
                ultima_h = h ;
			}
		}
	}
  }

//FIN FUNCION


function valida_tecnics(form) {
    var pinta = true ;
    var medi_comunicacio = form.tipus_solicitant.value ;
	var comunica = form.comunicant_opcional.value ;
    var nivel1 = form.nivell1.value ;
    var nivel2 = form.nivell2.value ; 
    var inc = form.tipus.value ;
    var obs = form.observacions.value ;
    var carr = form.carrer.value ;
    var numero = form.num.value ;
	var telf = form.telefon_opcional.value ;
    //VALIDAMOS TUTTO

    if (inc == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(34) ;        
    } else {
        decolora(34) ;
    }
    if (medi_comunicacio == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(4) ;        
    } else {
        decolora(4) ;
    }
	if (comunica == "") {
        colorea(3) ;        
    } else {
        decolora(3) ;
    }
	if ((isNaN(telf)) || (telf.length != 9) || ((telf.substring(0, 1) != 9) && (telf.substring(0, 1) != 6))) {
        colorea(2) ;        
    } else {
        decolora(2) ;
    }
    if (nivel1 == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(5) ;        
    } else {
        decolora(5) ;
    }
    if (nivel2 == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(33) ;        
    } else {
        decolora(33) ;
    }
    if (obs == "") {
        if (pinta) {
            pinta = false ;
        }
        colorea(6) ;        
    } else {
        decolora(6) ;
    }
    if (carr == "-1") {
        if (pinta) {
            pinta = false ;
        }
        colorea(7) ;        
    } else {
        decolora(7) ;
    }
    if ((isNaN(numero)) || (numero == "0") || (numero == '')) {
        if (pinta) {
            pinta = false ;
        }
        colorea(8) ;        
    } else {
        decolora(8) ;
    }
    return pinta ;
} 
function activador(combo, enterosi, enterono) {
	var combo2 = combo ;
    var pisi = document.getElementById(enterosi) ;
    var pino = document.getElementById(enterono) ;
	if (combo2 != 45) { //DESACTIVAMOS
	    //pi.style.visibility = "hidden" ;
		pino.checked = true ;
		pisi.disabled = true ;
	} else {
		pisi.disabled = false ;
		pisi.checked = true ;
		pino.disabled = false ;
	}
}
function Imprimil(nombre)
{
  var ficha = document.getElementById(nombre);
  var ventimp = window.open(' ', 'popimpr');
  ventimp.document.write(ficha.innerHTML);
  ventimp.document.close();
  ventimp.print();
  ventimp.close();
} 
function Imprimil_Validal(nombre)
{
  var ficha = document.getElementById(nombre);
  var ventimp = window.open(' ', 'popimpr');
  ventimp.document.write(ficha.innerHTML);
  ventimp.document.close();
  ventimp.print();
  ventimp.close();
} 