function superCalendar(name, nombreDiv, idioma, fecha, aplicacion, formulario, noDiv) {
    this.MONTH_NAMES_ES=new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
    this.DAY_NAMES_abrev_ES=new Array('Lu','Ma','Mi','Ju','Vi','Sa','Do');
    
    this.MONTH_NAMES_PT=new Array('Janeiro','Fevereiro','Marco','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro');
    this.DAY_NAMES_abrev_PT=new Array('2','3','4','5','6','Sa','Do');
    
    this.printCalendar = fPrintCalendar;
    this.formulario = formulario;
    this.printInputCalendar = fPrintInputCalendar;
    this.muestraBotonCerrar = true;
    this.validaFecha = fValidaFecha;
    this.show = fShow;
    this.hide = fHide;
    this.aplicacion = aplicacion
    this.isInteger = fIsInteger;
    this.getInt = fGetInt;
    this.getDateFromFormat = fGetDateFromFormat;
    this.printDivCalendar = fPrintDivCalendar;
    this.parseDate = fParseDate;
    this.strMonth = fstrMonth;
    this.totalDays = ftotalDays;
    this.calculaDiaSemana = fCalculaDiaSemana;
    this.next = fNext;
    this.previous = fPrevious;
    this.esBisiesto = fEsBisiesto
    this.selectedDate = fSelectedDate;
    this.esFechaValida = fEsFechaValida;
    this.dosDigits = fDosDigits;
    this.quatreDigits = fQuatreDigits;
    this.estandarizaFecha = fEstandarizaFecha;
    this.getValue = fGetValue;
    this.getDate = fGetDate;
    this.setValue = fSetValue;
    this.arrayFechasValidas = new Array;
    this.strArrayFechasValidas = ""; 
    this.fechasAnterioresValidas = false
   
    this.name = name
    this.nombreDiv = nombreDiv
    this.idioma = idioma.toUpperCase()
    
    this.top = 0
    this.left = 0
    this.modificaSegundoCalendario = null
    this.modificaSegundoCalendarioFunction = fModificaSegundoCalendarioFunction;
    this.noDiv = false;
    if (noDiv)
        this.noDiv = noDiv;
    
    try
    {
        this.MONTH_NAMES = eval("this.MONTH_NAMES_" + this.idioma)
        this.DAY_NAMES_abrev = eval("this.DAY_NAMES_abrev_" + this.idioma)
    }
    catch (e) 
    {
        this.MONTH_NAMES = this.MONTH_NAMES_ES
        this.DAY_NAMES_abrev = this.DAY_NAMES_abrev_ES
    }
    
    this.fechaSeleccionada = this.parseDate(fecha);
    this.now = new Date()
    if(this.fechaSeleccionada==null)
		this.fechaSeleccionada=this.now
    this.monthSelected = this.fechaSeleccionada.getMonth()+1    
    this.yearSelected = this.fechaSeleccionada.getFullYear();
    this.marcaDiaActual = true
    this.strFechasValidas = "";
    
    this.borderGeneralClass = "TBLRazul TBLR1Fuerte"
    this.fondoTitleMonth = "cieloFuerte fondo1Medio"
    this.fondoTitleDaysClass = "calendarioMes fondo1Fuerte"  //NUEVO ESTILO
    this.titleClass = "verdana9Azul MdMuyFuerte"         
    this.titleDaysClass = "verdana9Blanco blanco MdMuyFuerte"     //NUEVO ESTILO
    this.claseDiaHoy = "verdana7rojo rojo MdMuyFuerte"
    this.claseDiaDesactivado = "verdana7gris gris MdMuyFuerte"  //NUEVO ESTILO
    this.claseDiaNormal = "verdana9azul MdMuyFuerte"     //NUEVO ESTILO
    this.claseFechaValida = "verdana11verdeBold MdMuyFuerte"    //NUEVO ESTILO
    this.fondoDiaLaboral = "azulFlojo fondo1MuyClaro"
    this.fondoDiaFinde = "grisFlojo MdMuyFuerte fondo1Medio"    
    
    this.imagenFlechaDer = "/" + this.aplicacion + "/images/flecha_der_peq_azul.gif"
    this.imagenFlechaIzq = "/" + this.aplicacion + "/images/flecha_izq_peq_azul.gif"    
    this.functionSelection = ""    
    this.onChangeFunction = null
}

function fSetValue(valor)
{
    if (this.validaFecha(valor))
        valor = this.estandarizaFecha(valor)
    if (this.formulario == null)
        eval("txtData_" + this.name + ".value='" + valor + "';")
    else
        eval("document." + this.formulario + ".txtData_" + this.name + ".value='" + valor + "';")    
}

function fGetValue()
{
    var data;
    if (this.formulario == null)
        data = eval("txtData_" + this.name + ".value;")
    else
        data = eval("document." + this.formulario + ".txtData_" + this.name + ".value;")
    if (this.validaFecha(data))
    {
        data = this.estandarizaFecha(data)
        this.setValue(data)
    }
    return data
}

function fEstandarizaFecha(data)
{
    var arr = data.split("/")
    var dia = arr[0]
    var mes = arr[1]
    var anyo = arr[2]
    var str = this.dosDigits(dia) + "/" + this.dosDigits(mes) + "/" + this.quatreDigits(anyo)
    return str
}

function fQuatreDigits(valor)
{
    if (valor.length > 4)
        return valor.substring(valor.length-4,valor.length)
    else
    {
        return valor
    }
}

function fDosDigits(valor)
{
    if (valor.length >= 2)
        return valor.substring(valor.length-2,valor.length)
    else
    {
        return ("0" + valor)
    }
}

function fGetDate()
{
    var valor;
    if (this.formulario == null)
        valor = eval("txtData_" + this.name + ".value;")
    else
        valor = eval("document." + this.formulario + ".txtData_" + this.name + ".value;")
    if (this.validaFecha(valor))
    {
        var arr = valor.split("/")
        var dia = arr[0]
        var mes = arr[1]
        var anyo = arr[2]
        return new Date(anyo, mes-1, dia)
    }
    else
        return null
}

function fValidaFecha(valor)
{
    var arr = valor.split("/")
    if (arr.length != 3)
        return false
    var dia = arr[0]
    var mes = arr[1]
    var anyo = arr[2]
    if ((isNaN(dia)) || (dia == "") || (isNaN(mes)) || (mes == "")  ||  (isNaN(anyo)) || (anyo == ""))
        return false
    
    if ((dia > 31) || (mes > 12))
        return false
        
    if((anyo < 1900) || (anyo > 2050) || (mes < 1) || (mes > 12) || (dia < 1) || (dia > 31))
	    return false;
	else
	{
        if((anyo%4 != 0) && (mes == 2) && (dia > 28))	   
	        return false
	    else	
	        {
		        if ((((mes == 4) || (mes == 6) || (mes == 9) || (mes==11)) && (dia>30)) || ((mes==2) && (dia>29)))
			        return false      				  	 
	        }
	} 

    mes = mes - 1;
    try{
        var data = new Date(anyo, mes, dia)
    }
    catch (e)
    {
        return false
    }  
    
    if (this.fechasAnterioresValidas)
        return true
    
    var avui = new Date();
    var dAvui = new Date(avui.getFullYear(),avui.getMonth(),avui.getDate())
    if (data < dAvui) 
        return false

    return true
}

function fEsFechaValida(data)
{   
    
    if (this.arrayFechasValidas.length == 0)
        return true;
    
    if (this.strArrayFechasValidas == "")
    {
    	for (var i=0; i<this.arrayFechasValidas.length; i++)
    	{	
		    this.strArrayFechasValidas += "#" + this.arrayFechasValidas[i]	       
	    }
    }

    var dataAux = data
    if (this.strArrayFechasValidas.indexOf(dataAux) >= 0)
	    return true;
    return false;
}

function fPrintCalendar()
{
    var fechaInicio = this.parseDate("1/" + this.monthSelected + "/" + this.yearSelected)
    var str = ""
    str += "<table bgcolor='#ffffff' cellpadding=1 width='200' height='135' cellspacing=1 border=0 class='" + this.borderGeneralClass + "'>"
    str += "    <tr>"
    str += "        <td align='center' valign='top'>"
    str += "            <table width='100%' cellpadding=1 cellspacing=1 border=0>"
    str += "                <tr>"
    str += "                    <td height='20' class='" + this.fondoTitleMonth + "' align='center'>"
    str += "                        <table width='100%' cellpadding=0 cellspacing=0><tr>"
    if ((fechaInicio > this.now) || (this.fechasAnterioresValidas))
        str += "                            <td width='20' align='center'><a href='javascript:" + this.name + ".previous()'><img border=0 src='" + this.imagenFlechaIzq + "'></a></td>"
    else
        str += "<td width='20'></td>"
    str += "                            <td align='center' class='" + this.titleClass + "'>" + this.strMonth(this.monthSelected) + " " + this.yearSelected + "</td>"
    str += "                            <td width='20' align='center'><a href='javascript:" + this.name + ".next()'><img border=0 src='" + this.imagenFlechaDer + "'></a></td>"
    if (this.muestraBotonCerrar)
    {
        str += "<td><a href='javascript: " + this.name + ".hide()'><img border='0' src='/" + this.aplicacion + "/images/bot_cerrar.gif'></a></td>"
    }
    str += "                        </tr></table>"
    str += "                    </td>"
    str += "                </tr>"
    str += "                <tr>"
    str += "                    <td align='center'>"
    str += "                        <table width='100%' cellpadding=1 cellspacing=1>"
    str += "                            <tr>"
    for (var i=0;i<7;i++)
    {
        str += "                            <td width='14%' align='center' class='" + this.fondoTitleDaysClass + "'><span class='" + this.titleDaysClass + "'>" + this.DAY_NAMES_abrev[i] + "</span></td>"
    }
    str += "                            </tr>"
    
    var offSet = this.calculaDiaSemana(fechaInicio.getDay())
    str += "                            <tr>"        
    for (var i=1;i<=offSet;i++)
    {
        var fondoDia = this.fondoDiaLaboral
        if ((posicio==6) || (posicio==0))
            fondoDia = this.fondoDiaFinde
        str += "                            <td width='14%' align='center' class='" + fondoDia + "'><img src='/images/shim.gif'></td>"
    }
    for (var i=offSet+1;i<=(this.totalDays(this.monthSelected, this.yearSelected)+offSet);i++)
    {
        var diaSeleccionable = true
        var posicio = (i%7)
        if (posicio == 1)
        {
            str+= "                     </tr><tr>"
        }
        var fondoDia = this.fondoDiaLaboral
        if ((posicio==6) || (posicio==0))
            fondoDia = this.fondoDiaFinde
        var claseDia = this.claseDiaNormal
        var dia = this.parseDate((i - offSet) + "/" + this.monthSelected + "/" + this.yearSelected);
        var diaStr = this.estandarizaFecha((i - offSet) + "/" + this.monthSelected + "/" + this.yearSelected)
        
	    if (dia.getMonth < parseInt(this.monthSelected,10))
		    dia.setYear(dia.getFullYear() + 1);
	
        if ((this.marcaDiaActual) && (dia.toGMTString() == this.now.toGMTString()))
            claseDia = this.claseDiaHoy     
        if (this.esFechaValida(diaStr))
        {
            claseDia = this.claseDiaNormal
        }
        else
        {
            claseDia = this.claseDiaDesactivado
            diaSeleccionable = false
        }
        
        if ((dia <= this.now) && (!this.fechasAnterioresValidas))
        {
            if (this.formulario == "soloVuelo") {
                if (dia <= this.parseDate(this.now.getDate() - 1 + "/" + this.monthSelected + "/" + this.yearSelected)) {
                    claseDia = this.claseDiaDesactivado
                    diaSeleccionable = false
                }
            }else{
                claseDia = this.claseDiaDesactivado
                diaSeleccionable = false
            }
        }
        str += "                            <td width='14%' align='center' class='" + fondoDia + "'>" 
        if (diaSeleccionable)
        {
            var strData = this.estandarizaFecha((i - offSet) + "/" + this.monthSelected + "/" + this.yearSelected)
            str += "                            <a href='javascript:" + this.name + ".selectedDate(\"" + strData + "\")' style='text-decoration:none'>"
        }
        str += "                                <span class='" + claseDia + "'>" + (i - offSet) + "</span></a></td>"
    }
    str += "                            </tr>"
    str += "                        </table>"
    str += "                    </td>"

    str += "            </table>"
    str += "         </td>"
    str += "    </tr>"
    str += "</table>"
    var capa = eval(this.nombreDiv)
    capa.innerHTML = str
}


function fModificaSegundoCalendarioFunction()
{
    var strdata = eval(this.name + ".getValue()")
    if (!this.validaFecha(strdata))
        return
    var strdata2 = eval(this.modificaSegundoCalendario + ".getValue()")
    if (this.validaFecha(strdata2))
    {
        var data2 = eval(this.modificaSegundoCalendario + ".getDate()")
        if (this.getDate() < data2)
            return
    }    
    eval(this.modificaSegundoCalendario + ".setValue('" + strdata + "')")
}

function fPrintInputCalendar(dataInicial)
{
    if (this.noDiv)
    {
        var str = "<input type='hidden' id='txtData_" + this.name + "' value='" + dataInicial + "' name='txtData_" + this.name + "'>"           
    }
    else
    {
        var str = "<table cellpadding=0 cellspacing=0><tr><td><input id='txtData_" + this.name + "' value='" + dataInicial + "' name='txtData_" + this.name + "' size='12' maxlength='12' class='mdMuyFuerte' "
        if ((this.onChangeFunction != null) || (this.modificaSegundoCalendario!=null))
        {
            str += " onchange='"
            if (this.onChangeFunction != null)
                str += this.onChangeFunction + ";"
            if (this.modificaSegundoCalendario != null)
                str += this.name + ".modificaSegundoCalendarioFunction();"
            str += "' "
        }
        str += "/></td><td>&nbsp;<a href='javascript: " + this.name + ".show();'><img id='imgCalendar_" + this.name + "' border=0 src='/" + this.aplicacion + "/images/img_calendar.gif'/></a></td></tr></table>"
    }
    return str
}

function fPrintDivCalendar(top, left)
{
    this.top = top
    this.left = left
    var str = ""
    if (this.noDiv) 
    {
        str += "<iframe FRAMEBORDER='0' border='1' src='about:blank' id='iframe_" + this.nombreDiv + "' width='200' height='135' style='display:none; z-index:10'></iframe>"
        str += "<div id='" + this.nombreDiv + "' style='display:yes; z-index:10'></div>"
        this.muestraBotonCerrar = false;
    }
    else
    {
        str += "<iframe FRAMEBORDER='0' border='0' src='about:blank' id='iframe_" + this.nombreDiv + "' width='200' height='135' style='display: none; position: absolute; top: 0; left: 0; z-index:10'></iframe>"
        str += "<div id='" + this.nombreDiv + "' style='position: absolute; top: 0; left: 0; display: none; z-index:10'></div>"
    }
    return str;
}

function fShow(noDiv)
{
    if (noDiv)
    {
        var capa = eval(this.nombreDiv)
        capa.style.display = ""
        var iframe = document.getElementById("iframe_" + this.nombreDiv);
	    iframe.style.display="";
	    this.printDivCalendar();
    }
    else
    {
    
        var posX = 0
        var posY = 0
        posX = posicRatonX + 15 + this.left
        posY = posicRatonY - 7 + this.top

        var capa = eval(this.nombreDiv)
        capa.style.display = ""
        capa.style.top = posY
        capa.style.left = posX
        if (this.validaFecha(this.getValue()))
        {
            this.monthSelected = this.getDate().getMonth()+1
            this.yearSelected = this.getDate().getFullYear()
        }
        var iframe = document.getElementById("iframe_" + this.nombreDiv);
	    iframe.style.display="";
	    iframe.style.top = posY;
	    iframe.style.left = posX;
	    this.printCalendar()
	}
}

/*function fShow2()
{
    var posX = 0
    var posY = 0
    posX = posicRatonX - 138+ this.left
    posY = posicRatonY - 151 + this.top
    var capa = eval(this.nombreDiv)
    capa.style.display = ""
    capa.style.top = posY
    capa.style.left = posX
    if (this.validaFecha(this.getValue()))
    {
        this.monthSelected = this.getDate().getMonth()+1
        this.yearSelected = this.getDate().getFullYear()
    }
    var iframe = document.getElementById("iframe_" + this.nombreDiv);
	iframe.style.display="";
	iframe.style.top = posY;
	iframe.style.left = posX;
	this.printCalendar()
}*/

function fHide()
{
    var iframe = document.getElementById("iframe_" + this.nombreDiv);
    iframe.style.display="none";
    eval(this.nombreDiv + ".style.display = 'none'")
}

function fSelectedDate(strFecha)
{
    this.setValue(strFecha);
    if (!this.noDiv)
    	this.hide();
    
    if (this.modificaSegundoCalendario != null)
        this.modificaSegundoCalendarioFunction()
        
    if (this.functionSelection != "")
        eval(this.functionSelection(strFecha))    
}

function fNext()
{
    if (this.monthSelected == 12)
    {
        this.yearSelected = this.yearSelected + 1
        this.monthSelected = 1
    }
    else
    {
        this.monthSelected = this.monthSelected + 1
    }
    this.printCalendar()
}

function fPrevious()
{
    if (this.monthSelected == 1)
    {
        this.yearSelected = this.yearSelected - 1
        this.monthSelected = 12
    }
    else
    {
        this.monthSelected = this.monthSelected - 1
    } 
    this.printCalendar()
}

function fCalculaDiaSemana(dia)
{
    if (dia == 0)
        return 6
    else
        return dia - 1
}

function ftotalDays(month, year)
{
    switch (month)
    {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            return 31
            break;
        case 2:
            if (this.esBisiesto(year))
                return 29
            else
                return 28
            break;
        case 3:
        case 4:
        case 6:
        case 9:
        case 11:
            return 30
            break;
    }
    return 0
}

function fstrMonth(month)
{
    return this.MONTH_NAMES[month-1]
}

function fParseDate(val) {
//var preferEuro=(arguments.length==2)?arguments[1]:false;
generalFormats=new Array('d-M-y','d MMM y','d MMM,y','d-MMM-y','d MMM','d M y','d/MMM/y','d/MMM','dMy','dMMMy','d.M.Y','d.MMM.y');
monthFirst=new Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d','M d','Md','M.d');
dateFirst =new Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M','d M','dM','d.M');
var checkList=new Array('generalFormats','dateFirst','monthFirst');
var d=null;
for (var i=0; i<checkList.length; i++) {
	var l=window[checkList[i]];
	for (var j=0; j<l.length; j++) {
		d=this.getDateFromFormat(val,l[j]);
		if (d!=0) { return new Date(d); }
		}
	}
return null;
}

function fGetDateFromFormat(val,format) {
	val=val+"";
	format=format+"";
	var i_val=0;
	var i_format=0;
	var c="";
	var token="";
	var token2="";
	var x,y;
	var now=new Date();
	var year=now.getFullYear();
	var month=now.getMonth()+1;
	var date=1;
	var hh= 1;
	var mm=0;
	var ss=0;
	var ampm="";	

	while (i_format < format.length) {
		// Get next token from format string
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
			}
		// Extract contents of value based on format token
		if (token=="yyyy" || token=="yy" || token=="y") {
			if (token=="yyyy") { x=4;y=4; }
			if (token=="yy")   { x=2;y=2; }
			if (token=="y")    { x=2;y=4; }
			year=this.getInt(val,i_val,x,y);
			if (year==null) { return 0; }
			i_val += year.length;
			if (year.length==2) {
				if (year > 70) { year=1900+(year-0); }
				else { year=2000+(year-0); }
				}
			}
		else if (token=="MMM"||token=="NNN"){
			month=0;
			for (var i=0; i<this.MONTH_NAMES.length; i++) {
				var month_name=this.MONTH_NAMES[i];
				if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
					if (token=="MMM"||(token=="NNN"&&i>11)) {
						month=i+1;
						if (month>12) { month -= 12; }
						i_val += month_name.length;
						break;
						}
					}
				}
			if ((month < 1)||(month>12)){return 0;}
			}
		else if (token=="EE"||token=="E"){
			for (var i=0; i<DAY_NAMES.length; i++) {
				var day_name=DAY_NAMES[i];
				if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {
					i_val += day_name.length;
					break;
					}
				}
			}
		else if (token=="MM"||token=="M") {
			month=this.getInt(val,i_val,token.length,2);
			if(month==null||(month<1)||(month>12)){return 0;}
			i_val+=month.length;}
		else if (token=="dd"||token=="d") {
			date=this.getInt(val,i_val,token.length,2);
			if(date==null||(date<1)||(date>31)){return 0;}
			i_val+=date.length;}
		else if (token=="hh"||token=="h") {
			hh=this.getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>12)){return 0;}
			i_val+=hh.length;}
		else if (token=="HH"||token=="H") {
			hh=this.getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>23)){return 0;}
			i_val+=hh.length;}
		else if (token=="KK"||token=="K") {
			hh=this.getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>11)){return 0;}
			i_val+=hh.length;}
		else if (token=="kk"||token=="k") {
			hh=this.getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>24)){return 0;}
			i_val+=hh.length;hh--;}
		else if (token=="mm"||token=="m") {
			mm=this.getInt(val,i_val,token.length,2);
			if(mm==null||(mm<0)||(mm>59)){return 0;}
			i_val+=mm.length;}
		else if (token=="ss"||token=="s") {
			ss=this.getInt(val,i_val,token.length,2);
			if(ss==null||(ss<0)||(ss>59)){return 0;}
			i_val+=ss.length;}
		else if (token=="a") {
			if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}
			else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}
			else {return 0;}
			i_val+=2;}
		else {
			if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
			else {i_val+=token.length;}
			}
		}
	// If there are any trailing characters left in the value, it doesn't match
	if (i_val != val.length) { return 0; }
	// Is date valid for month?
	if (month==2) {
		// Check for leap year
		if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
			if (date > 29){ return 0; }
			}
		else { if (date > 28) { return 0; } }
		}
	if ((month==4)||(month==6)||(month==9)||(month==11)) {
		if (date > 30) { return 0; }
		}
	// Correct hours value
	if (hh<12 && ampm=="PM") { hh=hh-0+12; }
	else if (hh>11 && ampm=="AM") { hh-=12; }
	var newdate=new Date(year,month-1,date,hh,mm,ss);
	return newdate.getTime();
	}
	
function fIsInteger(val) {
	var digits="1234567890";
	for (var i=0; i < val.length; i++) {
		if (digits.indexOf(val.charAt(i))==-1) { return false; }
		}
	return true;
}

function fGetInt(str,i,minlength,maxlength) {
	for (var x=maxlength; x>=minlength; x--) {
		var token=str.substring(i,i+x);
		if (token.length < minlength) { return null; }
		if (this.isInteger(token)) { return token; }
		}
	return null;
}

function fEsBisiesto(year)
{
    return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? true : false;
}

/**************************************************************************************************/

document.onclick = posicRatonXY;
var posicRatonX = 0
var posicRatonY = 0

function posicRatonXY(e) {
    if (tipusNavegador() == 0)
    {
	    posicRatonY = event.clientY + document.body.scrollTop  					
	    posicRatonX = event.clientX + document.body.scrollLeft
    }
    else
    {
	    posicRatonY = e.clientY + document.body.scrollTop  					
	    posicRatonX = e.clientX + document.body.scrollLeft
    }
	if (posicRatonY < 0){posicRatonY = 0}  
	if (posicRatonX < 0){posicRatonX = 0}
	return true 
}

function tipusNavegador()
{
    //Retorna: 0-Explorer, 1-Mozilla Firefox, 2-Netscape, 3-Opera
    var nom = navigator.userAgent
    if (nom.toLowerCase().indexOf("msie") > 0)
        return 0
    if (nom.toLowerCase().indexOf("firefox") > 0)
        return 1 
    if (nom.toLowerCase().indexOf("netscape") > 0)
        return 2
    if (nom.toLowerCase().indexOf("opera") > 0)
        return 3
}