var lastElementId = '';
var statut = '';

/*window.onload = function() {
	try { scroller.init(); } catch(err) { }
	new Ajax.Autocompleter('search_AC', 'update_search', '/auto_complete.php', {method: 'post', paramName: 'search_AC'});
	// on met les elements en haut pour ne pas que ca bug quand on le descend, on doit attendre que ca soit bien loadé sinon ca plantouille
	var elements = new Array('div_panier', 'div_inscription', 'div_identification', 'div_newsletter');
	for(k in elements) if(k <= 3) Effect.SlideUp($(elements[k]), {duration:1});
}*/

function displayMenu(id, status) {
	try {
		Zmenu = document.getElementById(id);
		if ( ! Zmenu) return false;
		element = Zmenu.getElementsByTagName('span');
		if(element[0]) element[0].style.display = status;
	} catch(e) {}
}

function Down(id, precedingElement, suppl_class){
	try {
		div_id = 'div_'+id;
		dt_id  = 'dt_'+id;

		if(lastElementId != id && $('div_'+lastElementId)) {
			Element.addClassName($('div_'+lastElementId), 'invisible');
			Element.removeClassName($('dt_'+lastElementId), 'selected');
			Element.addClassName($('dt_'+lastElementId), 'unselected');
			if($('dt_'+precedingElement) && precedingElement != '') {
				Element.removeClassName($('dt_'+precedingElement), 'precedingElement');
			}
			if(suppl_class != '') {
				Element.removeClassName($(dt_id), suppl_class);
			}
		}
		if(lastElementId == id && $('div_'+lastElementId) && statut == 'down') {
			Effect.SlideUp($('div_'+lastElementId), {duration:1});
			statut = 'up';
			return false;
		}
		lastElementId = id;
		if(Element.hasClassName($(div_id), 'invisible')) {
			Element.removeClassName($(div_id), 'invisible');
			Element.addClassName($(dt_id), 'selected');
			Element.removeClassName($(dt_id), 'unselected');
		}

		Element.addClassName($(div_id), 'visible');
		Element.addClassName($(dt_id), 'selected');
		if($('dt_'+precedingElement) && precedingElement != '') {
			Element.addClassName($('dt_'+precedingElement), 'precedingElement');
		}
		if(suppl_class != '') {
			Element.addClassName($(dt_id), suppl_class);
		}
		Effect.SlideDown($(div_id), {duration:1, scaleFrom:0, scaleTo:100});
		statut = 'down';
	} catch(e) { alert(e); }
}


function Request(url, form_id) {
	try {
		new Ajax.Request(
		url,
		{
			method: 'post'
			, parameters: Form.serialize(form_id)
			, onLoading: function() { Element.addClassName($('login_message'), 'loading'); $('login_message').innerHTML = 'Veuillez patienter ...'; }
			, onComplete: function(resp) {
				var reponse = resp.responseXML.getElementsByTagName('login');
/*				if( ! reponse.length ) alert('pas de rep');*/
				reponse = reponse[0];
				var msg = '';
				$('login_message').innerHTML = '';
				switch(reponse.getAttribute('status')) {
					case '0': 
						msg = 'Login ou mot de passe erroné';
						if($('login_message')) {
							Element.removeClassName($('login_message'), 'loading'); 
							Element.addClassName($('login_message'), 'login_error'); 
							$('login_message').innerHTML = msg;
						} else { alert(msg); }
						break;
					case '1': 
						msg = 'Pas de profil défini';
						if($('login_message')) {
							Element.removeClassName($('login_message'), 'loading'); 
							Element.addClassName($('login_message'), 'login_error');
							$('login_message').innerHTML = msg;
						} else { alert(msg); }
						break;
					case '2': 
						msg = "Ce compte n'a pas encore été validé";
						if($('login_message')) {
							Element.removeClassName($('login_message'), 'loading'); 
							Element.addClassName($('login_message'), 'login_error');
							$('login_message').innerHTML = msg 
						} else { alert(msg); }
						break;
					case '3': 
						msg = "Redirection vers l'espace " + reponse.getAttribute('espace') + " en cours ...";
						Element.addClassName($('login_message'), 'login_message'); 
						if($('login_message')) { $('login_message').innerHTML = msg } else { alert(msg); }
						window.location = reponse.getAttribute('redirect'); 
						break;
				}
			}
		});
		return false;
	} catch(err) { alert(err); }
}

function fill(champ, valeur) {
	if( ! $(champ) ) return false;
	$(champ).value = valeur;
	return false;
}

function resetVal(id, val) { if($(id) && $(id).value == val) $(id).value = ''; }

function menuTop() {
    Zmenu = document.getElementById('menu');
    if  (Zmenu) {
        LI = Zmenu.getElementsByTagName('li');
        n = LI.length;

        for(i=0; i<n; i++) {
                LI[i].onmouseover = function() {
                        OL = this.getElementsByTagName('ol');
                        if(OL[0]){
                            OL[0].style.display = 'block';
                        }
                }
                LI[i].onmouseout = function(){
                        OL = this.getElementsByTagName('ol');
                        if(OL[0]){
                            OL[0].style.display = 'none';
                        }
                }
        }
		/*for(i=0; i<n; i++) {
                LI[i].onmouseover = function() {
                        SPAN = this.getElementsByTagName('span');
                        if(SPAN[0]){
                            SPAN[0].style.backgroundColor = '#FCD90B';
							SPAN[0].style.fontWeight = 'bold';
							SPAN[0].style.paddingLeft = '3px';
							SPAN[0].style.paddingRight = '3px';
                        }
                }
                LI[i].onmouseout = function(){
                        SPAN = this.getElementsByTagName('span');
                        if(SPAN[0]){
                            SPAN[0].style.backgroundColor = 'white';
							SPAN[0].style.fontWeight = 'normal';
							SPAN[0].style.paddingLeft = '0';
							SPAN[0].style.paddingRight = '0';
                        }
                }
		}*/
    }
}
function validateGetValueOf(o) {
    var value="";
    if(typeof(o)=="object") {
        switch(o.type) {
            case "select":
                var i=o.options.SelectedIndex;
            value=(i!=-1) ? o.options[i].value : "";
            break;
            case "chackbox":
                case "radio":
                case "input":
                case "textarea":
                case "file":
            default:
                return o.value;
        }
    }
    return value;
}

/* Quand est-ce que microsoft supportera le DOM corectement ? */
function hasAttribute(attribute) {
    var has=this.getAttribute(attribute);
    return (has==null) ? false : true;
}

function validate(hidealert) {
    var argv = validate.arguments;
    var argc = argv.length; 
    var str = "";
    var min_reqs=max_reqs=null;
    if(!document.getElementsByTagName) {
        alert("Sorry! Your browser does not support the W3C HTML DOM!");
        return false;
    }
    var forms = document.getElementsByTagName('form');
    for(var f=0; f<forms.length;f++) {
        var e=forms[f].elements;
        for(var i = 0; i < e.length; i++) {
            if(!e[i].hasAttribute) e[i].hasAttribute=hasAttribute;
            if(!e[i].hasAttribute('pattern')) continue;
            var pattern = new RegExp(e[i].getAttribute('pattern'));
            var value = validateGetValueOf(e[i]);
            if (pattern != '/null/') {
                var offendingChar = value.match(pattern);
                if(offendingChar == null) {
                    str+= (e[i].hasAttribute('errorMsg')) ?
                        e[i].getAttribute('errorMsg') + "\n" :
                        "Parse error in form ! --"+e[i].name+"\n";
                    e[i].className='inputError';    
                    continue;
                }
                min_reqs= (e[i].hasAttribute('min')) ? e[i].getAttribute('min') : "";
                max_reqs= (e[i].hasAttribute('max')) ? e[i].getAttribute('max') : "";
                if(typeof(e[min_reqs])=="object")
                    min_reqs=validateGetValueOf(e[min_reqs]);
                if(typeof(e[max_reqs])=="object")
                    min_reqs=validateGetValueOf(e[max_reqs]);
                if(min_reqs!="") min_reqs=parseFloat(min_reqs);
                if(max_reqs!="") max_reqs=parseFloat(max_reqs);
                //str+="["+min_reqs+"]["+value+"]["+max_reqs+"]\n";
                if ((min_reqs!="" && value < min_reqs) || (max_reqs!="" && value > max_reqs)) {
                    str+= (e[i].hasAttribute('MinMaxerrorMsg')) ?
                        e[i].getAttribute('MinMaxerrorMsg') + "\n" :
                        "Parse error in form : "+e[i].name +": "+min_reqs+"<="+value+"<="+max_reqs+"\n";
                    e[i].className='inputError';
                } else{
                    if(e[i].getAttribute('type') != 'checkbox') e[i].className='inputValid';
                }
            }
        }
    }
    if (str != "" && str!=null) {
        if (hidealert == 1) {
            return false;
        } else {
            alert(str);
            return false;
        }
    } else {
        if(argc == 3 && argv[0].toLowerCase() == 'checkpass') {
            if(checkPass(argv[1], argv[2]) == false) {
                document.getElementById(argv[1]).className = 'inputError';
                document.getElementById(argv[2]).className = 'inputError';
                //alert((document.getElementById(argv[1]).hasAttribute('errorMsg')) ?  document.getElementById(argv[1]).getAttribute('errorMsg') : "Please enter the same passwords");
                alert("Please enter the same passwords");
                return false;
            }
        }
        return true;
    }
}

function moveOption(srcSelect, destSelect, buttonToDisable, buttonToEnable) {
    var src = document.getElementById(srcSelect);
    if(src.length && src.options.selectedIndex >= 0) {
        var dest = document.getElementById(destSelect);
        if(dest.length == 1 && dest.options[0].value == '0') { dest.length = 0; }
        while (src.options.selectedIndex >= 0) {
            index = src.options.selectedIndex;
            var opt = document.createElement('option');
            opt.id = src.options[src.selectedIndex].value;
            opt.value = src.options[src.selectedIndex].value;
            opt.text = src.options[src.selectedIndex].text;
            opt.className = src.options[src.selectedIndex].className;
            (dest.options.add) ? dest.options.add(opt) : dest.add(opt, null);
            src.options[index]=null;
            if(src.length == 0) {
                src.options[0] = new Option('No item', '0');
                document.getElementById(buttonToDisable).disabled = true;
            } else {
                document.getElementById(buttonToEnable).disabled = false;
            }
            document.getElementById(buttonToEnable).disabled = false;
        }
    }
}

function FillAllOptions(SelectName) {
    try {
        var obj = document.getElementById(SelectName);
        var length = obj.length;
        for (var i = 0;  i < length ; i++) {
            obj[i].selected = true;
        }
    } catch(e) {
        alert(e);
    }
}

function checkPass(firstPass, SecPass) {
    return (document.getElementById(firstPass).value  != '' && document.getElementById(firstPass).value == document.getElementById(SecPass).value ? true : false );
}

function enableCheckboxes(editForm) {
    var e= document.getElementById(editForm);
    var forms = document.getElementsByTagName('form');
    var f=forms[editForm].elements;
    for(var i = 0; i < f.length; i++) {
        if(f[i].getAttribute('type') == 'checkbox' && f[i].getAttribute('disabled') == 'true') {
            f[i].disabled = false;
        }
    }
}

function debug(obj) { var str = ""; for (k in obj) { str += k + " = " + obj[k]+ "<br/>"; } var div = document.getElementById('debug'); div.innerHTML = str; }
