var reg = new RegExp("^(http|https)://([^/]+)(.*)$","g");
var tab_reg = reg.exec(window.document.location.href);
var tab_path = tab_reg[3].split('#');
var SERVER_NAME = tab_reg[2];
var DOMAIN_NAME = SERVER_NAME.replace('localhost.', '');
var DOMAIN_NAME = DOMAIN_NAME.replace('beta.', '');
var DOMAIN_ANCHOR = tab_path[1];
var LANGUAGE = $('meta[http-equiv=content-language]').attr('content');

$.address.init(function(event) {
	//console.log('init');
}).change(function(event) {
	var value = $.address.value().replace('/', '');
	DOMAIN_ANCHOR = value;
	
	if (value.match("^newsletter")) {
		thereCanBeOnlyOne.openElement('newsletterBox');
		return(false);
	}
	
	else if (value) {
		$('.main_box_content_panel').css('display', 'none');
		$('#main_box_content_panel_'+value).css('display', 'block');
		$('#main_box_nav a').removeClass('selected');
		$('#main_box_nav a[href=#'+value+']').addClass('selected');
	}
});

Cufon.replace('h1');
if (!$.browser.msie || ($.browser.msie && $.browser.version.slice(0,1) > 7)) {
	Cufon.replace('h2');
}

function ThereCanBeOnlyOne()
{
	var elements = new Object();
	
	this.addElement = function(elementObj) {
		eval('elements.'+elementObj.prefix+' = elementObj;');
	}
	
	this.openElement = function(elementRef) {
		$.each(elements, function(key, element) {
			if (element.prefix != elementRef) {
				if (element.isopen) {
					element.fnClose();
					element.isopen = false;
					if (element.prefix == 'mainBox') {
						element.mustbeopen = true;
					}
				}
			}
		});
		eval('elements.'+elementRef+'.fnOpen();');
		eval('elements.'+elementRef+'.isopen = true;');
	}
	
	this.closeElement = function(elementRef) {
		eval('elements.'+elementRef+'.fnClose();');
		eval('elements.'+elementRef+'.isopen = false;');
		//console.log('main box is open: '+elements.mainBox.isopen);
		if (elementRef != 'mainBox') {
			if (elements.mainBox.mustbeopen && !elements.mainBox.isopen) {
				elements.mainBox.fnOpen();
				elements.mainBox.isopen = true;
			}
		}
		else { elements.mainBox.mustbeopen = false; }
	}
	
	this.closeElements = function() {
		$.each(elements, function(key, element) {
			if (element.isopen) {
				element.fnClose();
				element.isopen = false;
			}
		});
	}
}

var thereCanBeOnlyOne = new ThereCanBeOnlyOne();
thereCanBeOnlyOne.addElement({
	prefix: 'mainBox', 
	isopen: false, 
	fnOpen: function() {
		//console.log('open mainbox');
		mainBoxOpen();
	}, 
	fnClose: function() {
		//console.log('close mainbox');
		mainBoxClose();
	}
});

var main_box_open = false;
function mainBoxClose()
{
	if ($.browser.msie && $.browser.version.slice(0,1) < 9) {
		$('#main-box-thumb').css('display', 'block');
		$('#main-box').css('display', 'none');
	}
	else {
		$('#main-box').fadeOut('fast');
		$('#main-box-thumb').fadeIn('normal', function() {
			var position = 'top';
			/*$(document).everyTime(150, 'main-box-thumb-timer', function(i) {
				position = position == 'top' ? 'bottom' : 'top';
				$('#main-box-thumb-bt-show').css('backgroundPosition', position);
			}, 6);*/
				
		});
	}
	main_box_open = false;
	//overlayHide();
}
	
function mainBoxOpen()
{
	if ($.browser.msie && $.browser.version.slice(0,1) < 9) {
		$('#main-box-thumb').css('display', 'none');
		$('#main-box').css('display', 'block');
	}
	else {
		$('#main-box-thumb').fadeOut('fast');
		$('#main-box').fadeIn();
	}
	main_box_open = true;
	//overlayShow();
}

$(document).ready(function() {
	/*==========================================================================
				* SLIDESHOW *
	==========================================================================*/
	//Instance
	slideShow = new SlideShow({
		containerId:'slideshow_container', //Required
		itemIdPrefix:'img_',
		timerBetweenSlide:5000, 
		timerFadeTransition:1000, 
		itemClassName:'slideme', 
		playAuto :true, 
		onAfterFirstLoad:function() {
			if ($.browser.msie && $.browser.version.slice(0,1) <= 8) {
				$('#loaderPanel').css('display', 'none');
			}
			else {
				$('<img />').attr('src', '/images/main-box-bg.jpg').load(function() {
					$('#loaderPanel').css('display', 'none');
				});
			}
		},
		onAfterLoad: function(itemNb) {
			/*console.log('onAfterLoad');
			console.log('itemNb: '+itemNb);*/
			if (itemNb > 1) {
				$('#slideshow-cpt').html('1.'+itemNb);
				$('#slideshow_bt_prev').css('display', 'block');
				$('#slideshow_bt_next').css('display', 'block');
			}
			if ($.browser.msie && $.browser.version.slice(0,1) > 8) {
				if (slideShow.itemNb == 1) {
					$(document).oneTime(3000, 'ribbon-timer', function(i) {
						$('#ribbon').fadeIn('slow');
					});
				}
			}
		},
		onBeforeSlide: function(position) {
			$('#slideshow-cpt').html(position+'.'+slideShow.itemNb);
		}, 
		onAfterSlide: function(position) {
			if (position != 2) {
				if (!$.browser.msie || ($.browser.msie && $.browser.version.slice(0,1) > 8)) {
					$('#ribbon').fadeOut('slow');
				}
				else { $('#ribbon').hide(); }
			}
			if (position == 2) {
				if (!$.browser.msie || ($.browser.msie && $.browser.version.slice(0,1) > 8)) {
					$('#ribbon').fadeIn('slow');
				}
				else { $('#ribbon').show(); }
			}
		}
	});
	
	$('#slideshow_bt_next').click(function() {
		slideShow.next(function(position) {
			thereCanBeOnlyOne.closeElement('mainBox');
			$('#slideshow-cpt').html(position+'.'+slideShow.itemNb);
		});
	});
	$('#slideshow_bt_prev').click(function() {
		slideShow.prev(function(position) {
			thereCanBeOnlyOne.closeElement('mainBox');
			$('#slideshow-cpt').html(position+'.'+slideShow.itemNb);
		});
	});
	/*==========================================================================
				* PHOTO GALLERY *
	==========================================================================*/
	$("a.photo-gallery").fancybox();
	$("a.contact").fancybox();
	$("a.content-photos").fancybox();
	/*$('#bob').click(function() {
		//console.log($('.content-photos'));
	});*/
	/*==========================================================================
				* LOGO *
	==========================================================================*/
	if ($('#page-id').val() != 'home') {
		$('#header-logo-text').css('display', 'none');
		$('#header-logo-b').mouseover(function() {
			if ($.browser.msie && $.browser.version.slice(0,1) < 9) {
				$('#header-logo-text').css('display', 'block');
			}
			else { $('#header-logo-text').fadeIn('fast'); }
		});
		$('#header-logo-b').mouseout(function() {
			if ($.browser.msie && $.browser.version.slice(0,1) < 9) {
				$('#header-logo-text').css('display', 'none');
			}
			else { $('#header-logo-text').fadeOut('fast'); }
		});
	}
	
	$('#nav_main a[rel='+$('#page-id').val()+']').addClass('selected');
	
	$('#main-box-bt-max').click(function() {
		mainBoxMax();
		$('#main-box-bt-max-container').css('display', 'none');
		$('#main-box-bt-min-container').css('display', 'block');
		return(false);
	});
	$('#main-box-bt-min').click(function() {
		mainBoxMin();
		$('#main-box-bt-max-container').css('display', 'block');
		$('#main-box-bt-min-container').css('display', 'none');
		return(false);
	});
	
	$('#main-box-thumb').click(function() {
		thereCanBeOnlyOne.openElement('mainBox');
		return(false);
	});
	if ($('#main-box-open').val() == 'open') {
		thereCanBeOnlyOne.openElement('mainBox');
	}
	
	$('#main-box-bt-hide, #main-box-bt-menu').click(function() {
		thereCanBeOnlyOne.closeElement('mainBox');
		return(false);
	});
	$('#footer-bt-newsletter').click(function() {
		thereCanBeOnlyOne.openElement('newsletterBox');
		$.address.value('newsletter');
		return(false);
	});
	$('#main-box-bt-share, #footer-bt-share').click(function() {
		thereCanBeOnlyOne.openElement('shareBox');
		return(false);
	});
	/*==============================================================================
				* BOOKING *
	==============================================================================*/
	$('#header_bt_booking').click(function() {
		var languageString = LANGUAGE;
		var bookingLink = 'https://gc.synxis.com/gc/rez.aspx?Chain=5375&Hotel=14844';
		if (!$.browser.msie || ($.browser.msie && $.browser.version.slice(0,1) > 7)) {
			bookingLink+= '&locale='+languageString+'-'+languageString.toUpperCase();
		}
		if (cf_date.qs_arrival) {
			var arr_arrivalDate = cf_date.qs_arrival.split('-');
			var arrivalDay = arr_arrivalDate[2];
			var arrivalMonth = arr_arrivalDate[1];
			var arrivalYear = arr_arrivalDate[0];
			var nbNights = $('#qs_nights_container_input').val().substr(0, 2).replace(' ', '');
			nbNights = nbNights.length > 1 ? nbNights : '0'+nbNights;
			var nbAdults = $('#qs_adults_container_input').val().substr(0, 2).replace(' ', '');
			if (parseInt(nbNights) && parseInt(nbAdults)) {
				nbAdults = nbAdults.length > 1 ? nbAdults : '0'+nbAdults;
				/*var languageString = LANGUAGE;
				var bookingLink = 'https://gc.synxis.com/gc/rez.aspx?Chain=5375&Hotel=14844&locale='+LANGUAGE+'-'+languageString.toUpperCase();*/
				if (LANGUAGE == 'fr') { bookingLink+= '&Arrive='+arrivalDay+'/'+arrivalMonth+'/'+arrivalYear; }
				else { bookingLink+= '&Arrive='+arrivalYear+'-'+arrivalMonth+'-'+arrivalDay; }
				bookingLink+= '&Nights='+nbNights;
				bookingLink+= '&adult='+nbAdults;
				$(this).attr('href', bookingLink);
			}
			else { 
				$(this).attr('href', bookingLink);
				//return(false); 
			}
		}
		else {
			$(this).attr('href', bookingLink);
		}
		//
	});
	/*==========================================================================
				* RESIZE *
	==========================================================================*/
	function mainBoxCenter() //ie7
	{
		var arr_box = new Array('main-box', 'freecall-box', 'newsletter-box', 'share-box');
		var screenWidth = $('body').width();
		$.each(arr_box, function(key, box) {
			var boxPaddingLeft = parseInt($('#'+box).css('padding-left').replace('px', ''));
			var boxPaddingRight = parseInt($('#'+box).css('padding-right').replace('px', ''));
			var boxWidth = $('#'+box).width()+boxPaddingLeft+boxPaddingRight;
			var boxLeft = (screenWidth / 2) - (boxWidth / 2);
			$('#'+box).css('left', boxLeft+'px');
		});
	}

	if ($.browser.msie && $.browser.version.slice(0,1) == 7) {
		mainBoxCenter();
	}
	
	function mainBoxResize()
	{
		if (!$.browser.msie || ($.browser.msie && $.browser.version.slice(0,1) > 7)) {
			var screenHeight = $('body').height();
			var screenWidth = $('body').width();
			if (screenHeight > 650) {
				if ($('#main-box').hasClass('main-box')) {
					mainBoxMin();
					$('#main-box-bt-max-container').css('display', 'block');
					$('#main-box-bt-min-container').css('display', 'none');
				}
				if ($('#main-box').hasClass('main-box-768')) {
					$('#main-box-bt-min-container').css('display', 'block');
					$('#main-box-bt-max-container').css('display', 'none');
				}
			}
			else {
				mainBoxMax();
				$('#main-box-bt-max-container').css('display', 'none');
				$('#main-box-bt-min-container').css('display', 'none');
			}
			
			if (screenWidth < 1450) {
				$('#main-box-bt-menu-container').css('display', 'block');
			}
			else { $('#main-box-bt-menu-container').css('display', 'none'); }
		}
	}
	mainBoxResize();
	
	function mainBoxMax()
	{
		if ($('#main-box').hasClass('main-box')) {
			$('#main-box').removeClass('main-box');
			$('#main-box').addClass('main-box-768');
		}
	}
	
	function mainBoxMin()
	{
		if ($('#main-box').hasClass('main-box-768')) {
			$('#main-box').removeClass('main-box-768');
			$('#main-box').addClass('main-box');
		}
	}
	
	function ribonResize()
	{
		var screenWidth = $('body').width();
		$('#ribbon img').width(Math.ceil((screenWidth * 90) / 100)+'px');
	}
	ribonResize();
	
	$(window).resize(function(){
		mainBoxResize();
		slideShow.resize();
		if ($.browser.msie && $.browser.version.slice(0,1) == 7) {
			mainBoxCenter();
		}
		ribonResize();
	});
	/*=============================================================================
			* INPUT PLACE HOLDER IE *
	=============================================================================*/
	if (!Modernizr.input.placeholder) {
		//console.log('no place holder');
		$('input[placeholder]').each(function(key, element) {
			//console.log('place holder: '+$(element).attr('placeholder'));
			$(element).val($(element).attr('placeholder'));
			//console.log('value: '+$(element).val());
			/*$(element).trigger('focus');
			$(element).trigger('blur');*/
			$(element).focus(function() {
				if ($(this).val() == $(this).attr('placeholder')) {
					$(this).val('');
				}
			});
			$(element).blur(function() {
				if (!$(this).val()) {
					$(this).val($(this).attr('placeholder'));
				}
			});
		});
	}
	//else { console.log('place holder ok'); }
	/*==========================================================================
				* COOKIES *
	==========================================================================*/
	function createCookie(name,value) {
		var date = new Date();
		date.setTime(date.getTime()+(1*60*60*1000));
		var expires = "; expires="+date.toGMTString();
		document.cookie = name+"="+value+expires+"; path=/";
	}
	
	function readCookie(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}
	
	function eraseCookie(name) {
		createCookie(name,"",-1);
	}
	/*==========================================================================
				* SOUND *
	==========================================================================*/
	if (!$.browser.msie || ($.browser.msie && $.browser.version.slice(0,1) > 8)) {
		var sound = new buzz.sound("/media/music", {
			formats: ["ogg", "mp3"],
			preload: true,
			autoload: true,
			loop: true
		});
		
		if( navigator.userAgent.match(/iPad/i) != null ) {
			$('#sound').css('display', 'inline');
			$('#sound').attr('src', '/images/ico_sound_off.gif');
		}
			
		sound.bind("loadeddata", function(e) {
			$('#sound').css('display', 'inline');
			var soundPosition = readCookie('soundposition');
			if (soundPosition == null && $('#page-id').val() != 'home') {
				$('#sound').attr('src', '/images/ico_sound_off.gif');
			}
			else {
				sound.setTime(soundPosition);
				//console.log('soundenabled: '+readCookie('soundenabled'));
				if (readCookie('soundenabled') == 1 || soundPosition == 'null' || soundPosition == 0 || !soundPosition) {
					//console.log('sound on');
					sound.play();
					$('#sound').attr('src', '/images/ico_sound_on.gif');
					createCookie('soundenabled', 1);
				}
				else {
					//console.log('sound off');
					//console.log('soundposition: '+readCookie('soundposition'));
					$('#sound').attr('src', '/images/ico_sound_off.gif');
				}
			}
		});
	
		$('#sound').click(function(){
			if (sound.isPaused()) {
				sound.play();
				$(this).attr('src', '/images/ico_sound_on.gif');
				createCookie('soundenabled', 1);
			}
			else {
				sound.pause();
				$(this).attr('src', '/images/ico_sound_off.gif');
				createCookie('soundenabled', 0);
			}
		});
		
		$(window).unload( function() {
			createCookie('soundposition', sound.getTime());
		});
		
		$('#soundf').css('display', 'none');
	}
	else {
		if ($('#page-id').val() != 'home') {
			$('#sound').css('display', 'none');
		}
	}
	/*==========================================================================
				* IDIAP PRELOAD *
	==========================================================================*/
	$.ajax({
	type: "POST",
	dataType: 'json', 
	url: "http://"+SERVER_NAME+"/slideshowpreload.json",
	success: function(jsonObject){
		$.preload(jsonObject, {
			init: function(loaded, total) {
				;
			},
			loaded: function(img, loaded, total) {
				//console.log('loaded : '+loaded+'/'+total);
			},
			loaded_all: function(loaded, total) {
				//console.log('all are loaded');
			}
		});
	}, 
	error: function() {
		//console.log('failure');
	}
});
});
