var contv=0;
function pillacodi (url, id_contenedor,opcio){   // Verssió asincrona
    if (contv==10) contv=1; else contv++;
    eval ("var an"+contv+"=false;");
    if (window.XMLHttpRequest)    {        
        // Si es Mozilla, Safari etc        
        eval("an"+contv+" = new XMLHttpRequest ();");    
    } else if (window.ActiveXObject)    {        
        // pero si es IE        
        try {            
            eval("an"+contv+" = new ActiveXObject ('Msxml2.XMLHTTP');");        
        } catch (e) {            
            // en cas que sigui una versió antigua            
            try {                
                eval("an"+contv+" = new ActiveXObject ('Microsoft.XMLHTTP');");            
            } catch (e) {            
            }        
        }    
    }     else return false;    
    eval("an"+contv+".onreadystatechange = function () {carregar (an"+contv+", id_contenedor, opcio)}");
    param=opcio;
    eval("an"+contv+".open ('POST', url, true);"); // assignem mètodes open y send
    eval("an"+contv+".setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');");  
    eval("an"+contv+".send (param);");
}

var pas=0; // Controla que hagi acabat el AJAX
function carregar (pagina_requerida, id_contenedor,opcio){
    pas=pagina_requerida.readyState;
    //document.getElementById('work').style.display='block';
    if (pas == 4 ) {
        //var resultat=unescape(pagina_requerida.responseText);
        var resultat=htmlspecialchars_decode(pagina_requerida.responseText);
        document.getElementById(id_contenedor).innerHTML = resultat;
        //document.getElementById('work').style.display='none';
    }
}
function htmlspecialchars_decode (string, quote_style) {
    // Convert special HTML entities back to characters  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/htmlspecialchars_decode
    // +   original by: Mirek Slugen
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Mateusz "loonquawl" Zalega
    // +      input by: ReverseSyntax
    // +      input by: Slawomir Kaniecki
    // +      input by: Scott Cariss
    // +      input by: Francois
    // +   bugfixed by: Onno Marsman
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Ratheous
    // -    depends on: get_html_translation_table
    // *     example 1: htmlspecialchars_decode("<p>this -&gt; &quot;</p>", 'ENT_NOQUOTES');
    // *     returns 1: '<p>this -> &quot;</p>'
    // *     example 2: htmlspecialchars_decode("&amp;quot;");
    // *     returns 2: '&quot;'
    var hash_map = {}, symbol = '', tmp_str = '', entity = '';
    tmp_str = string.toString();
    
    if (false === (hash_map = this.get_html_translation_table('HTML_SPECIALCHARS', quote_style))) {
        return false;
    }

    for (symbol in hash_map) {
        entity  = hash_map[symbol];
        tmp_str = tmp_str.split(entity).join(symbol);
    }
    tmp_str = tmp_str.split('&#039;').join("'");
    
    return tmp_str;
}
function get_html_translation_table (table, quote_style) {
    // Returns the internal translation table used by htmlspecialchars and htmlentities  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/get_html_translation_table
    // +   original by: Philip Peterson
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: noname
    // +   bugfixed by: Alex
    // +   bugfixed by: Marco
    // +   bugfixed by: madipta
    // +   improved by: KELAN
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Frank Forte
    // +   bugfixed by: T.Wild
    // +      input by: Ratheous
    // %          note: It has been decided that we're not going to add global
    // %          note: dependencies to php.js, meaning the constants are not
    // %          note: real constants, but strings instead. Integers are also supported if someone
    // %          note: chooses to create the constants themselves.
    // *     example 1: get_html_translation_table('HTML_SPECIALCHARS');
    // *     returns 1: {'"': '&quot;', '&': '&amp;', '<': '&lt;', '>': '&gt;'}
    
    var entities = {}, hash_map = {}, decimal = 0, symbol = '';
    var constMappingTable = {}, constMappingQuoteStyle = {};
    var useTable = {}, useQuoteStyle = {};
    
    // Translate arguments
    constMappingTable[0]      = 'HTML_SPECIALCHARS';
    constMappingTable[1]      = 'HTML_ENTITIES';
    constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
    constMappingQuoteStyle[2] = 'ENT_COMPAT';
    constMappingQuoteStyle[3] = 'ENT_QUOTES';

    useTable       = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';
    useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';

    if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') {
        throw new Error("Table: "+useTable+' not supported');
        // return false;
    }

    entities['38'] = '&amp;';
    if (useTable === 'HTML_ENTITIES') {
        entities['160'] = '&nbsp;';
        entities['161'] = '&iexcl;';
        entities['162'] = '&cent;';
        entities['163'] = '&pound;';
        entities['164'] = '&curren;';
        entities['165'] = '&yen;';
        entities['166'] = '&brvbar;';
        entities['167'] = '&sect;';
        entities['168'] = '&uml;';
        entities['169'] = '&copy;';
        entities['170'] = '&ordf;';
        entities['171'] = '&laquo;';
        entities['172'] = '&not;';
        entities['173'] = '&shy;';
        entities['174'] = '&reg;';
        entities['175'] = '&macr;';
        entities['176'] = '&deg;';
        entities['177'] = '&plusmn;';
        entities['178'] = '&sup2;';
        entities['179'] = '&sup3;';
        entities['180'] = '&acute;';
        entities['181'] = '&micro;';
        entities['182'] = '&para;';
        entities['183'] = '&middot;';
        entities['184'] = '&cedil;';
        entities['185'] = '&sup1;';
        entities['186'] = '&ordm;';
        entities['187'] = '&raquo;';
        entities['188'] = '&frac14;';
        entities['189'] = '&frac12;';
        entities['190'] = '&frac34;';
        entities['191'] = '&iquest;';
        entities['192'] = '&Agrave;';
        entities['193'] = '&Aacute;';
        entities['194'] = '&Acirc;';
        entities['195'] = '&Atilde;';
        entities['196'] = '&Auml;';
        entities['197'] = '&Aring;';
        entities['198'] = '&AElig;';
        entities['199'] = '&Ccedil;';
        entities['200'] = '&Egrave;';
        entities['201'] = '&Eacute;';
        entities['202'] = '&Ecirc;';
        entities['203'] = '&Euml;';
        entities['204'] = '&Igrave;';
        entities['205'] = '&Iacute;';
        entities['206'] = '&Icirc;';
        entities['207'] = '&Iuml;';
        entities['208'] = '&ETH;';
        entities['209'] = '&Ntilde;';
        entities['210'] = '&Ograve;';
        entities['211'] = '&Oacute;';
        entities['212'] = '&Ocirc;';
        entities['213'] = '&Otilde;';
        entities['214'] = '&Ouml;';
        entities['215'] = '&times;';
        entities['216'] = '&Oslash;';
        entities['217'] = '&Ugrave;';
        entities['218'] = '&Uacute;';
        entities['219'] = '&Ucirc;';
        entities['220'] = '&Uuml;';
        entities['221'] = '&Yacute;';
        entities['222'] = '&THORN;';
        entities['223'] = '&szlig;';
        entities['224'] = '&agrave;';
        entities['225'] = '&aacute;';
        entities['226'] = '&acirc;';
        entities['227'] = '&atilde;';
        entities['228'] = '&auml;';
        entities['229'] = '&aring;';
        entities['230'] = '&aelig;';
        entities['231'] = '&ccedil;';
        entities['232'] = '&egrave;';
        entities['233'] = '&eacute;';
        entities['234'] = '&ecirc;';
        entities['235'] = '&euml;';
        entities['236'] = '&igrave;';
        entities['237'] = '&iacute;';
        entities['238'] = '&icirc;';
        entities['239'] = '&iuml;';
        entities['240'] = '&eth;';
        entities['241'] = '&ntilde;';
        entities['242'] = '&ograve;';
        entities['243'] = '&oacute;';
        entities['244'] = '&ocirc;';
        entities['245'] = '&otilde;';
        entities['246'] = '&ouml;';
        entities['247'] = '&divide;';
        entities['248'] = '&oslash;';
        entities['249'] = '&ugrave;';
        entities['250'] = '&uacute;';
        entities['251'] = '&ucirc;';
        entities['252'] = '&uuml;';
        entities['253'] = '&yacute;';
        entities['254'] = '&thorn;';
        entities['255'] = '&yuml;';
    }

    if (useQuoteStyle !== 'ENT_NOQUOTES') {
        entities['34'] = '&quot;';
    }
    if (useQuoteStyle === 'ENT_QUOTES') {
        entities['39'] = '&#39;';
    }
    entities['60'] = '&lt;';
    entities['62'] = '&gt;';


    // ascii decimals to real symbols
    for (decimal in entities) {
        symbol = String.fromCharCode(decimal);
        hash_map[symbol] = entities[decimal];
    }
    
    return hash_map;
}

function escapa(que){
    return escape(que).replace(/\+/g, '%2B'); //.replace(/\//g, '%2F');
}

function reservar(que) {
    pillacodi('reserva.php','dresv','idcont='+que);
    setTimeout("calculres()",300);
    titpop.innerHTML="Efectuar Reserva";
    enfosquir();
    document.body.scrollTop=0;
    accio.style.display='block';
}

function condicions(que) {
    pillacodi('condicions.php','dresv','idcont='+que);
    titpop.innerHTML="Condicions del programa";
    enfosquir();
    document.body.scrollTop=0;
    accio.style.display='block';
}

function enfosquir() {
    document.body.scrollTop=5000;
    var alt=document.body.scrollTop+document.body.clientHeight;
    tapa.style.height=alt;
    tapa.style.display='block';
    trans(0,'F');
}

function consulres() {
    pillacodi('cons_res.php','dresv');
    //setTimeout("calculres()",300);
    titpop.innerHTML="Consultar Reserves";
    enfosquir();  
    document.body.scrollTop=0;
    accio.style.display='block';
    
}

function trans (opa,com){
    //alert("o="+opa+" / com="+com);
        //prova.value="o="+opa+" / com="+com;
        setOpacity(tapa,opa);
        if (com=="F") opa=opa+20; else opa=opa-20;
        if ((opa<81 && com=="F") || (opa>0 && com=="C")) setTimeout("trans("+opa+",'"+com+"')",20);
}
function destapa() {
    trans(91,'C');
    triaperc.style.display='none'; 
    setTimeout("tapa.style.display='none';",200);
    accio.style.display='none';
}
function setOpacity(obj, opacity) {
    
  opacity = (opacity == 100)?99.999:opacity;
  
  // IE/Win
  obj.style.filter = "alpha(opacity:"+opacity+")";
  
  // Safari<1.2, Konqueror
  obj.style.KHTMLOpacity = opacity/100;
  
  // Older Mozilla and Firefox
  obj.style.MozOpacity = opacity/100;
  
  // Safari 1.2, newer Firefox and Mozilla, CSS3
  obj.style.opacity = opacity/100;
}

function mostracont(idm,desde) {
    pillacodi('maincont.php','maincont','idm='+idm+'&desde='+desde);
    pillacodi('paginacio.php','paginaciotop','idm='+idm+'&desde='+desde+'&cl=paginaciotop');
    pillacodi('paginacio.php','paginacio','idm='+idm+'&desde='+desde+'&cl=paginacio');
    pillacodi('miscajax.php','titcont','opc=tc&idm='+idm);    
}

function calculres() {
    //rind=document.getElementById('rind');
    //alert('arribo');
    var lind=document.getElementById('rind').options[document.getElementById('rind').selectedIndex].value;
    //alert('arribo2'); 
    var ldob=document.getElementById('rdob').options[document.getElementById('rdob').selectedIndex].value;
    var ltri=document.getElementById('rtri').options[document.getElementById('rtri').selectedIndex].value;
    //alert(lind);
    var preut=(lind*ind.value)+(ldob*dob.value*2)+(ltri*tri.value*3);
    document.getElementById('pvt').innerHTML=addCommas(preut)+' &#8364;';
    document.getElementById('ptotal').value=preut;
    var reservades=(lind*1)+(ldob*2)+(ltri*3)+0;
    document.getElementById('npla').innerHTML=reservades;
    var queden=places.value-ocupades.value-reservades; 
    document.getElementById('vac').innerHTML=queden;
    
    var ocu=parseInt(ocupades.value);
    var plac=parseInt(places.value); 
    var perc=((100*(ocu+reservades))/plac);
    //alert('ocu='+ocu+' / res='+reservades+' / plac='+plac+' / perc='+perc);
    document.getElementById('merc').style.width=perc+'%';
    if (queden>=0) {
        if (reservades>0) seguir.style.display='block';
    } else {
        var comptes='no';
        document.getElementById('seguir').style.display='none';
        alert('Estàs intentant reservar més places de les que hi ha disponibles.\nRevisa-ho per continuar si us plau');
    }
} 

function percent(pax) {
    document.getElementById('tppax').value=pax;
    document.getElementById('triaperc').style.top=event.clientY+10;
    document.getElementById('triaperc').style.left=event.clientX-260;
    document.getElementById('sperc').selectedIndex=0;
    document.getElementById('carnet').style.backgroundColor='#FFFFFF';
    document.getElementById('carnet').value='';
    document.getElementById('triaperc').style.display='block';   
}
function reserva1pas(idcont) {
    var params='pas=2&idcont='+idcont+'&rind='+document.getElementById('rind').options[document.getElementById('rind').selectedIndex].value+'&rdob='+document.getElementById('rdob').options[document.getElementById('rdob').selectedIndex].value;
    params+='&rtri='+document.getElementById('rtri').options[document.getElementById('rtri').selectedIndex].value;
    pillacodi('reserva.php','dresv',params);
    setTimeout("calculres()",5000);
}

function miraplens(pax) {
    var res=true;
    for (t=1;t<=pax;t++) {
        var compro=document.getElementById('nom'+t);
        if (compro.value=='') {
            compro.style.backgroundColor='#FFCCCC';
            res=false;
        } else compro.style.backgroundColor='#FFFFFF'; 
    }
    for (t=1;t<=pax;t++) {
        var compro=document.getElementById('nif'+t);
        if (compro.value=='') {
            compro.style.backgroundColor='#FFCCCC';
            res=false;
        } else compro.style.backgroundColor='#FFFFFF'; 
    }           
    if (res==false) alert('Cal omplir totes les dades per confirmar la reserva');
    seguir.style.display='block';
    return res;    
}
function addCommas(nStr) {
    nStr=nStr.toFixed(2);
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}
