function a(id) { return window.document.getElementById(id); }
function swap(id) { if(a(id).style.display == "block") { a(id).style.display = "none"; } else { a(id).style.display = "block"; } }
function hide(id) { a(id).style.display = "none"; }
function show(id) { a(id).style.display = "block"; }
function blank(url) { window.open('/thumb/?url='+url, 'rag_preview', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=400,height=300,left = 200,top = 100'); }
function imgreplace(url) { a('prodimg').src = url; }
//function imgreplace(url) { a('pimbgr').style.background = 'url('+url+') center center no-repeat'; }
function xmlGetObject() { xmlo=null; if (window.XMLHttpRequest) { xmlo = new XMLHttpRequest(); } else if(window.ActiveXObject) { xmlo = new ActiveXObject("Microsoft.XMLHTTP"); }; return xmlo; }
function xmlGet(elt,script) { var xhro = xmlGetObject(); if (xhro==null) return; xhro.open("GET", script, true); xhro.onreadystatechange = function() { if(xhro.readyState == 4) { elt.innerHTML=(xhro.responseText); }; }; xhro.send(null); }
function heartbeat() { var heart=new Date(); xmlGet(a('heartbeat'), '/heartbeat?'+heart.getTime()); setTimeout('heartbeat()', 45000); }

function addLoadListener(func) { // Adds onload event for any browser
    if (window.addEventListener) { window.addEventListener("load", func, false); }
    else if (document.addEventListener) { document.addEventListener("load", func, false); }
    else if (window.attachEvent) { window.attachEvent("onload", func); }
    else if (typeof window.onload != "function") { window.onload = func; }
    else { var oldonload = window.onload; window.onload = function() { oldonload(); func(); }; }
}

function setMyClassRemoveToOthers(me, parentElt, tagName, className) {
    var elts = a(parentElt).getElementsByTagName(tagName);
    var rexp = new RegExp(" "+className+"\\b");
    for (var i=0; i<elts.length; i++) {
        if(rexp.test(elts[i].className)) {
            elts[i].className = elts[i].className.replace(rexp, "");
        }
    }
    me.className += " "+className;
}

function kdogoto(c1, c2, c3, pr, p) {
    document.location.href = '/kdo?c1='+c1+'&c2='+c2+'&c3='+c3+'&pr='+pr+'&p='+p;
}
function kdogoto_ajax(c1, c2, c3, pr, p) {
    Modalbox.show('/kdo?ajax&c1='+c1+'&c2='+c2+'&c3='+c3+'&pr='+pr+'&p='+p, { title: 'Chargement...', width: 820, onShow: function() { window.scrollTo(0,0); $('MB_content').setStyle({ padding: 0 }); } });
}
function cgukdogoto() {
    document.location.href = '/kdo?cgu';
}
function cgukdogoto_ajax() {
    Modalbox.show('/kdo?ajax&cgu', { title: 'Chargement...', width: 820, onShow: function() { window.scrollTo(0,0); $('MB_content').setStyle({ padding: 0 }); } });
}

// Suckerfish - IE hack for pseudo-classes
// http://www.htmldog.com/articles/suckerfish/shoal/
function suckerfish(type, tag, parentId) {
	if (window.attachEvent) { window.attachEvent("onload", function() { var sfEls = (parentId==null) ? document.getElementsByTagName(tag) : document.getElementById(parentId).getElementsByTagName(tag); type(sfEls); }); }
}
// :focus
// modifié pour qu'un eventuel onfocus=/onblur= dans le markup fonctionne et ne soit pas écrasé
sfFocus = function(sfEls) {
    rexp = /(ichamp|iselect)/;
    for (var i=0; i<sfEls.length; i++) {
        if(rexp.test(sfEls[i].className)) {
            if(typeof sfEls[i].onfocus == "function") {
                var oldonfocus = sfEls[i].onfocus;
                sfEls[i].onfocus=function() { oldonfocus(); this.className+=" sffocus"; };
            } else {
                sfEls[i].onfocus=function() { this.className+=" sffocus"; };
            }
            if(typeof sfEls[i].onblur == "function") {
                var oldonblur = sfEls[i].onblur;
                sfEls[i].onblur=function() { oldonblur(); this.className=this.className.replace(new RegExp(" sffocus\\b"), ""); }
            } else {
                sfEls[i].onblur=function() { this.className=this.className.replace(new RegExp(" sffocus\\b"), ""); }
            }
        }
    }
}

suckerfish(sfFocus, 'INPUT');
suckerfish(sfFocus, 'TEXTAREA');
addLoadListener(heartbeat);

function rolltip_show() {
    $('tiptoroll').morph('height: ' + (20+$('zetip_txt_toshow').getNotAbsDimensions().height) + 'px;', { duration: 0.5 });
    $('zetip_txt').hide();
    $('zetip_rolliner').hide();
    //$('zetip_txt_toshow').show();
    $('zetip_txt_toshow').appear({ duration: 0.5 });
}

function rolltip_hide() {
    $('tiptoroll').morph('height: 44px;'/*'height: 60px;'*/, { duration: 0.5 });
    $('zetip_txt').show();
    $('zetip_rolliner').show();
    $('zetip_txt_toshow').hide();
    //$('zetip_txt_toshow').fade({ duration: 0.5 });
}

function lostidpost(wat) {
    new Ajax.Request('/client/lostid?ajax&wat='+wat, {
        method: 'post',
        parameters: $('lostidform').serialize(true),
        onSuccess: function(transport) {
            //$('MB_content').update(transport.responseText);
            Modalbox.show(transport.responseText);
            //Modalbox.resizeToContent();
            //Modalbox._setFocus();
        }
    });
}

function envoyerpost(url) {
    new Ajax.Request('/envoyer?ajax&url='+url, {
        method: 'post',
        parameters: $('envoyerfriend').serialize(true),
        onSuccess: function(transport) {
            //$('MB_content').update(transport.responseText);
            Modalbox.show(transport.responseText);
            //Modalbox.resizeToContent();
            //Modalbox._setFocus();
        }
    });
}


function avertirpost(ref) {
    new Ajax.Request('/avertir?ajax&ref='+ref, {
        method: 'post',
        parameters: $('avertirdispo').serialize(true),
        onSuccess: function(transport) {
            //$('MB_content').update(transport.responseText);
            Modalbox.show(transport.responseText);
            //Modalbox.resizeToContent();
            //Modalbox._setFocus();
        }
    });
}

function feedbackpost() {
    new Ajax.Request('/feedback?ajax', {
        method: 'post',
        parameters: $('feedbackform').serialize(true),
        onSuccess: function(transport) {
            //$('MB_content').update(transport.responseText);
            Modalbox.show(transport.responseText);
            //Modalbox.resizeToContent();
            //Modalbox._setFocus();
        }
    });
}


var ResizingTextArea = Class.create();

ResizingTextArea.prototype = {
    defaultRows: 1,

    initialize: function(field)
    {
        this.defaultRows = Math.max(field.rows, 1);
        this.resizeNeeded = this.resizeNeeded.bindAsEventListener(this);
        Event.observe(field, "click", this.resizeNeeded);
        Event.observe(field, "keyup", this.resizeNeeded);
    },

    resizeNeeded: function(event)
    {
        var t = Event.element(event);
        var lines = t.value.split('\n');
        var newRows = lines.length + 1;
        var oldRows = t.rows;
        for (var i = 0; i < lines.length; i++)
        {
            var line = lines[i];
            if (line.length >= t.cols) newRows += Math.floor(line.length / t.cols);
        }
        if (newRows > t.rows) t.rows = newRows;
        if (newRows < t.rows) t.rows = Math.max(this.defaultRows, newRows);
    }
}
