Object.extend(Array.prototype, {
	implode: function() {
		var args = $A(arguments), rs='';
		if(!this.length){ return rs; }
		this.each(function(a){ rs+=args[0]+a; });
		var expression = new RegExp('^'+args[0]+'(.*)');
 		expression.exec(rs);
 		rs = RegExp.$1;
		return rs;
	}
});

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.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]
};
BrowserDetect.init();

var slideBox = Class.create();
slideBox.prototype = {
	options: null,
	current: '',
	slideOptions: {},
	initialize: function (options) {
		this.options = {};
		Object.extend(this.options, options || {});
		$('slidebox_close').onclick = function(){this.close();}.bind(this);
		$$('#slidebox .slide').each(function(e){ Element.hide(e); });
	},
	open: function (target, h, opts) {
		if(this.current == target){ return null; }
		this.slideOptions = {
			scroller: true
		};
		Object.extend(this.slideOptions, opts || {});
		if(this.current != ''){
			this.hideCurrent();
			this.current = target;
			Element.setStyle('slidebox_content', {height:h+'px'});
			this.showCurrent();
/*			$('slidebox_content').morph('height:'+h+'px;', {
				afterFinish: function () { this.showCurrent(); }.bind(this)
			});*/
		} else {
			this.current = target;
			Element.setStyle('slidebox_content', {height:h+'px'});
			new Effect.BlindDown($('slidebox'), {
				afterFinish: function (){
					if(this.slideOptions.scroller){ new Effect.ScrollTo('menu_dock'); }
					this.showCurrent();
				}.bind(this)
			});
		}
	},
	close: function () {
		this.hideCurrent();
		this.current = '';
		if(typeof this.options.onClose == 'function'){ this.options.onClose.apply(null); }
		new Effect.BlindUp($('slidebox'), {
			afterFinish: function (){ new Effect.ScrollTo('logo'); }
		});
	},
	hideCurrent: function () {
		if(typeof this.slideOptions.beforeExit == 'function'){ this.slideOptions.beforeExit.apply(null); this.slideOptions.beforeExit = null; }
		$$('#slidebox .'+this.current+'').each(function(e){ Element.hide(e); });
	},
	showCurrent: function () {
		if(typeof this.slideOptions.afterFinish == 'function'){ this.slideOptions.afterFinish.apply(null); this.slideOptions.afterFinish = null; }
		$$('#slidebox .'+this.current+'').each(function(e){ Element.show(e); });
	},
	__void: function () {}
};

var get_HTTP_VAR = function (url) {
	var _GET = new Array();
	var QUERY_STRING = url.substring((url.indexOf('?')+1), url.length);
	var expQS = QUERY_STRING.split( '&'), tmpArr;
	for(var u=0; u<expQS.length; u++){ tmpArr = expQS[u].split('='); _GET[tmpArr[0]] = tmpArr[1]; }
	return _GET;
};

var advanced_search = function () {
	var args = arguments, form = document.forms['advsearchform'], advanced;
	if($(args[1]).visible()){
		$(args[1]).hide(); $(args[0]).setStyle({visibility:'visible'}); advanced = 0;
	} else {
		$(args[1]).show(); $(args[0]).setStyle({visibility:'hidden'}); advanced = 1;
	}
	form.elements['advanced'].value = advanced;
};

var submit_advanced_search = function () {
	var form = document.forms['advsearchform'], selects, catArr = [], cat = '', year = 0, monthnum = 0;
	if(form.elements['advanced'].value == 1){
		selects = $(form.id).getElementsBySelector('select');
		selects.each(function(b){ if(Element.hasClassName(b, 'categorie')){ if(form.elements[b.name].value != ''){ catArr.push(form.elements[b.name].value); } } });
		catArr.compact();
		cat  = catArr.implode(',');
		var pattern = new RegExp('^([0-9]{4})-([0-9]{1,2})$');
		if(pattern.test(form.elements['advs_date'].value)){
			pattern.exec(form.elements['advs_date'].value);
			year = Number(RegExp.$1);
			monthnum = Number(RegExp.$2);
		}
	}
	form.elements['category__and'].value = cat;
	form.elements['year'].value = year;
	form.elements['monthnum'].value = monthnum;
	return true;
};

var scrollUp = function () {
	var dimensions, marquee, items, clone;
	$$('div.widget_rss > ul').each(function(elem){
		dimensions = elem.getDimensions();
		marquee = new Element('marquee', {onMouseOver:'this.stop()', onMouseOut:'this.start()', scrollAmount:2, direction:'up', width:dimensions.width, height:100, align:'left'});
		items = elem.getElementsBySelector('a');
		items.each(function(entry){
			clone = document.createTextNode(entry.innerHTML);
			marquee.appendChild(clone);
			marquee.appendChild(new Element('br'));
		});
		elem.parentNode.appendChild(marquee);
		marquee.start();
	});
};

var displayGoogleMap = function(){
	if($('googlemapcontent').empty()){
		var iframe = '';
		iframe = '<iframe width="600" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.fr/maps/ms?ie=UTF8&amp;hl=fr&amp;s=AARTsJoa4WtcAnV7c8oJvKj09m6s5v9yTA&amp;msa=0&amp;msid=102266680232539714115.00045c07a6110c971cafe&amp;ll=48.592959,-3.197021&amp;spn=1.271628,3.295898&amp;z=8&amp;output=embed"></iframe>';
		$('googlemapcontent').update(iframe);
	}
};

var hello = function () {
	alert('Hello world!');
};

var openMovie = function () {
	slideBoxObj.open('video', 300, {
		afterFinish: function(){
			swfObj_agence.write("video_agence");
		}
	});
};

var slideBoxObj=null,_GET,debug=0;

var displayGame = function(){
	var src = wpurl+'/35/';
	$('gamecontent').update('<iframe src="'+src+'" width="850" height="472" frameborder="0"></iframe>');
	if(_GET['st'] == 'content'){
		new Effect.ScrollTo('menu_main');
	}
};

var openGame = function () {
	var scrollerVar = false;
	slideBoxObj.open('game', 472, {
		scroller: scrollerVar,
		afterFinish: displayGame
	});
};

var closeSlideBox = function () {
};

var trace = function () {
	if(debug == 1){
		alert(arguments[0]);
	}
};

Event.observe(window, 'load', function(){

	if(document.cookie){
		trace('cookie enable');
	} else {
		document.cookie = "essai=cookie";
		if (document.cookie) {
			trace('cookie enable');
		} else {
			alert("Mauvais paramétrage des cookies.\nPour un confort de navigation nous vous invitons à accepter les cookies de votre navigateur internet.");
		}
	}

	_GET = get_HTTP_VAR(window.location.href);

	if(typeof lightForm != 'undefined'){
		lightFormObj = new lightForm({
			'cssRule': 'form.wp-lightform',
			'selector': ['select']
		});
		lightFormObj.start();
	}

	slideBoxObj = new slideBox({
		onClose: closeSlideBox
	});

	var tt = [
		{
			name: wpurl+'/wp-content/plugins/extra/dock/tagcloud-',
			extension: '.png',
			sizes: [150, 150],
			onclick: function(){
				slideBoxObj.open('tagcloud', 400);
			}
		},
		{
			name: wpurl+'/wp-content/plugins/extra/dock/3d-wall-',
			extension: '.png',
			sizes: [150, 150],
			onclick: function(){
				slideBoxObj.open('wall3d', 540, {
					afterFinish: function(){swfObj_3dwall.write("3d_gallery");}
				});
			}
		},
		/*{
			name: wpurl+'/wp-content/plugins/extra/dock/video-',
			extension: '.png',
			sizes: [150, 150],
			onclick: openMovie
		},*/
		{
			name: wpurl+'/wp-content/plugins/extra/dock/globe-',
			extension: '.png',
			sizes: [150, 150],
			onclick: function(){
				slideBoxObj.open('plan', 350, {
					afterFinish: displayGoogleMap
				});
			}
		},
		{
			name: wpurl+'/wp-content/plugins/extra/dock/palmares-',
			extension: '.png',
			sizes: [150, 150],
			onclick: function(){
				window.location.href = wpurl+'/palmares/';
			}
		}
/*,
		{
			name: wpurl+'/wp-content/plugins/extra/dock/jeu-',
			extension: '.png',
			sizes: [150, 150],
			onclick: function(){
				slideBoxObj.open('game', 472, {
					afterFinish: displayGame
				});
			}
		}*/
	];

	if((BrowserDetect.browser == 'Explorer') && (BrowserDetect.version <= 6)){
		tt.each(function(a, b){
			tt[b].name+= 'solid-';
			tt[b].extension = '.gif';
		});
	}

	if(typeof MacStyleDock != 'undefined' && $('dock')){
		var dock = new MacStyleDock($('dock'), tt, 110, 150, tt.length);
	}

	if(_GET['wp_cumulus']){
		slideBoxObj.open('tagcloud', 400, {scroller: false, afterFinish: function(){new Effect.ScrollTo('content');}});
	} else if(_GET['wp_3dwall']){
		slideBoxObj.open('wall3d', 540, {scroller: false,afterFinish: function(){swfObj_3dwall.write("3d_gallery"); new Effect.ScrollTo('content');}});
	} else if(_GET['wp_map']){
		slideBoxObj.open('plan', 350, {scroller: false});
	} else if(_GET['wp_jeu35e']){
		openGame();
	}

});
