var url = "recruteHome.ajax"

var FAMILLE = "famille";
var SOUSFAMILLE = "ssFamille"

var VALIDE_RECHERCHE = "validerRecherche";
var FORM = "rechercheOffre";

var URLRflex;

// Sur chargement du formulaire on evalue les combo qui doivent disabled
function onLoad()
{
    evaluateCombos([FAMILLE, SOUSFAMILLE]);
    evaluateValider();
}

function evaluateCombos(params)
{
    for (var i = 0; i < params.length; i++)
    {
        evaluateCombo(params[i]);
    }
}

function evaluateCombo(comboId)
{
    var target = $(comboId);
    if (target != null && target.options.length > 1) {
        target.disabled = false;
    }
}

// Si le formulaire est valide il libére le bouton 
function evaluateValider()
{
    function selectionDone(param) {
        var target = $(param);
        var result = false;
    	if (target != null && target.options.selectedIndex != 0) {
    		result = true;
    	}
        return result
    }
    ;
	
    /*if (selectionDone(FAMILLE)) {   
        $(VALIDE_RECHERCHE).disabled = false;
        }   
    else {
    	$(VALIDE_RECHERCHE).disabled = true;
    }*/
}

// Recherche d'une offre

//Evenement sur changement de la famille
function familleChanged()
{
	$(VALIDE_RECHERCHE).disabled = true;
    deSelect([SOUSFAMILLE]);
    evaluateValider();
    loadSousFamilles($F(FAMILLE));
}

function deSelect(params)
{
    for (var i = 0; i < params.length; i++)
    {
        deselectAndPauseCombo(params[i]);
    }
}

// Fonction qui déselectionne la combo et la met en attente
function deselectAndPauseCombo(comboId)
{
    var target = $(comboId);
    // vidage de la combobox
    target.options.length = 1;
    target.disabled = true;
}

// Charge la sous famille de metiers correspondante à famille choisie
function loadSousFamilles(famille)
{
    var pars = "method=getSousFamilles&codeFamille=" + famille;
    var myAjax = new Ajax.Request(
        url,
    {
        method: 'get',
        parameters: pars,
        onComplete: loadFromXml
    });
    $(VALIDE_RECHERCHE).disabled = false;
}

// Parse le XML
function loadFromXml(originalRequest)
{
    //put returned XML in the textarea
    result = originalRequest.responseText;    
    //parsing XML
    try {
        var xmlError
        var xmlDoc = new XMLDoc(result, xmlError);
        var action = xmlDoc.docNode;
    }
    catch (e) {
        alert('exception sur parseXML ' + result + ' ' + e);
        return;
    }
    //$(FORM).target='Rflex';
    populateComboBoxTarget(action);
}


// Charge le combobox avec les sous familles

/* Obs: Struture du XML
 *
 * <values type="typeRetour">
 * <value>Libelle</value>
 * <value>Code</value>
 * <value>Libelle</value>
 * <value>Code</value>
 * ....
 */
function populateComboBoxTarget(node)
{
    id = node.getAttribute("type");
    target = $(id);    
    // vidage de la combobox
    target.options.length = 0;

    // remplissage dynamique de la combobox
    var values = node.getElements("value");

    var i = 0;
    for (j = 0; j < values.length; j++) {
        var value = values[j];
        var tex = urldecode(value.getText());
        value = values[j+1];
        var val = urldecode(value.getText());
        target.options[i] = new Option(tex, val);
        i=i+1;
        j=j+1;
    }
    
	evaluateCombos([FAMILLE, SOUSFAMILLE]);
    //Si un seul élément, on le sélectionne et on appelle l'évènement de modification de l'élément
    if (values.length == 2) {
        target.options.selectedIndex = 1;
        try {
            eval(id + 'Changed()');
        } catch(ex) {
            //On peut avoir une exception si la méthode n'existe pas
        }
    }
    //On évalue la possibilité d'utiliser le bouton valider
    evaluateValider();

}

function urldecode(ch) {
    ch = ch.replace(/[+]/g, " ")
    return unescape(ch)
}

function openRecherche(){
	newWindowRflex = window.open('', "Rflex", "width=900, height=600, toolbar=1, location=1, directories=1, status=1, menubar=1, scrollbars=1, resizable=1");
	if (window.focus) {newWindowRflex.focus()}
	return false;
}