var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

//alert(BrowserDetect.browser);
if(BrowserDetect.browser != "Explorer"){
/***************************************************************************************
		TRICK FOR OUTERHTML in FF
	*/
	HTMLElement.prototype.__defineGetter__("outerHTML", function() {
		var span = document.createElement("span"); span.appendChild(this.cloneNode(true));
		return span.innerHTML;
	});
	HTMLElement.prototype.__defineSetter__("outerHTML", function(html) {
		var range = document.createRange();
		this.innerHTML = html;
		range.selectNodeContents(this);
		var frag = range.extractContents();
		this.parentNode.insertBefore(frag, this);
		this.parentNode.removeChild(this);
	});
/***************************************************************************************/
}
	var nS1;
	var handles_more ;
	var state = true;
	window.addEvent('domready',function(){
		nS1 = new noobSlide({
			box: $('box1'),
			items: [{},{},{},{}],
			size: 300,
			handles: $$('#handles span'),
			onWalk: function(currentItem,currentHandle){
				$$(handles_more).removeClass('active');
				if($$(handles_more).length!=0){
					$$(handles_more[this.currentIndex]).addClass('active');
				}else{
					currentHandle.addClass('active');
				}
				
				//effacer tous les links au-dessus de l'index
				for(var i=(this.currentIndex+1);i<=4;i++){
					var cf = document.getElementById('cf_'+i);
					if((cf != null)){
						cf.outerHTML ='';
					}
				}
			},
			autoPlay: false
		});
	});
	
	function loadmenu(address,name,step,option){
		if($('loading_'+step) == null){
			 var divTag = document.createElement("div");
			 divTag.id = "loading_"+step;
			 divTag.innerHTML = "";
			 $('box1').appendChild(divTag);
		}
		var options = {
			url: address, 
			method : 'get', 
			update: $('loading_'+step),
			evalScripts: true,					
			onRequest: function() {	
				//Gestion des links directs
				for(var i=1;i<=4;i++){
					var cf = document.getElementById('cf_'+i);
					if((cf != null) && (i>=step)){
						cf.outerHTML ='';
					}
				}
				var handles = document.getElementById('handles');
				if(handles.innerHTML.substring(2,30) == '<span class="active"></span>'){
					handles.innerHTML  = '<span id="cf_'+step+'">'+name+' / </span>';
					}else{
					handles.innerHTML  += '<span id="cf_'+step+'">'+name+' / </span>';
				}
				handles_more = $$('#handles span');
				nS1.addHandleButtons(handles_more);
				
				
			},
													
			onSuccess: function() {
				if(option != 1){
					nS1.next();		
				}else if(step>=2){
					nS1.walk(2,false,true);
					}
			}
		};
												
		var monObjetAjax= new Request.HTML(options);
		monObjetAjax.send();
	}
	
	/*
		function special access
		Va utiliser la fonction loadmenu dans un loop pour charger tout le menu avec les bonne valeur
	*/
	
	function special_access(lang,proj_id,ordre){
		switch(lang){
			case "en":
				var names = Array("Projects", "Chronology");
			break;
			default:
				var names = Array("Projekte","Chronologie");
			}
		var addresses = Array("menu_id=2","type_id=1");
		var address = '';
		var step = 1;
		var limit = 0;
		var modulo = ordre%5;
		if(modulo == 0){
			if(ordre>0){limit = ordre-5;}else{limit = ordre;}
			}else{
			limit = ordre-modulo;
		}
		for(var i=0;i<2;i++){
			address = 'build_menu.php?'+addresses[i];
			if(i==1){
				address += '&limit='+limit+'&special='+proj_id;
				}
			loadmenu(address,names[i],step,1);
			step++;
		}
	}
	
	function set_actu(){
		$('link_menu_1').style.color = '#000';
		}
	
	
	function refreshmenu(address,step){
		var options = {
			url: address, 
			method : 'get', 
			update: $('loading_'+step),
			evalScripts: true,					
			onRequest: function() {	
			},									
			onSuccess: function() {	
			}
		};									
		var monObjetAjax= new Request.HTML(options);
		monObjetAjax.send();
	}
	
	function updatepage(address,calque,opt){
		if(opt == "open"){
			var options = {
						url: address, 
						method : 'get', 
						update: $(calque),
						evalScripts: true,					
						onRequest: function() {	
						},									
						onSuccess: function() {	
							var myVerticalSlide = new Fx.Slide('tiroir',{duration: 1000});
							myVerticalSlide.slideIn();
							state = true;
						}
					};									
			var monObjetAjax= new Request.HTML(options);
			monObjetAjax.send();
			
		}else if(opt == "close" && state != false){
			var myVerticalSlide = new Fx.Slide('tiroir',{
				duration: 1000,
				onComplete: function(){
					var options = {
						url: address, 
						method : 'get', 
						update: $(calque),
						evalScripts: true,					
						onRequest: function() {	
						},									
						onSuccess: function() {	
						}
					};									
					var monObjetAjax= new Request.HTML(options);
					monObjetAjax.send();
					}
				});
				myVerticalSlide.slideOut();
				state = false;
		}else{
			if(calque != 'zone'){
				state = true;
			}
			var options = {
				url: address, 
				method : 'get', 
				update: $(calque),
				evalScripts: true,					
				onRequest: function() {	
				// on peut mettre le link en bold...
					if(opt!=undefined && opt != "close"){
						var lks = $$('#box1 span');
						for(var i in lks){
							if(typeof lks[i] == 'object' && lks[i].innerHTML!= undefined){
								//lks[i].style.fontWeight = 'normal';
								lks[i].style.color = '';
							}
							if(lks[i].id == 'link_'+opt){
								//lks[i].style.fontWeight = 'bold';
								lks[i].style.color = '#000';
							}
						}
					} 
				},									
				onSuccess: function() {	
				}
			};									
			var monObjetAjax= new Request.HTML(options);
			monObjetAjax.send();
		}
		
	}
	
	function toggle_layer(layer,nbr){
		//alert(nbr);
		//alert($('exp_'+nbr).firstsChild);
		/*var obj = $('exp_'+nbr);
		for(var i in obj){
			alert(i + " " +obj[i]);
			}
		/*
		if($('exp_'+nbr).innerHTML == '<img src="gfx/plus.png" alt="+" border="0" height="10px" width="10px">' || $('exp_'+nbr).innerHTML == '<img src="gfx/plus.png" width="10px" height="10px" border="0" alt="+">'){
			$('exp_'+nbr).innerHTML = '<img src="gfx/moins.png" width="10px" height="10px" border="0" alt="-" />';
			}else{
				$('exp_'+nbr).innerHTML = '<img src="gfx/plus.png" width="10px" height="10px" border="0" alt="+" />';
				}
				
		*/
		if($('exp_'+nbr).firstChild.getAttribute('id') == "+"){
			$('exp_'+nbr).innerHTML = '<img src="gfx/moins.png" width="10px" height="10px" border="0" alt="-" id="-" />';
			}else{
			$('exp_'+nbr).innerHTML = '<img src="gfx/plus.png" width="10px" height="10px" border="0" alt="+" id="+" />';
		}
		var myVerticalSlide = new Fx.Slide(layer,{
				duration: 1000
				 });
		myVerticalSlide.toggle();
	}
	
	function envoyer(address,form){
		var options = {
			url: address,  
			update: $('response'),
			evalScripts: true
		};									
			var monObjetAjax= new Request.HTML(options).post(form);
			monObjetAjax.send();
	}
	
	function sendAndOpen(address,form,layer){
		$('registration').innerHTML ='';
		var options = {
			url: address,  
			update: $(layer),
			evalScripts: true,
			onRequest: function() {	
			},									
			onSuccess: function() {	
				var myVerticalSlide = new Fx.Slide(layer,{
				duration: 1000
				 });
				myVerticalSlide.toggle();
			}
		};									
			var monObjetAjax= new Request.HTML(options).post(form);
			monObjetAjax.send();
		}
		
	function updateformpage(address,form,calque){
		var options = {
			url: address,  
			update: $(calque),
			evalScripts: true
		};									
			var monObjetAjax= new Request.HTML(options).post(form);
			monObjetAjax.send();
	}
	
	function simple_send(address){
		var options = {
			url: address, 
			method : 'get', 
			evalScripts: true
		};
		var monObjetAjax= new Request.HTML(options);
		monObjetAjax.send();
	}
