function d(s) {return document.getElementById(s);}

// check for valid numeric strings
function isNumeric(strString,floatAllowed,negativeAllowed){
	var strValidChars="0123456789";
	if(floatAllowed) strValidChars+=".,";
	if(negativeAllowed) strValidChars+="-";
	var strChar;
	var blnResult=true;
	if(strString.length==0) return false;
	// test strString consists of valid characters listed above
	for(i=0;i<strString.length&&blnResult==true;i++){
		strChar=strString.charAt(i);
		if(strValidChars.indexOf(strChar)==-1){
			blnResult=false;
		}
	}
	return blnResult;
}

//Comprovacio de multiples espais en blanc
function isBlank(val){
	if(val==null) return true;
	for(var i=0;i<val.length;i++){
		if((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")) return false;
	}
	return true;
}

function MM_jumpMenu(selObj,restore){ //v3.0
	var url=selObj.options[selObj.selectedIndex].value;
	if(url) window.open(url);
	if(restore) selObj.selectedIndex=0;
}

function MM_openBrWindow(theURL,winName,features){ //v2.0
  	window.open(theURL,winName,features);
}

function MM_openBrWindowOut(theURL,winName,features){
	if(theURL.toLowerCase().indexOf("http")==-1&&theURL.toLowerCase().indexOf("ftp")==-1&&theURL.toLowerCase().indexOf("mailto")==-1){
		theURL="http://"+theURL;
	}
	MM_openBrWindow(theURL,winName,features);
}

function dia_mes(){
	mesos=new Array("de Gener","de Febrer","de Mar&ccedil;","d'Abril","de Maig","de Juny","de Juliol","d'Agost","de Septembre","d'Octubre","de Novembre","de Desembre");
	data=new Date();
	index=data.getMonth();
	diasemana=new Array("Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte","Diumenge");
	day=new Date();
	indexday=data.getDay();
	if (indexday==0) indexday=7;
	any=data.getYear();
	if (any<1900) any=1900+any;
	return diasemana[indexday-1]+", "+data.getDate()+' '+mesos[index]+" del "+any;
}

function submitForm(id,accio){
	var f=document.forms[0];
	f.action=accio;
	if(id!='') f.id.value=id;
	f.submit();
}

/**
* Prement enter executa la funcio
* @funcio: nom de la funcio a executar amb el pas de parametres
*/
function submitViaEnter(evt,funcio){
	evt=(evt)?evt:event;
	var target=(evt.target)?evt.target:evt.srcElement;
	var form=target.form;
	var charCode=(evt.charCode)?evt.charCode:((evt.which)?evt.which:evt.keyCode);
	if(charCode==13||charCode==3){
		eval(funcio);
	}
	return true;
}

function comprovaObligatoris(obl,lit){
	var el;
	for(i=0;i<obl.length;i++){
		if(!obl[i].value || trim(obl[i].value)==''){
			alert('El camp '+lit[i]+' és obligatori.');
			for(n=0;n<document.forms[0].length;n++){
				el=document.forms[0].elements[n];
				if (el.name==obl[i].name){
					el.focus();
					break;
				}
			}
			return false;
		}
	}
	return true;
}

function comprovaCorreu(text){
    var mailres=true;
    var cadena="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@._-";
    var arroba=text.indexOf("@",0);
    if ((text.lastIndexOf("@"))!=arroba) arroba=-1;
	var punt=text.lastIndexOf(".");
	for (var contador=0;contador<text.length;contador++){
        if (cadena.indexOf(text.substr(contador, 1),0)==-1){
            mailres=false;
            break;
     	}
    }
    if((arroba>1)&&(arroba+1<punt)&&(punt+1<(text.length))&&(mailres==true)&&(text.indexOf("..",0)==-1)) mailres=true;
    else mailres=false;
    return mailres;
}

function replaceAll(str,search,repl){
	while(str.indexOf(search)!=-1){
		str=str.replace(search, repl);
	}
	return str;
}

function accents2html(str){
	if (str==null) return str;
	var s=str;
	var spec=new Array("é",			"É", 		"è", 		"È", 		"à", 	"À",		"á",		"Á", 	"ú", 	"Ú",		"ü",	"Ü", 	"ç", 		"Ç",  		"ó", 		"Ó", 		"ò", 	"Ò", 		"í", 		"Í",		"ì", 	"Ì",	"ï",	"Ï", 		"ñ",	"Ñ");
	var norm=new Array("&eacute;","&Eacute;","&egrave;","&Egrave;","&agrave;","&Agrave;","&acute;","&Acute;","&ucute;","&Ucute;","&uuml;","&Uuml;","&ccedil;","&Ccedil;","&oacute;","&Oacute;","&ograve;","&Ograve;","&icute;","&Icute;","&igrave;","&Igrave;","&iuml;","&Iuml;","&ntilde;","&Ntilde;");
	for(var i=0;i<spec.length;i++){
		s=replaceAll(s,spec[i],norm[i]);
	}
	var rExps=[
	/[\xC0-\xC2]/g, /[\xE0-\xE2]/g,
	/[\xC8-\xCA]/g, /[\xE8-\xEB]/g,
	/[\xCC-\xCE]/g, /[\xEC-\xEE]/g,
	/[\xD2-\xD4]/g, /[\xF2-\xF4]/g,
	/[\xD9-\xDB]/g, /[\xF9-\xFB]/g,
	/[\xC7-\xC7]/g, /[\xE7-\xE7]/g,
	/[\xD1-\xD1]/g, /[\xF1-\xF1]/g,
	];
	var repChar=['A','a','E','e','I','i','O','o','U','u','C','c','N','n'];
	for(var i=0;i<rExps.length;i++){
		s=s.replace(rExps[i],repChar[i]);
	}
	return s;
}

function trim(s){
	if(!s) return;
    while (s.substring(0,1)==' ') s=s.substring(1,s.length);
    while (s.substring(s.length-1,s.length)==' ') s=s.substring(0,s.length-1);
    return s;
}


function getElementsByClassName(className){
	var arr = new Array();
	var elems = document.getElementsByTagName("*");
	for(var i = 0; i < elems.length; i++){
		var elem = elems[i];
		var id = elem.getAttribute("id");
		var cls = elem.getAttribute("class");
		if(cls == className){
			arr[arr.length] = id;
		}
	}
	return arr;
}

/**
* Mostra el numero de caracters restants
* e: element a comptar
* c: element on s'assigna el numero de caracters restants
* n: numero d'on es resten els chars
*/
function count(e,c,n){
	d(c).value=n-d(e).value.length;
}

function showElement(e){
	d(e).style.visibility="visible";
}

function hideElement(e){
	d(e).style.visibility="hidden";
}

function show(e){
	if(d(e).style.visibility!="visible") Element.toggle(e);
	d(e).style.visibility="visible";
}

function hide(e){
	if(d(e).style.visibility!="hidden") Element.toggle(e);
	d(e).style.visibility="hidden";
}