var calculating = false;
var curdate = new Date()
var cmonthstep = 0;
var slidenum = 1;
var slidefx, slidetimer;
var pfx = false;
var cfx = false;

function openFormPopup(title, url) {
	formPopup = LightBox.ajax(title, url, {onLoad:  function(){
		buildDatePickers();
	}, onComplete: function(returnvalue){
		if(returnvalue){}
	}});
}


function sendGuestEntry() {

	var error = false;
	if($('fname').get('value') == '')error = 'Por favor, introduce tu nombre...';
	else if($('femail').get('value') == '')error = 'Por favor, introduce tu correo electrónico...';
	else if($('femail').get('value') == '')error = 'Por favor, introduce tu correo electrónico...';
	else if($('femail').get('value') != '' && !$('femail').get('value').test("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+[.]([a-z0-9-]+)*(\.[a-z]{2,3})$"))error = 'Email no es válido...';
	else if($('ftitle').get('value') == '')error = 'Por favor, introduce tu mensaje...';
	else if($('fmessage').get('value') == '')error = 'Por favor, introduce tu mensaje...';
	else if($('fstay_date').get('value') == '')error = 'Por favor, especifica cuando te alojaste en Tunel del hada...';

	if(error)LightBox.error('Error', error);

	else {
		$('pForm').submit();
	}

	return false;
}


function refreshReservation() {
	if($('reservarbutton'))$('reservarbutton').hide();
	calculating = true;

	var request_url = BASE_URL+'reservation/form/';
	new Request.HTML({url:request_url}).send($('reservationForm')).addEvents({'onSuccess': function(responseTree, responseElements, responseHTML, responseJavaScript){
		$('rLoader').set('html', responseHTML);
		buildDatePickers();
		calculating = false;
	}});
}


function sendContactRequest() {
	var request_url = BASE_URL+'contact_us/send/';
	new Request.HTML({url:request_url}).send($('sForm')).addEvents({'onSuccess': function(responseTree, responseElements, responseHTML, responseJavaScript){}});

	return false;
}

function checkAvailability(form, items) {
	var request_url = BASE_URL+items+'/check_availability/';
	new Request.HTML({url:request_url}).send(form).addEvents({'onSuccess': function(responseTree, responseElements, responseHTML, responseJavaScript){}});
	return false;
}

function calendarSlide(direction) {
	if(cfx)cfx.cancel();
	cfx = new Fx.Tween($('a-months'),{transition: Fx.Transitions.Back.easeInOut, duration: 600});

	if(direction) {
		if(direction == 'next' && cmonthstep < 10){
			cmonthstep++
		}

		else if(direction == 'prev' && cmonthstep > 0){
			cmonthstep--;
		}
	}
	
	var left = cmonthstep*-238;
	cfx.start('left', left);
}


function expandCategories(el) {
	var li = $(el).getParent('li');
	var ul = li.getElement('ul');

	if(li.className.indexOf('expanded') >= 0) {
		li.removeClass('expanded');
		ul.hide();
	}

	else {
		li.addClass('expanded');
		ul.show();
	}
}

function loadVideo(vid) {
	$('main-video').src = BASE_URL+'video/frame/'+vid+'/480/350';
}

function tabGallery(el,tab) {
	$(el).getParent('.tabs').getElements('.head').removeClass('active');
	$(el).addClass('active');
	$(el).getParent('.tabs').getElements('.tab-content').hide();
	$(tab).show();
}

function slideThumbs(el, direction) {
	var cnt = $(el).getParent('.cnt');

	if(!cnt.get('step'))cnt.set('step', 0);
	var step = cnt.get('step');
		
	ttcnt = cnt.getElement('.ttcnt');
	
	if(pfx)pfx.cancel();
	pfx = new Fx.Tween(ttcnt,{transition: Fx.Transitions.Back.easeInOut, duration: 1200});
	
	if(direction) {
		if(direction == 'down'){
			if((step*3) < (parseInt(ttcnt.getElements('img').length/3)*3) && ((step+1)*3) != ttcnt.getElements('img').length)step++;
		}
		else if(step > 0)step--;
	}

	cnt.set('step', step);

	var top = (step*-297);
	pfx.start('top', top);
}

function newsletterSubscription(form) {
	var request_url = BASE_URL+'newsletter/subscription/';
	new Request.HTML({url:request_url}).send(form).addEvents({'onSuccess': function(responseTree, responseElements, responseHTML, responseJavaScript){}});
	return false;
}

var nextSlide = function () {
	if(slidenum == $$('.slide').length)slidenum = 1;
	else slidenum++;

	$clear(slidetimer);
	slidefx.cancel();
	slidefx.start('left', ((slidenum-1)*-948));
	slidetimer = nextSlide.delay(10000);
};

var prevSlide = function () {
	if(slidenum == 1)slidenum = $$('.slide').length;
	else slidenum--;

	$clear(slidetimer);
	slidefx.cancel();
	slidefx.start('left', ((slidenum-1)*-948));
	slidetimer = nextSlide.delay(10000);
};

function backTop() {
	new Fx.Scroll(window).start('top', 0);
}

function buildDatePickers() {

	$$('.range_picker').each(function(input, index) {
		var clone = input.clone();
		var input2 = $(input.get('rel')+'');
		var clone2 = input2.clone();

		input.hide();
		input2.hide();

		input.set('builded', true);
		input2.set('builded', true);
		clone.set('builded', true);
		clone2.set('builded', true);

		clone.show();
		clone2.show();

		var val = parseInt(input.get('value')) * 1000;
		var val2 = parseInt(input2.get('value')) * 1000;

		var dat = new Date(val);
		var dat2 = new Date(val2);

		dat.setHours(dat.getHours()+(dat.getTimezoneOffset()/60));
		dat2.setHours(dat2.getHours()+(dat.getTimezoneOffset()/60));

		if(dat.getDate() > 0)clone.set('value', (dat.getDate() < 10 ? '0'+dat.getDate() : dat.getDate())+"/"+((dat.getMonth()+1) < 10 ? '0'+(dat.getMonth()+1) : (dat.getMonth()+1))+"/"+dat.getFullYear());
		clone.set('name', '').set('id', '').injectAfter(input);

		if(dat2.getDate() > 0)clone2.set('value', (dat2.getDate() < 10 ? '0'+dat2.getDate() : dat2.getDate())+"/"+((dat2.getMonth()+1) < 10 ? '0'+(dat2.getMonth()+1) : (dat2.getMonth()+1))+"/"+dat2.getFullYear());
		clone2.set('name', '').set('id', '').injectAfter(input2);

		var DP = new Tc.DatePicker.setup({
			firstDay		: 1,
			weekNumbers		: false,
			showOthers		: true,
			electric		: false,
			inputField		: clone,
			numberMonths	: 1,
			ifFormat		: "%d/%m/%Y",
			dateStatusFunc	: function(dt) {
				dt.setHours(0);
				dt.setMinutes(0);

				dt = dt.getTime();

				ot = new Date(parseInt(input2.get('value')) * 1000);
				ot.setHours(0);
				ot.setMinutes(0);

				ot = ot.getTime();

				nw = new Date();
				nw.setHours(0);
				nw.setMinutes(0);

				nw = nw.getTime();

				if(dt < nw)return true;
				else return false;

			},
			onUpdate : function() {

				var val = clone.get('value').split("/");
				var datevalue = Date.parse(val[2] + '/' + val[1] + '/' + val[0] + ' 00:00:00 GMT').toString().substring(0, 10);
				input.set('value', datevalue);

				var ddt = new Date(parseInt(input.get('value')) * 1000);
				var oot = new Date(parseInt(input2.get('value')) * 1000);

				ddt.setHours(0);
				ddt.setMinutes(0);

				ddt = ddt.getTime();

				oot.setHours(0);
				oot.setMinutes(0);

				oot = oot.getTime();

				if(ddt >=oot){
					input2.set('value', '');
					clone2.set('value', '');
				}

				if($('reservationForm'))refreshReservation();
			}
		});

		
		var DP2 = new Tc.DatePicker.setup({
			firstDay		: 1,
			weekNumbers		: false,
			showOthers		: true,
			electric		: false,
			inputField		: clone2,
			numberMonths	: 1,
			ifFormat		: "%d/%m/%Y",
			dateStatusFunc	: function(dt) {
				dt.setHours(0);
				dt.setMinutes(0);

				dt = dt.getTime();

				ot = new Date(parseInt(input.get('value')) * 1000);
				ot.setHours(0);
				ot.setMinutes(0);

				ot = ot.getTime();

				nw = new Date();
				nw.setHours(0);
				nw.setMinutes(0);

				nw = nw.getTime();

				if(dt <= ot || dt < nw)return true;
				else return false;
			},
			onUpdate : function() {
				var val2 = clone2.get('value').split("/");
				var datevalue = Date.parse(val2[2] + '/' + val2[1] + '/' + val2[0] + ' 00:00:00 GMT').toString().substring(0, 10);
				input2.set('value', datevalue);

				if($('reservationForm'))refreshReservation();
			},
			onShow : function(cal) {
				if(clone2.get('value') == '') {
					var parsedDate = Date.parseDate(clone.get('value'), "%d/%m/%Y");
					cal.setDate(parsedDate);
				}
			}
		});
	});


	$$('.date_picker').each(function(input, index) {
		if(!input.get('builded')) {

			var clone = input.clone();
			input.hide();
			input.set('builded', true);
			clone.show();

			var val = parseInt(input.get('value')) * 1000;
			var dat = new Date(val);

			dat.setHours(dat.getHours()+(dat.getTimezoneOffset()/60));

			if(dat.getDate() > 0)clone.set('value', (dat.getDate() < 10 ? '0'+dat.getDate() : dat.getDate())+"/"+((dat.getMonth()+1) < 10 ? '0'+(dat.getMonth()+1) : (dat.getMonth()+1))+"/"+dat.getFullYear());
			clone.set('name', '').set('id', '').injectAfter(input);


			var DP = new Tc.DatePicker.setup({
				firstDay		: 1,
				weekNumbers		: false,
				showOthers		: true,
				electric		: false,
				inputField		: clone,
				numberMonths	: 1,
				ifFormat		: "%d/%m/%Y",
				onUpdate : function() {
					var val = clone.get('value').split("/");
					var datevalue = Date.parse(val[2] + '/' + val[1] + '/' + val[0] + ' 00:00:00 GMT').toString().substring(0, 10);

					input.set('value', datevalue);
				}
			});
	}});
}

window.addEvent('domready', function() {
	if($('slides')){
		slidefx = new Fx.Tween($('slides'),{transition: Fx.Transitions.Back.easeOut, duration: 1000});
		slidetimer = nextSlide.delay(10000);
	}

	buildDatePickers();
});
