function setFontSize(f_disable) {
	var exists = false;
	for(var i=0; li=document.getElementsByTagName("link")[i]; i++) {
		if(li.getAttribute("rel").indexOf("style") != -1 && li.getAttribute("title")) {
			if(li.getAttribute("title").indexOf("bigfontsize") !=-1) {
				exists = 1;
				if(f_disable == void(0)) {
					f_disable = (li.disabled == true) ? false : true;
				}
				li.disabled = f_disable;
			}
		}
	}
	// Si le lien vers la css n'existe pas, on le cree
	if(!exists) {
		try {
			var link 	= document.createElement('link');
			link.rel 	= "stylesheet";
			link.type	= "text/css";
			link.href 	= "/css/bigfontsize.css";
			link.title	= "bigfontsize";
			document.body.parentNode.firstChild.appendChild(link);
			link.disabled = true;
		} catch(err) { alert(err); }
	}
}

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;
}

function hasAttribute(attribute) {
	var has=this.getAttribute(attribute);
	return (has==null) ? false : true;
}


/*  validate {{{ */
function validate(hidealert) {
	try {
		var argv = validate.arguments;
		var argc = argv.length;
		var str = "";
		var form_id = "";
		var min_reqs=max_reqs=null;
		if(!document.getElementsByTagName) {
			alert("Sorry! Your browser does not support the W3C HTML DOM!");
			return false;
		}
		if(argc == 2) form_id = argv[1];
		var forms = document.getElementsByTagName('form');
		for(var f=0; f<forms.length;f++) {
			if(form_id != '' && form_id != forms[f].id) continue;
			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";
						var label = document.getElementById('lbl_'+e[i].id);
						if(label) $(label).addClassName('error');
						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);
					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";
						var label = document.getElementById('lbl_'+e[i].id);
						if(label) $(label).addClassName('error');
					} else {
						var label = document.getElementById('lbl_'+e[i].id);
						if(label) $(label).addClassName('error');
					}
				}
			}
		}
		if (str != "" && str!=null) {
			if (hidealert == 1) {
				return false;
			} else {
				alert(str);
				return false;
			}
		}
		return true;
	} catch(err) {
		alert(err);
		return false;
	}
}
/*  }}} */

