var aSelCitiesIds		= new Array();
var aSelPrestaOrIds		= new Array();
var aSelPrestaAndIds	= new Array();
var aSelPrestaEachIds	= new Array();
var bSales				= 0;

// Reception depuis le flash
//=================================================================================
function getFromAS3(_aSelCitiesIds) {
	aSelCitiesIds = _aSelCitiesIds;
	$each($$('#panCities input'), function(el){
		el.set('checked',(aSelCitiesIds.contains(el.value.toInt())));
	});
	checkAll(null);
	checkCheckbox();
}

// Mise à jour du Array contenant la liste des villes sélectionnées et les items
//=================================================================================
function checkCheckbox() {
	aSelCitiesIds		= new Array();
	aSelPrestaOrIds		= new Array();
	aSelPrestaAndIds	= new Array();
	aSelPrestaEachIds	= new Array();
	
	// Formulaire Villes
	$each($$('#panCities input'),			function(el) {
		niceCheck(el);
		if (el.get('checked'))		aSelCitiesIds.push(el.get('value').toInt());
	});
	$each($$('#panCitiesDistance input'),	function(el) {
		niceCheck(el);
	});
	
	// Formulaire Presta
	$each($$('#search input.items_or'),		function(el) {
		niceCheck(el);
		if (el.get('checked'))		aSelPrestaOrIds.push(el.get('value').toInt());
	});
	$each($$('#search input.items_and'),	function(el) {
		niceCheck(el);
		if (el.get('checked'))		aSelPrestaAndIds.push(el.get('value').toInt());
	});
	$each($$('#search input.items_each'),	function(el) {
		niceCheck(el);
		if (el.get('checked'))		aSelPrestaEachIds.push(el.get('value').toInt());
	});
	
	bSales	= ($('sales_only').checked)?1:0;
	niceCheck($('sales_only'));
	
	ajaxResult();
}

function checkAll(_bDisplay) {
	if (_bDisplay == true) {
		// Cocher toutes les villes
		$$('#panCities input').set('checked',true);
		$('all_cities').set('checked',true);
		$('any_cities').set('checked',false);
		//$('panCitiesDistance').removeClass('hide');
	} else if (_bDisplay == false) {
		// Tout décocher
		$$('#panCities input').set('checked',false);
		$('all_cities').set('checked',false);
		$('any_cities').set('checked',true);
		//$('panCitiesDistance').addClass('hide');
	} else {
		// Cocher automatiquement le All et le Any
		var bNoneChecked	= 0;
		$each($$('#panCities .col input'), function(el) {
			if (el.checked) {
				bNoneChecked++;
			}
		});
		if (bNoneChecked == 0)											checkAll(false);
		else if ($$('#panCities .col input').length == bNoneChecked)	checkAll(true);
		else {
			$('all_cities').set('checked',false);
			$('any_cities').set('checked',false);
			//$('panCitiesDistance').removeClass('hide');
		}
	}
	aSelCitiesIds		= new Array();
	$each($$('#panCities input'), function(el) {
		niceCheck(el);
		if (el.get('checked'))		aSelCitiesIds.push(el.get('value').toInt());
	});
	checkCheckbox();
}

// Envois au flash de la Map
//=================================================================================
function sendToAS3() {
	aSelCitiesIdsSize		= new Array();
	aSelCitiesIdsSize		= aSelCitiesIds;
	
	var sTmp	= (($$('.panDown input[name="time"]:checked').length == 1)?$$('.panDown input[name="time"]:checked').get('id').toString():'time_1');
	if ($type(aSelCitiesIds[aSelCitiesIds.length-1]) != 'string') aSelCitiesIdsSize[aSelCitiesIds.length]	= sTmp.split('_')[1];
	
	return aSelCitiesIdsSize;
}

// Envois au flash du compteur
//=================================================================================
function sendToAS3Counter() {
	var iTmp = -1;
	if ($('countResult')) iTmp	= $('countResult').get('rel').toInt();
	return iTmp;
}


// Application des classes au labels
//=================================================================================
function niceCheck(_el) {
	var elTmp	= _el.getParent('label');
	if (elTmp != null) {
		if (elTmp.hasClass('checkbox')) {
			if (_el.checked) {
				elTmp.addClass('checked');
				elTmp.removeClass('unchecked');
			} else {
				elTmp.removeClass('checked');
				elTmp.addClass('unchecked');
			}
		} else if (elTmp.hasClass('radio')) {
			if (_el.checked) {
				elTmp.addClass('selected');
				elTmp.removeClass('deselected');
			} else {
				elTmp.removeClass('selected');
				elTmp.addClass('deselected');
			}
		}
	}
}

// Résultat dynamique
function ajaxResult() {
	var req = new Request({
		method: 	'post',
		url:		'_search_ajax.php',
		dataType:	'json',
		data: {
			cities:				aSelCitiesIds,
			items_or:			aSelPrestaOrIds,
			items_and:			aSelPrestaAndIds,
			items_each:			aSelPrestaEachIds,
			time:				$$('.panDown input[name="time"]:checked').get('value').toString(),
			sales_only:			bSales,
			ajax:				1
		},
		onRequest: function() {
			$('countResult').set('rel','-1');
			$('countResult').getElement('p').set('text',$('ajaxAnswerCont').get('rel'));
		},
		onSuccess: function(sAjax) {
			var iCut	= sAjax.indexOf('|');
			var nbTmp	= sAjax.substring(0,iCut);
			var sAnswer	= sAjax.substring((iCut+1), sAjax.length);
			$('countResult').set('rel',nbTmp);
			$('countResult').getElement('p').set('html',sAnswer);
		}
	}).send();
}

window.addEvent('load', function() {
	
	//=================================================================================
	// Search Form
	//=================================================================================
	if ($('searchEngine')) {
		//Ouverture / Fermeture du panneau de recherche
		//=================================================================================
		// Auto
		if (Cookie.read('searchClose') == 'close') {
			$('searchEngine').addClass('close');
			Cookie.dispose('resultAnchor');
		} else	$('searchEngine').removeClass('close');
		// Manuel
		$('searchTitle').addEvent('click', function(){
			sendToAS3();
			if (!$('searchEngine').hasClass('close')) {
				$('searchEngine').addClass('close');
				Cookie.write('searchClose', 'close', {duration: 0});
				Cookie.dispose('resultAnchor');
			} else {
				$('searchEngine').removeClass('close');
				Cookie.dispose('searchClose');
			}
		});
		
		
		// Injection de la carte en flash
		//=================================================================================
		var sMapSwf	= ((Browser.Engine.trident)?'map_ie7.swf':'map.swf');
		mapSWF = new Swiff(sMapSwf+'?'+$time(), {
			container:'searchMap',
			width: 328,
			height: 279,
			params:{allowScriptAccess:'always'}
		});
		$$('#panCities .col input').addEvent('click',	function() {checkAll(null);	});
		$('all_cities').addEvent('click',				function() {checkAll(true);	});
		$('any_cities').addEvent('click',				function() {checkAll(false);});
		checkAll(null);
		
		
		// Injection du compteur
		//=================================================================================
		counterSWF = new Swiff('counter.swf?'+$time(), {
			container:'swf_counter',
			width: 53,
			height: 24,
			params:{allowScriptAccess:'always'}
		});
		
		// Evenement sur les checkboxes des villes et des items
		//=================================================================================
		$$('#search label').addEvent('click', checkCheckbox);
		checkCheckbox();
		
		// Time
		//=================================================================================
		$$('.panDown *[name="time"]').addEvent('click', ajaxResult);
		
		
		// Checkbox et Radio habillées
		//=================================================================================
		if (!Browser.Engine.trident) {
			$('search').addClass('niceform');
			$$('.niceform label.checkbox input, .niceform label.radio input').setStyle('display','none');
		}
	}
	
	//=================================================================================
	// Listing
	//=================================================================================
	if ($('hotel_list')) {
		if ($$('select.nbItemsByPage')) {
			$$('select.nbItemsByPage').addEvent('change',	function() {
				document.location = 'hotel_list.php?nbItemsByPage='+this.options[this.selectedIndex].text;
			});
		}
	}
});

var iCurrentHeart	= 0;
var oAutoSwap		= null;
function heartSwap(_i) {
	var oItem		= $$('#panHeart div.hItem');
	oItem.setStyle('display','none');
	iCurrentHeart	= Math.round(iCurrentHeart+_i);
	iCurrentHeart	= ((iCurrentHeart == oItem.length)?0:(iCurrentHeart < 0)?oItem.length-1:iCurrentHeart);
	$('panHeart').childNodes[iCurrentHeart].setStyle('display','block');
}
function autoHeartSwap() {
	heartSwap(1);
	setTimeout('autoHeartSwap()',1000);
}
window.addEvent('domready', function() {
	
	//=================================================================================
	// Listing
	//=================================================================================
	if ($('panHeart')) {
		if ($$('#panHeart div.hItem').length > 1) {
			$$('#heartNav a').removeProperty('href');
			$$('#heartNav a').addEvents({
				'mouseenter':	function() {this.addClass('hItemOver');},
				'mouseleave':	function() {this.removeClass('hItemOver');},
				'click':		function() {
					if (oAutoSwap != null)	clearInterval(oAutoSwap);
					heartSwap(this.get('rel').toInt());
				}
			});
			if ($('panHeart').hasClass('autoSwap')) {
				oAutoSwap	= setInterval('heartSwap(1)', ($('panHeart').getProperty('rel').toInt()*1000));
			}
		}
		$$('#panHeart div.hItem').addEvents({
			'mouseenter':	function() {this.addClass('hItemOver');},
			'mouseleave':	function() {this.removeClass('hItemOver');},
			'click':		function() {
				var elLink	= this.getElement('a');
				var sHref	= elLink.get('href');
				window.location.href=sHref;
			}
		});
	}
	
	if ($('panListing')) {
		$$('#panListing div.hItem').addEvents({
			'mouseenter':	function() {this.addClass('hItemOver');},
			'mouseleave':	function() {this.removeClass('hItemOver');},
			'click':		function() {
				var elLink	= this.getElement('a');
				var sHref	= elLink.get('href');
				window.location.href=sHref;
			}
		});
		// Auto Scroll to Listing
		if (Cookie.read('resultAnchor') == 'true') {
			var myFx = new Fx.Scroll(window,{
				duration:800,
				onComplete: function() {
					Cookie.dispose('resultAnchor');
				}
			}).toElement($('resultAnchor'));
		}
	}
	
	//=================================================================================
	// Fiche hôtel
	//=================================================================================
	if ($('whitebox_bg')) {
		$$('#hotel_infos #hMiddleContent').setStyle('cursor','move');
		var col1W		= (($('hMiddleCol1'))?$('hMiddleCol1').getStyle('width').toInt():0);
		var farestX		= col1W+$('whitebox_bg').getStyle('width').toInt();
		// Whitebox
		if ($('hMiddle')) {
			var knobW		= $('mooKnob').getStyle('width').toInt();
			var iBorderMax	= $('hMiddle').getStyle('width').toInt()-farestX;
			if (farestX < $('hMiddle').getCoordinates().width) {
				$('mooSlider').setStyle('display','none');
				$('mooKnob').setStyle('display','none');
			} else {
				// Whitebox Drag
				var qoef		= -($('hMiddle').getStyle('width').toInt()-knobW)/iBorderMax;
				$('hMiddleContent').setStyles({
					'top':0,
					'left':0,
					'width':farestX
				});
				if (Browser.Engine.trident) document.ondragstart = function () { return false; }; //IE drag hack
				var myMove		= new Drag('hMiddleContent',{
					limit:		{x: [iBorderMax,0], y: [0, 0]},
					friction:	0.05,
					onDrag: 	function(el)	{$('mooKnob').setStyle('left', 0-el.getStyle('left').toInt()*qoef);	},
					onComplete:	function(el)	{$('mooKnob').setStyle('left', 0-el.getStyle('left').toInt()*qoef);	},
					onMoveEnd:	function(el)	{$('mooKnob').setStyle('left', 0-el.getStyle('left').toInt()*qoef);	}
				});
				// Whitebox Slider
				var mySlider	= new Slider('mooSlider', 'mooKnob', {
					range:		[0, iBorderMax-knobW],
					wheel:		true,
					onTick:		function(pos)	{this.knob.setStyle(this.property, pos);},
					onStart:	function()		{myMove.speed = {'x': 0, 'y': 0}; myMove.stop();},//speed = {'x': 0, 'y': 0};},
					onChange:	function()		{$('hMiddleContent').setStyle('left', this.step);},
					onComplete: function()		{$('hMiddleContent').setStyle('left', this.step);}
				});
			}
		}
	} else if ($('mooSlider')) {
		$('mooSlider').setStyle('display','none');
		$('mooKnob').setStyle('display','none');
	}
	
	//=================================================================================
	// Lien en popup
	//=================================================================================
	$each($$('a.boxed'),			function(el) {
		var gbId	= el.get('rel');
		var sSize	= $(gbId).get('rel');
		el.removeProperty('href');
		el.addEvent('click', function(_eEvent) {
			$$('.glassBox').setStyle('display','none');
			var gbTmp	= new GlassBox();
			gbTmp.init(gbId, ((sSize == 'small')?'400px':'550px'), ((sSize == 'small')?'150px':'350px'), 'hidden', 'default', true, true);
			gbTmp.lbo(true, 0);
			var elTop = $(document.body);
			var myFx = new Fx.Scroll(elTop,{duration:800}).start(0,0);
		});
	});
});
