/**
 * VARS
 * $.la.shost
 *
 * SLIDER
 * $.la.slider.getMaxScroll(id)
 * $.la.slider.getScroll(id,val)
 * $.la.slider.afficheScroll(id,id_contener)
 *
 * MODALBOX
 * $.la.modalbox.call(url, ModalBoxOptions)
 * $.la.modalbox.close()
 * $.la.modalbox.show(html,width,height)
 * $.la.modalbox.resize(params)
 *
 * ACTION
 * $.la.action.onUserLogged()
 * $.la.action.verifyAuthentification( loginUrl, formId )
 * $.la.action.getLoginBoxByCookie(LayerId, editUrl, forgotUrl, registerUrl, logoutUrl, loginUrl, BaseUrl, BaseImg )
 * $.la.action.verifyRules( loginUrl, formName )
 * $.la.action.loginUserBox(loginUrl, sLoginContent, idForm)
 * $.la.action.loginUser(LayerId, editUrl, forgotUrl, registerUrl, logoutUrl, loginUrl, BaseUrl, BaseImg, sLoginContent, idForm ,bSeSouvenir )
 * $.la.action.RefreshLoginBoxAvatar()
 * $.la.action.loginUserCommentaire(loginUrl,idForm, noeud)
 * $.la.action.addFavori( url ,loginUrl , formName, div)
 *
 * COREG
 * $.la.coreg.rq_check_form(param, action)
 *
 * HFPVOTE
 * $.la.hfpvote.voteover(param,id)
 * $.la.hfpvote.switchDiv( divDisplay, divNone )
 * $.la.hfpvote.reload( iAverage, iWeight )
 * $.la.hfpvote.reloadCount(iCount,id)
 *
 * UTILS
 * $.la.utils.addFavorite()
 * $.la.utils.httpGet(key_str)
 * $.la.utils.isDate(date)
 * $.la.utils.verifMail(emailString)
 * $.la.utils.checknumber(atester)
 * $.la.utils.isMineur(sD,sM,sY)
 * $.la.utils.querystring_get(key, default_)
 * $.la.utils.querystring(qs)
 * $.la.utils.getTimeStamp()
 * $.la.utils.verifyUpload( value_image,value_video,type, formId )
 * $.la.utils.switchTab(div1,div2,classe)
 * $.la.utils.showHide(div1,div2)
 * $.la.utils.sortOptionFromSelect(select_id)
 * $.la.utils.escapeHtml(stringToEscape)
 * $.la.utils.trim(string)
 *
 * COOKIES
 * $.la.cookie.init()
 * $.la.cookie.getVal(offset)
 * $.la.cookie.get(name)
 * $.la.cookie.set(name, value, expireParam, domain)
 * $.la.cookie.clear(name)
 *
 * PROMO
 * $.la.promo.showSkin(params)
 * $.la.promo.wreportRefresh()
 * $.la.promo.bannerRefresh(uri)
 * $.la.promo.adLoad(index)
 * $.la.promo.adsProcess()
 * $.fn.adRegister(id,defer)
 *
 * GAME
 * $.la.game.verifchek(checkBoxName, objId, message)
 * $.la.game.verifOpenQuestion(id, objId, message)
 *
 */

(function($){
    $.la = $.la||{};

    $.extend(true, $.la,
    {
        /* VARS */
        sHost:location.protocol + '//' + location.hostname,

        /* SLIDER */
        slider:
        {
            /**
             * Recupere la difference entre la grandeur totale et la grandeur du div
             * @name $.la.slider.getMaxScroll(id)
             * @param id string Id du div à scroller
             * @return int Scroll max du slider
            */

            getMaxScroll:function (id)
            {
                var maxScroll = $("#" + id).attr("scrollHeight") - $("#" + id).height();
                return maxScroll;
            },

            /**
             * Recupere le pourcentage avec lequel le curseur bouge
             * @name $.la.slider.getScroll(id,val)
             * @param string id Id du div à scroller
             * @param int val deplacement du curseur en px
             * @return int % para rapport à la hauteur totale
             */
            getScroll:function (id,val)
            {
                return 	parseInt((val/this.getMaxScroll(id))*100,'10');
            },

            /**
             * Affiche ou non la Scroll bar
             * @name $.la.slider.afficheScroll(id,id_contener)
             * @param string id Id du div la scrollbar
             * @param string id_contener Id du div a scroller
             * @return void
             */
            afficheScroll:function(id,id_contener)
            {
                if (this.getMaxScroll(id_contener)>0)
                {
                    $('#' + id).show();
                }
            }
        },

        /* MODALBOX */
        modalbox:{
            // REQUIRED : /extension/lajavascript/design/standard/javascript/jquery/thickbox/thickbox-compressed.js
            call:function(url, ModalBoxOptions){

            	/* example :
            	 *
            	 * ModalBoxOptions = {width:500, height:300, title:'le titre de la modal'}
            	 */

                // hack ie6
            	document.location.href = '#';
                if(url.indexOf('/')!= 0){
                    if(url.substring(0,7) != 'http://' && url.substring(0,8) != 'https://'){
                    	url = '/' + url;
                    }
                }

                // Pour l'appel en Iframe, il faut ajouter TB_iframe=1 dans l'url EN DERNIER
                // exemple : http://www.gulli.fr/action/login/External?ReturnUrl=http://toto.com&TB_iframe=1

                if(url.indexOf('?')== -1){
                    tb_show( null, url + '?height='+ModalBoxOptions.height+'&width='+ModalBoxOptions.width, false);
                }
                else{
                	tb_show( null, url + '&height='+ModalBoxOptions.height+'&width='+ModalBoxOptions.width, false);
                }
            },

            close: function(){
                tb_remove();
            },

            show:function(html, width, height)
            {
                document.location.href = '#';
                $("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
                $("#TB_overlay").click(tb_remove);
                $("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:510px;height:300px;'></div>");
                var TB_WIDTH = (width*1) + 30 ;
                var TB_HEIGHT = (height*1) + 40	;
                $("#TB_window").css({
                    marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px',
                    width: TB_WIDTH + 'px'
                });

                if ( !(jQuery.browser.msie && typeof XMLHttpRequest == 'function')) { // take away IE6
                    $("#TB_window").css({
                        marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'
                    });
                }

                $("#TB_window").show();
                $("#TB_ajaxContent").html(html);
            },
            /*
             * ex : $.la.modalbox.resize({height:356});
             */
            resize:function(params)
            {

                if(typeof params.width !== 'undefined'){
                    var TB_WIDTH = (params.width*1) + 30 ;
                }

                if(typeof params.height !== 'undefined'){
                    var TB_HEIGHT = (params.height*1) + 40	;
                }

                if(typeof params.width !== 'undefined'){
                    $("#TB_window").css({
                        marginLeft: '-' + parseInt((TB_WIDTH / 2),10) +'px',
                        width: TB_WIDTH+'px'
                    });
                }

                if(typeof params.height !== 'undefined'){
                    if ( !(jQuery.browser.msie && typeof XMLHttpRequest == 'function')) { // take away IE6
                        $("#TB_window").animate({
                            marginTop: '-' + parseInt((TB_HEIGHT / 2),10)
                        });
                    }
                    $("#TB_ajaxContent").animate({
                        height: params.height
                    });
                }


            }

        }
        ,
        /* ACTION */
        action:{
            messages:{
                notLogged:'Nous n\'avons pas pu t\'identifier. Vérifie ton pseudo et ton mot de passe.',
                bookmarkAdded:'Ce contenu a été ajouté aux favoris'
            },

            /* valeurs par défaut : à surcharger dans le siteaccess */
            settings:{
                loginBox:{
                    title:'Login',
                    width:800,
                    height:600
                }
            },

            /* Callback appelé quand un user est loggué
             * A définir dans la page concernée */
            onUserLogged:null,

            verifyAuthentification: function ( loginUrl, formId, params )
            {
                if(typeof params === 'undefined'){
                    params = {};
                }

                $.extend($.la.action.settings.loginBox,params);
                if($.la.cookie.get("user_logged") == "oui")
                {
                    if(typeof $.la.action.settings.loginBox.returnUrl != 'undefined'){
                    	if(loginUrl.indexOf('iframe=1') != -1){
                    		parent.location=$.la.action.settings.loginBox.returnUrl;
                    	}
                    	else{
                    		document.location=$.la.action.settings.loginBox.returnUrl;
                    	}
                    }
                    else{
                    	$('#' + formId).submit();

                    }

                }
                else
                {
                    $.la.action.baseIdForm = formId;
                    $.la.modalbox.call(loginUrl, $.la.action.settings.loginBox);
                }
            },

            verfifyAuthentification: function ( loginUrl, formId, params ){
                this.verifyAuthentification( loginUrl, formId, params );
            },

            getLoginBoxByCookie: function(LayerId, editUrl, forgotUrl, registerUrl, logoutUrl, loginUrl, BaseUrl, BaseImg )
            {
            // dans le siteaccess
            },

            verifyRules: function( loginUrl, formName )
            {
            //siteaccess
            },

            loginUserBox: function(loginUrl, sLoginContent, idForm)
            {
                $.ajax({
                    url: loginUrl,
                    async: true,
                    type: 'POST',
                    data: $('#'+idForm).serialize(),
                    success:function(html){
                        if($.la.cookie.get("user_logged") == "oui")
                        {
                            $.la.action.getLoginBoxByCookie('identification','/action/edit','/action/forgotpassword','/action/register','/action/logout?ReturnUrl='+$.la.sHost, '/action/login','/','/design/gulli/images/');
                            if($.la.action.baseIdForm.substring(0,10) == 'addFavoris')
                            {
                                $.ajax({
                                    url: $.la.sHost+'/action/bookmark',
                                    async: true,
                                    type: 'POST',
                                    data: $('#'+$.la.action.baseIdForm).serialize(),
                                    success:function(){
                                        alert($.la.action.messages.bookmarkAdded);
                                        $.la.modalbox.close();
                                    }
                                });
                            }
                            else
                            {
                                $('#' + $.la.action.baseIdForm).submit();
                                $.la.modalbox.close();
                            }
                        }
                        else
                        {
                            $('#TB_ajaxContent').html(html);
                        }
                    }
                }
                );
            },

            loginUser:function(LayerId, editUrl, forgotUrl, registerUrl, logoutUrl, loginUrl, BaseUrl, BaseImg, sLoginContent, idForm ,bSeSouvenir ) {
                if( typeof(idForm) == 'undefined' ){
                    idForm = 'mon_compte';
                }
                $('#'+LayerId).hide();
                $.ajax({
                    url: loginUrl,
                    async: true,
                    type: 'POST',
                    data: $('#'+idForm).serialize(),
                    success:function(){
                        if($.la.cookie.get("user_logged") == "oui"){
                            $.la.action.getLoginBoxByCookie(LayerId, editUrl, forgotUrl, registerUrl, logoutUrl, loginUrl, BaseUrl, BaseImg );
                            $('#'+LayerId).show();
                        } else {
                            alert($.la.action.messages.notLogged);
                            $('#'+LayerId).show();
                            document.location.href = loginUrl;
                        }
                    }
                });
                if($.la.action.onUserLogged != null) {
                    $.la.action.onUserLogged();
                }
            },

            /*loginUser: function(LayerId, editUrl, forgotUrl, registerUrl, logoutUrl, loginUrl, BaseUrl, BaseImg, sLoginContent, idForm ,bSeSouvenir ) {
            // siteaccess
            },*/

            RefreshLoginBoxAvatar: function() {
            // siteaccess
            },

            loginUserCommentaire: function(loginUrl,idForm, noeud)
            {
                $.ajax({
                    url: loginUrl,
                    async: true,
                    type: 'POST',
                    data: $('#'+idForm).serialize(),
                    success:function(html)
                    {
                        if($.la.cookie.get("user_logged") == "oui")
                        {
                            $.la.action.getLoginBoxByCookie('identification','/action/edit','/action/forgotpassword','/action/register','/action/logout?ReturnUrl='+$.la.sHost, '/action/login','/','/design/gulli/images/');

                            $.ajax({
                                url: $.la.sHost+'/commanage/popup_comment/'+noeud,
                                async: true,
                                success:function(html_comment){
                                    $('#TB_ajaxContent').html(html_comment);
                                }
                            });
                        }
                        else
                        {
                            $('#TB_ajaxContent').html(html);
                        }
                    }
                });
            },

            addFavori: function( url ,loginUrl , formName, div)
            {
            //siteaccess
            }

        },

        /* COREG */
        coreg:{
            messages:{
                completeForm: 'Veuillez compléter le formulaire\n pour valider votre participation'
            },
            rq_check_form: function(param, action){
                var radio_flag = false;
                var entry_radio = false;
                var name_radio;
                var complete_form = false;

                var tabElement = document.getElementsByClassName('qualif_check');

                $('.qualif_check').each(function(i){

                    if( $(this).attr('type') == 'radio' )
                    {
                        var obl_elt = $(this).attr('name') + '_obligatoire';
                        if ($('#' + obl_elt).val() == 1)
                        {
                            var label_radio = $(this).attr('name') + '_label';
                            if ( $('#oui_' + $(this).attr('name')).attr('checked') || $('#non_'+$(this).attr('name')).attr('checked'))
                            {
                                $('#' + label_radio).css('color','black') ;
                            }
                            else
                            {
                                $('#' + label_radio).css('color','red') ;
                                complete_form=true;
                            }
                        }

                    }
                    else
                    {
                /* ASUIVRE...'
					    	var obl_elt = tabElement[i].name + '_obligatoire';
					    	alert(obl_elt);
					    	if (document.getElementById(obl_elt).value!=null && document.getElementById(obl_elt).value == 1)
					      	{
						    	var label_input = tabElement[i].name + '_label';
						    	if(tabElement[i].value=='')
						        {
								  	$(label_input).style.color='red' ;
								    complete_form=true;
						        }
						      	else
							    {
							      	$(label_input).style.color='black' ;
							    }
						    }*/
                }

                });

            /*
				alert(complete_form);
				if(complete_form)
				    {
				    alert($.la.coreg.messages.completeForm);
				    return false;
				    }
				$('questions_requalif').hide();
				$('divLoading').show();
				new Ajax.Updater( 'MB_content', '/action/requalificationJeux', {
				            asynchronous:true,
				            parameters:Form.serialize('modifyform') ,
				            onComplete: function()
				            {
				            	Modalbox.hide();
				            	if (action == "jeux")
								{
									//document.getElementById(param).submit();
								}
								else
								{
									window.href = param;
								}

				            }
				             });
				return false; */
            }
        },




        ajax:{
            updater:function(url,div)
            {
                $.ajax({
                    url: url,
                    success:function(html){
                        $('#'+div).html(html);
                    }
                });
            }
        },


        /* VERSION JG - Le redirect dans l'appel ajax n'est pas standardis�
        rq_check_form: function(url, redirect)
		{
			var portable = $('#telephone_input').val();
			var exp1 = RegExp('^[0]{1}[0-9]{9}$','g');

			if(portable.match(exp1)){

				SetCookie('user_portable','ok');
				var radio_group_name ='';
			    var group_checked = false;
			    var show_error = false;

				$('.qualif_check').each(function(element) {

					// Cas Radio
					if( $(this).attr('type') == 'radio'){

						// Si le groupe n'a pas encore ete traite
						if($(this).attr('name')!=radio_group_name){
							groupe_checked = false;
							radio_group_name = $(this).attr("name");

							// Recherche des elements appartenant au meme groupe
							$("input[name="+radio_group_name+"]").each(function() {
								if($(this).attr('checked') == true){
									groupe_checked = true;
									$('#'+radio_group_name+"_label").css("color","black");
								}
							})

							if(groupe_checked == false){
								show_error = true;
								$('#'+radio_group_name+"_label").css("color","red");
							}
						}
					}

					// Autres cas
					else{
						var element_name = $(this).attr('name');
						$('#'+element_name+"_input").css("color","black");

						// Si le champs est vide
						if($(this).val() == '') {
							$('#'+element_name+"_input").css("color","red");
							show_error = true;
						}
					}
			    });

				if(show_error == true){
					alert('Veuillez compl\351ter le formulaire\n pour valider votre participation');
				}
				else{

					$.ajax({
						type: 	'post',
						async: 	true,
						url: 	url,
						data:	$('#modifyform').serialize(),
						success: function(t) {
							if(redirect == 'submit'){
								$('#candidate_form').submit();
								$('#TB_ajaxContent').html(t);
								setTimeout('$.la.modalbox.close()',2000);
							}
							else{
								window.location.href=$.la.sHost+"/beaute/avant-apres";
							}
						}
					});
				}
			}
			else{
				alert('Le numero de t\351l\351phone doit contenir 10 chiffres \n et commencer par 0');
			}
		}
	}*/





        /* HFP VOTE */
        /* jquery.la.hfpvote.js */
        hfpvote:{
            voteover: function(param,id){
                if(id){
                    $('#' + id).css('width', (22*param)+'px');
                }
                else{
                    $('#fdvote').css('width', (22*param)+'px');
                }
            },

            switchDiv: function( divDisplay, divNone ){
                $('#' + divDisplay).css('display', 'block');
                $('#' + divNone).css('display','none');
            },

            reload: function( iAverage, iWeight ){
                $.la.hfpvote.voteover( iAverage );

                var arr =[];
                for( var i = 0; i< iWeight; i++){
                    arr[i] = i+1;
                }
                $.each(arr, function(i){
                    $('#' + 'etoileLink' + arr[i]).mouseout(function(){
                        $.la.hfpvote.voteover( iAverage );
                    });
                });
            },
            reloadCount: function( iCount, id ){
                var newCount = iCount;
                if(typeof newCount != "undefined"){

                    if (newCount>1){
                        $('#'+id).html('/'+newCount+' votes');
                    }
                    else{
                        $('#'+id).html('/'+newCount+' vote');
                    }
                }
            }
        },

        /* UTILS */
        utils:{
            messages:{
                fileNeeded: 'Il manque le fichier !',
                notAVideoFile : 'Ce n\' est pas une vidéo'
            },

            var_dump: function(v, recursif, indent){
                recursif = typeof recursif == 'undefined'?false:true;
                indent = typeof indent == 'undefined'?0:indent;
                res = '';
                for(i in v){
                    for(var j=0; j < indent;j++){
                        res += '>> ';
                    }
                    if(recursif && typeof v[i] == 'object'){
                        res +=  i + ':\n' + this.var_dump(v[i], recursif, indent + 1)+ '\n';
                    }
                    else{
                        res += i + ' : '+ v[i] + '\n';
                    }
                }
                if(!indent){
                    alert(res);
                }
                else{
                    return res;
                }
            },

            addFavorite:function ()
            {
                var url = window.location;
                var titre = document.title;
                if (window.sidebar){
                    window.sidebar.addPanel(titre,url,'');
                }
                else{
                    window.external.AddFavorite(url,titre);
                }
                return false;
            },

            httpGet:function(key_str)
            {
                if(window.location.search) {
                    var query = window.location.search.substr(1);
                    var pairs = query.split("&");
                    for(var i = 0; i < pairs.length; i++) {
                        var pair = pairs[i].split("=");
                        if(unescape(pair[0]) == key_str){
                            return unescape(pair[1]);
                        }

                    }
                }
                return '';
            },


            isDate:function(date)
            {
                // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
                var tabDate = date.split('/');
                var j = parseInt(tabDate[0],"10");
                var m = parseInt(tabDate[1],"10");
                var a = parseInt(tabDate[2],"10");

                if(isNaN(a)||isNaN(m)||isNaN(j)){
                    return false;
                }
                else{
                    // Définition du dernier jour de février
                    // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
                    var fev;
                    if ((a%4 === 0 && a%100 !== 0) || (a%400 === 0)) {
                        fev = 29;
                    }
                    else {
                        fev = 28;
                    }


                    // Nombre de jours pour chaque mois
                    var nbJours;
                    if(fev==28){
                        nbJours = [31,28,31,30,31,30,31,31,30,31,30,31];
                    }
                    else if(fev==29){
                        nbJours = [31,29,31,30,31,30,31,31,30,31,30,31];
                    }

                    // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
                    return ( (m >= 1) &&(m <=12) && (j>= 1) && (j <= nbJours[m-1]) );
                }
            },

            verifMail: function (emailString)
            {
                var pass = false;
                for(var j=1;j<(emailString.length);j++){
                    if(emailString.charAt(j)=='@'){
                        if(j<(emailString.length-4)){
                            for(var k=j;k<(emailString.length-2);k++){
                                if(emailString.charAt(k)=='.'){
                                    pass=true;
                                }
                            }
                        }
                    }
                }
                return pass;
            },

            checknumber: function(atester)
            {
                var anum=/(^\d+$)|(^\d+\.\d+$)/;
                if (anum.test(atester)){
                    pass=true;
                }
                else{
                    pass=false;
                }
                return pass;
            },

            isMineur: function(sD,sM,sY)
            {
                //Date du jour
                var d = new Date();
                var curr_dayOfMonth = d.getDate();
                var curr_month = d.getMonth()+1;
                var curr_year = d.getFullYear();

                if(curr_year-sY>18 || (curr_year-sY==18 && curr_month>=sM && curr_dayOfMonth>=sD)){
                    return false;
                }
                else{
                    return true;
                }
            },

            querystring_get: function(key, default_)
            {
                // This silly looking line changes UNDEFINED to NULL
                if (default_ === null){
                    default_ = null;
                }

                var value = this.params[key];
                if (value === null){
                    value=default_;
                }
                return value;
            },

            querystring: function(qs)
            { // optionally pass a querystring to parse
                this.params = {};
                this.get = $.la.utils.querystring_get;

                if (qs === null || typeof qs === 'undefined'){
                    qs = location.search.substring(1, location.search.length);
                }

                if (qs.length === 0){
                    return;
                }

                // Turn <plus> back to <space>
                // See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
                qs = qs.replace(/\+/g, ' ');
                var args = qs.split('&'); // parse out name/value pairs separated via &

                // split out each name=value pair
                for (var i=0;i<args.length;i++) {
                    var value;
                    var pair = args[i].split('=');
                    var name = unescape(pair[0]);

                    if (pair.length == 2){
                        value = unescape(pair[1]);
                    }
                    else{
                        value = name;
                    }

                    this.params[name] = value;
                }
            },

            getTimeStamp: function()
            {
                var currentTime = new Date();
                return currentTime.getTime();
            },

            verifyUpload: function( value_image,value_video,type, formId )
            {
                if(type == 1){
                    if(value_image === ''){
                        alert($.la.utils.messages.fileNeeded);
                    }else{
                        $('#' + formId).submit();
                    }
                }else{
                    if(value_video === ''){
                        alert($.la.utils.messages.fileNeeded);
                    }else{
                        if (value_video.indexOf('.mov') === -1 && value_video.indexOf('.wmv') === -1 && value_video.indexOf('.mpeg') === -1 && value_video.indexOf('.avi') === -1 && value_video.indexOf('.3gp') === -1 && value_video.indexOf('.mp4') === -1 && value_video.indexOf('.ram') === -1 && value_video.indexOf('.flv') === -1){
                            alert($.la.utils.messages.notAVideoFile);
                        }else{
                            $('#' + formId).submit();
                        }
                    }
                }
            },

            switchTab:function(div1,div2,classe)
            {
                $('#'+div1).addClass(classe);
                $('#'+div2).removeClass(classe);
            },

            showHide:function(div1,div2)
            {
                $('#'+div1).show();
                $('#'+div2).hide();
            },

            sortOptionFromSelect: function(select_id)
            {
                var Liste = new Array();
                var selected_item ="";
                var all_theme_value ="";

                // Recuperation
                $('#'+select_id).find("option").each(function(i){
                    Liste[i] = new Array();
                    Liste[i][0]=$(this).text();
                    Liste[i][1]=$(this).val();

                    if($(this).attr("selected") == true){
                        selected_item = $(this).val();
                    }

                    if($(this).attr("id") == "all_theme"){
                        all_theme_value = $(this).val();
                    }
                });

                // Tri
                Liste=Liste.sort();

                // Reaffectation
                $('#'+select_id).find("option").each(function(i){
                    $(this).attr('text',Liste[i][0]);
                    $(this).attr('value',Liste[i][1]);

                    if(Liste[i][1] == selected_item ){
                        $(this).attr('selected','selected');
                    }

                    if($(this).val() == all_theme_value){
                        $('#all_theme').attr('id','');
                        $(this).attr('id','all_theme');
                    }
                });

                // Remonter "Tous les themes"
                $('#'+select_id).prepend($("#all_theme"));
            },

            escapeHtml: function(stringToEscape)
            {
                var newString=stringToEscape.replace(/"/g,"&quot;");
                newString=newString.replace(/</g,"&lt;");
                newString=newString.replace(/>/g,"&gt;");
                newString=newString.replace(/&/g,"&amp;");
                return newString;
            },

            trim: function(string)
            {
                var newString=string.replace(/(?:^\s+|\s+$)/g, "");
                return newString;
            }

        },

        /* COOKIES */
        cookie:{
            init: function(){
                var pathname=location.pathname;
                var myDomain=pathname.substring(0,pathname.lastIndexOf('/')) +'/';
                var date_exp = new Date();
                var adserver_test=true;
                date_exp.setTime(date_exp.getTime()+(365*24*3600*1000));
                var qs = new $.la.utils.querystring();
                var id_lien=qs.get('id_op');
                if (id_lien !== null){
                    $.la.cookie.set('id_lien', id_lien);
                }
                var regImage=qs.get('img');
                if (regImage !== null){
                    $.la.cookie.set('regImage', regImage);
                }
            },

            getVal: function(offset)
            {
                var endstr=document.cookie.indexOf (";", offset);
                if (endstr==-1){
                    endstr=document.cookie.length;
                }
                return unescape(document.cookie.substring(offset, endstr));
            },

            get: function(name)
            {
                var arg=name+"=";
                var alen=arg.length;
                var clen=document.cookie.length;
                var i=0;
                while (i<clen)
                {
                    var j=i+alen;
                    if (document.cookie.substring(i, j)==arg){
                        return $.la.cookie.getVal(j);
                    }
                    i=document.cookie.indexOf(" ",i)+1;
                    if (i === 0){
                        break;
                    }
                }
                return false;
            },

            set: function(name, value, expireParam, domain)
            {
            	domain = domain||false;
            	var expires = new Date();
                if (expireParam){
                    expires = expireParam;
                }
                else{
                    expires.setTime(expires.getTime() + 99999999999);
                }
                var path="/";
                var secure=false;
                var curCookie = name + "=" + escape(value) +
                ((expires) ? "; expires=" + expires.toGMTString() : "") +
                ((path) ? "; path=" + path : "") +
                ((domain) ? "; domain=" + domain : "") +
                ((secure) ? "; secure" : "");
                document.cookie = curCookie;
            },

            clear: function(name)
            {
                var date = new Date();
                var date_del = date.setFullYear(date.getFullYear() - 1000);
                document.cookie = name + "=" + escape('') + "; expires=" + date_del;
            }

        },

        /* PROMO */
        promo: {
            showSkin: function (params){
                //params : backgroundUrlImagePub,backgroundColorPub,backgroundRepeatPub,backgroundPositionPub,heightPub,urlPub,newWindow
                if(typeof params.heightPub !== 'undefined' && params.heightPub){
                    $('body').prepend('<div id="skin_promo" style="display: none; width: 100%;"/>');
                    $('#skin_promo').css('height', params.heightPub + 'px');
                    if(typeof params.urlPub !== 'undefined' &&  params.urlPub !== ''){
                        if(!params.newWindow){
                            $('#skin_promo').html('<a style="display: block;height: '+ params.heightPub +'px" id="aPub" href="'+params.urlPub+'"></a>');
                        }
                        else{
                            $('#skin_promo').html('<a style="display: block;height: '+ params.heightPub +'px" id="aPub" href="'+params.urlPub+'" onclick="window.open(\''+params.urlPub+'\');return false;"></a>');
                        }
                    }
                    $('#skin_promo').css('display','block');
                }
                if(typeof params.backgroundUrlImagePub !== 'undefined' &&  params.backgroundUrlImagePub !== ''){
                    $('body').css('background-image','url(' + params.backgroundUrlImagePub + ')');
                    if(typeof params.backgroundColorPub !== 'undefined' &&  params.backgroundColorPub !== ''){
                        $('body').css('background-color',params.backgroundColorPub);
                    }
                    if(typeof params.backgroundPositionPub !== 'undefined' &&  params.backgroundPositionPub !== ''){
                        $('body').css('background-position',params.backgroundPositionPub);
                    }
                    if(typeof params.backgroundRepeatPub !== 'undefined' &&  params.backgroundRepeatPub !== ''){
                        $('body').css('background-repeat',params.backgroundRepeatPub);
                    }
                }
            },

            wreportRefresh: function()
            {
                if(wreport_ok==1){
                    var w_counter = new wreport_counter(WRP_SECTION, WRP_SUBSECTION, WRP_ID, WRP_ACC, WRP_CHANNEL, WRP_SECTION_GRP, WRP_SUBSECTION_GRP);
                    w_counter.add_content(WRP_CONTENT);
                    w_counter.count();
                }
            },

            bannerRefresh: function(uri)
            {
                if($('#gestionHauteur').length  > 0){
                    $('#gestionHauteur').html('<iframe scrolling="no" frameborder="0" width="728" height="90"  border="0" marginheight="0" marginwidth="0" noresize="true" vspace="0" framespacing="0"  src="http://' + location.hostname + '/ajaxext/pub?publicite=banniere&uri='+uri+'"></iframe>');
                }
            },

            // Ads
            _adList:[],
            _a2dRandom:Math.random(),
            //_adDefaultDefer à surcharger dans son siteacces
            _adDefaultDefer:'false',

            adLoad:function(index){
                if(typeof $.la.promo._adList[index] != 'undefined'){
                    $.la.promo._adWrite($.la.promo._adList[index].id);
                }
            },


            adsProcess:function() {
                for(var i = 0; i< $.la.promo._adList.length;i++){
                    if(typeof $.la.promo._adList[i] != 'undefined'){
                        if($.la.promo._adList[i].defer == 'ready'){
                            var index = i;
                            var toto = $.la.promo._adList[index].elt;
                            $.la.promo._deferProcess(index);

                        }else{
                            $('#'+$.la.promo._adList[i].elt)._adProcess(i);
                        }
                    }
                }
            },

            _adRegister:function(id,defer){
                /*
                settings :
                defer :
                    'fasle' ou '' : chargement immédiat;
                    'bottom' : en bas de page (default)
                    'ready' : on document ready
                */
                var settings = {};
                settings.id = id;
                settings.elt = $(this).attr('id');

                if(typeof defer == 'undefined' || defer == '' || defer == '{defer}' || defer == false){
                    settings.defer = $.la.promo._adDefaultDefer;
                }
                else{
                    settings.defer = defer;
                }
                if(settings.defer == false){
                    $.la.promo.adWrite(settings.id);
                }
                else{
                    $.la.promo._adList[$.la.promo._adList.length] = settings;
                }
            },

            _adProcess:function(id){
                var prefix = 'preload_ad_';
                try{
                    //var id = $(this).attr('id');
                    var me = $(this)[0];
                    me.appendChild($('div[id="'+prefix+id+'"]')[0]);
                }
                catch(e){
                    return;
                }
            },

            _adWrite:function(id){
                document.write('<scr'+'ipt language="JavaScript" type="text/javascript" src="http://fr.a2dfp.net//ad?s='+id+'&m=js&ncb='+$.la.promo._a2dRandom+'"><\/scr'+'ipt>');
            },


            _deferProcess:function(index){
                var i = index;
                $(function(){
                    $('#'+$.la.promo._adList[i].elt)._adProcess(i);
                });
            }

        },

        /* GAME */
        game:{
            verifchek: function (checkBoxName, objId, message)
            {
                if(typeof message === 'undefined'){
                    message = 'Il faut selectionner une reponse avant de continuer !';
                }
                var valid=0;
                $("input[@name='" + checkBoxName + "']").each(function(i){
                    if($(this).attr('checked'))

                    {
                        valid = 1;
                    }
                });
                // action si le champs est vide
                if (valid == 0)
                {
                    alert(message);
                }
                else
                {
                    $('#form_question_' + objId ).submit();
                }
            },

            verifOpenQuestion: function(id, objId, message)
            {
                if(typeof message === 'undefined'){
                    message = 'Il faut saisir un texte !';
                }
                var i = 0;
                var valid=0;
                if ($("#" + id).val() !== '')
                {
                    valid=1;
                }
                // action si le champs est vide
                if (valid == 0){
                    alert(message);
                }
                else {
                    $('#form_question_' + objId ).submit();
                }
            }
        }

    });
})(jQuery);

// TODO : supprimer sHost à terme dans les tpl.
var sHost = jQuery.la.sHost;

// plugins
jQuery.fn.adRegister = jQuery.la.promo._adRegister;
jQuery.fn._adProcess = jQuery.la.promo._adProcess;
