/**
 * Fichier : global.js
 * Description : fonctions JS génériques
 * Auteur : Hamza Iqbal - hiqbal[at]actualys.com
 * Copyright: Actualys
 ******************************************/

/**
 * Initialisation
 ******************************************/
$(document).ready( function()
{
    rolloverImg();
    videInputFocus();
    switchOnglets();
	
    if($('#navigation')) toggleNavigation();
	
    if($('#accueil #envie_jouer').size()) carrouselListeJeux();
	
    initBlocPointillesArrondi();
    
    $.toggleFormEventSubscription();
});

/**
 * Rollover
 ******************************************/
var rolloverImg = function()
{
    preloadRolloverImg();
	
    $(".rollover").hover
    (
        function () {
            $(this).attr( 'src', rolloverNewImg($(this).attr('src')) );
        }, 
        function () {
            $(this).attr( 'src', rolloverOldimage($(this).attr('src')) );
        }
        );
}
 
var preloadRolloverImg = function()
{
    $(window).bind('load', function()
    {
        $('.rollover').each( function()
        {
            $('<img>').attr( 'src', rolloverNewImg( $(this).attr('src') ) );
        });
    });
}

var rolloverNewImg = function(src)
{ 
    return src.substring(0, src.search(/(\.[a-z]+)$/) ) + '_on' + src.match(/(\.[a-z]+)$/)[0]; 
}

var rolloverOldimage = function(src)
{ 
    return src.replace(/_on\./, '.'); 
}

/**
 * Vide la valeur des champs input au focus
 ******************************************/
var videInputFocus = function()
{
    var input = $('input.input_focus[value!=""]');
	
    input.each( function()
    {
        $(this).focus( function() {
            if(this.value == this.defaultValue) this.value='';
        });	
        $(this).blur( function() {
            if(this.value == '') this.value=this.defaultValue;
        });
    });
};

/**
 * Affiche/masque les sous-menus de navigation
 ******************************************/
var toggleNavigation = function()
{
    /* Traitement sépcifique IE */
    if($.browser.msie) {
        $('#navigation').addClass('js').insertAfter("#footer");
    }
    /* Fin traitement sépcifique IE */
	
    var niv_1 = $('#navigation>li');
	
    niv_1.find('.sous_nav').hide();
	
    niv_1.mouseenter(function()
    {
        $('#navigation li').removeClass('on');
        $(this).addClass('on');
    }).mouseleave(function()
    {
        $('#navigation li').removeClass('on');
    });
}

/**
 * Affiche/masque le contenu des onglets
 ******************************************/
var switchOnglets = function()
{
    var blocs = $('.switch_onglets');

    $.each(blocs, function(bloc_i, bloc_e)					
    {
        var onglets = $(bloc_e).find('ul.onglets li');
        var contenus = $(bloc_e).find('.contenu');
		
        contenus.hide();
        $(contenus.get(0)).show();
        $(onglets.get(0)).addClass('actif');
		
        $.each(onglets, function(onglet_i, onglet_e)					
        {
            $(onglet_e).click(function()
            {
                if(!$(this).hasClass('actif'))
                {
                    contenus.hide();
                    $(contenus.get(onglet_i)).show();
					
                    onglets.removeClass('actif');
                    $(this).addClass('actif');
                }
            });
        });
    });
};

/**
 * Colonnes de même hauteur
 ******************************************/
var hauteurEgale = function(blocs)
{
    var hauteurMax = 0;
    $(blocs).height('auto');
    $(blocs).each(function()
    {
        var hauteur = $(this).height();
        if(hauteur > hauteurMax) hauteurMax = hauteur;
    });
    $(blocs).height(hauteurMax);
};

/**
 * Carrousel liste de jeux
 ******************************************/
var carrouselListeJeux = function()
{
    $('#liste_jeux').jcarousel();
};


var displayPhpErrorAjax = function(form_id){
    $('#' + form_id).find('textarea').removeClass('error');
    $('#' + form_id).find('input').removeClass('error');
    $('#' + form_id).find('ul.error_list').parent().parent().find('textarea').addClass('error');
    $('#' + form_id).find('ul.error_list').parent().parent().find('input').addClass('error');
}



/**
 * Créé les blocs avec pointillés et angles arrondis
 ******************************************/
var initBlocPointillesArrondi = function()
{
    var blocs = $('.bloc_pointilles_arrondi');
    $(blocs).each(function()
    {
        var bloc = $(this);
        var bloc_contenu = bloc.find('.bloc_contenu');
        var bloc_h = $('<div class="bloc_h"></div>');
        var bloc_v = $('<div class="bloc_v"></div>');
		
        var coin_hg = $('<div class="coin coin_hg"></div>');
        var coin_hd = $('<div class="coin coin_hd"></div>');
        var coin_bg = $('<div class="coin coin_bg"></div>');
        var coin_bd = $('<div class="coin coin_bd"></div>');
		
        // création pointillés
        bloc_contenu.wrap(bloc_v);
        bloc_contenu.wrap(bloc_h);
		
        // créations coins;
        bloc_contenu.append(coin_hg);
        bloc_contenu.append(coin_hd);
        bloc_contenu.append(coin_bg);
        bloc_contenu.append(coin_bd);
    });
};

/**
 * Affiche / Masque plus de texte
 * $(s).voirPlus
	({
		contenu: '.plus',
		lien: '.voir_plus',
		lien_ouvert: '.voir_plus_on',
		vitesse: '',
		callback: function() {}
	});
 ******************************************/
$.fn.voirPlus = function(opt) 
{
	var blocs = $(this);
	
	var options =
	{
		contenu: '.plus',
		lien: '.voir_plus',
		lien_ouvert: '.voir_plus_on',
		vitesse: '',
		callback: function() {}
	};
	
	if(opt) options = $.extend(options, opt);
	
	blocs.each(function()
	{
		var bloc = $(this);
		var contenu = bloc.find(options.contenu);
		var lien = bloc.find('a.'+options.lien);

		contenu.hide();
		
		lien.click(function()
		{
			contenu.slideToggle(options.vitesse, function(){ options.callback(); });
			lien.toggleClass(options.lien_ouvert);
			return false;
		});
	});
}

/**
	  * Affiche le formulaire caché
	 * $.toggleFormEventSubscription();
	 ******************************************/
	 
$.toggleFormEventSubscription = function()
{
    var formContent = $('#form_masque');
    var btnSeeMore = $('.voir_plus_deroul');
    var allContentForm = $('#form_dix_niveaux');
		
    allContentForm.hide();

    $('#form_dix_niveaux_cont .fermer_form_dix').click(function()
    {
        allContentForm.hide();
        return false;
    });
    
    $('#apres_fromulaire .fermer_form_dix').click(function()
    {
        $('#apres_fromulaire').hide();
        return false;
    });
    
    //allContentForm.height('165px');
    $('#form_dix_niveaux_cont').voirPlus
    ({
        contenu: '#form_masque',
        lien: '.voir_plus_deroul',
        lien_ouvert: 'voir_plus_deroul_off'
    });
    
};


