/////////////////////////////////////////////////////////
//	** Funcions generals de minorista **
//	Creat: Joan Fullana (10/04/2003)
//	Modificacio: 
/////////////////////////////////////////////////////////

function validarCCC(cbanc,csucursal,ccontrol,ccuenta){
	
	function calculDigitControl(camp){
		var pes = new Array(0,6,3,7,9,10,5,8,4,2,1);
		var offSet;
		var digit = 0;
		
		for (var i=1;i<=camp.length;i++){
			offSet = camp.length - i;
			digit += pes[i] * parseInt(camp.substr(offSet,1),10)
		}
		
		digit = (digit % 11);
		digit = 11 - digit;
		switch (digit){
		case 10:
			return 1;
			break;
		case 11:
			return 0;
			break;
		default:
			return digit;
		}
	}

	var bancSucursal ="";
	var codiDomain="";	
	var primerDC,segonDC;
	
	if ((cbanc.length<4)||(isNaN(cbanc)))
		return 1;
	if ((csucursal.length<4)||(isNaN(csucursal)))
		return 1;
	if ((ccontrol.length<2)||(isNaN(ccontrol)))
		return 1;
	if ((ccuenta.length<10)||(isNaN(ccuenta)))
		return 1;
	
	//validar els digits de control
	bancSucursal = bancSucursal.concat(cbanc).concat(csucursal)
	primerDC = calculDigitControl(bancSucursal)
	segonDC = calculDigitControl(ccuenta)
	
	if (ccontrol != codiDomain.concat(primerDC).concat(segonDC))
		return 2;
	else
		return 0;
}

function saltoCampana(programa){
  goUrl("/grafica/campanyas.aspx?programa=" + programa +"&sesion=" + sesion);
}
	

function validarDocFiscal(doc, sesion, esEspanyol){
	var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	xmlDoc.async = false;
	
	xmlDoc.load("/cierre/include/negOperativa.aspx?funcion=validarDocFiscal&sesion="+ sesion +"&docFiscal="+ doc +"&esEspanyol="+ esEspanyol)
	
	if (xmlDoc.documentElement)
		return (xmlDoc.documentElement.getAttribute("ok")=="1")
	
	return false; 
}


//per validar un mail
function validarEmail(valor){
		var i = 0;
		var j = valor.length-1;
		
		function caracterValid(codi){
			switch(codi){
			case 45:	//-
						return true;
			case 46:	//.
						return true;
			case 95:	//_
						return true;
			default:	// lletres i digits
				if (((codi>=97)&&(codi<=122))||((codi>=65)&&(codi<=90))||((codi>=48)&&(codi<=57)))
					return true
			}
			return false;
		}
		
		//cerca la @ i controla els blancs
		while ((valor.charAt(i)!="@")&&(i<valor.length)){ 
			if (!caracterValid(valor.charCodeAt(i))){ 
				return false;	
			}
			i++;
		} 
		
		//no hi @ o el valor es buid
		if((i==valor.length)||(i==0)) 
			return false;	
		
		//es cerca domini principal				
		while ((j>i)&&(valor.charAt(j)!=".")){
			if (!caracterValid(valor.charCodeAt(j))) 
				return false;
			j--;
		}
		
		//el domini te menys de 2 lletres i no hi ha nom 
		if ((j==i)||((valor.length-j)<3)) 
			return false;  
		
		//es cerca si el nom no te caracters extranys
		j--;
		while (j>i){
			if (!caracterValid(valor.charCodeAt(j))) 
				return false;		
			j--;
		}
		return true;
	}
	

	function  openHotel(cod){       
		var win=abrirVentana("/"+nombreAplicacion+"/grafica/hotel.aspx?sesion="+sesion+"&hotel="+cod,"Hotel","SCROLLBARS=NO",0,0,550,350)
	}
	
	function abrirVentana(url, titulo,caracteristicas, posX, posY, width, height){
	    	var newwin = window.open(url,titulo,caracteristicas + ',width=' + width + ',height=' + height + ',screenX=' + posX + ',screenY=' + posY);
	    	return newwin;
	}
	
	//funcio que formateja un enter en format de preu
	function formatoPrecio(num){
		var result1 = (num * Math.pow(10, 2))
		var result2 = Math.round(result1)
		var result3 = (result2 / Math.pow(10, 2))
		var sencer = result3.toString()
		var signe = ""
		var dec = "00"
	
		//el signe
		if (sencer.indexOf('-')!=-1){
			signe = sencer.substring(0,1);
			sencer = sencer.substring(1);
		}
	
		var index_coma = sencer.indexOf('.');
	
		//part entera i part decimal
		if (index_coma != -1){
			dec = sencer.substring(index_coma + 1, index_coma + 3);
			while (dec.length<2)
				dec = dec + "0";
				
			sencer = sencer.substring(0, index_coma);
		}
	
		//posar el punt de mils
		if (sencer.length>3){ 
			sencer = sencer.substring(0,sencer.length-3) + '.' + sencer.substring(sencer.length-3); 
		} 
		
		return (signe + sencer + "," + dec)  
	}
	
	function parseNumero(valor){
	    valor = valor.replace(".","")
	    valor = valor.replace(",",".")
	    valor = parseFloat(valor)
	    return valor
	}
	
	function validarFecha(ffecha){	
		var errorFecha; 
		var d, m, a; 
		if (ffecha.length!=10)
			return false;
		d = ffecha.substring(0,2);
		m = ffecha.substring(3,5);		
		a = ffecha.substring(6,10);
		if (d>"31" || d<"01" || m<"01" || m>"12")
			return false;
		var dat = new Date(parseInt(a,10), parseInt(m,10)-1, parseInt(d,10));		
		if (a.length!=4)
			return false;
		return true;		
	}
	
	function validarTResidente(numero){
	 return ( ( numero.toLowerCase().match(/^x/) ) && ( validarDNI( numero.substring(1) ) ) );
	}
	
	function validarDNI(numero){
		
	    var parteNumero = numero.substr(0, numero.length-1);
        var parteLetra = numero.substr(numero.length-1,1).toUpperCase();

        if ((isNaN(parteNumero))||(!isNaN(parteLetra)))
	        return false;

        parteNumero = parseInt(parteNumero,10);
        var strLetras = "TRWAGMYFPDXBNJZSQVHLCKE";
        var posicion = parteNumero % 23;
        
        return (strLetras.substr(posicion,1) == parteLetra);
	}
	
	function validarBI(numero){
		
	    var A;
        var B;
        var C;
        var inte;
        var str = new String(numero);
        var strAux;
        
        if (isNaN(str)){
			return false;
        }else{
               
			if (str.length < 9){	
				for (i=0;i<10-str.length;i++)
					str = "0" + str;
			}
			//alert(str);
		    
			A=0;
			for(i=0;i<8;i++)
			{
				inte=parseInt(str.charAt(i)); 
				A += (inte * (9-i));
			}
			
			B=A/11;
			C=0;

			//obtenemos el resto
			while (Math.floor(B)!= B){
				A++;
				C++;
				B=A/11;
			}

			if (C==10)
				C=0;

			 return (C==parseInt(str.charAt(8)));
		}
	}
	
	function validarCarta(numDoc){
		if (numDoc.length == 9){
			var parteLetra = numDoc.substr(0, 2);
			var parteNumero = numDoc.substr(2);
			
			return (!isNaN(parteNumero) && isNaN(parteLetra))
		}else
			return false
	}
   
	
