
var EXPANDI = {
	version: '1.0',			// core version
	IE: false,
	NS6: false,
	
	// champs obligatoires
	RequiredFields: [],
	
	CheckRequiredFields: function() {
		var ret = true;
		var tMsg='Les champs suivants sont obligatoires:\n\n';
		
		var frm = this.RequiredFields[0].form;
		
		for(i=0; i<this.RequiredFields.length; i++) {
			var elem = $(this.RequiredFields[i].field);
			
			// valid elem
			if (elem) {
				var msg = this.RequiredFields[i].msg;
				var linkTo = $(this.RequiredFields[i].linkTo);
				var len = this.RequiredFields[i].len;
				var IsEmail = this.RequiredFields[i].IsEmail;
				//var IsNumber = this.RequiredFields[i].IsNumber;
				
				if (linkTo) {
					if (linkTo.value != elem.value) {
						tMsg = msg;
						ret = false;
					}
				}
				else {
					if (elem.type) {
						switch(elem.type) {
							case 'radio':
								if (len) {
									e = eval("document." + frm + "." + elem.id);
									var found = false;
									
									for(nl=0; nl<e.length; nl++) {
										if (e[nl].checked) {
											found= true;	
											break;
										}
									}
									
									if (!found) {
										tMsg += msg + '\n';
										ret = false;
									}
								}
								break;
								
								
							case 'checkbox':
								if (!elem.checked) {
									tMsg += msg + '\n';
									ret = false;
								}
								
								break;
								
							
							case 'textarea':
							case 'text':
								if (IsEmail) {
									if (!this.ValidEmail(elem.value)) {
										tMsg += msg + '\n';
										ret = false;
										break;
									}
								}
								/*
								if (IsNumber) {
									if (!this.IsNumeric(elem.value)) {
										tMsg += msg + '\n';
										ret = false;
										break;
									}
								}
								*/
							case 'password':
								if (elem.value == '' ) {
									tMsg += msg + '\n';
									ret = false;
								}
								break;
								
							case 'select-one':
								if (elem.options) {
									if (elem.options[elem.options.selectedIndex].value == '') {
										tMsg += msg + '\n';
										ret = false;
									}
								}
								break;
							
							default: break;
								
						}
					}
				}
				
				
			}
		}
		
		// si erreur alors affiche alerte
		if (!ret) {	
			alert(tMsg);	
			tMsg='';
		}
		
		
		return ret;
	},
	
	// Is numeric
	/*
	IsNumeric: function (sText) {
		var ValidChars = " 0123456789.";
		var IsNumber=true;
		var Char;
		
		for (i = 0; i < sText.length && IsNumber == true; i++) { 
			Char = sText.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) {
				IsNumber = false;
			}
		}
		
		return IsNumber;	
	},
	*/
	
	
	// message de confirmation JS
	Confirm: function(msg) {
		return(confirm(msg));
	},
		
	// email validity
	ValidEmail: function(em) {
		var str=em ;
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i ;
		
		if (filter.test(str))
			return true ;
		else{
			return false ;
		}
		return (false) ;
	},
		
	
	// Affiche popup
	PopUp: function (url, nm, arg) {
		var nw = '';
		nw = window.open(url, nm, arg);
		if (nw) {
			if (window.focus) {
				nw.focus();	
			}
		}
		return false;
	},


	// verifie la presence de popup blocker
	Blocker: function () {
		var mine = window.open('','','width=1,height=1,left=0,top=0,scrollbars=no');
		if(mine)
			var popUpsBlocked = false;
		else
			var popUpsBlocked = true;
			
		mine.close()	;
		return popUpsBlocked;
	}
};