/* "Gestionnaire" d'événements */
// http://www.scottandrew.com/weblog/articles/cbs-events
function addEvent(obj, evType, fn, useCapture)
{
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be attached");
    return false;
  }
}

function removeEvent(obj, evType, fn, useCapture)
{
  if (obj.removeEventListener){
    obj.removeEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.detachEvent){
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
    return false;
  }
}
/* Fin "gestionnaire" d'événements */

/* Formulaire multicritères */
function verifMulticriteresForm()
{
    /* var request = 'http://www.salonsparis.ccip.fr/index.asp?idmetapage=4&t=multi'; */
    var request = 'index.asp?idmetapage=4&t=multi';
    var inputs   = new Array(3);
    inputs[0]     = 'newsecteur';
    inputs[1]     = 'newacces';
    inputs[2]     = 'newdate';
    inputs[3]     = 'neworganisateur';
    for(var i=0; i < inputs.length; i++) {
        var name = inputs[i];
        request += ('&'+name.replace(/new/, '')+'=');
        if(document.getElementById(name).value != '') {
            var optionvalue = document.getElementById(name).value;
            var params = optionvalue.split('&v=');
            request += params[params.length-1];
        }
    }
    request += '&parcs1=';
    if(document.getElementById('newlieux2').value != '') {
        var optionvalue = document.getElementById('newlieux2').value;
        var params       = optionvalue.split('&v=');
        request          += params[params.length-1];
    }
    document.getElementById('container').innerHTML += request;
    
	document.location = request;
}

function createMulticriteresForm(obj)
{
    if(document.getElementById(obj)) {
        var txt = '<h4>'+document.getElementById(obj).getElementsByTagName('h4')[0].innerHTML+' :</h4>';
        txt += '<form name="multi" id="multi">';

        txt += createSimpleSelect('secteur','h5');
        txt += createSimpleSelect('acces','h5');
        txt += createSimpleSelect('date','h5');
        txt += createSimpleSelect('organisateur','h5');
        txt += createAdvancedSelect('lieux','h3','p','h4');

        txt += '<div><input type="button" value="Rechercher" onclick="verifMulticriteresForm();"/></div></form>';
        document.getElementById(obj).innerHTML = txt;
    }
}

function createSimpleSelect(obj,tag)
{
    if(document.getElementById(obj)) {
        var tags       = document.getElementById(obj).getElementsByTagName('a');
        var titre = document.getElementById(obj).getElementsByTagName(tag)[0];
        titre.removeChild(titre.getElementsByTagName('span')[0]);
        var maintext = titre.innerHTML;

        var txt         = '<p><label for="new'+obj+'">'+maintext+'</label><select id="new'+obj+'" onchange="EcrireCookie(\''+obj+'\',this.value);"><option class="first" value="">'+maintext+'</option>';

        for(var i=0; i < tags.length; i++) {
			if (LireCookie(obj)==tags[i]) {
				txt += '<option value="'+tags[i]+'" selected>'+tags[i].innerHTML+'</option>';
			} else {
				txt += '<option value="'+tags[i]+'">'+tags[i].innerHTML+'</option>';
			}
        }

        txt += '</select></p>';
        return txt;
    }
}

function createAdvancedSelect(obj,maincontent,maintag,subtag)
{
    if(document.getElementById(obj)) {
        var tags       = document.getElementById(obj).getElementsByTagName('div');
        var maintext = document.getElementById(obj).getElementsByTagName(maintag)[0].innerHTML;
        var txt         = '<p><select id="new'+obj+'2" onchange="EcrireCookie(\''+obj+'\',this.value);"><option class="first" value="">'+maintext+'</option>';

        for(var j=0; j < tags.length; j++) {
        var subtags = tags[j].getElementsByTagName('a');
        var subtext = tags[j].getElementsByTagName(subtag)[0].innerHTML;

        txt += '<optgroup label="'+subtext+'">';

        for(var i=0; i < subtags.length; i++) {
			if (LireCookie(obj)==subtags[i]) {
				txt += '<option value="'+subtags[i]+'" selected>'+subtags[i].innerHTML+'</option>';
			} else {
				txt += '<option value="'+subtags[i]+'">'+subtags[i].innerHTML+'</option>';
			}
        }

        txt += '</optgroup>';
        }

        txt += '</select></p>';

        return txt;
    }
}
/* Fin Formulaire multicritères */

function createSimpleSelectRedirection(obj,tag)
{
    if(document.getElementById(obj)) {
        var tags       = document.getElementById(obj).getElementsByTagName('a');
        var maintext = document.getElementById(obj).getElementsByTagName(tag)[0].innerHTML;

        var txt = '<'+tag+'>'+maintext+'</'+tag+'>';
        txt += '<select id="new'+obj+'"><option class="first">'+maintext+'</option>';

        for(var i=0; i < tags.length; i++) {
        txt += '<option value="'+tags[i]+'">'+tags[i].innerHTML+'</option>';
        }

        txt += '</select>';

        document.getElementById(obj).innerHTML = txt;

        addEvent(document.getElementById('new'+obj),'change', function() { window.location = document.getElementById('new'+obj).value; } );
    }
}

function createAdvancedSelectRedirection(obj,maincontent,maintag,subtag)
{
    if(document.getElementById(obj)) {
        var tags       = document.getElementById(obj).getElementsByTagName('div');
        var maintext = document.getElementById(obj).getElementsByTagName(maintag)[0].innerHTML;
        var txt         = '<'+maincontent+'>'+document.getElementById(obj).getElementsByTagName(maincontent)[0].innerHTML+'</'+maincontent+'>';
        txt             += '<select id="new'+obj+'"><option class="first">'+maintext+'</option>';

        for(var j=0; j < tags.length; j++) {
        var subtags = tags[j].getElementsByTagName('a');
        var subtext = tags[j].getElementsByTagName(subtag)[0].innerHTML;

        txt += '<optgroup label="'+subtext+'">';

        for(var i=0; i < subtags.length; i++) {
            txt += '<option value="'+subtags[i]+'">'+subtags[i].innerHTML+'</option>';
        }

        txt += '</optgroup>';
        }

        txt += '</select>';

        document.getElementById(obj).innerHTML = txt;

        addEvent(document.getElementById('new'+obj),'change', function() { window.location = document.getElementById('new'+obj).value; } );
    }
}

function launch() {
    // Suppression des liens d'évitements
    if(document.getElementById('speedlinks')) {
        var Parent = document.getElementById('speedlinks').parentNode;
        Parent.removeChild(document.getElementById('speedlinks'));
    }

    // Création du formulaire multicritères
    createMulticriteresForm('multicriteres');

    // Création des outils de sélection avec redirection automatique si nécessaire
    createSimpleSelectRedirection('manifestations','h3');
    createAdvancedSelectRedirection('lieux','h3','p','h4');
}

// Initialise l'ensemble des intéractions
addEvent(window,'load',launch);