if (document.domain == "blog.jeuxvideo.com")
{
    jQuery.noConflict();
}

// utilisé par les forums
function verifRecherche(theform){
    var a;
    a = theform.textfield_forum.value;
    if(a == " " || a == "Rechercher") {
        return false;
    }
    return true;
}

// Ouverture nouvelle fenêtre
function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}

window.tabLoadFunc = [ externalLinks ];
function loadAll() {
    var k;
    var tlf;
    tlf = window.tabLoadFunc;
    for (k = 0; k < tlf.length; k++) {
        tlf[k]();
    }
}

if (window.jQuery) {
    jQuery(function() { loadAll(); });
} else {
    window.onload = function() { loadAll(); };
}

var nom_jeu = "vide";
var nom_mach = "vide";
var nom_type = "vide";
var nom_editeur = "vide";
var classification = "vide";
var motsearch = "vide";
var nbtrouve = "";

//Partie concernant le JV en jaune

//Fonction de récupération de la valeur du cookie
function getCookieVal(offset)
{
    var endstr=document.cookie.indexOf (";", offset);
    if (endstr==-1) endstr=document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}
//Fonction de lecture du cookie
function LireCookie(nom)
{
    var arg=nom+"=";
    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 getCookieVal(j);

        }
        i = document.cookie.indexOf(" ", i)+1;
        if (i==0) break;
    }
    return null;
}

//Appel de la fonction de lecture du cookie pour savoir si la valeur est 2 (JV en jaune)
var couleur = LireCookie("jvskin");
if (couleur == 2)
{
    document.write('<link type="text/css" rel="stylesheet" href="http://www.jeuxvideo.com/css/jaune/jaune.css">');
}

// on commence par lire le nouveau cookie utilisateur (tehlogin)
//    ce cookie ne contient que le pseudo actuellement connecté
// si on ne trouve rien, on lit l'ancien cookie utilisateur (mocoedivxuejgol)
//    ce cookie contient le pseudo actuellement connecté, ainsi que le hash du
//    mot de passe associé. il a été déprécié à cause des trop nombreuses
//    failles xss, mais reste présent en tant que cookie sécurisé
//    (inaccessible aux scripts, d'où la présence de deux cookies afin que les
//    scripts puissent tout de même avoir accès au pseudo connecté).
function Utilisateur()
{
    var pseudo;
    var user_connect;
    pseudo = null;
    user_connect = LireCookie("tehlogin");
    if (user_connect)
    {
        pseudo = filtre_pseudo(user_connect);
    }
    else
    {
        user_connect = LireCookie("mocoedivxuejgol");
        if (user_connect)
        {
            pseudo = get_pseudo(user_connect);
        }
    }
    if (pseudo != null)
    {
        document.getElementById("compte").innerHTML="<a href=\"http://www.jeuxvideo.com/cgi-bin/admin/moncompte.cgi?oper=33\">Bonjour &laquo; <strong>" + pseudo + "</strong> &raquo;</a>";
        document.getElementById("connect").innerHTML="<a href=\"http://www.jeuxvideo.com/cgi-bin/admin/logout.cgi?url=" + document.location + "\">Se D&eacute;connecter</a>";
    }
}

function filtre_pseudo(raw_pseudo)
{
    var pseudo = "";
    var position = "";
    var tabspec = "";
    var special = false;
    var sauvegarde_position = 0;

    pseudo = raw_pseudo;
    // teste si le pseudo a un caractère spécial
    var i = 0;

    // permet de remplacer $ qui est un caractère très spécial
    pseudo = pseudo.replace(/\$/gi, "#");
    position = pseudo.search("#");
    // remplace les caractère ascii par le bon caractère
    while(position != -1)
    {
        space = String.fromCharCode(pseudo.substr(position+1,3));

        tabspec += pseudo.substring(sauvegarde_position, position) + space;

        i++;
        sauvegarde_position = position+4;

        if((pseudo.substr(sauvegarde_position).search("#")) != -1)
            position = sauvegarde_position + pseudo.substr(sauvegarde_position).search("#");
        else
            position = -1;

        special = true;
    }
    if (special)
    {
        tabspec += pseudo.substr(sauvegarde_position);
        pseudo = tabspec;
    }
    return pseudo;
}

function get_pseudo(contenu)
{
    var tab_pseudo = contenu.split("login$058");
    if (tab_pseudo)
    {
        var tab_pseudo2 = tab_pseudo[1].split("$124");
        var pseudo = tab_pseudo2[0];
        return filtre_pseudo(pseudo);
    }
    return null;
}

// Partie concernant le fonctionnement des zones de texte pour la recherche
function actif_rech(item)
{
    if(item.value=='Rechercher')
    {
        item.value='';
    }
}
function des_rech(item)
{
    if(item.value=='')
    {
        item.value='Rechercher';
    }
}

// -- Vide le champ
function clearText(thefield)
{
    if (thefield.defaultValue == thefield.value)
        thefield.value = "";
}

// -- Réinitialise le champ si vide
function initText(thefield)
{
    if (thefield.value == "" || thefield.value == " ")
        thefield.value = thefield.defaultValue;
}

function valid_recherche(f)
{
    return ! (f.textfield.value=='Rechercher' || f.textfield.value=='')
}

function addEngine()
{
    if (window.external && ("AddSearchProvider" in window.external)) {
        window.external.AddSearchProvider("http://www.jeuxvideo.com/searchplugin/search.xml");
    } else if (window.sidebar && ("addSearchEngine" in window.sidebar)) {
        window.sidebar.addSearchEngine(
            "http://www.jeuxvideo.com/searchplugin/jeuxvideo.com.src",
            "http://www.jeuxvideo.com/searchplugin/jeuxvideo.com.png",
            "", "");
    } else {
        alert("Pas de support du navigateur");
    }
}

function isEmailValide(email) {
    var re;
    re = new RegExp('^[a-zA-Z0-9\\.\\-_\\[\\]]+@[a-zA-Z0-9\\.\\-_]+\\.[a-z0-9]+$');
    return email && email.length > 0 && re.test(email);
}

function EcrireCookieb()
{
    var date = new Date();
    date.setTime(date.getTime()+(24*60*60*1000));
    document.cookie='billboard=billboard;expires='+date.toGMTString()+';path=/';
}

function billboards()
{
    var url_page = "" + window.location;
    var param = url_page.split("bill=no");
    if (navigator.cookieEnabled && param.length == 1)
    {
        var bCookie = LireCookie('billboard');
        if (bCookie == null) {
            var m = url_page;
            var l = m.length;
            if(m.substring(24, 25) == "/")
            {
                m = m.substring(25, l);
                if ((m == "pc.htm") ||
                    (m == "ps3-playstation-3.htm") ||
                    (m == "x360-xbox-360.htm") ||
                    (m == "wii-nintendo-wii.htm") ||
                    (m == "ps2.htm") ||
                    (m == "ds.htm") ||
                    (m == "apple-iphone-ipod-touch.htm") ||
                    (m == "psp.htm"))
                {
                    EcrireCookieb();
                    add_tag_trafic();
                    window.location.replace('http://www.jeuxvideo.com/billboard.htm?' + escape(m));
                }
            }
        }
    }
}

billboards();

//test ben connexion
function isMediawiki()
{
    if((document.location.href.indexOf('wiki.jeuxvideo.com') == -1) && (document.location.href.indexOf('devwiki.jeuxvideo.com') == -1))
    {
        return false;
    }
    else
    {
        return true;
    }
}

function affiche_pop(id,width_id,height_id)
{
    //Get the screen height and width
    var maskHeight = jQuery(document).height();
    var maskWidth = jQuery(window).width();
    var vScroll = window.pageYOffset ||
    document.body.scrollTop ||
    document.documentElement.scrollTop;

    //Set heigth and width to mask to fill up the whole screen
    jQuery('#mask').css({'width':maskWidth,'height':maskHeight});

    //transition effect
    jQuery('#mask').fadeIn(1);
    jQuery('#mask').fadeTo("slow",0.5);

    //Get the window height and width
    var winH = jQuery(window).height();
    var winW = jQuery(window).width();

    //Set the popup window to center
    jQuery(id).css('height', height_id);
    jQuery(id).css('width', width_id);
    jQuery(id).css('top',  winH/2-jQuery(id).height()/2 + vScroll);
    jQuery(id).css('left', winW/2-jQuery(id).width()/2);

    //transition effect
    jQuery(id).fadeIn(300);
}


jQuery(function() {
    //ecrire le morceau html
    var c_html =
    '<div id="boxes">' +
        '<div id="dialog" class="window" style="height:19em !important;">' +
            '<p class="title_bar"><strong>Se connecter</strong></p>' +
            '<iframe id="frame_se_connecter" frameborder="0" style="width:550px; height:16em;" src="http://www.jeuxvideo.com/cgi-bin/admin/moncompte.cgi?oper=80"> </iframe>' +
            '<a class="close">Fermer <img width="11" height="12" src="http://image.jeuxvideo.com/pics/bt_popup_close.gif" alt="Fermer"/></a>' +
        '</div>' +
        '<div id="mask"></div>' +
    '</div>';


    //select all the a tag with name equal to modal
    jQuery('a[name=modal]').click(function(e)
    {
        //on ne créé le morceau html dans le DOM que s'il n'existe pas
        if((jQuery('#boxes').length) == 0)
        {
            jQuery("body").append( c_html );
        }
        //Cancel the link behavior
        e.preventDefault();
        //Get the A tag
        var id = jQuery(this).attr('href');
        jQuery('#banner').css("visibility","hidden");
        jQuery('#pub_carre1').css("visibility","hidden");
        affiche_pop(id);

        //if close button is clicked
        jQuery('.window .close').click(function (e) {
            //si on est sur le wiki
            if(isMediawiki())
            {
                //Cancel the link behavior
                e.preventDefault();
                jQuery('#mask').fadeTo("slow",0.6);
                jQuery('#mask').hide();
                jQuery('.window').hide();
                jQuery('#banner').css("visibility","visible");
                jQuery('#pub_carre1').css("visibility","visible");
                jQuery("#boxes").remove();
                top.location.reload(true);
            }
            else
            {
                if((jQuery('#frame_se_connecter').contents().find('#vous_ete_connecte').length) > 0)
                {
                    top.location.reload(true);
                }
                else
                {
                    //Cancel the link behavior
                    e.preventDefault();
                    jQuery('#mask').fadeTo("slow",0.6);
                    jQuery('#mask').hide();
                    jQuery('.window').hide();
                    jQuery('#banner').css("visibility","visible");
                    jQuery('#pub_carre1').css("visibility","visible");
                    jQuery("#boxes").remove();
                }
            }
            return false;
        });

        //if mask is clicked
        jQuery('#mask').click(function () {
            //si on est sur le wiki
            if(isMediawiki())
            {
                jQuery('#mask').fadeTo("slow",0.6);
                jQuery('#mask').hide();
                jQuery('.window').hide();
                jQuery('#banner').css("visibility","visible");
                jQuery('#pub_carre1').css("visibility","visible");
                jQuery("#boxes").remove();
                top.location.reload(true);
            }
            else
            {
                if((jQuery('#frame_se_connecter').contents().find('#vous_ete_connecte').length) > 0)
                {
                    top.location.reload(true);
                }
                else
                {
                    jQuery('#mask').fadeTo("slow",0.6);
                    jQuery('#mask').hide();
                    jQuery('.window').hide();
                    jQuery('#banner').css("visibility","visible");
                    jQuery('#pub_carre1').css("visibility","visible");
                    jQuery("#boxes").remove();
                }
            }
            return false;
        });
    });
});


//Fonctions permettant le changement de skin à la volée
function switch_bleu()
{
    var jaune = "http://www.jeuxvideo.com/css/jaune/jaune.css";
    var jaune_large = "http://www.jeuxvideo.com/css/defaut/jaune_large.css";
    for (i = 0; i < 2; i++)
    {
        var st = jQuery("link[rel=stylesheet]:last");
        if ( st.attr("href") == jaune )
        {
            st.attr("href","");
            st.remove();
            EcrireCookie(1);
        }
        else if (st.attr("href") == jaune_large)
        {
            st.attr("href","");
            st.remove();
        }
    }
}

function switch_jaune()
{
    var jaune = "http://www.jeuxvideo.com/css/jaune/jaune.css";
    var jaune_large = "http://www.jeuxvideo.com/css/defaut/jaune_large.css";
    for (i = 0; i < 2; i++)
    {
        var st = jQuery("link[rel=stylesheet]:last");
        if ( st.attr("href") != jaune  )
        {
            st.clone(true).insertAfter(st);
            st = jQuery("link[rel=stylesheet]:last");
            st.attr("href",jaune);
            EcrireCookie(2);
        }
        else if (st.attr("href") != jaune_large && LireCookie("forums_large") == "oui")
        {
            st.clone(true).insertAfter(st);
            st = jQuery("link[rel=stylesheet]:last");
            st.attr("href",jaune_large);
        }
    }
}
//fonction permettant de créer le cookie pour le choix du skin
function EcrireCookie(valeur)
{
	var unedate=new Date();unedate.setFullYear(unedate.getFullYear()+28);
	document.cookie="jvskin="+valeur+";expires=" + unedate.toGMTString() + ";domain=jeuxvideo.com;path=/";
}

function initSearch() {
    var jFrom;
    var jInput;
    var jFrame;
    var jListRes;
    var jResElts;
    var lastText;
    var onQuery;
    var reQuery;
    var ajaxOpts;
    var curSelPos;
    
    function close() {
        jFrame.fadeOut("fast");
        //jFrame.hide();
    }
    
    function open() {
        if (jResElts && jResElts.length > 0) {
            jFrame.fadeIn("fast");
            //jFrame.show();
        } else {
            jFrame.hide();
        }
    }
    
    function setSelectedCSS(jEltRes, doSel) {
        if (doSel) {
            jEltRes.addClass('sel');
            jEltRes.css('background-color', '#00A3D5');
            jEltRes.css('color', '#FFFFFF');
        } else {
            jEltRes.removeClass('sel');
            jEltRes.css('background-color', 'white');
            jEltRes.css('color', '#000000');
        }
    }
    
    function getResElt(pos) {
        var ret;
        
        ret = null;
        if (typeof pos === 'number' && pos > 0 && pos <= jResElts.length) {
            ret = jResElts.eq(pos - 1);
        }
        return ret;
    }
    
    function selCur(doSel) {
        var jElt;
        
        jElt = getResElt(curSelPos);
        if (jElt) {
            setSelectedCSS(jElt, doSel);
        }
    }
    
    function moveUp(text) 
    {
        var jElt;
        selCur(false);
        
        if (jResElts.length > 0) 
        {
            if (curSelPos > 0) {
                curSelPos = (curSelPos - 1) % (jResElts.length + 1);
            } else {
                curSelPos = jResElts.length;
            }         
            selCur(true);
            jElt = getResElt(curSelPos);
            jInput.attr("value", jElt.text());
        }
        open();
    }
    
    function moveDown(text) 
    {
        var jElt;
        selCur(false);
        
        if (jResElts.length > 0) 
        {
            curSelPos = (curSelPos + 1) % (jResElts.length + 1);
            selCur(true);
            jElt = getResElt(curSelPos);
            jInput.attr("value", jElt.text());
        }
        open();
    }
    
    function query() {
        if (onQuery) {
            reQuery = true;
        } else {
            onQuery = true;
            ajaxOpts.url = '/cgi-bin/search_xml.cgi';
            ajaxOpts.data = { 's': jInput.val() };
            $.ajax(ajaxOpts);
        }
    }
    
    function queryEnd() {
        onQuery = false;
        if (reQuery) {
            reQuery = false;
            query();
        }
    }
    
    function inputEvt(e) 
    {
        var newText;
        
        switch (e.keyCode) 
        {
            case 37 /* left */:
            case 39 /* right */:
                break;
            case 38 /* up */:
                moveUp(newText);
                break;
            case 40 /* down */:
                moveDown(newText);
                break;
            case 27 /* esc */:
                close();
                break;
            default :
                newText = jInput.val();
                if (lastText !== newText) 
                {
                    lastText = newText;
                    if (newText.length > 0) {
                        query();
                    }
                }
                break;
        }
    }
    
    /*function keyEvt(e) 
    {
        switch (e.keyCode) 
        {
            case 38 :
                moveUp();
                break;
            case 40 :
                moveDown();
                break;
            case 27 :
                close();
                break;
        }
    }*/
    
    function enterEvt() {
        selCur(false);
        curSelPos = 0;
        open();
    }
    
    function exitEvt() {
        close();
    }
    
    var is_on_liste = 0;
    jInput = $('#rech_txt');
    jForm = $('#rech'); 
    
    if (jInput.length === 1 && jForm.length === 1) {
        lastText = '';
        curSelPos = 0;
        jResElts = null;
        onQuery = false;
        reQuery = false;
        
        jFrame = $('<div id="suggest"/>')
            .css('width', '228px')
            .css('height', 'auto')
            .css('z-index', '50')
            .css('top', '50px')
            .css('left', '8px')
            .css('position', 'absolute')
            .css('background', '#FFFFFF none repeat scroll 0 0')
            .css('border', '1px solid #666666')
            .hide()
            .appendTo('#recherche');
        jListRes = $('<ul />')
            .appendTo(jFrame);
        jClose = $('<p />')
            .css('color', '#AAAAAA')
            .css('font-size', '90%')
            .css('padding', '3px')
            .css('text-align', 'right')
            .appendTo(jFrame);
            
        jSpan = $('<span />')
            .css('background', 'transparent url(http://image.jeuxvideo.com/css_img/defaut/header/suggest_fermer.png) no-repeat scroll right center')
            .css('cursor', 'pointer')
            .css('padding-right', '16px')
            .appendTo(jClose);
                    
        jSpan.append("<span>Fermer</span>");
        jSpan.click(function () 
                    {
                        exitEvt();
                        return false;
                    }
                )
        
        jInput.attr('autocomplete', 'off');
        jInput./*keydown(inputEvt).*/keyup(inputEvt).mouseup(inputEvt);
        //jInput.keypress(keyEvt);
        /*jInput.focus(enterEvt).blur(exitEvt)*/;
        
        jFrame.mouseout( function() {is_on_liste = 0;return false;});
        jFrame.mouseover( function() {is_on_liste = 1;return false;});
        
        jInput.bind("blur", function(){ 
            if(is_on_liste == 0){exitEvt();}
        ;});
        
        
        jForm.submit(
            function () {
                var doSubmit;
                var texte;
                var fin_texte;
                
                //traitement de la chaine : si "..." en fin de chaine, les supprimer
                texte = jInput.val();
                fin_texte = texte.substr(texte.length - 3, texte.length);
                if (fin_texte == '...')
                {
                    jInput.val(texte.substr(0, (texte.length - 3)));
                }
                //texte.substr(0, (texte.length - 3));
                
                //var jSelElt;
                
                doSubmit = true;
                /*
                jSelElt = getResElt(curSelPos);
                if (jSelElt && jSelElt.data('url')) {
                    //doSubmit = false;
                    //window.location = jSelElt.data('url');
                }*/
                return doSubmit;
            }
        );
        
        ajaxOpts = {
            success: function (xmlDoc) {
                var jXmlRes;
                var jXmlResElts;
                var jXmlResElt;
                var jXmlURL;
                var jXmlSearch;
                var k;
                var jLi;
                var pos;
                var jSearchChildren;
                var u;

                jListRes.empty();
                
                jXmlRes = $('res', xmlDoc);
                if (jXmlRes.length === 1) {
                    jXmlResElts = jXmlRes.children('r');
                    
                    pos = 1;
                    for (k = 0; k < jXmlResElts.length; k++) {
                        jXmlResElt = jXmlResElts.eq(k);
                        jXmlSearch = jXmlResElt.children('s');
                        jXmlURL = jXmlResElt.children('u');
                        if (jXmlSearch.length === 1 && jXmlURL.length === 1) 
                        {
                            jLi = $('<li />')
                                .css('padding', '1px 2px')
                                .css('cursor', 'pointer')
                                .data('url', jXmlURL.text())
                                .data('nom_jeu', jXmlSearch.text())
                                .data('pos', pos)
                                .mouseover(
                                    function () {
                                        selCur(false);
                                        curSelPos = $(this).data('pos');
                                        selCur(true);
                                    }
                                )
                                .click(
                                    function () {
                                        //window.location = $(this).data('url');
                                        jInput.attr("value", $(this).data('nom_jeu'));
                                        jForm.submit();
                                        exitEvt();
                                        return false;
                                    }
                                )
                                .appendTo(jListRes);
                            
                            jSearchChildren = jXmlSearch.contents();
                            for (u = 0; u < jSearchChildren.length; u++) {
                                if (jSearchChildren[u].nodeType === 1) {
                                    $('<strong />')
                                        .text(jSearchChildren.eq(u).text())
                                        .appendTo(jLi);
                                } else {
                                    jLi.append(jSearchChildren[u].nodeValue);
                                }
                            }
                            
                            pos++;
                        }
                    }
                }
                
                curSelPos = 0;
                jResElts = jListRes.children();
                open();
                
                queryEnd();
            },
            error: function () {
                queryEnd();
            }
        };
    }
}

if (window.jQuery) {
    $(initSearch);
}


