/*----------------------------------------------------------------------------//
// Javascript pour le site client  -------------------------------------------//
//----------------------------------------------------------------------------//
// Client : Golf Le Blainvillier
// Date   : 28 avril 2010
//----------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------*/
// Inclusion dynamique des fichiers externes javascripts
/*----------------------------------------------------------------------------*/
function importJavascript(src){document.write("<script type=\"text/javascript\" src=\"" + src + "\"></scr" + "ipt>");}
function importCss(href, media){document.write('<link rel="stylesheet" type="text/css" media="' + media + '" href="' + href + '" />');}

/*----------------------------------------------------------------------------*/
// Importations de fichiers
/*----------------------------------------------------------------------------*/
importJavascript("/includes/js/plugins/jquery.preloader.js");
importJavascript("/includes/js/swfobject.js");
importJavascript("/includes/js/plugins/abso.labelfocus.js");
importJavascript("/includes/js/plugins/abso.imageloader.js");

// Call to action slider
importJavascript("/includes/js/plugins/jquery.easyslider.js");
importCss("/includes/js/plugins/jquery.easyslider.css", "screen");

// Thick Box
importJavascript("/includes/js/plugins/abso.thickbox.js");
importCss("/includes/js/plugins/abso.thickbox.css", "screen");

/*----------------------------------------------------------------------------*/
// Declarations jQuery
/*----------------------------------------------------------------------------*/
var timerCloseMenu, timerOpenMenu = null;
var MenuClose = true;

jQuery(document).ready(function() {

    /////////////////////////////////////////////////////////////
    //Menu Principal
    jQuery.preLoadImages("/images/Bg_BordureMenu_Over.png");
    jQuery("#MenuPrincipal li ul").hide();
    jQuery("#MenuPrincipal").mouseenter(function() {
        if (timerCloseMenu != null) { clearTimeout(timerCloseMenu); }
        timerOpenMenu = setTimeout(function() {
            jQuery("#Entete").addClass("Hover");
            jQuery("#MenuPrincipal li ul").slideDown("normal", function() { MenuClose = false; });
        }, 300);
    })
	.mouseleave(function() {
	    if (timerOpenMenu != null) { clearTimeout(timerOpenMenu); }
	    timerCloseMenu = setTimeout(function() {
	        jQuery("#MenuPrincipal li ul").stop(true, true).slideUp("fast", function() {
	            jQuery("#Entete").removeClass("Hover");
	            MenuClose = true;
	        });
	    }, 150);
	});

    /////////////////////////////////////////////////////////////
    //Menu Outils
    jQuery("#BlocMeteo iframe").hide();
    jQuery("#BlocMeteo .Action").bind("click", function() { BlocMeteoAnim(-77, 82, "Open"); }).css("cursor", "pointer");
    jQuery("#BlocMembre .Action").bind("click", function() { BlocMembreAnim(672, "Open"); }).css("cursor", "pointer");
    jQuery("#BlocMembre input.TxtBox").labelfocus();

    /////////////////////////////////////////////////////////////
    //Galerie photo Accueil et Interieur
    jQuery("#BtnOuvrirGal").click(openGalerieAcc);
    if (GalCollection.length == 0)
        jQuery("#BtnOuvrirGalInt").hide();
    else
        jQuery("#BtnOuvrirGalInt").click(openGalerieInt);

    $("#BlocAppelAction").easySlider({
        auto: true,
        pause: 5000,
        speed: 500,
        continuous: true,
        numeric: true
    });

    /////////////////////////////////////////////////////////////
    // Fixes Navigateurs
    $("hr").wrap("<div class=\"hr\">");

});

/////////////////////////////////////////////////////////////
//Galerie photo Accueil
var GalCurrentPos;
var GalItemMax;
var GalInit = false;
var GalCollection = new Array();
function initGalerie(id) {
	if(GalInit) return;
	var navNumeric = jQuery("<ul>").attr("id", "NavGalerie");
	
	jQuery("#"+ id +" li").each(function(i){
		var src = jQuery(this).children("img").attr("src");
		jQuery(this).css("backgroundImage", "url("+src+")").hide();
		navNumeric.append(jQuery("<li>")
							.append(jQuery("<a>")
										.attr("href","javascript:void(0);")
										.text(i+1)
										.data("GalerieId", id)
										.click(function(){ return GalMove(this, i+1); })
								   )
						 );
	});	
	
	GalItemMax = jQuery("#"+ id +" ul li").length;
	GalCurrentPos = 1;
	jQuery("#"+ id +" li:first").show();

	var btnSuivant = jQuery("<a>")
						.attr("href","javascript:void(0);")
						.addClass("BtnSuivant")
						.data("GalerieId", id)
						.click(function(){ return GalMove(this, ((GalCurrentPos + 1) % GalItemMax) ? ((GalCurrentPos + 1) % GalItemMax) : GalItemMax); });
	var btnPrecedent = jQuery("<a>")
						.attr("href","javascript:void(0);")
						.addClass("BtnPrecedent")
						.data("GalerieId", id)
						.click(function(){ return GalMove(this, ((GalCurrentPos - 1) % GalItemMax) ? ((GalCurrentPos - 1) % GalItemMax) : GalItemMax); });	
	
	/* Init de la navigation */
	jQuery("#"+ id)
		.append(
				jQuery("<div>")
					.attr("id", "WrapBouton")
					.append(btnSuivant)
					.append(btnPrecedent)
			   );
	var btnClose = jQuery("<a>")
						.attr("id", "BtnFermerGal")
						.attr("href","javascript:void(0);")
						.text("Fermer la Galerie photo")
						.click(function() { closeGalerie(id); });
	jQuery("#BarreGalerie")
		.append(
				jQuery("<div>")
					.attr("id", "ControlGalerie")
					.append(btnClose)
					.prepend(navNumeric)
			   );
	jQuery("#NavGalerie li:first").addClass("On");
	GalInit = true;
}
function _openGalerie(id) {
	// Preload a image in callback
	jQuery("#"+id).imageLoader({
	   images: GalCollection,
	   splashScreenImage: '/images/Loading.gif',
	   enableSplashScreenText : 0
	}, function(){
		initGalerie(id);
	});
}
function openGalerieAcc() {
    if (GalCollection.length == 0) return;
	// Slide down the content box
	jQuery("#ContenuIntro").hide();
	jQuery("#ContenuAccueil").css({marginTop: "1px", overflow: "hidden"}).animate(
		{height: "30px", top: "700px"},
		300,
		function() { 
			jQuery("#ContenuAccueil").css("marginTop","0px");
			jQuery("#BtnOuvrirGal").hide();
			
			// Preload a image in callback
			_openGalerie("CarrouselAccueil");
		}
	);	
}
function openGalerieInt() {
    if (GalCollection.length == 0) return;
	// Slide down the content box
	jQuery("#Contenu div.EnteteContenu").fadeOut("fast", function(){ 
		jQuery("#CarrouselInterieur").fadeIn("normal", function(){ 
			jQuery("#WrapEntete").animate({height: "375px"}, 300, function() { 			
					// Preload a image in callback
					_openGalerie("CarrouselInterieur");
				}
			);	
		});
	});
}
function closeGalerie(id) {
	if(id == "CarrouselInterieur") {//Interieur
		closeGalerieInt();
	}
	else { //Acc
		closeGalerieAcc();
	}
}

function closeGalerieAcc() {
	jQuery("#WrapBouton").remove();
	jQuery("#ControlGalerie").remove();
	jQuery("#CarrouselAccueil ul").remove();
	// Slide up the content box
	jQuery("#ContenuAccueil").css({marginTop: "1px", overflow: "visible"}).animate(
		{height: "230px", top: "500px"},
		300,
		function() { 
			jQuery("#ContenuAccueil").css("marginTop","0px");
			GalInit = false;
			jQuery("#BtnOuvrirGal").show();
			jQuery("#ContenuIntro").show();
		}
	);	
}
function closeGalerieInt() {
	jQuery("#WrapBouton").remove();
	jQuery("#ControlGalerie").remove();
	jQuery("#CarrouselInterieur ul").remove();
	// Slide up the content box
	jQuery("#WrapEntete").animate({height: "275px"}, 300, function(){ 			
		jQuery("#CarrouselInterieur").fadeOut("fast", function(){ 
			jQuery("#Contenu div.EnteteContenu").fadeIn("normal", function(){ 
				GalInit = false;
			});
		});
	});	
}

/* Move
------------------------------------------------------- */
function GalMove(obj, target) {
	var id = $(obj).data("GalerieId");
	// current li
	var $liCurr = jQuery('#'+id+' li:nth-child('+GalCurrentPos+')')
	
	// new li
	GalCurrentPos = target;
	var $liNew = jQuery('#'+id+' li:nth-child('+GalCurrentPos+')');
	
	// animation
	$liCurr.css('zIndex',1);
	$liNew
		.css('zIndex',2)
		.fadeIn(function(){
			$liCurr.hide();
		})
	;
	jQuery("#NavGalerie li").removeClass("On");
	jQuery('#NavGalerie li:nth-child('+GalCurrentPos+')').addClass("On");
	
	return false;
};

//672px 530px = 142px
function BlocMembreAnim(width, action) {
	jQuery("#BlocMembre").animate(
		{width: width+"px"},
		300,
		function() { //Callback
			jQuery("#BlocMembre").toggleClass("On");
			jQuery("#BlocMembre .Action").unbind("click");
			if(action =="Open")
				jQuery("#BlocMembre .Action").bind("click", function(){ BlocMembreAnim(155, "Close"); } );
			else
				jQuery("#BlocMembre .Action").bind("click", function(){ BlocMembreAnim(672, "Open"); } );
		}
	);
}
function BlocMeteoAnim(bottom, height, action) {
	jQuery("#BlocMeteo iframe").show();
	jQuery("#BlocMeteo").animate(
		{bottom: bottom, height: height+"px"},
		200,
		function() { //Callback
			jQuery("#BlocMeteo").toggleClass("On");
			jQuery("#BlocMeteo .Action").unbind("click");
			if(action =="Open")
				jQuery("#BlocMeteo .Action").bind("click", function(){ BlocMeteoAnim(-27, 32, "Close"); } );
			else {
				jQuery("#BlocMeteo iframe").hide();
				jQuery("#BlocMeteo .Action").bind("click", function(){ BlocMeteoAnim(-77, 82, "Open"); } );
			}
		}
	);
}

/* - Fonction : Validation des champs de formulaire - */
function ValidateForm(groupName, OnlyOneErrorByField, classError) {
    var ctl = new Array();
    if (classError != '') $('.' + classError).removeClass(classError);
    //Ne pas oublier d'appliquer "Page_ClientValidate()" avant d'appeler cette procédure
    for (var i = 0; i < Page_Validators.length; i++) {
        if (Page_Validators[i].validationGroup == groupName && !Page_Validators[i].isvalid) {
            if (OnlyOneErrorByField) {
                var exist = false;
                for (var y = 0; y < ctl.length; y++) {
                    if (ctl[y] == Page_Validators[i].controltovalidate)
                        exist = true;
                }
                if (!exist) {
                    if (classError != '') $('#' + Page_Validators[i].controltovalidate).addClass(classError);
                }
            }
            else {
                if (classError != '') $('#' + Page_Validators[i].controltovalidate).addClass(classError);
            }
            ctl[i] = Page_Validators[i].controltovalidate;
        }
    }
}
function showAlert(txt) {
    $(document).ready(function() {
        if (txt != "") { $("#ErreurPopup p").html(txt); }
        tb_show(null, '#TB_inline?height=125&amp;width=350&amp;inlineId=ErreurPopup', false);
    });
};

