var config = {
	Browser : { IE : !!window.attachEvent || false },	
	get_head : function(){var doc_head = document.getElementsByTagName('head').item(0);return doc_head;},	
	get_body : function(){var doc_body = document.getElementsByTagName('body').item(0);return doc_body;}
}
stopEvent = function(eventstop){!config.Browser.IE?eventstop.preventDefault():eventstop.returnValue=false;}
addListener = function ( element , baseName , handler ){
	!config.Browser.IE?element.addEventListener(baseName, handler , false ):element.attachEvent('on' + baseName, handler );	
}	
removeListener = function ( element , baseName , handler ){
	!config.Browser.IE?element.removeEventListener(baseName, handler , false ):element.detachEvent('on' + baseName, handler );	
}

$ = function(id){return document.getElementById(id);}
$$ = function(name){return document.getElementsByName(name);}
$$$ = function(tag){return document.getElementsByTagName(tag);}

noCopie = function(id){
	addListener($(id) , 'keypress', function(e){stopCopy(e);} );
	stopCopy = function(e){
		e = e || window.event;
		var isCtrl = e.ctrlKey;
		var element = e.target || e.srcElement;
		var Code = e.keyCode || e.which;
		if((isCtrl)&&(Code == 118)){
			stopEvent(e);
		}
	}
}

noClickPliz = function(id){
	addListener($(id) , 'mousedown', function(e){stopClick(e);} );
	stopClick= function(e){
		e = e || window.event;
		var element = e.target || e.srcElement;
		if(e.button == 2){
			//alert('ici');
			stopEvent(e);
			return false;
		}
	}
	
}
restrict = function(id,plage){
	addListener($(id) , 'keypress', function(e){restrictValue(e,plage);} );
	restrictValue = function(e,plage){
		var indexCourant = 0;
		var palgeRest = '';
		var isautorize = false;
		var isforbid = false;
		var TabPlage = new Array;
		var TabForbid = new Array;
		var verifForbid = false;
		var indexTabForbid = 0;
		var indexTabPlage = 0;
		var chaineAccent = 'éèëêàäâæöôòóïîíùúûüç';
		var chainePonctu = ".,;?!:'";
		
		//for(var v in e){alert(v);}
		e = e || window.event;
		var element = e.target || e.srcElement;
		var Code = e.keyCode || e.which;
		if((Code == 9)||(Code == 8)||(Code == 35)||(Code == 36)||(Code == 37)){isautorize = true;return;}
		var regAccent = new RegExp('\\$a', 'g');
		var regPonctu = new RegExp('\\$p', 'g');
		var isForbid = plage.indexOf('^');
		if(isForbid == 0){
			verifForbid = true;
			isautorize = true;
			plage = plage.substring(1);
		}
		var isCaractSpec = plage.indexOf('$');
		while(isCaractSpec != -1){
			var bSpecTmp = isCaractSpec;
			var bSpecTmpSup = isCaractSpec + 2;
			var plageSpec = plage.substring(bSpecTmp,bSpecTmpSup);
			if(regAccent.test(plageSpec)){plageSpec = plageSpec.replace(regAccent,chaineAccent);}
			if(regPonctu.test(plageSpec)){plageSpec = plageSpec.replace(regPonctu,chainePonctu);}
			plage = plage.substring(0,bSpecTmp) + plage.substring(bSpecTmpSup);
			if(plageSpec.length > 2){
				for( var x = 0 ; x < plageSpec.length ; x++){if(Code == plageSpec.charCodeAt(x)){!verifForbid ? isautorize = true : isforbid = true;}}
			}else{
				if(Code == plageSpec.substring(1,2).charCodeAt()){!verifForbid ? isautorize = true : isforbid = true;}
			}
			isCaractSpec = plage.indexOf('$');
		}
		isPlage = plage.indexOf('-');
		while(isPlage != -1){
			var borne1 = isPlage - 1;
			var borne2 = isPlage + 2;
			palgeRest += plage.substring(indexCourant,borne1);
			TabPlage[indexTabPlage] = plage.substring(borne1,borne2);
			indexTabPlage ++;
			indexCourant = borne2;
			isPlage = plage.indexOf('-',indexCourant);
		}
		palgeRest += plage.substring(indexCourant);
		for(var i = 0 ; i < palgeRest.length ; i++){
			if(palgeRest.charCodeAt(i)==Code){!verifForbid ? isautorize = true : isforbid = true;}
		}
		for(var i = 0 ; i < TabPlage.length ; i++){
			var PlageTmp = TabPlage[i].split('-');
			var b1Tmp = PlageTmp[0];
			var b2Tmp = PlageTmp[1];
			if((Code>=b1Tmp.charCodeAt())&&(Code<=b2Tmp.charCodeAt())){!verifForbid ? isautorize = true : isforbid = true;}
		}
		if((!isautorize)||(isforbid)){stopEvent(e);}	
	}
}
