var w = screen.availWidth-35;
var h = screen.availHeight-20;


function keepalive() {
	if (document.cookie.indexOf("PHPSESSID") != -1) {
        new Ajax.Request("keepalive.php?"+Math.random());
    }
}
window.setInterval("keepalive()",(15*60*1000));

function help(anchor) {
    if (!anchor) anchor="";
    var ewin = window.open("help.php"+anchor,"help","width=800,height=800,scrollbars=yes,resizable=yes");
    ewin.focus();
    return false;
}
function call(div, url) {
    var aj = new Ajax.Updater(div, url,{onError:function(request){Element.update(div,"N/A")},evalScripts:true, asynchronous:true});
}
function ensureScript(url) {
    url=staticpath+""+url;
    //alert(url);
    var toload = true;
    scripts = ($$("script"));
    for (i=0;i<scripts.length;i++) {
        if (scripts[i].src.indexOf(url) != -1) {
            toload = false;
        }
    }
    //alert(toload);
    if (toload) {
        var oScript = document.createElement("script");
        oScript.src = url;
        document.body.appendChild(oScript);
    }
}
/**
news functions
**/
var activeNewsTab=1;
function selNewsTab(tabindex) {
    Element.hide("flux");
    Element.update("newscontent","<br><br><br><center><img src='"+staticpath+"img/loading.gif'></center>");
    url="prefs.php?tab_id="+tabindex;
    var aj = new Ajax.Updater('newscontent',url,{evalScripts:true});
}
function selNews(idrss) {
    Element.hide("flux");
    Element.update("newscontent","<br><br><br><center><img src='"+staticpath+"img/loading.gif'></center>");
    url="prefs.php?tab_id="+activeNewsTab+"&rss_id="+idrss;
    var aj = new Ajax.Updater('newscontent',url,{evalScripts:true});
}

function highlight(tabindex, type) {
    if (!type) type="nt";
    for (i=1;i<=5;i++) {
        Element.removeClassName(type+""+i,"active");
        if (i==tabindex) {
            Element.addClassName(type+""+i,"active");
            if (type=="nt") activeNewsTab=tabindex;
        }
    }
}
function callNews() {
    call('newscontent','rssreader.php')
}
function refreshNews() {
    Element.update("newscontent","<br><br><br><center><img src='"+staticpath+"img/loading.gif'></center>");
    setTimeout("callNews()",500);
}

function callFlux() {
    if ($("flux"+activeNewsTab).innerHTML.length > 10) {
        Element.update("flux", $("flux"+activeNewsTab).innerHTML);
        showFlux();
    } else {
        var aj = new Ajax.Request("modules/news/flux.php?idgroup="+activeNewsTab,
            {onSuccess:function(transport){
                var response = transport.responseText;
                Element.update("flux",response);
                Element.update("flux"+activeNewsTab,response);
                showFlux();
            }});
    }
}
function showFlux(name, left) {
    if (!name) name="flux"
    if (!left) left=99;
    elem = $(name);
    if (elem) {
        elem.style.height=""; //reset, otherwise no good resize
        pos = Position.cumulativeOffset($(name+'pos'));
        elem.style.top = (pos[1]+15)+'px';
        elem.style.left = (pos[0]-left)+'px';
        elem.style.height = Element.getHeight(elem)+"px";
        //alert (elem.style.top+" "+pos[1]);
        if (! Element.visible(elem)) {
            Effect.BlindDown(elem, {duration:0.2});
        } else {
            Effect.BlindUp(elem, {duration:0.2});
        }
    }
}
function setRssSrc(divname, icon, link, title) {
    Element.update(divname,"<a href=\""+link+"\" target=\"_blank\" class=\"modleft\">&copy "+title+"</a>");
}
function resizeImg(img, width) {
    img.width = width;
}
function detPos() {
    var cpos = Position.cumulativeOffset($('center'));
    pleft=cpos[0]+5;
    ptop=124;
    width = Element.getWidth('center')-4;
    height=h-top;
    elem = $("detdiv");
    elem.style.left=pleft+"px";
    elem.style.top=ptop+"px";
    elem.style.width=width+"px";
}
function newsDetail() {
    detPos();
    var aj = new Ajax.Request("rssreader.php?large",
        {onSuccess:function(transport){
            var response = transport.responseText;
            Element.update("detcontent",response);
            Effect.Appear("detdiv");
        },evalScripts:true});

}
function setNDwinTitle(title) {
    if (!title) title="News"
    Element.update("dettitle",title);
    //ndwin.setTitle(title);
}
function closeDet() {
    Effect.Fade("detdiv");
    setTimeout('Element.update("detcontent","")',1000);
}
/**
search
**/
var searchpars = new Array();
//searchpars['google'] = new Array('client=pub-3139049588207714','forid=1','ie=UTF-8','oe=UTF-8','cof=GALT:#008000;GL:1;DIV:#FFFFFF;VLC:663399;AH:center;BGC:FFFFFF;LBGC:FFFFFF;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;LH:99;LW:99;L:http://cimg.c.la/img/logo.gif;S:http://;LP:1;FORID:1','hl=fr');
var moteurs=new Array();
moteurs['1']=new Array(); //web
moteurs['1']['1'] = new Array(1,'Exalead','exalead.ico','exalead.jpg','http://www.exalead.fr/search','q',null);
//moteurs['1']['2'] = new Array(2,'Google','google.ico','google.gif','http://www.google.fr/custom','q','google');
moteurs['1']['2'] = new Array(2,'Google','google.ico','google.gif','http://www.google.fr/search','q','google');
moteurs['1']['3'] = new Array(3,'Voila','voila.ico','voila.gif','http://search.ke.voila.fr/S/voila','rdata',null);
moteurs['1']['4'] = new Array(4,'Yahoo','yahoo.ico','yahoo.gif','http://fr.search.yahoo.com/search','p',null);
moteurs['1']['5'] = new Array(5,'Livesearch','livesearch.ico','msn.jpg','http://search.msn.fr/results.aspx','q',null);
moteurs['2']=new Array(); //images
moteurs['2']['1'] = new Array(1,'Exalead','exalead.ico','exalead.jpg','http://www.exalead.fr/image/results','q',null);
moteurs['2']['2'] = new Array(2,'Google','google.ico','google.gif','http://images.google.fr/images','q',null);
moteurs['2']['4'] = new Array(4,'Yahoo','yahoo.ico','yahoo.gif','http://fr.images.search.yahoo.com/search/images','p',null);
moteurs['2']['5'] = new Array(5,'Livesearch','livesearch.ico','msn.jpg','http://search.msn.fr/images/results.aspx','q',null);
moteurs['3']=new Array();//encyclopedie
moteurs['3']['1'] = new Array(1,'Wikipédia','wiki.ico','wiki.gif','http://fr.wikipedia.org/wiki/Special:Search','search',null);
//moteurs['3']['2'] = new Array(1,'','wiki.ico','wiki.gif','http://fr.wikipedia.org/wiki/Special:Search','search',null);
moteurs['4']=new Array(); //news
//moteurs['4']['1'] = new Array(1,'Exalead','exalead.ico','exalead.jpg','http://www.exalead.fr/search','q');
moteurs['4']['1'] = new Array(1,'Google','google.ico','google.gif','http://news.google.fr/news','q',null);
//moteurs['4']['3'] = new Array(3,'Voila','voila.ico','voila.gif','http://search.ke.voila.fr/S/voila','rdata');
moteurs['4']['4'] = new Array(4,'Yahoo','yahoo.ico','yahoo.gif','http://fr.news.search.yahoo.com/search/news','p',null);
moteurs['4']['5'] = new Array(5,'Livesearch','livesearch.ico','msn.jpg','http://search.msn.fr/news/results.aspx','q',null);
moteurs['5']=new Array();//shopping
moteurs['5']['1'] = new Array(1,'Kelkoo','kelkoo.ico','kelkoo.jpg','http://shopping.kelkoo.fr/ctl/do/search','siteSearchQuery',null);
moteurs['5']['2'] = new Array(2,'LeGuide','leguide.ico','leguide.gif','http://www.leguide.com/search.html','w',null);
moteurs['5']['3'] = new Array(3,'Twenga','twenga.ico','twenga.jpg','http://www.twenga.fr/search.php','q',null);

var slabels = new Array("","Moteurs web","Moteurs images","Encyclopédies","Moteurs News","Moteurs Shopping");

var activeSearchTab=1;

var selMots = new Array(1,1,1,1,1,1);

function callMoteurs() {
    var drop="<b onclick=showFlux('moteur',-56) style='cursor:pointer'>"+slabels[activeSearchTab]+"<div class=close> </div></b><ul>";
    if (moteurs[activeSearchTab]) {
        for (i=1; i<moteurs[activeSearchTab].length; i++) {
            mot= moteurs[activeSearchTab][i];
            if (mot) {
                drop += '<li><a href="javascript:selMoteur('+mot[0]+',\''+mot[3]+'\',\''+mot[4]+'\',\''+mot[5]+'\',true,\''+mot[6]+'\')"><img src="'+staticpath+'img/search/'+mot[2]+'" border="0" width="16" height="16">'+mot[1]+' </a></li>';
            }
        }
    }
    drop+="</ul>";
    Element.update("moteur",drop);
    showFlux('moteur',-56);
}
function selMoteur(id, img, url, fieldname, updatePref, hidfields) {
    if (!fieldname) fieldname="q";
    document.images.searchlogo.src=staticpath+"img/search/"+img;
    document.searchform.action=url;
    searchHidFields(hidfields);
    $('sInput').name=fieldname;
    Effect.BlindUp("moteur", {duration:0.2});
    if(updatePref) {
        call('nodiv','prefs.php?s_id='+activeSearchTab+'&mot_id='+id);
    }
    $('sInput').focus();
    //document.searchform.elements[fieldname].focus();
}
function searchHidFields(hidfields) {
    for (i=0;i<6;i++) {
        $('sH'+i).name="";
        $('sH'+i).value="";
    }
    if (hidfields && hidfields!='null') {
        toloop = searchpars[hidfields];
        if (toloop) {
            for (i=0;i<toloop.length;i++) {
                hid = toloop[i];
                pos = hid.indexOf("=")
                $('sH'+i).name=hid.substring(0,pos);
                $('sH'+i).value=hid.substring(pos+1);
            }
        }
    }
}
function selSearchTab(id, updatePref) {
    Element.hide("moteur");
    highlight(id,"st");
    activeSearchTab=id;
    persoMot = selMots[id];
    //alert(persoMot);
    if (!persoMot) persoMot=1;
    smot = moteurs[id][''+persoMot];
    selMoteur(smot[0],smot[3],smot[4],smot[5],updatePref, smot[6]);

}
/**
    meteo functions
**/
function updateCityLabel(city) {
    cl = $("meteocity");
    if (cl) Element.update(cl,city);
}
function selectCity(code) {
    url="prefs.php?meteo_city="+code;
    var div='meteocontent';
    var aj = new Ajax.Updater(div, url,{onLoading:function(request){Element.update(div, '<br><br><center><img src='+staticpath+'img/loading.gif></center>');},evalScripts:true});
}
function callWeather() {
    call('meteocontent','modules/meteo/weather.php')
}

function meteoSearch() {
    var elem = $("meteosearch");
    if (elem) {
        elem.style.height=""; //reset, otherwise no good resize
        pos = Position.cumulativeOffset($('meteopos'));
        //alert (pos[1]+15);
        elem.style.top = (pos[1]+15)+'px';
        elem.style.left = (pos[0]-50)+'px';
        elem.style.height = Element.getHeight(elem)+"px";
        //alert (elem.style.top+" "+pos[1]);
        if (! Element.visible(elem)) {
            Effect.BlindDown(elem, {duration:0.2});
        } else {
            Effect.BlindUp(elem, {duration:0.2});
        }
    }
}
function callCity() {
    city=document.cform.city.value;
    if (city=='') return false;
    Element.hide("meteosearch");
    url="modules/meteo/findCity.php?city="+escape(city);
    var div='meteocontent';
    var aj = new Ajax.Updater(div, url,{onLoading:function(request){Element.update(div, '<br><br><center><img src='+staticpath+'img/loading.gif></center>');},evalScripts:true});
    return false;
}
function meteoByCountry() {
    call ('meteocontent','modules/meteo/byCountry.php');
}
function refreshMeteo() {
    Element.update("meteocontent","<br><br><center><img src='"+staticpath+"img/loading.gif'></center>");
    setTimeout("callWeather()",500);
}

/** external windows **/
function openSudoku() {
    /*openWin("http://www.sudoweb.com/free-webmaster.php?tail=-10&coulbody=F7F7F4&coulinner=cccccc&couldonn=09005E&coulcadre=000000&coulrep=3F1C99",
            "SUDOKU",
            200, null, 400, 440)*/
    detPos();
    Element.update("detcontent","<iframe src='http://www.sudoweb.com/free-webmaster.php?tail=-10&coulbody=F7F7F4&coulinner=cccccc&couldonn=09005E&coulcadre=000000&coulrep=3F1C99' frameborder=0 width=100% height=500></iframe>");
    Element.update("dettitle","Sudoku");
    Effect.Appear("detdiv");
}
function tvDetail() {
    detPos();
    Element.update("detcontent","<iframe src='http://www.programme-television.org/index.php?chaine=98&c1=6CC434&c2=CFEDBA' frameborder=0 width=100% height=1500></iframe>");
    Element.update("dettitle","Programme TV");
    Effect.Appear("detdiv");
}
function horoscope() {
    text = '<SCRI'+'PT LANGUAGE="Javascript" SRC="http://www.lhoroscope.com/partenaires/Auto/csd.asp?belier=1&taureau=1&gemeaux=1&cancer=1&lion=1&vierge=1&balance=1&scorpion=1&sagittaire=1&capricorne=1&verseau=1&poissons=1"></SCR'+'IPT>';
    document.write(text);
}
function openWin(url, title, top, left, width, height) {
    pos = Position.cumulativeOffset($('center'));
    if (!top) top=124;
    if (!left) left=pos[0]+5;
    if (!width) width= Element.getWidth('center')-18;
    if (!height) height=h-top;
    var win = new Window({className: "CLA", title: title,
                      top:top, left:left, width:width, height:height, maximizable:false, minimizable:false, zIndex:2, destroyOnClose: true,
                      url: url,showEffectOptions: {duration:0.2} })
    //
    win.show();
}
function openLink(url, title, top, left, width, height) {
    pos = Position.cumulativeOffset($('center'));
    if (!top) top=0;
    if (!left) left=pos[0];
    if (!width) width= w-left+18;//Element.getWidth('center')-18;
    if (!height) height=h-top;
    //alert(h+" "+top);
    var ewin = window.open(url,"extwin","top="+top+",left="+(left+6)+",width="+width+",height="+height+",scrollbars=yes,resizable=yes,toolbar=yes,location=yes");
    ewin.blur();
    ewin.focus();
}
function loginForm() {
    //openPreferences();return;
    ensureScript("script/emailCheck.js");
    ensureScript("script/loginCheck.js");
    Dialog.info({url: "modules/account/loginForm.php?"+Math.random(), options: {evalScripts: true, method: "get"}},{ className:"CLA", title: "Connexion", width:500, closable:true, destroyOnClose: true });
}
function postLogin() {
    Dialog.closeInfo();
    loadAllPerso();
    callEditio();
}
function openPreferences() {
    accountForm("login");
    loadAllPerso();
    callEditio();
}
function accountForm(type) {
    ensureScript("script/emailCheck.js");
    ensureScript("script/accountCheck.js");
    if (!type) type="createAcc";
    wtitle = "Mon Compte";
    if (type == "createAcc") wtitle = "Nouvel utilisateur";
    //Dialog.closeInfo();
    //setTimeout("_accountForm()",1000);
    //call("wincontent","modules/account/createAccForm.php");
    var aj = new Ajax.Updater(Dialog.dialogId+"_content", "modules/account/"+type+"Form.php",{
        onError:function(request){Element.update("wincontent","N/A")},
        onComplete: function() {
            Element.update(Dialog.dialogId+"_top", wtitle);
            dialog= Windows.getWindow(Dialog.dialogId);
            dialog.height = dialog.getContent().height;
            dialog.show();
        },
        evalScripts:true});
}
function postCreate() {
    //Element.update("accform","<center><br><br><br>Bienvenue</center>")
}
function confirmAction(text) {
    Element.update(Dialog.dialogId+"_content","<center><br><br><br>"+text+"<br><br><br><a class='lbutton' href='javascript:Dialog.closeInfo()'> OK </a></center>");
}
function persoForm(showFavs, src) {
    if (src && isUrl(src.href)) return;
    removeError("pmail");
    removeError("pbank");
    Element.update("perr","<br>")
    var elem ="persoform";
    if (! Element.visible(elem)) {
        if (showFavs=="big") {
            $(elem).style.top="415px";
            pos = Position.cumulativeOffset($('favorites'));
            $(elem).style.left=pos[0]+"px";
            $(elem).style.width=(Element.getWidth("favorites")-2)+"px";
            Element.show("persoperso");
        } else if (showFavs=="small") {
            //$(elem).style.top="415px";
            pos = Position.cumulativeOffset($('favorites'));
            $(elem).style.top=pos[1]+"px";
            leftpos = ((Element.getWidth("favorites")/2)-150)+pos[0];
            $(elem).style.left=leftpos+"px";
            $(elem).style.width="300px";
            Element.show("persoperso");
        } else {
            $(elem).style.top="160px";
            $(elem).style.left="160px";
            Element.hide("persoperso");
        }
        Effect.Appear(elem);
    } else {
        Element.hide("mbxes");
        Effect.Fade(elem);
    }
}
function submitPerso() {
    if (checkPerso()) {
        Element.hide("mbxes");
        Element.hide("persoform");
        url="prefs.php?";
        params=Form.serialize(document.perso)+"&perso=perso";
        var div='persodiv';
        Element.update(div, '<br><br><center><img src='+staticpath+'img/loading.gif></center>');
        var aj = new Ajax.Updater(div, url,{evalScripts:true, method:"post", parameters: params});
    }
    return false;
}

function checkPerso() {
    removeError("pmail");
    removeError("pbank");
    removeError("fav1");
    removeError("fav2");
    Element.update("perr","<br>")
    fixUrl(document.perso.mailurl);
    fixUrl(document.perso.bankurl);
    fixUrl(document.perso.fav1url);
    fixUrl(document.perso.fav2url);
    if (!isUrl(document.perso.mailurl.value, true)) {
        addError("pmail");
        Element.update("perr","merci de saisir une url valide")
        return false;
    }
    if (!isUrl(document.perso.bankurl.value, true)) {
        addError("pbank");
        Element.update("perr","merci de saisir une url valide")
        return false;
    }
    if (!isUrl(document.perso.fav1url.value, true)) {
        addError("fav1");
        Element.update("perr","merci de saisir une url valide")
        return false;
    }
    if (!isUrl(document.perso.fav2url.value, true)) {
        addError("fav2");
        Element.update("perr","merci de saisir une url valide")
        return false;
    }
    return true;
}
function addError(input) {
    Element.addClassName("i"+input,"inputErr");
    Element.addClassName("l"+input,"labelErr");
}
function removeError(input) {
    Element.removeClassName("i"+input,"inputErr");
    Element.removeClassName("l"+input,"labelErr");
}
function fixUrl(field) {
    if (field.value != "" && field.value.indexOf("http") != 0) {
        field.value="http://"+field.value;
    }
}
function isUrl(s, emptyok) {
    var regexp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
    if (emptyok) return s=="" || regexp.test(s);
    return regexp.test(s);
}
function handleImage(img) {
    if (img.width<50) {
        img.onload=""; // overflow problem in IE
        img.src=staticpath+"img/thumbshot.gif";
        img.onload=function() { handleImage(this); };
    } else {
        img.border=1;
    }
}
function callEditio() {
    //call("editio","modules/perso/editio.php");
}
function loadAllPerso() {
    callWeather();
    call('newscontent','rssreader.php');
    call('persodiv','modules/nav/leftperso.php');
    if (document.cookie && document.cookie.indexOf("PHPSESSID") != -1) {
        callEditio();
    }
}
function loadTv() {
    call("tvcontent","tvreader.php");
}
function refreshTv() {
    Element.update("tvcontent","<br><br><br><center><img src='"+staticpath+"img/loading.gif'></center>");
    setTimeout("loadTv()",500);
}

function logout() {
    var aj = new Ajax.Updater("wincontent", "modules/account/logout.php",{
        onError:function(request){Element.update("wincontent","N/A")},
        onComplete: function() {
            callEditio();
            loadAllPerso();
            Dialog.closeInfo();
        },
        evalScripts:true});
}
function updateLink(id, url) {
    var fav=$(id);
    if (!fav) return;
    fav.href=url;
    if (url.indexOf("javascript:void") == -1) {
        fav.target="_blank";
    } else {
        fav.target="";
    }
}
function rssImage(url, id) {
    if (!id) id="rssimg";
    var rsimg = new Image();
    rsimg.onload=function() {
        iw=rsimg.width;
        ih=rsimg.height;
        if (ih>100) iw=iw*100/ih;
        if (iw>150) iw=150;
        document.images[id].width=iw;
        document.images[id].src=rsimg.src;
    };
    rsimg.src=url;
}
function makeHome(homelink) {
    //alert (document.all+" "+navigator.userAgent);
    if (document.all && navigator.userAgent.toLowerCase().indexOf("opera") == -1) {
        homelink.style.behavior='url(#default#homepage)'; homelink.setHomePage('http://www.c.la');
    } else {
        help("#demarrage");
    }
}
var mbxes = new Array();
mbxes[0] = new Array("AliceADSL","http://webmail.aliceadsl.fr/","alice.ico");
mbxes[1] = new Array("AOL","http://webmail.aol.fr/","aol.gif");
mbxes[2] = new Array("Caramail","http://www.lycos.fr/","lycos.ico");
mbxes[3] = new Array("Club internet","http://flashmail.club-internet.fr/","club.ico");
mbxes[4] = new Array("Free","http://imp.free.fr/","free.png");
mbxes[5] = new Array("Gmail","http://www.gmail.com","gmail.gif");
mbxes[6] = new Array("Hotmail","http://www.hotmail.fr","hotmail.gif");
mbxes[7] = new Array("Laposte","http://www.laposte.net","laposte.ico");
mbxes[8] = new Array("Neuf","http://webmail.neuf.fr/","neuf.jpg");
mbxes[9] = new Array("Noos","http://webmail.noos.fr/","noos.gif");
mbxes[10] = new Array("Numéricable","http://webmail.numericable.fr/","noos.gif");
mbxes[11] = new Array("Orange","http://webmail.orange.fr/","orange.ico");
mbxes[12] = new Array("Tele2","http://webmail.tele2.fr/","tele2.ico");
mbxes[13] = new Array("Wanadoo","http://webmail.orange.fr/","orange.ico");
mbxes[14] = new Array("Yahoo","https://edit.europe.yahoo.com/config/mail?.intl=fr","yahoo.ico");
var bks = new Array();
bks[0]  = new Array("AXA Banque", "https://www.axabanque.fr/client","axa.ico");
bks[1] = new Array("Banque accord",	"http://www.banque-accord.fr", "bac.ico");
bks[2] = new Array("Banque AGF", "https://www.banqueagf.fr/bagfweb/servlet/BAGF_Servlet?type=2&conteneur=BAGF_HomeAcces", "agf.gif");
bks[3] = new Array("Banque populaire et Natexis","https://www.ibpv.bpvf.banquepopulaire.fr", "bpn.ico");
bks[4] = new Array("Barclays", "http://www.barclays.fr/homesitefr.htmlframe","barclay.gif");
bks[5] = new Array("BNP Paribas","https://www.secure.bnpparibas.net/banque/portail/particulier/HomeConnexion?type=homeconnex","bnp.ico");
bks[6] = new Array("Boursorama","https://www.boursorama.com/connexion.phtml?org=/index.phtml?","bourso.ico");
bks[7] = new Array("Bred","https://www.bred.fr/index_secure.html","bred.ico");
bks[8] = new Array("Caisse d'épargne","http://www.caisse-epargne.fr/asp/modele1.aspx","ce.ico");
bks[9] = new Array("CIC","https://www.cic.fr/fr/","cic.ico");
bks[10] = new Array("Crédit agricole","http://www.credit-agricole.fr/particuliers/","ca.ico");
bks[11] = new Array("Crédit du Nord","https://vos-comptes.credit-du-nord.fr/index_particuliers.asp","cn.ico");
bks[12] = new Array("Crédit mutuel","https://www.creditmutuel.fr/groupe/fr/","cm.ico");
bks[13] = new Array("Dexia","http://www.dexia.fr/jsp/perso/visiteurs/accueil.htm","dexia.jpg");
bks[14] = new Array("HSBC","https://www.hsbc.fr/1/2/hsbc-france/particuliers/login","hsbc.ico");
bks[15] = new Array("La Banque postale","https://www.labanquepostale.fr","bp.ico");
bks[16] = new Array("LCL","https://particuliers.secure.lcl.fr/index.html","lcl.ico");
bks[17] = new Array("Monabanq","https://www.monabanq.com/client/","mona.ico");
bks[18] = new Array("Société générale","https://logitelnet.socgen.com/","socgen.gif");

function drawMailboxes() {
    var drop="<div class='flux' style='width:240px;font-weight:normal;text-align:left'><b onclick='mbxSel()' style='width:100%'>&nbsp;<div class=close></div></b><ul>";
    for (i=0; i<mbxes.length; i++) {
        drop+="<li><a href=javascript:chooseMbx('"+mbxes[i][1]+"')><img src='"+staticpath+"img/mail/"+mbxes[i][2]+"' border=0 width=16 height=16>"+mbxes[i][0]+" </a> </li>";
    }
    drop+="</ul></div>";
    return drop;
}
function drawDropDown(drp) {
    if (drp=="bks") {arr=bks;foo = "chooseBk";}
    else {arr=mbxes;foo= "chooseMbx"}
    var drop="<div class='flux' style='width:240px;font-weight:normal;text-align:left'><b onclick='mbxSel(\""+drp+"\")' style='width:100%'>&nbsp;<div class=close></div></b><ul>";
    for (i=0; i<arr.length; i++) {
        drop+="<li><a href=javascript:"+foo+"('"+arr[i][1]+"')><img src='"+staticpath+"img/mail/"+arr[i][2]+"' border=0 width=16 height=16>"+arr[i][0]+" </a> </li>";
    }
    drop+="</ul></div>";
    return drop;
}
function chooseMbx(url) {
    document.single.favurl.value = url;
    Element.hide("mbxes");
}
function chooseBk(url) {
    document.single.favurl.value = url;
    Element.hide("bks");
}
function mbxOpen(drp) {
    if (!drp) drp="mbxes";
    if (!Element.visible(drp)) {
        Effect.BlindDown(drp,{duration:0.5});
    }
}
function mbxSel(drp) {
    if (!drp) drp="mbxes";
    if (!Element.visible(drp)) {
        Effect.BlindDown(drp,{duration:0.5});
    } else {
        Effect.BlindUp(drp,{duration:0.5});
    }
}
var Favorite = Class.create();
Favorite.prototype = {
    initialize: function(sort, id, url, title) {
        this.sort = sort;
        this.id = id;
        this.url = url;
        this.title = title;
        this.manageTitle(title);
        FRegistry.registerFav(this);
    },
    createContent: function() {
        //alert("cc "+this.sort+" id "+this.id);
        li = document.createElement("li");
        Element.extend(li);
        li.id = "li"+this.sort;
        li.addClassName("leftli")
        a = this.createLink();
        li.appendChild(a);
        this.li = li;
        if ($('persotop')) {
            if (isNaN(this.sort) || this.sort <=2) {
                $('persotop').appendChild(li);
                this.updateThumbs();
            } else {
                $('persobot').appendChild(li);
            }
        } else {
            if (isNaN(this.sort)) this.updateThumbs();
            else this.createBox();
        }
    },
    createLink: function() {
        a = document.createElement("a");
        Element.extend(a);
        a.innerHTML = '<img class="leftedit" src="img/edit.gif" border="0" height="12" onclick="editFav(\''+this.sort+'\');return false"><div class="lfav">'+this.title+"</div>" ;
        if (this.url) {
            a.href = this.url;
            a.target = "_blank";
        } else {
            a.href = "javascript:void(0)";
            a.target = "";
        }
        return a;
    },
    updateThumbs: function() {
        this.updateThumb('f');
        this.updateThumb('g');
    },
    updateThumb: function(prefix) {
        if (!prefix) prefix="f";
        if ($(prefix+this.sort+'title')) {
            if (this.url) {
                document.images[prefix+this.sort+'img'].src="http://open.thumbshots.org/image.pxf?url="+this.url;
                updateLink(prefix+this.sort+"link",this.url);
            } else {
                document.images[prefix+this.sort+'img'].src=staticpath+"img/thumbshot.gif";
                updateLink(prefix+this.sort+"link","javascript:void(0)");
            }
            Element.update(prefix+this.sort+"title",this.title);
        }
    },
    createBox: function(prefix, div) {
        if (!prefix) prefix="f";
        if (!div) div="smallfavs";
        bdiv = document.createElement("div");
        Element.extend(bdiv).addClassName("favbox");
        b = document.createElement("div");
        Element.extend(b).addClassName("favtitle").id = prefix+this.sort+"title";
        b.innerHTML = this.title;
        bdiv.appendChild(b);
        sdiv = document.createElement("div");
        Element.extend(sdiv).addClassName("snapbox");
        ba = document.createElement("a");
        if (this.url) {
            ba.href=this.url;
            ba.target="_blank";
        }
        ba.id=prefix+this.sort+"link";
        bimg = new Image();
        bimg.onload=function() { handleImage(this); };
        if (this.url) bimg.src="http://open.thumbshots.org/image.pxf?url="+this.url;
        else bimg.src=staticpath+"img/thumbshot.gif";
        bimg.id=prefix+this.sort+"img";
        Element.extend(bimg).addClassName("preview");
        //Element.extend()
        sdiv.innerHTML='<div id="s'+prefix+this.sort+'" class="boxfav"><a href="javascript:void(0)" onclick="editFav(\''+this.sort+'\', \'s'+prefix+this.sort+'\')" class="modmod">modifier</a></div>';
        ba.appendChild(bimg);
        sdiv.appendChild(ba);
        bdiv.appendChild(sdiv);
        $(div).appendChild(bdiv);
    },
    manageTitle: function(title) {
        if ((!title || title=="") && this.url) {
            this.title = this.url.substring(this.url.indexOf("//")+2);
            if (this.title.indexOf("www.") == 0)this.title = this.title.substring(4);
            if (this.title.indexOf("/") != -1) this.title = this.title.substring(0,this.title.indexOf("/"));
        }
        if (title && title.length > 20) {
            this.title = title.substring(0,20);
        }
        if (!this.title) {
            this.title = "Lien";
        }
    },
    updateValues: function(title, url) {
        this.url=url;
        this.title=title;
        this.manageTitle(title);
        a = this.createLink();
        Element.update(this.li,a);
        this.updateThumbs();
    }
}
function clearFavs() {
    FRegistry.clear();
    if ($("smallfavs"))Element.update("smallfavs");
    if ($("persotop") && $("persotop").childNodes.length > 0) {
        Element.update("persotop");
        Element.cleanWhitespace("persotop");
    }

    if ($("persobot")) {
        Element.update("persobot");
        Element.cleanWhitespace("persobot");
    }
}
function favLeftPos(elem,id) {
    if (isNaN(id)) id=0;
    $(elem).style.top=(150+id*16)+"px";
    pos = Position.cumulativeOffset($('center'));
    $(elem).style.left=(pos[0]+1)+"px";
}
function favPos(elem,id,epos) {
    pos = Position.cumulativeOffset($(epos));
    $(elem).style.top=(pos[1]-89)+"px";
    $(elem).style.left=(pos[0]-65)+"px";
}
function editFav(id, epos) {
    Element.update('perf','');
    Element.hide('dbuttons');
    Element.show('sbuttons');
    Element.hide("mbxes");
    Element.hide("bks");
    Element.show("htitle");
    $("ifav").onclick = function() {/*$("ifav").select();*/};
    var efav = FRegistry.findFav(id);
    var elem="singleform";
    if (!epos) favLeftPos(elem,id);
    else favPos(elem,id,epos);
    if (efav) {
        Element.show("sbutsupr");
        if (efav.url || isNaN(efav.sort)) {
            document.single.favtitle.value=efav.title;
        } else {
            document.single.favtitle.value="";
            Element.hide("sbutsupr");
        }
        if (isNaN(efav.sort)) {
            Element.hide("htitle");
        }
        document.single.favurl.value=efav.url;
        document.single.favsort.value=efav.sort;
        document.single.favelement.value=(efav.id);
        if (id =='m') {
            $("ifav").onclick = function() {mbxOpen()};
            Element.hide("sbutsupr");
        } else if (id == 'b') {
            $("ifav").onclick = function() {mbxOpen('bks')};
            Element.hide("sbutsupr");
        }
    } else {
        document.single.favtitle.value="";
        document.single.favurl.value="";
        document.single.favsort.value="0";
        document.single.favelement.value= "F"+(new Date().getTime()+""+Math.round(Math.random()*10));
        Element.hide("sbutsupr");
    }

    //Element.show(elem);
    setTimeout("favUrlFocus()",1000);
    Effect.Appear(elem,{ duration: 0.5 });
}
function favUrlFocus() {
    try {document.single.favurl.focus();}catch( e){/**/}
}
function closeFav() {
    Element.hide("mbxes");
    Element.hide("bks");
    Effect.Fade("singleform");
}
function deleteFav() {
    sort = document.single.favsort.value;
    efav = FRegistry.findFav(sort);
    if (efav) {
        for (var i=2; i<FRegistry.favs.length ;i++) {
            xfav = FRegistry.favs[i];
            xfav.url = null;
            xfav.title = "Lien";
            xfav.updateThumbs();
        }
        FRegistry.removeFav(efav);
        Element.hide("singleform");
        params=Form.serialize(document.single)+"&favdel=favdel";
        url="prefs.php";
        var div='persodiv';
        var aj = new Ajax.Updater(div, url,{evalScripts:true, method:"post", parameters: params});
        //alert(efav.id);
        //efav.updateValues(document.single.favtitle.value, document.single.favurl.value);
    }
}
function submitFav() {
    if (checkFav()) {
        Element.hide("singleform");
        efav = FRegistry.findFav(document.single.favsort.value);
        if (efav) {
            efav.updateValues(document.single.favtitle.value, document.single.favurl.value);
        } else {
            efav=new Favorite(FRegistry.getNext(),document.single.favelement.value, document.single.favurl.value, document.single.favtitle.value);
            efav.createContent();
            if ($("persobot") && FRegistry.size() > 4) {
                Element.show('persobot');
                $("lplus").src = staticpath+"/img/minus.gif";
            }
        }
        url="prefs.php?";
        params=Form.serialize(document.single)+"&single=single";
        //alert(params);
        var div='persodiv';
        var aj = new Ajax.Updater(div, url,{evalScripts:true, method:"post", parameters: params, onComplete:handleMaxFavs()});
        //handleMaxFavs();
        return false;
    }
    return false;
}
function checkFav() {
    removeError("fav");
    Element.update("perf","<br>")
    fixUrl(document.single.favurl);
    if (!isUrl(document.single.favurl.value, false)) {
        addError("pfav");
        Element.update("perf","merci de saisir une url valide")
        return false;
    }
    return true;
}
var FRegistry = {
     favs : [],
     counter : 0,
     registerFav: function() {
         var mod = arguments[0];
         this.favs.push(mod);
         this.counter++
     },
     findFav: function() {
         var id = arguments[0];
         return this.favs.detect(function(d) { return d.sort ==id });
     },
     removeFav: function() {
         var efav = arguments[0];
         this.favs = this.favs.without(efav);
     },
     getNext: function() {
         //alert(this.counter+1);
         return this.counter-1;
     },
     clear: function() {
         for (var i=2; i<this.favs.length ;i++) {
             xfav = this.favs[i];
             xfav.url = null;
             xfav.title = "Lien";
             xfav.updateThumbs();
         }
         this.counter=0;
         this.favs = new Array();
     },
     size: function() {
         return this.favs.length;
     }
}

function favDetail() {
    detPos();
    Element.update("detcontent","<div id='favlarge' style='height:540px'></div>");
    for (var i=0;i<FRegistry.favs.length;i++) {
        FRegistry.favs[i].createBox("g","favlarge")
    }
    $("favlarge").appendChild(document.createElement("br"));
    //Element.update("detcontent",favlarge);
    Element.update("dettitle","Mes Favoris");
    Effect.Appear("detdiv");
}

function favMaxReached() {
    return (FRegistry.favs.length >= 30);
}
function handleMaxFavs() {
    if (favMaxReached()) {
        if ($('favaddsmall'))Element.hide("favaddsmall");
        if ($('favaddleft'))Element.hide("favaddleft");
    } else {
        if ($('favaddsmall'))Element.show("favaddsmall");
        if ($('favaddleft'))Element.show("favaddleft");
    }
}
function leftplus() {
    if (Element.visible("persobot")) {
        Element.hide('persobot');
        $("lplus").src = staticpath+"/img/plus.gif";
    } else {
        Element.show('persobot');
        $("lplus").src = staticpath+"/img/minus.gif";

    }

}
function leftadjust() {
    if ($('leftrel')) {
        lr = Element.getHeight('leftrel');
        if (lr < 910) $('leftrel').style.height="910px";
    }
}

