/*-----------------------------------------------------------------------------------------------*/
//
// Copyright (c) 2008 Agence Clark (http://www.agence-clark.com)
//
/*-----------------------------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------------------------*/
// Init Page
/*-----------------------------------------------------------------------------------------------*/
Event.observe(window, 'load', InitPage, false);
function InitPage(){

    // Placer une classe selected sur les filtres actifs
    $$('#block_search_results a.js_filtre').each(
        function(e){
            if( $('opt_geo_'+e.id) || $('opt_srv_'+e.id) || $('opt_eq_'+e.id) || $('opt_heb_'+e.id) ) {
                e.addClassName('selected');
            }
        });
	
    //-- Envoyer ami --//
    if($('bt_envoyer')) Event.observe($('bt_envoyer'),'click',function(){
        OpenClose('bt_envoyer','div_envoyer');
    });
	
    if($('aff_resultats')){
        //-- Rollover savoir --//
        $$('#aff_resultats li.savoir').each(
            function(e){
                Event.observe(e, 'mouseover', function(){
                    e.addClassName('on');
                });
                Event.observe(e, 'mouseout', function(){
                    e.removeClassName('on');
                });
            }
            );
		
        $$('#aff_resultats .liste .resultat .actions_droite input').each( function(e,i){
            Event.observe(e,'click',function(){
                CheckBeforeCompare(e);
            });
        } ) ;
		
        //-- Comparer --//
        $$('#aff_resultats .resultat .comparer input').each(function(e,i){
            Event.observe(e,'click',function(){
                VerifComparer(e);
            });
        });
		
		
		
        // Nono - C'est juste un lien ;)
        Event.observe($('bt_comparer_haut'),'click',function(){
            frmComparerSubmit( $('bt_comparer_haut') );
        } );
        Event.observe($('bt_comparer_bas'),'click',function(){
            frmComparerSubmit( $('bt_comparer_bas') );
        } );
    }
	
    $$('#div_selec_ul .checkbox input').each(function(e,i){
        Event.observe(e,'click',function(){
            VerifComparer(e);
        });
        Event.observe(e,'click',function(){
            CheckBeforeCompare(e);
        });
    });
	
    if($('btn_selection_comparer')) Event.observe($('btn_selection_comparer'),'click',function(){
        frmComparerSubmit( $('btn_selection_comparer') );
    } );
    /*elementSelection =   document.getElementsByName("comparer_selection");
	alert(elementSelection.length)
	for(var i = 0; i < elementSelection.length; i ++)
	{
		alert(elementSelection[i]);
		Event.observe(elementSelection[i],'click',function(){ VerifComparer(elementSelection[i]); });
		//alert(a + ", " + elementSelection [a]);
	}*/
	
	
    if($('aff_resultats') || $('fiche_camping')){
        //-- Visionneuse --//
		
		
        var Visionneuse;
        $$('#fiche_camping .onglets li.galerie a','#aff_resultats .onglets li.galerie a').each(function(e,i){
			
            if(!e.up().hasClassName('vide')){
                Event.observe(e, 'click',function(){
					
                    InitGoogleMaps(e);
                    var action_overlay = e.ancestors()[2];
                    var div = action_overlay.down('div.galerie');
                    //alert(div.list_id + ", "+div.list_html);
                    if($(div.el) != undefined) $(div.el).update(div.el_html);
					
					
                    if($(div.list_id) != undefined)
                    {
                        $(div.list_id).update(div.list_html);
						
                        //div.list_id = undefined;
						
                        //div.list_id = undefined;
                        //div.el = undefined;
						
                        /*var al = div.list_ids.split(",");
						for(var i = 0; i < al.length; i++)
						{
							window.console.log(al[i] + ", " +$(al[i]))
							if($(al[i]) == undefined) continue;
							
							//if($(al[i]).done == undefined)
							{
								alert(al[i] + ", " + div.list_id_indice);
								$(al[i]).done = 1;
								Event.observe($(al[i]), 'click', ChangeIndice (div.list_id_indice, i, div.list_ids.length)); 
							}
						}*/
                        affVisionneuse(div,e,i);
						
						
                    }
					
                });
            }
        });
		
        if($("fiche_camping"))
        {
            Event.observe($("fiche_camping"),'click',function(){
				
				
				
                var e = $("fiche_camping");
							
                var lien = $("div_galerie_205");
				
                var zoom = $("zoom_250");
				
				
                if(lien.getStyle('display')=='block'){
                    lien.setStyle({
                        display:'none'
                    });
                    Visionneuse = null;
                }
                else{
					
                    lien.setStyle({
                        display:'block'
                    });
                    Visionneuse = new Transition(zoom.id,zoom.firstChild.src);
                }
				
            });
        }
		
		
		
		
        $$('#fiche_camping .actions_overlay .galerie a.lien','#aff_resultats .actions_overlay .galerie a.lien').each(function(e,i){
            Event.observe(e,'click',function(){
				
                var div = e.up('div.galerie');
				
                var lien = div.up('.actions').down('li.galerie a');
                lien.removeClassName('on');
                div.setStyle({
                    display:'none'
                });
                Visionneuse = null;
            });
        });
		
        /*$$('#fiche_camping .actions_overlay .galerie li a','#aff_resultats .actions_overlay .galerie li a').each(function(e,i){
			
			Event.observe(e,'click',function(){ ChangeIndice(e,8); });
		});*/
		
        //-- Google maps --//
        $$('#fiche_camping .onglets li.localisation a','#aff_resultats .onglets li.localisation a').each(function(e,i){
            Event.observe(e,'click',function(){
                HideGalerie();
                var action_overlay = e.ancestors()[2];
                var div = action_overlay.down('div.localisation');
                var map = div.down('div.map_localisation');
				
                var lien = action_overlay.ancestors()[0].down('ul.onglets li.selection a') ;
                if( lien )
                {
                    var savoir_plus = lien.id.split('-') ;
                    var proava_idt = savoir_plus[1] ;
					
                    // On doit aussi remonter la disponibilité de produit //
                    var parent_div = map.ancestors()[1].id.split('_') ;
                    var pro_idt = parent_div[2] ;
                }else proava_idt = 0 ;
				
                InitGoogleMaps(div);
                GestionGoogleMaps(div,map.id,e,proava_idt);
            });
        });
		
        if($("div_localisation_residence"))
        {
            Event.observe($("div_localisation_residence"),'click',function(){
				
                var div = $("div_localisation_map");
                var map = div.down('div.map_localisation');
				
                var savoir_plus = map.id.split('-') ;
                var proava_idt = savoir_plus[1] ;
				
                InitGoogleMaps(div);
                GestionGoogleMaps(div,map.id,map,proava_idt);
            });
        }
        $$('#fiche_camping .actions_overlay div.localisation a.lien','#aff_resultats .actions_overlay div.localisation a.lien').each(function(e,i){
            Event.observe(e,'click',function(){
                var fathers = e.ancestors();
                var lien = fathers[4].down('li.localisation a');
                fathers[2].setStyle({
                    visibility:'hidden'
                });
                lien.removeClassName('on');
                GUnload();
            });
        });
    }
	
    if($("lien_nb_selec") && $("lien_nb_selec").innerHTML != "0")
    {
        if($('div_selec').getStyle('display') !='block')
        {
            OpenClose('bt_open_selec','div_selec');
        }
    }
}
Event.observe(window, 'unload', ClosePage, false);
function ClosePage(){
    GUnload();
}
/*-----------------------------------------------------------------------------------------------*/
// Fonctions
/*-----------------------------------------------------------------------------------------------*/


function clear_opt()
{
    $("opt_option_set").innerHTML = "";
}


function submit_opt(form, opt_name, value)
{


    if($(opt_name+"_"+value) != null)
    {
        $(opt_name+"_"+value).name="";
        $(opt_name+"_"+value).value="";


    }
    else
    {
        $("opt_option_set").innerHTML += "<input type='hidden' id='"+opt_name+"_"+value+"' name='"+opt_name+"' value='"+value+"'/>";
    }
    $(form).submit();
}

//-- HideGalerie --//
var HideGalerie = function(){
/*$$('#fiche_camping .actions_overlay .galerie','#aff_resultats .actions_overlay .galerie').each(function(e){
		e.hide();
		var a = e.ancestors()[1].down('.onglets').down('.galerie a');
		a.removeClassName('on');
	});*/
};

//-- InitGoogleMaps --//
var InitGoogleMaps = function(div){
/*$$('#fiche_camping .actions_overlay .localisation','#aff_resultats .actions_overlay .localisation').each(function(div_e,div_i){
		//db(div_e.id);
		if(div != div_e){
			var lien = div_e.up('.actions').down('li.localisation a');
			lien.removeClassName('on');
			div_e.setStyle({visibility:'hidden'});
			GUnload();
		}
	});*/
};

//-- GestionGoogleMaps --//
var GestionGoogleMaps = function(div, map, lien,proava_idt ){
    var id_camping = $(map).id.substr($(map).id.lastIndexOf('_')+1);
	
    if(div.getStyle('visibility') == 'hidden'){
        div.setStyle({
            visibility:'visible'
        });
        //lien.addClassName('on');
        new Ajax.Request( site_url + 'plugins/common/_ajax.php?ACT=AfficheLocalisation',
        {
            parameters: {
                'id_camping' : id_camping,
                'proava_idt': proava_idt
            },
            onComplete: function(requester){
                if(requester.responseText != "false"){
                    var datas = requester.responseText.split("#");
                    InitMapCamping(map, Number(datas[0]), Number(datas[1]), Number(datas[2]), datas[3], datas[4], datas[5], datas[6], datas[7]);
                } else ModalInfo(cl_app_attention, cl_app_insc_nl_err);
            }
        });
    }else{
        div.setStyle({
            visibility:'hidden'
        });
        //lien.removeClassName('on');
        GUnload();
    }
};

//-- Google Maps --//
var InitMapCamping = function (MapId, MapZoom, PtLat, PtLng, PtNom, PtAdresse, PtLien, PtVille, PtImage) {
    if (GBrowserIsCompatible()) {
        // Init Map
        var map = new GMap2($(MapId));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(PtLat,PtLng),MapZoom);
        // Init Point
        var baseIcon = new GIcon();
        baseIcon.iconSize = new GSize(17, 25);
        baseIcon.iconAnchor = new GPoint(0, 0);
        baseIcon.infoWindowAnchor = new GPoint(5, 27);
        baseIcon.infoShadowAnchor = new GPoint(0, 0);

        function createMarker(point, msgHtml) {
            var iconPerso = new GIcon(baseIcon);
            iconPerso.image = site_url + "images/commun/fav_gmaps.gif";
		
            // Set up our GMarkerOptions object
            markerOptions = {
                icon:iconPerso
            };
            var marker = new GMarker(point, markerOptions);
		
            GEvent.addListener(marker, "click", function() {
                marker.openInfoWindowHtml(msgHtml);
            });
            return marker;
        }
        // Init Infobulle
        var latlng = new GLatLng(PtLat, PtLng);
        var tmp = '<div class="gmaps_toocamp" style="font-size:12px;color:#414141;">';
        tmp += '<h1 style="font-size:12px;font-weight:bold;">'+cl_app_adresse+' : <a href="'+PtLien+'" target="_blank"><strong style="color:#ff7500;">'+PtNom+' - '+PtVille+'</strong></a></h1>';
        tmp += '<div><p style="padding:5px 0 10px 0;text-align:left;">'+PtAdresse+'</p></div>';
        if(PtImage != '') tmp += '<div style="padding:0 0 10px 0;text-align:center;"><img src="'+PtImage+'" alt="" height="87" width="114" /></div>';
        tmp += '<div style="text-align:center;"><a href="'+PtLien+'" target="_blank"><img src="' + site_url + 'images/'+cl_app_var_langue+'/bt_savoir_google.gif" alt="" /></a></div><div class="breaker"></div></div>';
        map.addOverlay(createMarker(latlng, tmp));
    }
};

//-- Initialisation Visionneuse --//
var InitVisionneuse = function(div){
    $$('#fiche_camping .actions_overlay .galerie','#aff_resultats .actions_overlay .galerie').each(function(div_e,div_i){
        if(div != div_e){
            var lien = div_e.up('.actions').down('li.galerie a');
            lien.removeClassName('on');
            div_e.setStyle({
                display:'none'
            });
            Visionneuse = null;
        }
    });
};

//-- Affichage Visionneuse --//
var affVisionneuse = function(div,a_e,a_i){
    var zoom = div.down('.cont_zoom')
	
    InitVisionneuse(div);
    if($(a_e).hasClassName('on') && $(div).getStyle('display')=='block'){
        div.setStyle({
            display:'none'
        });
        $(a_e).removeClassName('on');
        Visionneuse = null;
    }
    else{
        $(a_e).addClassName('on');
        div.setStyle({
            display:'block'
        });
        Visionneuse = new Transition(zoom.id,zoom.firstChild.src);
    }
};

//-- Changer Indice --//
var ChangeIndice= function (id, i, nb_visuel)
{
    //alert("ChangeIndice: " + id +"," + i +","+ nb_visuel)
    if($(id))
        $(id).innerHTML = (i)+'/'+nb_visuel;
}
/*var ChangeIndice = function(a, ancestor){
	var fathers = a.ancestors();
	var aff_res = fathers[3].down('.gauche strong');
	var rech = $$('#'+fathers[4].id+' .droite li a')
	var nb_visuel = rech.size();
	rech.each(function(e,i){ if(e == a) aff_res.update((i+1)+'/'+nb_visuel); });
	
	//alert((i+1)+'/'+nb_visuel);
	
};*/

//-- Verification Comparer --//
var VerifComparer = function(input){
	
    new Ajax.Request( site_url + 'plugins/common/_ajax.php?ACT=CheckSelectionCount' ,
    {
        parameters: {  },
        onComplete: function(http){
            var nbCheck = parseInt( http.responseText );
            if(nbCheck>4){
                input.checked = false;
                ModalInfo(cl_app_attention, cl_app_comp_trop_err);
            }
        }
    }
    );
};

/*-----------------------------------------------------------------------------------------------*/
// Verification de formulaires
/*-----------------------------------------------------------------------------------------------*/
var frmComparerSubmit = function( element ){
    var nbCheck = 0;
	
    new Ajax.Request( site_url + 'plugins/common/_ajax.php?ACT=CheckSelectionCount' ,
    {
        parameters: {
            ref: document.location
        },
        onComplete: function(http){
            var nbCheck = parseInt( http.responseText );
				
            if(nbCheck<2) ModalInfo (cl_app_attention, cl_app_comp_peu_err);
            else $('frm_comparer').submit();
        }
    }
    );
};

//-- Envoyer a un ami --// //AA : le 13/10/08
var frmEnvoyerAmi = function(){
    param_form = {
        mep: 'msg_champ',
        autoScroll: false,
        action: 'submit'
    };
    champs_form = {
        envoyer_nom: {
            alerte:cl_app_frm_nom
        },
        envoyer_email: {
            type:'mel',
            alerte:cl_app_frm_email
        },
        envoyer_email_ami: {
            type:'mel',
            alerte:cl_app_frm_email_ami
        }
    };
    //return formVerif('frm_envoyer_ami', champs_form, param_form);
    if(formVerif('frm_envoyer_ami', champs_form, param_form)){
        // Envoi de la requête ajax.
        new Ajax.Request( site_url + 'plugins/common/_ajax.php?ACT=SendFriend' ,
        {
            parameters: Form.serialize($('frm_envoyer_ami')),
            onComplete: function(http){
                var msg = http.responseText;
                //console.log("#"+msg+"#");
                if (msg == 'ok') $('envoyer_ami_confirmation').style.display = '';
            }
        }
        );
    }
    return false;
};