var general_html_path = "/dadesWeb/html_docs/general/";

//Crea un element nou
function newElement(tag){
	return document.createElement(tag);
}
//Dona l'objecte per identificador
function getById(id){
	return document.getElementById(id);
}
//Dona l'event
function getEvent(even){

return (!even) ? event : even;
}
//Dona l'objecte que ha creat l'event
function getObjectEvent(even){
var evento = window.event || even;

return evento.srcElement ? evento.srcElement : evento.target;
}

//Aquesta funcio mostra un missatge per pantalla al recuadre de missatges
function showUserMessage(message,type_message,container)
{
//Per defecte fem servir el div amb id user_messages
if (container == ""){
	container = "user_messages";
}
	switch (type_message)
	{
	case "info":
		document.getElementById(container).innerHTML='<div class="message_info">'+message+'</div>';
	break;
	case "alert":
		document.getElementById(container).innerHTML='<div class="message_alert">'+message+'</div>';
	break;
	case "error":
		document.getElementById(container).innerHTML='<div class="message_error">'+message+'</div>';
	break;
	case "load":
		document.getElementById(container).innerHTML='<div class="message_load">'+message+'</div>';
	break;
	default:
		document.getElementById(container).innerHTML='<div class="message_info">'+message+'</div>';
	break;
	}
}

//Aquesta funcio mostra un missate (popup) a l'usuari
//En cas que l'usuari l'accepti redirecciona el web a l'url indicat
//En cas que no l'accepti no fa res
function showConfirmationMessage(message,go_url){
	if (go_url==""){
		go_url=="#";
	}
	if (confirm(message)){
		location.href=go_url;
	}
}

//Aquesta funcio mostra un missate (popup) d'alerta a l'usuari
//Si l'adrsa de retorn no es buida redirecciona l'url indicat
function showAlertMessage(message,go_url){
	alert(message);
	if (go_url!=""){
		location.href=go_url;
	}
}

//Aquesta funcio mostra un missatge a l'usuari per obtindre un text
//Una vegada l'usuari l'escriu redirecciona el web a l'url indicat
//i envia el contingut obtingut com a variable GET "text_message"
function showRequestMessage(message,go_url){
	if (go_url==""){
		go_url=="#";
	}
	var text_message=prompt(message) 
		location.href=go_url+'&text_message='+text_message;

}
//Aquesta funcio canvia la url, del formulari de missatges i l'envia
function acceptUserForm(go_url){
	var form=document.accept_user_form;
	form.action=go_url;
	form.submit();
}
//Aquesta funcio ens redirecciona a la url especificada
function gotoUrl(go_url){
	if (go_url==""){
		go_url=="#";
	}
	location.href=go_url;
}
//Aquesta funcio canvia la url, del nom de formulari especificat i l'envia
function formSubmit(url,formulari){
var form = document.formulari;
	form.action = url;
	form.submit();
}
//Aquesta funcio canvia la url, del id de formulari especificat i l'envia
function formSubmitId(url,formulari){
var form = getById(formulari);
	form.action = url;
	form.submit();
}
//Funcio per a fer precarrega d'imatges
//Accepta un array amb la ruta de les imatges
function preloadImages(){
var parameters=preloadImages.arguments;
images_array= new Array();
if (document.images){
	for (i=0;i<parameters.length;i++){
	 if (parameters[i].indexOf("#")!=0){
	images_array[i]=new Image();
	images_array[i].src=parameters[i];
		//alert("loading"+parameters[i]);
	}
	}
}
}

//funcio que comprova si un mail es correcte
function checkMail(texto){

    var mailres = true;
    var cadena = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@._-";
    var arroba = texto.indexOf("@",0);
    if ((texto.lastIndexOf("@")) != arroba) arroba = -1;
    var punto = texto.lastIndexOf(".");
     for (var contador = 0 ; contador < texto.length ; contador++){
        if (cadena.indexOf(texto.substr(contador, 1),0) == -1){
            mailres = false;
            break;
     }
    }

    if ((arroba > 1) && (arroba + 1 < punto) && (punto + 1 < (texto.length)) && (mailres == true) && (texto.indexOf("..",0) == -1))
     mailres = true;
    else
     mailres = false;

    return mailres;
}
//funcio que comprova si un telefon es correcte
function checkPhone(telefon){
if (isNaN(telefon))
{
	return false;
}
var er_num= /^(([0-9]+){7,10})*$/;
//No funciona amb opera
if(!er_num.test(telefon)) {
//if(!er_num.match(telefon)) {
	return false;
}else
{
	return true;
}
}
//funcio que comprova si un codi postal es correcte
function checkPostalCode(valor)
{

valor = parseInt(valor);

if (isNaN(valor))
{
	return false;
}
else
{
	return true;
}
}

function checkTime(valor)
{
//intento convertir a entero.
//si era un entero no le afecta, si no lo era lo intenta convertir

var array_content=valor.split(':');
if (array_content[0]){
if (isNaN(array_content[0]))
{
return false;
}else {
	if (array_content[0]>23){
		return false;
	}
}
}else {
return false;
}
if (array_content[1]){
if (isNaN(array_content[1]))
{
return false;
}else {
	if (array_content[1]>=60){
		return false;
	}
}
}else {
return false;
}
return true
}

//Comprova que una data sigui correcta 
//per: dd/mm/yy, dd/mm/yyyy, dd-mm-yy, dd-mm-yyyy

function checkDate(var_date){

	var_date=var_date.replace(/-/g, "/");
	dia=var_date.split("/")[0];
	mes=var_date.split("/")[1];
	anyo=var_date.split("/")[2];
	if (!dia){
		return "error";
	}
	if (!mes){
		return "error";
	}
	if (!anyo){
		return "error";
	}
       if(leapYear(anyo))
           febrero=29;
       else
           febrero=28;
       if ((mes<1) || (mes>12)){
           return "mes";
       }
       if ((mes==2) && ((dia<1) || (dia>febrero))){
           return "dia";
       }

       if (((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) && ((dia<1) || (dia>31))){
           return "dia"
       }
       if (((mes==4) || (mes==6) || (mes==9) || (mes==11)) && ((dia<1) || (dia>30))){
           return "dia";
       }
	   return "";
}

//Comprova si l'any es de traspas
function leapYear(anyo){
        if (anyo < 100)
            var fin = anyo + 1900;
        else
            var fin = anyo ;
        if (fin % 4 != 0)
            return false;
        else{
            if (fin % 100 == 0){
                if (fin % 400 == 0){
                    return true;
                }else{
                    return false;
                }
            }else{
                return true;
            }
        }
}

//Aquesta funcio retorna 
//	1 si fist_date > second_date
//	0 si son iguals
//	-1 si second_date > first_date
//	-2 si dona error
function compareDate(first_date,second_date){
	value_return=-2;
	
	if (checkDate(first_date)=='' && checkDate(second_date)==''){

	var_date1=first_date.replace("-", "/");
	
	day1=var_date1.split("/")[0];
	month1=var_date1.split("/")[1];
	year1=var_date1.split("/")[2];
	date1=new Date(year1,month1,day1);


	var_date2=second_date.replace("-", "/");
	day2=var_date2.split("/")[0];
	month2=var_date2.split("/")[1];
	year2=var_date2.split("/")[2];
	date2=new Date(year2,month2,day2);

	if (date1.getTime()>date2.getTime()){
		value_return=1;
	}
	if (date1.getTime()==date2.getTime()){
		value_return=0;
	}
	if (date1.getTime()<date2.getTime()){
		value_return=-1;
	}

	}
return value_return;
}

//Aquesta funcio retorna 
//	1 si fist_time > second_time
//	0 si son iguals
//	-1 si second_time > first_time
//	-2 si dona error
function compareTime(first_time,second_time){
	value_return=-2;
	
	if (checkTime(first_time) && checkTime(second_time)){
	
	hour1=first_time.split(":")[0];
	min1=first_time.split(":")[1];
	time1=new Date(2009,01,01,hour1,min1);

	hour2=second_time.split(":")[0];
	min2=second_time.split(":")[1];
	time2=new Date(2009,01,01,hour2,min2);
	if (time1.getTime()>time2.getTime()){
		value_return=1;
	}
	if (time1.getTime()==time2.getTime()){
		value_return=0;
	}
	if (time1.getTime()<time2.getTime()){
		value_return=-1;
	}

	}
return value_return;
}


//Retorna els parametres d'ajax que li passem a un document
// de l'estil de <!--ajax_params parametre="valor"-->
function getAjaxParams(page_content){
var initial_char=0, final_char=0;
var index_match=-1;
var aux_char;
var array_content;
var params;
var return_params = new Array();
var header="<!--ajax_params ";

while((index_match=page_content.indexOf(header,initial_char))!=-1)
{
initial_char=index_match;
aux_char=page_content.indexOf("-->",initial_char);


if (aux_char!=-1) {
	final_char=aux_char;
}else {
	final_char=initial_char+header.length;
}

params=page_content.substring(initial_char+header.length,final_char);

array_content=params.split('="');
var have_value=false;
var aux_val;
var cont_array=0;
var index_array;

for (i=0;i<array_content.length;i++){

if (have_value){
	if (array_content[i]){
	aux_val=array_content[i].split('"');
	if (aux_val[0]){
		have_value=false;
		array_content[i]=aux_val[1];
		return_params[cont_array][1]=trim(aux_val[0]);
		cont_array++;
	}
	}
}
if (!have_value){
	if (array_content[i]){
	aux_val=array_content[i].split('"');
	if (aux_val[0]){
		have_value=true;
		return_params[cont_array]=new Array(trim(aux_val[0]),"");
		//alert("parametre "+aux_val[0]);
		
	}
	}
}
if (have_value){
	if (array_content[i]){
	aux_val=array_content[i].split('"');
	if (aux_val[1]){
		have_value=false;
		return_params[cont_array][1]=trim(aux_val[1]);
		cont_array++;
	}
	}
}

initial_char=index_match+1;
}

/*for (j=0;j<return_params.length;j++){
	alert("parametre "+return_params[j][0]+" valor "+return_params[j][1]);
}*/
}
return return_params;
}
//Retorna el parametre d'ajax dessitjat d'un array de valors
function getAjaxValue(return_params,value_name){
var return_value="";
if (return_params){
for (j=0;j<return_params.length;j++){
	if (return_params[j][0]==value_name){
		return_value=return_params[j][1];
		return return_value;
	}
}
}
return return_value;
}

// Treu els espais en blanc de l'esquerra
function LTrim( value ) {
	value=String(value);
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}

// Treu els espais en blanc de la dreta
function RTrim( value ) {
	value=String(value);
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}

// Treu els espais en blanc de l'esquerra i la dreta
function trim( value ) {
	return LTrim(RTrim(value));
}
// Diu si un objecte es un array
function isArray(obj) {
if (obj){
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}else {
	return false;
}
}