
var SeparadorCampCookie = '^';
var NombreDecimals = 2;


function MM_openBrWindow(theURL,winName,features) { file://v2.0
  window.open(theURL,winName,features);
}



function BuidaCamp(Camp)

{
	
	Camp.value = '';
	
	}


function RetallaDecimals(document,NomSubCamp)
{

   for (var i = 0; i<document.elements.length; i++) {
    	
    	if (document.elements[i].value !='')  {
    		
    		Nom = document.elements[i].name;
    		
    		if (Nom.substring(0,NomSubCamp.length())==NomSubCamp )
        document.elements[i].value = precisio(document.elements[i].value,NombreDecimals);
        
        }
    }
}



function Trim (inputval)
{

	inputStr= "" + inputval;
	
	if (inputStr.length==0) return "";
	
	for (var i = inputStr.length - 1; i >= 0;  i-- )
	{
		var oneChar=inputStr.charAt(i)
		if (oneChar != " ") return inputStr.substring(0, i + 1);
	}

	return "";

}


function openWindow(Pagina,Titol,ancho,alto)
    {
        var win_opt = "toolbar=0,location=0,directories=0,status=0,menubar=0,";
        win_opt += "top=0,left=0,scrollbars=1,resizable=0,copyhistory=0,";
        win_opt += "width=" + ancho + ",height=" + alto;
        fine = window.open(Pagina,"_blank",win_opt);
    }


function EsMail(inputVal){
	var inputStr = "" + inputVal
	oneArroba = false
	oneDecimal = false
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i)
		if (oneChar == "@"&& !oneArroba && i!=0) {
			oneArroba =true
			continue
		}
		if (oneChar == "." && !oneDecimal && oneArroba&& i!=(inputStr.length-1)) {
			oneDecimal = true
			return true
		}
	}

	return false
}



function precisio(inputval,precisio)

{

precisio++;

var inputStr= inputval + ""

cadena=inputval + ""

cadena2=""

index=0


var onechar=inputStr.charAt(index);

while ((onechar!=".") && (index<cadena.length))

{

var onechar=inputStr.charAt(index);
if (onechar!=".") index=index+1

}

if (onechar==".") 

		{

		index2=0

		if (index+precisio<cadena.length) tope=index+precisio

		if (index+precisio>=cadena.length) tope=cadena.length
		
		while (index2<tope)

		{

		var cadena2=cadena2+inputStr.charAt(index2)

		index2=index2+1
		

		}
		
		return cadena2

	
}

return cadena

}



function mira_longitud(inputval,nom,longitudMax) 

{


cadena=inputval + ""

if (cadena.length>longitudMax)  { 
					longitud_sobre_pasa=cadena.length-longitudMax
					alert("Campo " + nom + " sobrepasa longitud máxima de "+longitud_sobre_pasa + " carácteres.")
					return false

			         }


if (cadena.length<=longitudMax) {	

				return true

			}

}

function mira_longitud_password(inputval) 

{


cadena=inputval + ""

if (cadena.length<7)  { alert("La longitud del password debe ser de 7 dígitos como mínimo");return;}

return true;


}

function CampBuit(camp)
{
if (camp!=null) {
	
	if (camp.value=="") return true;
	if (camp.value!="") return false;
}
else return false;

}

			

function evalua (inputval)

{
	
	

var inputStr= "" + inputval

 var oneChar=inputStr.charAt(0);

if (oneChar=="-") { return (-Math.abs(inputval)) }
	
if (oneChar!="-") { return (Math.abs(inputval)) }



}

function EsNif (inputval) {


var inputStr= "" + inputval;
if (inputStr.length!=9) return false;

var Lletra = EsLletra(inputStr.charAt(0));

if (Lletra) { 
return EsPositiu(inputStr.substring(1,8));
}

var Lletra = EsLletra(inputStr.charAt(8));
if (Lletra) { 
return EsPositiu(inputStr.substring(0,8));
}

return false;



}




function EsPercentatge (inputval)

{

var inputStr= "" + inputval


if (EsFloat(evalua(inputval)) && evalua(inputval)<=100 && evalua(inputval)>=0) return true;

return false;
}




function LongitudNula (inputval)

{

var inputStr= "" + inputval

if (inputStr.length==0) return true

return false

}


function EsCodiPostal(inputval)

{


var inputStr= "" + inputval

if (inputStr.length!=5) return false


for (var i=0; i < inputStr.length; i++ )

	{

	 var oneChar=inputStr.charAt(i)

		if ((oneChar < "0") || (oneChar > "9"))  return false 

	}


return true


}


function EsPositiu(inputval)

{



var inputStr= "" + inputval

if (inputStr.length==0) return true


for (var i=0; i < inputStr.length; i++ )

	{

	 var oneChar=inputStr.charAt(i)

		if ((oneChar < "0") || (oneChar > "9"))  return false 

	}


return true


}

function EsFloat(inputval)

{



inputStr= "" + inputval

punt=false

if (inputStr.length==0) return true


for (var i=0; i < inputStr.length; i++ )

	{

	 var oneChar=inputStr.charAt(i)

	if ((oneChar==".") && (punt==true)) return false
	
	if (punt==false) punt=(oneChar==".")

	if (((oneChar < "0") || (oneChar > "9")) && (oneChar!=".")) return false 

	}


return true


}


function Valido (inputval)

{

inputStr= "" + inputval

if (inputStr.length==0) return true


for (var i=0; i < inputStr.length; i++ )

	{

	 var oneChar=inputStr.charAt(i)

		//if (oneChar == "'") return false 
			

	}



return true


}


function EsLletra(inputval)

{

var inputStr= "" + inputval
if (inputStr.length!=1) return false
var oneChar=inputStr.charAt(0)

if (((oneChar >= "a") && (oneChar <= "z"))  || ((oneChar >= "A") && (oneChar <= "Z"))) return true
return false


}


function ConfirmaOperacioBorrat(NumeroCops) {
return ConfirmaOperacio("Seguro que quiere anular este item?",1);
}



function ConfirmaOperacio(texte,NumeroCops)

{

var index;

index=1;


while (index<=NumeroCops) {

if (!confirm(texte)) return false;

index++;

}

return true

}


function EsLlistaNIFs(NIFs) {

var datePat = /^(((((((\d{8})(([a-z]{1})|([A-Z]{1})))|((([a-z]{1})|([A-Z]{1}))(\d{8})))(,))*)(((\d{8})(([a-z]{1})|([A-Z]{1})))|((([a-z]{1})|([A-Z]{1}))(\d{8}))))*)$/;
return NIFs.match(datePat); 
	
}


function ComparaDates(data1,data2) {



if (EsData(data1) && EsData(data2)) {
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray1 = data1.match(datePat); // is the format ok?
	var matchArray2 = data2.match(datePat); // is the format ok?
	
	month1 = matchArray1[3]; // parse date into variables
	day1 = matchArray1[1];
	year1 = matchArray1[5];

	month2 = matchArray2[3]; // parse date into variables
	day2= matchArray2[1];
	year2 = matchArray2[5];
	
	
	if (year1>year2) return 1;
	else {
		if (year1<year2) return 2;
		else {
			if (month1>month2) return 1;
			else {
				if (month1<month2) return 2;
				else
					if (day1>day2) return 1;
					else {
						if (day1<day2) return 2;
						else return 0;
					}
				}
			}
		}
	}
else {
	if (!EsData(data1)) {alert("Fecha redacción no válida");return -1;}
	if (!EsData(data2)) {alert("Fecha visita no válida");return -2;}
}
	
}


function EsData(dateStr) 
{
	if (dateStr.length==0) return false;

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	
	if (matchArray == null) 
	{
		alert("Por favor introduzca un fecha en el formato dd/mm/yyyy o dd-mm-yyyy.");
		return false;
	}
	
	month = matchArray[3]; // parse date into variables
	day = matchArray[1];
	year = matchArray[5];
	
	if (month < 1 || month > 12) 
	{ // check month range
		alert("El mes tiene que estar entre 1 y 12.");
		return false;
	}
	
	if (day < 1 || day > 31) 
	{
		alert("El día debe estar entre 1 y 31.");
		return false;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) 
	{
		alert("Atención, el mes "+month+" no tiene 31 días!")
		return false;
	}
	
	if (month == 2)
	{ // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap)) 
		{
			alert("Febrero del " + year + " no tiene " + day + " días!");
			return false;
		}
	}
	return true; // date is valid
}

var Res = 0;
var Punt = 1;
var Coma = 2;
var PuntComa = 3;

function DetectaFormatNum(inputval)
{

	var inputStr= inputval + ""
	var cadena=inputval + ""
	var index=0
	var punt =0;
	var coma = 0;
	while (index<cadena.length)
	{
		var onechar=inputStr.charAt(index);
		if (onechar==".") punt = 1;
		if (onechar==",") coma = 1;
		index=index+1
	}	
	if (punt==1 && coma ==1) return PuntComa;
	if (punt==0 && coma ==1) return Coma;
	if (punt==1 && coma ==0) return Punt;
	if (punt==0 && coma ==0) return Res;
}


function ConverteixNum(inputval)

{


if ((IsNumeric(inputval)) == false) return inputval;

inputStr= inputval + ""

cadena=inputval + ""

cadena2=""

index=0

while (index<cadena.length)

{

onechar=inputStr.charAt(index);

if (onechar==".") {
		if (DetectaFormatNum(inputval) == Punt) 		cadena2 = cadena2 + ".";		
		if (DetectaFormatNum(inputval) == PuntComa) 	cadena2 = cadena2 + "";		
}

if (onechar==",") {
		if (DetectaFormatNum(inputval) == Coma) 		cadena2 = cadena2 + ".";		
		if (DetectaFormatNum(inputval) == PuntComa) 	cadena2 = cadena2 + ".";		
}


if (onechar!="." && onechar!=",") cadena2 = cadena2 + onechar


index=index+1

}

return cadena2

}




function FormatejaNum(inputval)

{
if ((IsNumeric(inputval)) == false) return inputval;

var inputStr= inputval + "";
var cadena=inputval + "";
var cadena2="";
var index=0;



while (index<cadena.length)

{

onechar=inputStr.charAt(index);

if (onechar==",") {
	
	if (DetectaFormatNum(inputval) == Coma) 		cadena2 = cadena2 + ",";		
	if (DetectaFormatNum(inputval) == PuntComa) 	cadena2 = cadena2 + ",";		
}

if (onechar==".") {
	
	if (DetectaFormatNum(inputval) == Punt) 		{cadena2 = cadena2 + ",";}
	if (DetectaFormatNum(inputval) == PuntComa) 	{cadena2 = cadena2 + "";}
}	

if (onechar!="." && onechar!=",") {
	
	cadena2 = cadena2 + onechar;
	}

index=index+1

}



PosDecimal = -1

index = 0;

while (index<cadena2.length)

{

onechar=cadena2.charAt(index)

if (onechar==",") {PosDecimal = index;}

index=index+1

}

if (PosDecimal == -1) PosDecimal = (cadena2.length)


proximPunt = PosDecimal - 10

if ((cadena2.length - PosDecimal) > 10 ) cadena3 = cadena2.substring(PosDecimal, PosDecimal + 10)
if ((cadena2.length - PosDecimal) <= 10 ) cadena3 = cadena2.substring(PosDecimal, cadena2.length)


index = PosDecimal - 1;

while (index>=0) {

cadena3 = cadena2.charAt(index)  + cadena3 


if (index == proximPunt) {
		cadena3 =  "." + cadena3 
		proximPunt = proximPunt  - 3
	}
	
index = index - 1 

}


if (cadena3.charAt(0)==".") cadena3 = cadena3.substring(1,cadena3.length )
if (cadena3.charAt(0)=="-" && cadena3.charAt(1)==".") cadena3 = "-" + cadena3.substring(2,cadena3.length )

return cadena3;

}


function ConverteixCamps(document) {
    
    
    for (var i = 0; i<document.elements.length; i++) {
    	
    	if (document.elements[i].value !='')  {
    		
    		Nom = document.elements[i].name;
    		
    		if (Nom.substring(0,3)!='Cod' && Nom.substring(0,3)!='Tel')
        document.elements[i].value = ConverteixNum(document.elements[i].value)
        
        }
        
    }

}


function DesConverteixCamps(document) {

	var Nom;
    
    for (var i = 0; i<document.elements.length; i++) {
    	
    	if (document.elements[i].value !='') {
    	
    		Nom = document.elements[i].name;
    		
    		if (Nom.substring(0,3)!='Cod' && Nom.substring(0,3)!='Tel')
        
        document.elements[i].value = FormatejaNum(document.elements[i].value)
        
        }
        
    }

}




function IsNumeric(inputval)

{


if (inputval.length==0) return false;

inputStr= inputval + ""

cadena=inputval + ""


cadena2=""

index=0

correcte = true
guio = false;
decimal = false;

while (index<cadena.length)

{

onechar=inputStr.charAt(index);


if (guio==true && (onechar == "-")) return false;
if (decimal==true && (onechar == ",")) return false;

guio = (onechar == "-") || guio;
decimal = (onechar == ",") || decimal;

if (!((onechar >="0" && onechar<="9") || (onechar==".") || (onechar==",") || (onechar=="-") )) return false;

index=index+1

}

return true;

}



  function createCookie(name,value,days)
{
	//if (days)
	//{
	//	var date = new Date();
	//	date.setTime(date.getTime()+(days*24*60*60*1000));
	//	var expires = "; expires="+date.toGMTString();
	//}
	//else var expires = "";
	var expires = "";
	document.cookie = name + "=" + value + expires + "; path=/";

}

	
  function createCookieIlimitada(Domini,name,value,days)
  //Creem una cookie de manera especial per saltar-nos les 
  //limitacions de les 20 cookies del explorer
{
	var expires = "";
	document.cookie = "";
	ActualitzaCookieIlimitada(Domini,name,value);
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return "";
}

function ActualitzaCookieIlimitada(domini,name,PNouValor)
{
	
	var CookieGeneral = readCookie("CookieGeneral" + domini);//lleguim la cookie del formulari
	var nameEQ = "" + name + "="; 									//String que conté el nom de la cokiee
	var Valors = CookieGeneral.split(SeparadorCampCookie); 	// llista de valors de la cookie separats per SeparadorCampCookie;
	var NouValor ;															//Variable on ficarem el nou valor de la cookie
	var Actualitzat = false;
	CookieGeneralNova = "";											   //Variable on ficarem tots els valors de les cookies concatenades 
	
	for(var i=0;i < Valors.length;i++) { 							//buble per recorrer tots els valors de la cookie del formulari
		var Valor = Valors[i]; 											//Guardem el valor de la cookie en una varible
		while (Valor.charAt(0)==' ') Valor= Valor.substring(1,Valor.length); // treiem els espais de la cookie
		
		if (Valor.indexOf(nameEQ) == 0) { Actualitzat  = true;NouValor = nameEQ + PNouValor;} //si hem trobat la cookie, fiquem el nou valor
		else {NouValor = Valor;} //sino construim la cookie
	
	if (Valor!='') CookieGeneralNova = CookieGeneralNova + SeparadorCampCookie + NouValor; //afegim la cookie la llistat cookies
	}
	if (Actualitzat ==false) CookieGeneralNova = CookieGeneralNova + SeparadorCampCookie + name + "=" + PNouValor;
	
	document.cookie = "CookieGeneral" + domini + "=''";
	document.cookie = "CookieGeneral" + domini + "=" + CookieGeneralNova ;
	
	//return readCookie(name);
	
}




function readCookieIlimitada(domini,name)
{
	var CookieGeneral = readCookie("CookieGeneral" + domini);
	var nameEQ = "" + name + "=";
	var Valors = CookieGeneral.split(SeparadorCampCookie);
	for(var i=0;i < Valors.length;i++)
	{
		var Valor = Valors[i];
		while (Valor.charAt(0)==' ') Valor= Valor.substring(1,Valor.length);
		if (Valor.indexOf(nameEQ) == 0) {
				return Valor.substring(nameEQ.length,Valor.length);
		}
	}
}


function eraseCookie(name)
{
	createCookie(name,"",-1);
}

function eraseCookieIlimitada(domini)
{
	document.cookie = "CookieGeneral" + domini + "=''";
}


function CarregaValorsFormulari(doc)
{
	
    for (var i = 0; i<doc.elements.length; i++) {
    		if (readCookieIlimitada(doc.name , doc.elements[i].name)!='') {
    		Valor = readCookieIlimitada(doc.name, doc.elements[i].name);
    		if (Valor!=null) doc.elements[i].value = unescape(Valor);
    		}
    }

}

function GravaValorsFormulari(doc)
{

    
    BorraCookies("CookieGeneral");
    for (var i = 0; i<doc.elements.length; i++) {
    		if (
    		doc.elements[i].name!='IdOperacio' 
    		&&
    		doc.elements[i].name.substring(0,6)!='button'
    		) {
		   createCookieIlimitada(doc.name,doc.elements[i].name,escape(doc.elements[i].value),30);
		}
   }


}
function DataAvui()
{
	var str = "";
	var d = new Date();
	str = d.getDate() + "/" + (d.getMonth() + 1) + "/" + d.getFullYear();
	return str;
}

function BorraValorsFormulari(doc) {eraseCookieIlimitada(doc.name)}
function MostraValorsFormulari() { alert(document.cookie);}


function BorraCookies(SubCadena)
{
	
	var nameEQ = "" + SubCadena;
	var Valors = document.cookie.split(';');
	for(var i=0;i < Valors.length;i++)
	{
		var Valor = Valors[i];
		while (Valor.charAt(0)==' ') Valor= Valor.substring(1,Valor.length);	
		if (Valor.indexOf(nameEQ) >= 0) {
					document.cookie = Valor.substring(0,Valor.indexOf("=")) + "=''";
					}
	
	}

}

