// Slideshow variables
var slideShowImages;
var slideshowImagesNum;
var slideShowImageWidth;
var slideShowImagesTotalWidth;
var slideShowCurrentImage;
var slideshow;

// Google Map variables
var map;
var geocoder;


window.addEvent('domready', function(){
	// Date picker
	if($$('.arrival input')){
		$$('.arrival input').each(function(guestNumFld){
			new vlaDatePicker(guestNumFld, {offset: {'x': -200, 'y': 30}, prefillDate: false});
		});
	}
	
	if($('productName') && $('productHeading')){
		$('productName').value = $('productHeading').get('text');
	}
	if($('packageName') && $('packageHeading')){
		$('packageName').value = $('packageHeading').get('text');
	}
	
	// SIFR
	sIFR.replaceElement('h4.sIFRAlbaPrice', named({sFlashSrc:"/wp-content/themes/beachestravel/alba.swf", sColor:"#003466", sFlashVars:"textalign=center", sWmode:"transparent"}));
	
	
	// Sidebar
	if($('radioAccommodation')){
		$('radioAccommodation').addEvent('click', function(e){
			$('accommodationsSearch').removeClass('hide');
			$('toursSearch').addClass('hide');
			$('packagesSearch').addClass('hide');
		});
	}
	
	if($('radioTour')){
		$('radioTour').addEvent('click', function(e){
			$('accommodationsSearch').addClass('hide');
			$('toursSearch').removeClass('hide');
			$('packagesSearch').addClass('hide');
		});
	}
	
	if($('radioPackage')){
		$('radioPackage').addEvent('click', function(e){
			$('accommodationsSearch').addClass('hide');
			$('toursSearch').addClass('hide');
			$('packagesSearch').removeClass('hide');
		});
	}
	
	// Product slide show
	if($('productSlideShow')){
		slideShowImages = $$('a.slideShowItem');
		slideshowImagesNum = slideShowImages.length;
		
		slideShowImageWidth =	slideShowImages[0].getSize().x +
								parseInt((slideShowImages[0].getStyle('margin-left')).replace('px', ''), 10) +
								parseInt((slideShowImages[0].getStyle('margin-right')).replace('px', ''), 10);
								
		slideShowImagesTotalWidth = slideShowImageWidth * slideshowImagesNum;
		slideShowCurrentImage = 0;
		
		slideshow = new Fx.Scroll('productImages', {});
		
		$('slideShowScrollLeft').addEvent('click', function(e){
			e.stop();
			
			slideShowCurrentImage--;
			
			if(slideShowCurrentImage < 0){
				slideShowCurrentImage = slideshowImagesNum - 1;
			}
			
			slideshow.start(slideShowCurrentImage * slideShowImageWidth, 0);
		});
		
		$('slideShowScrollRight').addEvent('click', function(e){
			e.stop();
			
			slideShowCurrentImage++;
			
			if(slideShowCurrentImage >= slideshowImagesNum){
				slideShowCurrentImage = 0;
			}
			
			slideshow.start(slideShowCurrentImage * slideShowImageWidth, 0);
		});
	}
	
	if($$('.accordion').length > 0){
		$$('.accordion').each(function(accordion){
			new Accordion(
							accordion,
							accordion.getElements('.accordionToggler'),
							accordion.getElements('.accordionContent')
			);
		});
	}
	
	if($$('.contact').length > 0){
		$$('.contact').each(function(contact){
			contact.addEvent('mouseenter', function(e){
				contact.addClass('contactHover');
			});
			contact.addEvent('mouseleave', function(e){
				contact.removeClass('contactHover');
			});
			contact.addEvent('click', function(e){
				loadGoogleMap(contact.getElement('.googleMapAddr').get('text'));
			});
		});
	}
	
	if($('googleMap')){
		loadGoogleMap('154b Roma St, QLD 4000');
	}
});


function valSearch(valForm, productType){
	var isSearchFormReady = true;
	
	if(valForm.the_location == undefined){isSearchFormReady = false;}
	if(valForm.budget == undefined){isSearchFormReady = false;}
	
	if(valForm.productType == "Tour"){
		if(valForm.duration == undefined){isSearchFormReady = false;}
		if(valForm.the_style == undefined){isSearchFormReady = false;}
	}
	
	return isSearchFormReady;
}


// Start google map
function loadGoogleMap(addr){
	if(GBrowserIsCompatible()){
		if($('googleMap') != null){
			map = new GMap2($('googleMap'));
			map.setCenter(new GLatLng(-27.293689, 133.066406), 3);
			map.addControl(new GSmallMapControl());
			showAddress(addr);
		}
	}
}

function showAddress(address){
	geocoder = new GClientGeocoder();
	geocoder.getLatLng(
		address,
		function(point){
			if(!point){
				alert('Address cannot be found!');
			}else{
				map.setCenter(point, 14);
				var marker = new GMarker(point);
				map.addOverlay(marker);
			}
		}
	);
}
// End google map