/*******************************************************
 * NouvellesAntilles.com                               *
 * Authors: F.Delaneau, JM.Kawamura, P.Jimenez         *
 * Last Uptade: 2008/04/01                             *
 *******************************************************/

// pop-up
$(document).ready( function() {
        $("a.popup").bind("click", function() {
                window.open(this.href);
                return false;
        });
});

// toggles
$(document).ready( function() {
        var div_toggle = new Array();
        $("div.toggle").each( function(i) {
                div_toggle.push($(this));
                var classe_toggle = "toggle-on";
                if ($("div.toggle")[i].className.search(/on/) != -1 || $("div.toggle")[i].className.search(/off/) != -1) {
                        //La position du toggle est precisee
                        if($("div.toggle")[i].className.search(/off/) != -1) {
                                classe_toggle = "toggle-off";
                                $("div:first", div_toggle[i]).css("display", "none");
                        }
                } else {
                        // default behavior
                        if(i > 0 || $("div.toggle").length == 1) {
                                classe_toggle = "toggle-off";
                                $("div:first", div_toggle[i]).css("display", "none");
                        }
                }
                $("*:first", $(this)).addClass("toggle").addClass(classe_toggle).click( function() {
                        $("div:first", div_toggle[i]).slideToggle(100, function() {
                                switch($("div:first", div_toggle[i]).css("display")) {
                                        case "none":
                                                $("*:first", div_toggle[i]).removeClass("toggle-on").removeClass("toggle-off").addClass("toggle-off");
                                                break;
                                        case "block":
                                                $("*:first", div_toggle[i]).removeClass("toggle-on").removeClass("toggle-off").addClass("toggle-on");
                                                break;
                                }
                        });
                });
        });
});

// toggles specifique TMS by JMK 2008/05/13
$(document).ready( function() {
        var div_toggleTMS = new Array();
        $("div.toggleTMS").each( function(i) {
                div_toggleTMS.push($(this));
                var classe_toggleTMS = "toggleTMS-on";
                if ($("div.toggleTMS")[i].className.search(/on/) != -1 || $("div.toggleTMS")[i].className.search(/off/) != -1) {
                        //La position du toggleTMS est precisee
                        if($("div.toggleTMS")[i].className.search(/off/) != -1) {
                                classe_toggleTMS = "toggleTMS-off";
                                $("div.toggleTMSContent", div_toggleTMS[i]).css("display", "none");
                        }
                } else {
                        // default behavior
                        if(i > 0 || $("div.toggleTMS").length == 1) {
                                classe_toggleTMS = "toggleTMS-off";
                                $("div.toggleTMSContent", div_toggleTMS[i]).css("display", "none");
                        }
                }
                $("*:first", $(this)).addClass("toggleTMS").addClass(classe_toggleTMS).click( function() {
                        $("div.toggleTMSContent", div_toggleTMS[i]).slideToggle(100, function() {
                                switch($("div.toggleTMSContent", div_toggleTMS[i]).css("display")) {
                                        case "none":
                                                $("*:first", div_toggleTMS[i]).removeClass("toggleTMS-on").removeClass("toggleTMS-off").addClass("toggleTMS-off");
                                                break;
                                        case "block":
                                                $("*:first", div_toggleTMS[i]).removeClass("toggleTMS-on").removeClass("toggleTMS-off").addClass("toggleTMS-on");
                                                break;
                                }
                        });
                });
        });
});


// slideshow
$(document).ready(function() {

        // translation of the thickbox CLOSE button
        if ($("#wrap.fr").length > 0){
                TB_language.closeText = "Fermer";
        }
        
        if ($("#wrap.it").length > 0){
                TB_language.closeText = "Vicino";
        }
        
        if ($("#wrap.es").length > 0){
                TB_language.closeText = "Cerrar";
        }
});

$(document).ready(function() {

        $("div.view").each(function(i) {

                // define a unique id for each slideshow
                var linkId = "id" + i;

                // translation of the title message on the medium size picture
                var imageZoom ="Click to enlarge the picture";

                // translation of the other thickbox buttons
                if ($("#wrap.fr").length > 0){
                        TB_language.nextText = "Suivante &gt;";
                        TB_language.prevText = "&lt; pr&eacute;c&eacute;dente";
                        TB_language.navImageText = "Image";
                        TB_language.navOfText = "sur";
                        imageZoom ="Cliquez sur la photo pour la voir en grand";
                }
                
                if ($("#wrap.it").length > 0){
                        TB_language.nextText = "Accanto &gt;";
                        TB_language.prevText = "&lt; Precedente";
                        TB_language.navImageText = "Immagine";
                        TB_language.navOfText = "di";
                        imageZoom ="Cliccare per ampliare la foto";
                }
                
                if ($("#wrap.es").length > 0){
                        TB_language.nextText = "Siguiente &gt;";
                        TB_language.prevText = "&lt; Anterior";
                        TB_language.navImageText = "Imagen";
                        TB_language.navOfText = "de";
                        imageZoom ="Click para agrandar la imagen";
                }

                // force medium photo dimensions
                $("img.big", this).width(338);
                $("img.big", this).height(230);

                // add a link with thickbox behavior to the medium image
        $("img.big:first", this).wrap("<a id=\"" + linkId + "\" class=\"link_to_big_picture \" Title=\"" + imageZoom + "\" href=\"" + $('img.big', this).attr("src").replace(/medium/, "large") + "\" ></a>"); // @CHANGED thickbox class removed.
                // @NEW add "loupe" icon
        $("a.link_to_big_picture").append("<img src=\"theme_front/theme_front_1/image/contenu/loupe.png\" class=\"loupe\" alt=\"Zoom\" Title=\"" + imageZoom + "\"/>");
                // $("a.link_to_big_picture:first", this).unbind();

        // @NEW open the thickbox
        $('#'+linkId).click(function(event){
            // stop default behaviour
            event.preventDefault();
            
            // remove click border
            this.blur();
            
            // Search for all the images
            var thumbs = $('ul.thumb li a'); // $('div.view ul.thumb li a')
            
            // Search for the link of the images which is p
            for( var i = 0; i<thumbs.length; i++ ){
                if( thumbs[i].href.search( this.href ) != -1 ){ // if( this.getAttribute('href') == thumbs[i].getAttribute('href') ){
                    TB_show(thumbs[i].title, thumbs[i].href, thumbs[i].rel); // Opening the thickbox
                    break;
                }
            }
            
        });
               
                // modifiy thumbnails onclick behavior
                $('ul.thumb li a', this).each(function() {
                        $(this).click(function(event) {

                                // force to ignore the default href target
                                event.preventDefault();

                                // set the medium photo src
                                $("#"+linkId+" img.big").attr("src", $(this).attr("href"));

                                // set the big photo href
                                $("#"+linkId).attr("href", $(this).attr("href"));
                        });
                });
        });
});
$(document).ready(function() {
    var thumbs = $('ul.thumb li');
    
    var display = 8;
    
    var previous = $('div.nav a.previous');
    var next = $('div.nav a.next');

    var thumbs = $('ul.thumb li');
    
    // initial hides
    for( var i = 0; i < thumbs.length; i++ ){
        if( i > (display - 1) ){
            $(thumbs[i]).hide();
        }
    }
    
    if( thumbs.length > display ){
    previous.click(function(event){
        event.preventDefault();
        
            for( var first = 0; first < thumbs.length; first++ )
            if( $(thumbs[first]).css('display') != "none" )
                break;
        
        if( first > ( display -1 ) ){
                for( var i = first; i < ( first + display ); i++ )
                if( thumbs[i] )
                    $(thumbs[i]).hide();
                
                for( var i = first - 1; i >= ( first - display ); i-- )
                if( thumbs[i] )
                        $(thumbs[i]).fadeIn('slow');
                
            $('span#start').text(i+2);
            $('span#end').text( first );
                
                if($('span#start').text() == 1)
                    $('div.nav a.previous').hide();
                else
                    $('div.nav a.previous').show();
                
                if($('span#end').text() == thumbs.length)
                    $('div.nav a.next').hide();
                else
                    $('div.nav a.next').show();
        }
        
    });

    next.click(function(event){
        event.preventDefault();
        
            for( var first = 0; first < thumbs.length; first++ )
            if( $(thumbs[first]).css('display') != "none" )
                break;
        
            if((thumbs.length - first) > display ){
                for(var i = first; i < (first + display); i++)
                if( thumbs[i] )
                    $(thumbs[i]).hide();
                
                for(var n = i; n < (i + display); n++)
                    if(thumbs[n])
                        $(thumbs[n]).fadeIn('slow');
                else
                    break;
            
                $('span#start').text( i + 1);
                $('span#end').text(n);
                
                if($('span#start').text() == 1)
                    $('div.nav a.previous').hide();
                else
                    $('div.nav a.previous').show();
                
                if($('span#end').text() == thumbs.length)
                    $('div.nav a.next').hide();
                else
                    $('div.nav a.next').show();
        }
    });

    var toText = 'to';
    
    if ($("#wrap.fr").length > 0)
        toText = '&agrave;';
        
    if ($("#wrap.it").length > 0)
        toText = "a";
        
    if ($("#wrap.es").length > 0)
        toText = "a";
    
    previous.after( " <strong>&nbsp;<span id=\"start\">1</span> " + toText + " <span id=\"end\">" + display + "</span>&nbsp;</strong> ");
        previous.hide();
    next.before( " <strong>&nbsp;" + thumbs.length + " </strong> ");
    }else{
        $('div.nav').css('display', 'none');
    }
});

// tabs
$.tabs = function(containerId, start) {
        var onClass = 'over';
        var id = '#' + containerId;
        var i = (typeof start == "number") ? start - 1 : 0;				// define default selected tab
        $(id + '/div').css({display:"none"});							// hide all
        $(id + '>div:eq(' + i + ')').css({display:"block"});			// show current
        $(id + '>ul>li:nth-child(' + (i+1) + ')').addClass(onClass);	// set current tab class
        $(id + '>ul>li>a').click( function() {							// on tabs click
                if (!$(this.parentNode).is('.' + onClass)) {				// if not current tab
                        var re = /([_\-\w]+$)/i;								// save RegEx to get new id
                        var target = $('#' + re.exec(this.href)[1]);			// save target
                        if (target.size() > 0) {								// if a target exists
                                $(id + '>div:visible').css({display:"none"});		// hide visible div
                                target.animate({opacity:"show"}, "slow");			// show selected div's with transition
                                $(id + '>ul>li').removeClass(onClass);				// clean classes
                                $(this.parentNode).addClass(onClass);
                        } else {												// if no target exists
                                alert('No container available !');					// display an alert if selected id has no div container
                        }
                }
                return false;
        });
};

$(document).ready( function() {
        // init tabs behaviours
        if(typeof($.tabs) == 'function'){
            $.tabs('container');
            $.tabs('container2');
            $.tabs('infospassagers', 2);
            $.tabs('reglements', 2);
        }
});

// print
$(document).ready( function() {
        $(".print a").click( function(i) {
                window.print();
                return false;
        });
});


// FAQ toggle
$(document).ready( function() {
        $('dl.faq dd').toggle();				// first hide all definitions
        $('dl.faq dt.on').next().toggle();		// open flagged definitions
        $('dl.faq dt').click( function() {		// onClick on the definition title
                $(this).next().slideToggle('100');	// open definition with animation
        });
});


// form buttons
$(document).ready( function() {
        try {
                parseHTMLInputs();
        }
        catch (failure) {

        }
});

function parseHTMLInputs() {
                var button = /button|reset|submit/i;
                var inputs = document.getElementsByTagName('input');
                var l = inputs.length-1;
                //var l = $("input").length-1;

                for(var input, type, i=l ; i>=0 ; i--) {
                        input = inputs.item(i);
                        if(input && button.test(input.type)) {
                                type = button.exec(input.type)[0];
                                replaceHTMLInput(input, type);
                        }
                }
        }

function replaceHTMLInput(input, type) {
        var form = input.form;
        var link = document.createElement('a');
        var span = document.createElement('span');
        span.appendChild(document.createTextNode(input.value));
        link.appendChild(span);
        link.setAttribute('href', '#');
        input.parentNode.replaceChild(link, input);

        switch(type) {
                case 'submit':
                        link.onclick = function() { if(!form.onsubmit || form.onsubmit()) form.submit(); }
                        break;
                case 'reset':
                        link.onclick = function() { form.reset(); }
                        break;
                case 'button':
                        link.onclick = function() { if(!form.onsubmit || form.onsubmit()) form.submit(); }
                        break;
        }
}


/* --------------------------------------------------------------------------------------
        IE 6 specific bypasses
----------------------------------------------------------------------------------------- */
// hover everything
$(document).ready( function() {
        if ($.browser.msie) {
                $(".hover").addClass("hover-off").hover(
                        function()
                        {
                                $(this).removeClass("hover-off").addClass("hover-on");
                        },
                        function()
                        {
                                $(this).removeClass("hover-on").addClass("hover-off");
                        }
                );
        }
});

// add emty strong element to the description title
$(document).ready(function() {
        if ($.browser.msie) {
                $('div.detail h3 a').append("<strong></strong>");
        }
});

// add non breakable space at the footers end to prevent a weired text ghost
$(document).ready(function() {
        if ($.browser.msie) {
                $('div#footer p.legal').append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
        };
});

$(document).ready(function() {
        if ($.browser.msie) {
                $('dl.faq dt:first').before("<dt>&nbsp;</dt>");
        };
});

/* --------------------------------------------------------------------------------------
        init Thickbox
        WARNING : MUST REMAIN THE LAST ELEMENT CALLED ONCE THE DOM MODIFICATIONS ARE DONE.
----------------------------------------------------------------------------------------- */
$(document).ready( TB_init );

/**
* Ajout SQLI
*/

function numericStrictlyPositive(obj) {
        var StrValidChars = "0123456789.,";
        var StrString;
        var StrChar;

        StrString = obj.value;

        if (StrString != '' && StrString != 0) {
                for (i = 0 ; i < StrString.length ; i++) {
                      StrChar = StrString.charAt(i);
                      if (StrValidChars.indexOf(StrChar) == -1){
                               return false;
                      }
                }
        }
        else {
                return false;
        }
        return true;
}

// Fonction AJAX
function createXMLHttpRequest() {
   try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
   try { return new XMLHttpRequest(); } catch(e) {}
   alert("XMLHttpRequest n'est pas supporté, mettez à jour votre navigateur, merci.");
   return null;
}

function setAndExecute(divId,innerHTML){
        var div = document.getElementById(divId);
        if(div != null) {
	        div.innerHTML = innerHTML;
	        var x = div.getElementsByTagName("script");
	        for(var i=0;i<x.length;i++)   {
	                eval(x[i].text);
	        }
        }
}

function miseAJourCalendrier(mois,annee,encart,sit_id) {
        var xhr_object = createXMLHttpRequest();

        // On ouvre la requete vers la page desirée
        xhr_object.open("GET", '/service/ajax/index.php?component=agenda_evenement&action=get_calendrier&mois='+mois+'&annee='+annee+'&encart='+encart+'&sit_id='+sit_id, true);
        xhr_object.onreadystatechange = function(){
                if ( xhr_object.readyState == 4 && xhr_object.status == 200 ) {
                        setAndExecute('encartCalendrier',xhr_object.responseText);
                }
        }
        xhr_object.send(null);
}

function miseAJourCategories(compId, sit_id) {
        var xhr_object = createXMLHttpRequest();

        var themeId = document.getElementById("agenda_theme_id").value;

        // On ouvre la requete vers la page desirée
        xhr_object.open("GET", '/service/ajax/index.php?component=agenda_evenement&action=get_categorie&theme_id='+themeId+'&comp_id='+compId+'&sit_id='+sit_id, true);
        xhr_object.onreadystatechange = function(){
                if ( xhr_object.readyState == 4 ) {
                        document.getElementById('combo_categorie').innerHTML = xhr_object.responseText;
                }
        }
        xhr_object.send(null);
}

function miseAJourEncartAgenda(compId,type) {
        var xhr_object = createXMLHttpRequest();

        var date_debut = '';
        var date_fin = '';
        var ile_destination = '';

        if ( document.getElementById("datedepart") ) {
                date_debut = document.getElementById("datedepart").value;
        }
        if ( document.getElementById("dateretour") ) {
                date_fin = document.getElementById("dateretour").value;
        }
        if ( document.getElementById("destination_id") ) {
                ile_destination = document.getElementById("destination_id").value;
        }

        // On ouvre la requete vers la page desirée
        xhr_object.open("GET", '/service/ajax/index.php?component=agenda_evenement&action=get_encart_agenda_selection_compte&date_debut='+date_debut+'&date_fin='+date_fin+'&ile_destination='+ile_destination+'&comp_id='+compId+'&type='+type, true);
        xhr_object.onreadystatechange = function(){
                if ( xhr_object.readyState == 4 && xhr_object.status == 200 ) {
                        setAndExecute('encartTransverseCalendrier',xhr_object.responseText);
                }
        }
        xhr_object.send(null);
}

function miseAJourEncartPayer2FoisSansFrais() {
        
        if ( document.getElementById("encartPayer2FoisSansFrais") ) {
        
                var xhr_object = createXMLHttpRequest();
                
                var package_online = '';
        
                if ( document.getElementById("package_online") ) {
                        package_online = document.getElementById("package_online").value;
                }
        
                // On ouvre la requete vers la page desirée
                xhr_object.open("GET", '/service/ajax/index.php?component=voyage_voyage&action=get_encart_payer_2_fois_sans_frais&package_online='+package_online, true);
                xhr_object.onreadystatechange = function(){
                        if ( xhr_object.readyState == 4 && xhr_object.status == 200 ) {
                                setAndExecute('encartPayer2FoisSansFrais',xhr_object.responseText);
                        }
                }
                xhr_object.send(null);
        }
}

function miseAJourEncartNaEnregistreBagages() {
        
        if ( document.getElementById("encartNaEnregistreBagages") ) {
        
                var xhr_object = createXMLHttpRequest();
                
                var activation_bagages_plus = '';
        
                if ( document.getElementById("activation_bagages_plus") ) {
                        activation_bagages_plus = document.getElementById("activation_bagages_plus").value;
                }
        
                // On ouvre la requete vers la page desirée
                xhr_object.open("GET", '/service/ajax/index.php?component=portlet_info&action=get_encart_na_enregistre_bagages&activation_bagages_plus='+activation_bagages_plus, true);
                xhr_object.onreadystatechange = function(){
                        if ( xhr_object.readyState == 4 && xhr_object.status == 200 ) {
                                setAndExecute('encartNaEnregistreBagages',xhr_object.responseText);
                        }
                }
                xhr_object.send(null);
        }
}

function miseAJourFicheVoyage() {
        var xhr_object = createXMLHttpRequest();

        var id_devis = $("select#id_devis option:selected").val();
        
        if ( $("small#flagAPartirDe").val() != null ) {
                var flag_apartirde = 1;
        }
        else {
                var flag_apartirde = 0;
        }
        
        // On ouvre la requete vers la page desirée
        xhr_object.open("GET", '/service/ajax/index.php?component=voyage_voyage&action=get_infos_package&id_devis='+id_devis+'&flag_apartirde='+flag_apartirde, true);
        xhr_object.onreadystatechange = function(){
                if ( xhr_object.readyState == 4 && xhr_object.status == 200 ) {
                        setAndExecute('encartInfosPackage',xhr_object.responseText);
                }
        }
        xhr_object.send(null);
}

// Mise en session des dates pour la Vente en Ligne de loisirs
function setDateEnSession(prestationId, dateLib) {
        var xhr_object = createXMLHttpRequest();
        
        var dateLoisir = $("#"+dateLib+"_"+prestationId).val();
        
        // On ouvre la requete vers la page desirée
        xhr_object.open("GET", '/service/ajax/index.php?component=selection&action=set_date_session_loisir&prestation_id='+prestationId+'&date='+dateLoisir+'&date_lib='+dateLib, true);
        xhr_object.send(null);
}


// Gestion de la Vente en Ligne de loisirs
function calculPrixLoisir(prestationId,typePax) {
        var xhr_object = createXMLHttpRequest();
        
        var nbPax = $("#"+typePax+"_"+prestationId).val();
        
        // On ouvre la requete vers la page desirée
        xhr_object.open("GET", '/service/ajax/index.php?component=selection&action=get_tarif_loisir&prestation_id='+prestationId+'&type_pax='+typePax+'&nb_pax='+nbPax, true);
        xhr_object.onreadystatechange = function(){
                if ( xhr_object.readyState == 4 && xhr_object.status == 200 ) {
                        // Récupération des tarifs unitaires et total
                        InfosTarifsReponse = xhr_object.responseText;
                        var reg=new RegExp("[|]+", "g");
                        var infosTarifs = InfosTarifsReponse.split(reg);
                        var prixParTypePax = Math.round( parseFloat(infosTarifs[0])*100 )/100;
                        var prixTotalTypePax = Math.round( parseFloat(infosTarifs[1])*100 )/100;
                                                
                        // MAJ du prix pour le type de pax passé en paramètre
                        var prixTypePax= Math.round( parseFloat(prixTotalTypePax)*100 )/100;
                        if ( isNaN(prixTypePax) ) prixTypePax=0;
                        $("#prix_"+typePax+"_"+prestationId).val( prixTypePax );
                        $("#lib_prix_"+typePax+"_"+prestationId).html( nbPax + 'x' + prixParTypePax + ' \u20AC = <strong>' + prixTypePax + ' \u20AC</strong>');
                        
                        // MAJ du prix total de la prestation
                        var prix_adulte_prestation = $("#prix_adulte_"+prestationId).val();
                        if ( prix_adulte_prestation=='' || prix_adulte_prestation==null ) prix_adulte_prestation=0;
                        else prix_adulte_prestation = Math.round( parseFloat(prix_adulte_prestation)*100)/100;
                        
                        var prix_enfant_prestation = $("#prix_enfant_"+prestationId).val();
                        if ( prix_enfant_prestation=='' || prix_enfant_prestation==null ) prix_enfant_prestation=0;
                        else prix_enfant_prestation = Math.round( parseFloat(prix_enfant_prestation)*100)/100;
                        
                        var prix_bebe_prestation = $("#prix_bebe_"+prestationId).val();
                        if ( prix_bebe_prestation=='' || prix_bebe_prestation==null ) prix_bebe_prestation=0;
                        else prix_bebe_prestation = Math.round( parseFloat(prix_bebe_prestation)*100)/100;
                        
                        var prix_total_prestation = Math.round(	( prix_adulte_prestation + prix_enfant_prestation + prix_bebe_prestation )*100 )/100;
                        
                        $("#prix_total_"+prestationId).val( prix_total_prestation );
                        $("#lib_prix_total_"+prestationId).html( prix_total_prestation + ' \u20AC TTC');
                        
                        // MAJ du prix total du panier
                        var prixTotal=0;
                        var listPrestationId = $("#list_prestation_id").val();
                        var reg=new RegExp("[,]+", "g");
                        var list = listPrestationId.split(reg);
                        for (var i=0; i<list.length; i++) {
                                prixTotal = prixTotal + Math.round(	parseFloat($("#prix_total_"+list[i]).val())*100 )/100;
                        }
                        
                        $("#prix_total").val( prixTotal );
                        $("#lib_prix_total").html( prixTotal + ' \u20AC TTC');
                }
        }
        xhr_object.send(null);
}

// Gestion des Assurances TMS
$(document).ready(function() {
        
        var temp = 0;
        
        $("input.tms").click(function () {
                
                  temp++;
                  var input_PaxTMS = new Array();
                  var getstr = "demande_id=" + $("input#demande_id").val() + "&";
                  getstr += "TMS_idTypeVoyage=" + $("input#TMS_idTypeVoyage").val() + "&";
                  if ( $("input#TMS_SouscriptionTardive").val() == 1) {
                        getstr += "TMS_SouscriptionTardive=" + $("input#TMS_SouscriptionTardive").val() + "&";
                  }
                  
                  $("input.tms").each( function(i) {
                        input_PaxTMS.push($(this));
                        if ($("input.tms")[i].checked) {
                                getstr += $("input.tms")[i].name + "=" + $("input.tms")[i].value + "&";
                        } else {
                                getstr += $("input.tms")[i].name + "=0&";
                        }
                  });
                  
                  var xhr_object = createXMLHttpRequest();
                  
                  $("#multirisques").html( maj_en_cours_txt );
                  $("input#TMS_MR").val( '' );
                  $("input#TMS_MR_ID_DEVIS").val( '' );
                  $("#avant_sejour").html( maj_en_cours_txt );
                  $("input#TMS_AV").val( '' );
                  $("input#TMS_AV_ID_DEVIS").val( '' );
                  $("input#montant").val( maj_en_cours_txt );
                  $("span.prix_sejour").text( maj_en_cours_txt );
                  $('input#montant').attr("readonly","true");
                
                  if ( $("input:checkbox.tms[@checked]").length == 0 ) {
                        $("div#msgErreurPax").show("slow");
                        temp = 0;
                  
                          $("#multirisques").html( maj_impossible_txt );
                          $("input#TMS_MR").val( '' );
                          $("input#TMS_MR_ID_DEVIS").val( '' );
                          $("#avant_sejour").html( maj_impossible_txt );
                          $("input#TMS_AV").val( '' );
                          $("input#TMS_AV_ID_DEVIS").val( '' );
                          $("input#montant").val( maj_impossible_txt );
                          $("span.prix_sejour").text( maj_impossible_txt );
                          $('input#montant').attr("readonly","true");
                  }
                  else {
                        $("div#msgErreurPax").slideUp();

                          // On ouvre la requete vers la page desirée
                          xhr_object.open("GET", '/service/ajax/index.php?component=compte&action=get_tarifs_assurance_tms&'+getstr, true);
                          xhr_object.onreadystatechange = function(){
                          if ( xhr_object.readyState == 4 && xhr_object.status == 200 ) {
                              if ( temp == 1 ) {
                                  var docXML = xhr_object.responseXML;
                                  var multirisquesPass = false;
                                  $(docXML).find("assurance").each(function() { 
                                    var assurance = $(this);
                                    if (multirisquesPass == false) {
                                        $("#multirisques").html( assurance.attr("prime") +' &euro;' );
                                        $("input#TMS_MR").val( assurance.attr("prime") );
                                        $("input#TMS_MR_ID_DEVIS").val( assurance.attr("idDevis") );
                                        multirisquesPass = true;
                                    }
                                    else {
                                        $("#avant_sejour").html( assurance.attr("prime") +' &euro;' );
                                        $("input#TMS_AV").val( assurance.attr("prime") );
                                        $("input#TMS_AV_ID_DEVIS").val( assurance.attr("idDevis") );
                                    }
                                  });
                                  
                                  if ( $("input[@type=radio][@name=TMS][@checked]").attr("id") == 'TMS_NO' ) {
                                        prixSejour = parseFloat( $("input#montant_acompte_ss_ass").val() ) - parseFloat( $("input#montant_acompte_total").val() );
                                        prixSejour = Math.round(prixSejour*100)/100;
                                        if ( prixSejour < 0 ) prixSejour = 0;
                                        prixSejourMin = '0';
                                  }
                                  else {
                                        prixSejour = parseFloat( $("input[@type=radio][@name=TMS][@checked]").val() ) + parseFloat( $("input#montant_acompte_ss_ass").val() ) - parseFloat( $("input#montant_acompte_total").val() );
                                        prixSejour = Math.round(prixSejour*100)/100;
                                        prixSejourMin = parseFloat( $("input[@type=radio][@name=TMS][@checked]").val() ) + parseFloat( $("input#montant_acompte_ss_ass_reference").val() - parseFloat( $("input#montant_acompte_total_reference").val() ) );
                                        prixSejourMin = Math.round(prixSejourMin*100)/100;
                                  }
                                  $("span.prix_sejour").text( prixSejourMin + ' \u20AC' );
                                  $("input#montant").val( prixSejour );
                                  $('input#montant').removeAttr("readonly"); 
                                  if ( temp > 0 ) temp--;
                              }
                              else {
                                  if ( temp > 0 ) temp--;
                              }
                          }
                  }
                  xhr_object.send(null);
                  }
        });
        
        $("input:radio#TMS_MR").click(function () {

                prixSejour = parseFloat( $("input:radio#TMS_MR").val() ) + parseFloat( $("input#montant_acompte_ss_ass").val() ) - parseFloat( $("input#montant_acompte_total").val() );
                prixSejour = Math.round(prixSejour*100)/100;
                prixSejourMin = parseFloat( $("input:radio#TMS_MR").val() ) + parseFloat( $("input#montant_acompte_ss_ass_reference").val() ) - parseFloat( $("input#montant_acompte_total_reference").val() );
                prixSejourMin = Math.round(prixSejourMin*100)/100;
                if ( prixSejour < 0 ) prixSejour = 0;
                if ( isNaN(prixSejour) ) {
                        prixSejour = recalcul_txt;
                        $("span.prix_sejour").text( prixSejour );
                }
                else {
                        $("span.prix_sejour").text( prixSejourMin + ' \u20AC' );
                }
                $("input#montant").val( prixSejour );
                $("input#TMS_Type_Assurance").val( $("input[@type=radio][@name=TMS][@checked]").attr("id") );
                $("label#cgvTms").show("slow");
                
        });
        
        $("input:radio#TMS_AV").click(function () {

                prixSejour = parseFloat( $("input:radio#TMS_AV").val() ) + parseFloat( $("input#montant_acompte_ss_ass").val() ) - parseFloat( $("input#montant_acompte_total").val() );
                prixSejour = Math.round(prixSejour*100)/100;
                prixSejourMin = parseFloat( $("input:radio#TMS_AV").val() ) + parseFloat( $("input#montant_acompte_ss_ass_reference").val() ) - parseFloat( $("input#montant_acompte_total_reference").val() );
                prixSejourMin = Math.round(prixSejourMin*100)/100;
                if ( prixSejour < 0 ) prixSejour = 0;
                if ( isNaN(prixSejour) ) {
                        prixSejour = recalcul_txt;
                        $("span.prix_sejour").text( prixSejour );
                }
                else {
                        $("span.prix_sejour").text( prixSejourMin + ' \u20AC' );
                }
                $("input#montant").val( prixSejour );
                $("input#TMS_Type_Assurance").val( $("input[@type=radio][@name=TMS][@checked]").attr("id") );
                $("label#cgvTms").show("slow");
        });
        
        $("input:radio#TMS_NO").click(function () {
                prixSejour = parseFloat( $("input#montant_acompte_ss_ass").val() ) - parseFloat( $("input#montant_acompte_total").val() );
                prixSejour = Math.round(prixSejour*100)/100;
                if ( prixSejour < 0 ) prixSejour = 0;
                $("span.prix_sejour").text( '0 \u20AC' );
                $("input#montant").val( prixSejour );
                $("input#TMS_Type_Assurance").val( $("input[@type=radio][@name=TMS][@checked]").attr("id") );
                $("label#cgvTms").slideUp();
                
        });
        
        if ( $("input[@type=radio][@name=TMS][@checked]").attr("id") == 'TMS_MR' ) {
                prixSejour = parseFloat( $("input:radio#TMS_MR").val() ) + parseFloat( $("input#montant_acompte_ss_ass").val() ) - parseFloat( $("input#montant_acompte_total").val() );
                prixSejour = Math.round(prixSejour*100)/100;
                prixSejourMin = parseFloat( $("input:radio#TMS_MR").val() ) + parseFloat( $("input#montant_acompte_ss_ass_reference").val() ) - parseFloat( $("input#montant_acompte_total_reference").val() );
                prixSejourMin = Math.round(prixSejourMin*100)/100;
                if ( prixSejour < 0 ) prixSejour = 0;
                if ( prixSejourMin < 0 ) prixSejourMin = 0;
                $("span.prix_sejour").text( prixSejourMin + ' \u20AC' );
                $("input#montant").val( prixSejour );
                $("input#TMS_Type_Assurance").val( $("input[@type=radio][@name=TMS][@checked]").attr("id") );
                $("label#cgvTms").show("slow");
        }
    	
        if ( $("input[@type=radio][@name=TMS][@checked]").attr("id") == 'TMS_AV' ) {
                prixSejour = parseFloat( $("input:radio#TMS_AV").val() ) + parseFloat( $("input#montant_acompte_ss_ass").val() ) - parseFloat( $("input#montant_acompte_total").val() );
                prixSejour = Math.round(prixSejour*100)/100;
                prixSejourMin = parseFloat( $("input:radio#TMS_AV").val() ) + parseFloat( $("input#montant_acompte_ss_ass_reference").val() ) - parseFloat( $("input#montant_acompte_total_reference").val() );
                prixSejourMin = Math.round(prixSejourMin*100)/100;
                if ( prixSejour < 0 ) prixSejour = 0;
                if ( prixSejourMin < 0 ) prixSejourMin = 0;
                $("span.prix_sejour").text( prixSejourMin + ' \u20AC' );
                $("input#montant").val( prixSejour );
                $("input#TMS_Type_Assurance").val( $("input[@type=radio][@name=TMS][@checked]").attr("id") );
                $("label#cgvTms").show("slow");
        }
        
        if ( $("input[@type=radio][@name=TMS][@checked]").attr("id") == 'TMS_NO' ) {
                prixSejour = parseFloat( $("input#montant_acompte_ss_ass").val() ) - parseFloat( $("input#montant_acompte_total").val() );
                prixSejour = Math.round(prixSejour*100)/100;
                if ( prixSejour < 0 ) prixSejour = 0;
                $("span.prix_sejour").text( '0 \u20AC' );
                $("input#montant").val( prixSejour );
                $("input#TMS_Type_Assurance").val( $("input[@type=radio][@name=TMS][@checked]").attr("id") );
                $("label#cgvTms").slideUp();
        }

});

// Gestion des onglets du moteur de Recherche en HomePage 25/07/08
function ongletshp (b) {
        document.getElementById('rechercheVoyage').style.display = (b!=1? 'none':'block');
        document.getElementById('rechercheHotel').style.display = (b!=2? 'none':'block');
        document.getElementById('rechercheAvion').style.display = (b!=3? 'none':'block');
        document.getElementById('rechercheVoiture').style.display = (b!=4? 'none':'block');
        var label = document.getElementById('mainLabel');
        if(b==1) label.innerHTML = document.getElementById('labelVoyage').value;
        if(b==2) label.innerHTML = document.getElementById('labelHotel').value;
        if(b==3) label.innerHTML = document.getElementById('labelVol').value;
        if(b==4) label.innerHTML = document.getElementById('labelVoiture').value;
}

// Gestion de l'offre selectionnee dans le resultat de recherche de Dispos 30/07/08

function choix_rangees_cocher(id_cocher, id_rangee){
        window.setTimeout("colorer_rangee('"+id_cocher+"','"+id_rangee+"')",300); //la temporisation est nécessaire parce que le gestionnaire d'événement est déclenché avant que la case à cocher ne soit commutée...
        return true;
}
function colorer_rangee(id_cocher, id_rangee){
        document.getElementById(id_rangee).className = ((document.getElementById(id_cocher).checked) ? "choisi" : "pas_coche");
}
function rangee_choix_option(id_cocher, id_rangee,count){
        window.setTimeout("colorer_rang_option('"+id_cocher+"','"+id_rangee+"','" + count + "')",300); //la temporisation est nécessaire parce que le gestionnaire d'événement est déclenché avant que la case à cocher ne soit commutée...
        return true;
}
function colorer_rang_option(idcheckcommon, idrowcommon, count){
        for (i = 1; i <= count; i++){
                id_rangee = "" + idrowcommon + i;;
                id_cocher = "" + idcheckcommon + i;
                document.getElementById(id_rangee).className = ((document.getElementById(id_cocher).checked) ? "choisi" : "pas_coche");
        }
}

function colorer_radios(radio_name) {
        var radios = document.getElementsByName(radio_name);
        for(i=0;i<radios.length;i++) {
                radios[i].parentNode.parentNode.className = ((radios[i].checked) ? "choisi" : "pas_coche");
        }
}

$(document).ready(function() {
        colorer_radios('devis_choisi');
});

function miseDemande(field_name, table_name, assoc_name, pid, lang) {
        var xhr_object = createXMLHttpRequest();
        
        // On ouvre la requete vers la page desirée
        xhr_object.open("GET", '/service/ajax/index.php?component=acces_pro&action=ajax_info_type&table_name='+table_name+'&field_name='+field_name+'&assoc_name='+assoc_name+'&pid='+pid+'&lang='+lang, true);
        xhr_object.onreadystatechange = function(){
                if ( xhr_object.readyState == 4 ) {
                        document.getElementById('type_container').innerHTML = xhr_object.responseText;
                }
        }
        xhr_object.send(null);
}
function misePeriodicite(period_id) {
        var n = document.getElementById("agenda_evenement_period_num_dans_mois");
        var njemes = document.getElementById("agenda_evenement_period_compte_dans_mois");
        switch (period_id){
                case 1:
                        n.disabled = false;
                        njemes.disabled = true;
                        for (i=0; i<7; i++) document.getElementById("agenda_evenement_period_jour"+i).disabled = true;
                        document.getElementById('n_container').innerHTML = '<em>*</em>';
                        document.getElementById('njemes_container').innerHTML = '';
                        document.getElementById('jour_container').innerHTML = '';	
                        break;
                case 2:
                        n.disabled = true;
                        njemes.disabled = false;
                        for (i=0; i<7; i++) document.getElementById("agenda_evenement_period_jour"+i).disabled = false;
                        document.getElementById('n_container').innerHTML = '';
                        document.getElementById('njemes_container').innerHTML = '<em>*</em>';
                        document.getElementById('jour_container').innerHTML = '<em>*</em>';
                        break;
                case 3:
                        n.disabled = true;
                        njemes.disabled = true;
                        for (i=0; i<7; i++) document.getElementById("agenda_evenement_period_jour"+i).disabled = false;
                        document.getElementById('n_container').innerHTML = '';
                        document.getElementById('njemes_container').innerHTML = '';
                        document.getElementById('jour_container').innerHTML = '<em>*</em>';
                        break;
                default:
                        n.disabled = true;
                        njemes.disabled = true;
                        for (i=0; i<7; i++) document.getElementById("agenda_evenement_period_jour"+i).disabled = true;
                        document.getElementById('n_container').innerHTML = '';
                        document.getElementById('njemes_container').innerHTML = '';
                        document.getElementById('jour_container').innerHTML = '';
                        break;
        }
}

function miseAJourCommunes(communeId, lang, sit_id) {
        var xhr_object = createXMLHttpRequest();

        var ileId = document.getElementById("ile_dest_hotel").value;

        // On ouvre la requete vers la page desirée
        xhr_object.open("GET", '/service/ajax/index.php?component=recherche&action=ajax_communes&ile_id='+ileId+'&lang='+lang+'&sit_id='+sit_id, true);
        xhr_object.onreadystatechange = function(){
                if ( xhr_object.readyState == 4 ) {
                        document.getElementById('commune_container').innerHTML = xhr_object.responseText;
                }
        }
        xhr_object.send(null);
}

function miseAJourIles(zoneId, lang) {
        
        var xhr_object = createXMLHttpRequest();

        zoneId = document.getElementById("zone_id").value;

        // On ouvre la requete vers la page desirée
        xhr_object.open("GET", '/service/ajax/index.php?component=guide_article&action=ajax_iles&zone_id='+zoneId+'&lang='+lang, true);
        xhr_object.onreadystatechange = function(){
                if ( xhr_object.readyState == 4 ) {
                        document.getElementById('ile_container').innerHTML = xhr_object.responseText;
                }
        }
        xhr_object.send(null);
}

function miseAJourRegion(ileId, lang) {
        
        var xhr_object = createXMLHttpRequest();
        
        ileId = document.getElementById("ile_id").value;

        // On ouvre la requete vers la page desirée
        xhr_object.open("GET", '/service/ajax/index.php?component=guide_article&action=ajax_region&ile_id='+ileId+'&lang='+lang, true);
        xhr_object.onreadystatechange = function(){
                if ( xhr_object.readyState == 4 ) {
                        document.getElementById('region_container').innerHTML = xhr_object.responseText;
                }
        }
        xhr_object.send(null);
}

function miseAJourCommune(regionId, lang) {
        
        var xhr_object = createXMLHttpRequest();

        regionId = document.getElementById("region_id").value;

        // On ouvre la requete vers la page desirée
        xhr_object.open("GET", '/service/ajax/index.php?component=guide_article&action=ajax_commune&region_id='+regionId+'&lang='+lang, true);
        xhr_object.onreadystatechange = function(){
                if ( xhr_object.readyState == 4 ) {
                        document.getElementById('commune_container').innerHTML = xhr_object.responseText;
                }
        }
        xhr_object.send(null);
}

function disp_confirm()
{
var r=confirm("Do you want to add photos/videos to your article?");
if (r==true)
  {
  //document.write("You pressed OK!");
  }
else
  {
  //document.write("You pressed Cancel!");
  }
}

function containsDropDown(dd, val) {
    for ( var i = 0; i < dd.options.length; i++ ) {
        if ( dd.options[i].value == val ) {
            return 1;
        }
    }
    return 0;
}

function setAirportDropDownValue(dd, val) {
    for ( var i = 0; i < dd.options.length; i++ ) {
        if ( dd.options[i].value == val ) {
                        dd.options[i].selected = true;
                        return;
        }
    }
}

function deleteAirportDropDownValue(dd, val) {
        if(val == '') return;
    for ( var i = 0; i < dd.options.length; i++ ) {
        if ( dd.options[i].value == val ) {
                        dd.remove(i);
                        return;
        }
    }
}

function findDropDownInside(element) {
        var children = element.childNodes;
        var result;
        for(i=0;i<children.length;i++) {
                if(children[i].options != undefined){
                        result = children[i];
                        break;
                }
        }
        return result;
}

function miseAJourAeroports(aeroportSel, updateListId) {
        // finding dropdown to update
        var updateList = document.getElementById(updateListId);
        // getting its container
        var updateListContainer = updateList.parentNode;
        
        // saving properties to restore later
        var className = updateList.className;
        var id = updateList.id;
        var name = updateList.name;
        var onchange = updateList.onchange;
        var val = updateList.value;
        
        // getting new content containers
        var antillaises = document.getElementById('liste_antillaises');
        var tous = document.getElementById('liste_tous');

        // changing dropdown according to current selection
        if(containsDropDown(findDropDownInside(antillaises), aeroportSel)) {
                updateListContainer.innerHTML = tous.innerHTML;
        } else {
                updateListContainer.innerHTML = antillaises.innerHTML;
        }
        
        // finding new dropdown in changed container
        var newdropdown = findDropDownInside(updateListContainer);
        // restoring properties
        newdropdown.name = name;
        newdropdown.id =id;
        newdropdown.className = className;
        newdropdown.onchange = onchange;
        
        // deleting selected destination
        deleteAirportDropDownValue(newdropdown, aeroportSel);
        // restoring selection
        setAirportDropDownValue(newdropdown, val);
}

// GMap coordinates filters
function coorFilter(event){
        var keysAllowed = [109,110,190,8,9,13,35,36,37,39,46,48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105];
        var key = event.which;
        var proccess = false;
        
        for(var x=0; x < keysAllowed.length; x++){
                if(key == keysAllowed[x]){
                        proccess = true;
                        break;
                }
        }
        
        if(proccess){
                if(key == 110 || key == 190 || key == 109){
                        if(key == 110 || key == 190){
                                var points = this.value.match(/(\.)/g);
                        if(points && points.length == 1){
                            //return false;
                                proccess = false;
                        }
                        }
                        if(key == 109){
                                if(this.value[0] != '-'){
                                        var points = this.value.match(/(\-)/g);
                                if(points && points.length == 1){
                                    //return false;
                                        proccess = false;
                                }
                                }else{
                                        return false;
                                }
                        }
                }else{
                        if(key != 8 && key != 9 && key != 13 && key != 35 && key != 36 && key != 37 && key != 39 && key != 46){
                                var matches = /\.([0-9]+)/.exec(this.value);
                            if(matches && matches.length == 2){
                                if(matches[1].length >= _maxLimit){
                                    //return false;
                                        proccess = false;
                                }
                            }
                        }
                }
        }
        return proccess;
}

var _maxLimit = 6;
$(document).ready(function(){
    if($('#GMLat').length == 1 && $('#GMLon').length == 1){
        // Latitude input
        $('#GMLat').keydown(coorFilter);
        $('#GMLon').keydown(coorFilter);
    }
});

function GeoLocation(elem){
    this.holder = elem;
    this.lat = 0.0;
    this.lng = 0.0;
    this.zoom = 20;
    this.markerTitle = '';
}
GeoLocation.prototype.setDefault = function(lat, lng, zoom){
    this.defLat = parseFloat(lat);
    this.defLng = parseFloat(lng);
    this.defZoom = parseInt(zoom);
}
GeoLocation.prototype.buildMap = function(){
    if(this.timeOut){
        clearTimeout(this.timeOut);
    }
    
    this.map = new GMap2(this.holder);
    this.map.removeMapType(G_NORMAL_MAP);
    this.map.removeMapType(G_SATELLITE_MAP);
    this.map.addMapType(G_PHYSICAL_MAP);
    this.map.disableDoubleClickZoom();
    this.map.enableScrollWheelZoom();
    this.map.addControl(new GMapTypeControl());
    this.map.addControl(new GSmallMapControl());
    
    if(this.lat && this.lng){
        this.map.setCenter(new GLatLng(this.lat, this.lng), this.zoom);
        this.createMarker();
    }else{
                this.map.setCenter(new GLatLng(this.defLat, this.defLng), this.defZoom);
    }
    
    GEvent.bind(this.map,"click", this, function(overlay, latlng){
        if(latlng){
            this.lat = latlng.lat();
            this.lng = latlng.lng();
            this.zoom = this.map.getZoom();
            this.createMarker();
            this.onComplete();
        }
    });
    GEvent.bind(this.map,"zoomend", this, function(oldLevel, newLevel){
        this.zoom = newLevel;
        this.onComplete();
    });
}
GeoLocation.prototype.createMarker = function(){
    if(this.marker){
        this.map.removeOverlay(this.marker);
    }
    
    this.marker = new GMarker(new GLatLng(this.lat, this.lng), {draggable: true});
    
    GEvent.bind(this.marker, "dragstart", this, function(){
        this.map.closeInfoWindow();
    });
    GEvent.bind(this.marker, "click", this, function(){
        this.marker.openInfoWindowHtml(this.markerTitle);
    });
    GEvent.bind(this.marker, "dragend", this, function(latlng){
        this.lat = latlng.lat();
        this.lng = latlng.lng();
        this.zoom = this.map.getZoom();
        this.marker.openInfoWindowHtml(this.markerTitle);
        this.onComplete();
    });
    
    this.map.addOverlay(this.marker);
    this.marker.openInfoWindowHtml(this.markerTitle);
}
GeoLocation.prototype.onComplete = function(){};