function replaceDivClass(origin,dcname,dcnewname)
{
//this funtion look for an element and there  try the aprent element till it find a parent with the class we want to replace.If no parent is found after 10 loop, it breaks.
var elem=origin;
var f=0;
while (elem.className!=dcname)
    {
    f=f+1;
    elem = elem.parentNode;
        if (f==10)
        {
        break;
        }
    }
if (f!=10)
    {
    elem.className=dcnewname;
    }
}

function addArrow(sflinkid,nb)
{
//this function change the sytle of the seocnday filters list, add a specific arrow next to the targetted link (sflinkid)
var targlink=document.getElementById(sflinkid);
targlink.className="unstyled";
document.getElementById("afupdate").className="ajaxdiv";
replaceDivClass(document.getElementById("sf_link1"),"f_col_bb","f_col_nbb");
changeClass("open");
if (document.getElementById("extra_secfilter"))
    {
    document.getElementById("extra_secfilter").style.display="none";
    }
document.getElementById("hide_exp").className="show";
var targul=targlink.parentNode.parentNode;
targul.style.background='url(http://r6.kelkoo.com/buttons/secondaryExpand_helpArrow_0'+nb+'.gif) 0px 9px  no-repeat';
targul.style.paddingLeft='21px';
}

function divClose(div)
{
//this function reinitialise the filters.It closes the expanded layer and then but everything back to its originalstate
if (document.getElementById(div).className=="ajaxdiv")
{
    document.getElementById(div).className="hide";
    document.getElementById(div).innerHTML="";
    changeClass("reinit");
    //now we want all the list all/ hide all links to be back to their original state, and have all columns closed(class f_col_bb)
    var p=document.getElementById('adv_filter');
    if (!p) return;
    var q = p.getElementsByTagName('td');
    for (var k=0;k<q.length;k++)
    {
    var r = q[k].getElementsByTagName('li');
    for (var l=0;l<r.length;l++)
    {
        if (r[l].className=="seeall_li")
        {
            w=r[l].getElementsByTagName('span');
            if (w[0].className!="show" || w[0].id=="sec_fil_see")
            {
            
            w[0].className="show";
            w[1].className="hide";
            replaceDivClass(w[0],"f_col_nbb","f_col_bb");
            }
        }
    }
    }
    //for secondary filters
    if(document.getElementById("sf_link1"))
    {
        replaceDivClass(document.getElementById("sf_link1"),"f_col_nbb","f_col_bb");
        var s = p.getElementsByTagName('a');
        for (var g=0;g<s.length;g++)
        {
            if (s[g].className=='unstyled')
            {
            s[g].className='grey';
            }
        }
    }
    
}
}
function tdswitch(el)
{
//this function show and hide "list all" links
var i=0;
var a="show"+el;
var b="hide"+el;
var showspan = document.getElementById(a);
var hidespan = document.getElementById(b);
if (showspan.className=="show")
{
document.getElementById("afupdate").className="ajaxdiv";
replaceDivClass(document.getElementById(a),"f_col_bb","f_col_nbb");
showspan.className="hide";
hidespan.className="show";
}
else
{
document.getElementById("afupdate").innerHTML="";
document.getElementById("afupdate").className="hide";
replaceDivClass(document.getElementById(a),"f_col_nbb","f_col_bb");
showspan.className="show";
hidespan.className="hide";
}
}
function changeClass(expfilstate)
{
//funtion dedicated to manage the state of the secondary filters.when there is lots of secondary filters, there isa see/hide all span.This funtion display the hidden filters in case of click on the "list all" link for secondary filters, or in the case a secondary filter is selected, it display hidden filters and hide the listall/hide spans to display another list element ""hide" whcih can close the expanded layer and  remove the arrow.
if(document.getElementById("hide_exp"))
{
document.getElementById("hide_exp").className="hide";
}
if (expfilstate=="normal")
{
    var x=document.getElementById('adv_filter');
    if (!x) return;
    var y = x.getElementsByTagName('td');
    for (var i=0;i<y.length;i++)
    {
        var z = y[i].getElementsByTagName('li');
        for (var j=0;j<z.length;j++)
        {
            if (z[j].className=="hide")
            {
            z[j].className="show";
            }
            else if (z[j].className=="show" )
            {
            z[j].className="hide";
            }
        }
    }
    if(document.getElementById("extra_secfilter"))
    {
        m=document.getElementById('sec_fil_see');
        n=document.getElementById('sec_fil_hid');
        if (m.className=='show' )
        {
        m.className='hide';
        n.className='show';
        }
        else
        {
        m.className='show';
        n.className='hide';
        }
    }
}

if (expfilstate=="open")
{
    var x=document.getElementById('adv_filter');
    if (!x) return;
    var y = x.getElementsByTagName('td');
    for (var i=0;i<y.length;i++)
    {
        var z = y[i].getElementsByTagName('li');
        for (var j=0;j<z.length;j++)
        {
        if (z[j].className=="hide" && z[j].id!="extra_secfilter")
        {
        z[j].className="show";
        }
        }
    }
    if(document.getElementById("extra_secfilter"))
    {
        m=document.getElementById('sec_fil_see');
        n=document.getElementById('sec_fil_hid');
        m.className='show';
        n.className='hide';
    }
}

if (expfilstate=="reinit")
{
  if(document.getElementById("sf_link1"))
  {
    if(document.getElementById("extra_secfilter"))
    {
    var x=document.getElementById('adv_filter');
    if (!x) return;
    var y = x.getElementsByTagName('td');
    for (var i=0;i<y.length;i++)
    {
        var z = y[i].getElementsByTagName('li');
        for (var j=0;j<z.length;j++)
        {
            if (z[j].id=="extra_secfilter")
            {
            z[j].className="seeall_li";
            //var parentlist= z[j].parentNode;
            }
            if (z[j].className=="show" )
            {
            z[j].className="hide";
            }
        }
    }
    document.getElementById("hide_exp").className="hide";
    var origintarget=document.getElementById("extra_secfilter");
    origintarget.style.display="inline";
    var ul_secfil=origintarget.parentNode;
    m=document.getElementById('sec_fil_see');
    n=document.getElementById('sec_fil_hid');
    m.className='show';
    n.className='hide';
    }
    else
    {
    
    var origintarget=document.getElementById("sf_link1");
    var ul_secfil=origintarget.parentNode.parentNode;
    }
    ul_secfil.style.background="none";
    ul_secfil.style.padding="5px 0px 8px 5px";
    }
 }
}

function silentUpdateWithImage(paramURL,loadingtext,loadingimg)
{
var silentURL=paramURL;
document.getElementById("afupdate").innerHTML="<div id='loading_anim'>"+loadingtext+"<br/>"+loadingimg+"</div>" ;
kk_silent_update(silentURL);
}
function silentUpdate(paramURL)
{
var silentURL=paramURL;
kk_silent_update(silentURL);
}


function kk_silent_update_callback(response) {
if (response.readyState == 4) {
eval(response.responseText);
}
else
{
document.getElementById("afupdate").innerHTML="<!--ERROR TRACE : pb with this request."+response.readyState+". The div can t be updated-->";
//alert('pb with this request.'+response.readyState+'. The div can t be updated');
}
}

function kk_silent_update(url) {
// Get the yahoo request object
var req_o = ygConn.getObject()
ygConn.http.asyncRequest(req_o,'GET',url,false,kk_silent_update_callback);
}
