var _$ = function(elmId)
{
	return document.getElementById(elmId);
}

function setEvent(obj, event, fnc)
{
	try {
		return obj.attachEvent(event, fnc);
	} catch (e) {
		return obj.addEventListener(event.replace(/^on/, ''), fnc, false);
	}
}

function InputDefaultValueOnFocus(e)
{
	e = e || window.event;
	elm = e.srcElement || e.target;

	InputDefaultValue.eventFocus(elm);
}

function InputDefaultValueOnBlur(e)
{
	e = e || window.event;
	elm = e.srcElement || e.target;
	
	InputDefaultValue.eventBlur(elm);
}

var InputDefaultValue = {

	'settings' : {},

	'add' : function(elmId, defaultValue, autoClear, required, styles)
	{
	   var elm = _$(elmId);

		if(!elm)
		{
		   return null;
		}
		else
		{
			InputDefaultValue.settings[elm.id] = {
			   'elmId' : elmId,
			   'defaultValue' : defaultValue,
			   'autoClear' : autoClear,
			   'required' : required,
			   'styles' : styles
			};
			
			setEvent(elm, 'onfocus', InputDefaultValueOnFocus);
			setEvent(elm, 'onblur', InputDefaultValueOnBlur);
		
			this.eventBlur(elm);
		}
	},

	'eventBlur' : function(elm)
	{
	   var sett = InputDefaultValue.settings[elm.id];

	   if(!elm.value.length && sett.required)
	   {
	      elm.value = sett.defaultValue;
	   }
	   
	   if(typeof(sett.styles) == 'object' && elm.value == sett.defaultValue)
		{
			var key;
			for(key in sett.styles)
			{
			   elm.style[key] = sett.styles[key];
			}
		}
	},

	'eventFocus' : function(elm)
	{
	   var sett = InputDefaultValue.settings[elm.id];

	   if(elm.value == sett.defaultValue && sett.autoClear)
	   {
	      elm.value = '';
	      if(typeof(sett.styles) == 'object')
			{
				var key;
				for(key in sett.styles)
				{
				   elm.style[key] = '';
				}
			}
	   }
	},
	
	'clear' : function(elm)
	{
		var sett = InputDefaultValue.settings[elm.id];
	   if(elm.value == sett.defaultValue)
	      elm.value = '';
	}
}

var xmlHttp;

var Ajax = {

	'noAjaxSupport' : false,
	'overlay' : null,

	'init' : function()
	{
		try {
			xmlHttp = new XMLHttpRequest();
		}
		catch (e) {
			try {
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e) {
				try {
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) {
					this.noAjaxSupport = true;
				}
			}
		}
	},

	'sendRequest' : function(url, returnResult, callback, counter)
	{
		if(!xmlHttp && !this.noAjaxSupport)
			this.init();
			
		if(this.noAjaxSupport)
			return null;
	
		if (xmlHttp.readyState != 0)
		{ 
			if(!counter)
				counter = 0;
		
			if(counter == 5000)
			{
				xmlHttp.abort();
			}
			else
			{
				setTimeout("Ajax.sendRequest('" + url + "', " + (returnResult ? 'true' : 'false') + ", '" + callback + "', " + (counter + 25) + ")", 25);
				return;
			}				
		}
		
      xmlHttp.open ('GET', url, true);
      xmlHttp.onreadystatechange = function()
		{
      	if(xmlHttp.readyState == 4 && Ajax.isSuccess())
			{
				if(xmlHttp.responseText)
				{
					if(callback)
					{
						eval(callback.replace(/\[data\]/, xmlHttp.responseText)); 
					}
				   else if(returnResult)
				   {
					   return xmlHttp.responseText;
					}
					else
					{
						eval(xmlHttp.responseText);
					}
				}
				
				xmlHttp.abort();
        	}
      }
   	xmlHttp.send(null);
   	return true;
	},
	
	'postRequest' : {

		'data' : '',
		'initialized' : false,

		'prepare' : function(url, data, callback, counter)
		{
			this.initialized = false;
			
			if(!xmlHttp && !this.noAjaxSupport)
				Ajax.init();
			
		   if (xmlHttp.readyState != 0)
			{ 
				if(!counter)
					counter = 0;
			
				if(counter == 5000)
				{
					xmlHttp.abort();
				}
				else
				{
					setTimeout("Ajax.postRequest.prepare('" + url + "', '" + data + "', '" + callback + "', " + (counter + 25) + ")", 25);
					return;
				}				
			}
		   
		   xmlHttp.open ('POST', url, true);
		   xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		   
         xmlHttp.onreadystatechange = function()
			{
      		if(xmlHttp.readyState == 4 && Ajax.isSuccess())
				{
					if(xmlHttp.responseText)
					{
						if(callback)
						{
							eval(callback.replace(/\[data\]/, xmlHttp.responseText)); 
						}
					   else
						{
							eval(xmlHttp.responseText);
						}
					}
				
					xmlHttp.abort();
	        	}
      	}
      	this.data = data;
      	this.initialized = true;
		},
		
		'send' : function(counter)
		{
			if(!this.initialized)
			{ 
				if(!counter)
					counter = 0;
			
				if(counter == 5000)
				{
					return false;
				}
				else
				{
					setTimeout("Ajax.postRequest.send(" + (counter + 25) + ")", 25);
					return;
				}				
			}
		
			xmlHttp.send(this.data);
		}
	},
	
	'isSuccess' : function()
	{
		try {
		   return !xmlHttp.status && location.protocol == 'file:' ||
		      (xmlHttp.status >= 200 && xmlHttp.status < 300) ||
		         xmlHttp.status == 304 ||
		            navigator.userAgent.indexOf('Safari') >= 0 && typeof xmlHttp.status == 'undefined';
		} catch(e) {}

		return false;
	}
}

function CheckAvailability(form)
{
	var $dds = $('#check').find('dd');
			
	$dds.html('??');
	$dds.css('color', '#000000');	
	
	var url = form.elements['base_url'].value;
	url += '&retailer_id=5AC0005D335948EA85CD52764DF016BB';
	url += '&req_tourid=' + form.elements['req_tourid'].value;
	url += '&req_passengers=' + form.elements['req_passengers'].value;
	url += '&req_rooms=' + form.elements['req_rooms'].value;
		
	Ajax.sendRequest(url, true, 'CheckAvailabilityCallback("[data]")'); 
		
	return false;
}

function CheckAvailabilityCallback(data)
{	
	var $dds = $('#check').find('dd');
				
	$dds.eq(0).html(data.charAt(0) == 1 ? 'Volný' : 'Obsazený');
	$dds.eq(0).css('color', data.charAt(0) == 1 ? '#00D800' : '#D80000');
	
	$dds.eq(1).html(data.charAt(0) == 1 ? 'Volný' : 'Obsazený');
	$dds.eq(1).css('color', data.charAt(0) == 1 ? '#00D800' : '#D80000');
	
	$dds.eq(2).html(data.charAt(0) == 1 ? 'Volný' : 'Obsazený');
	$dds.eq(2).css('color', data.charAt(0) == 1 ? '#00D800' : '#D80000');
}

$(document).ready(function() {	
	$('a.fancybox').fancybox({
		'transitionIn'		: 'linear',
		'transitionOut'	: 'linear',
		'speedIn'			: 600, 
		'speedOut'			: 200, 
		'overlayOpacity'	: 0.8,
		'overlayColor'		: '#d2f8fc',
		'titlePosition'	: 'over',
		'titleFormat'		: function(title, currentArray, currentIndex, currentOpts)
		{
			if(typeof title != 'undefined')
				return '<span id="fancybox-title-over">' + title + '<br /><span class="small italic">Foto ' + (currentIndex + 1) + ' z ' + currentArray.length + '</span></span>';
			else
				return '';
		},
		'centerOnScroll'	: true,
		'scrolling'			: 'no'
	});
	
	$('a.fancybox.modal').fancybox({
		'transitionIn'		: 'linear',
		'transitionOut'	: 'linear',
		'speedIn'			: 600, 
		'speedOut'			: 200, 
		'overlayOpacity'	: 0.8,
		'overlayColor'		: '#d2f8fc',
		'titlePosition'	: 'over',
		'titleFormat'		: function(title, currentArray, currentIndex, currentOpts)
		{
			if(typeof title != 'undefined')
				return '<span id="fancybox-title-over">' + title + '<br /><span class="small italic">Foto ' + (currentIndex + 1) + ' z ' + currentArray.length + '</span></span>';
			else
				return '';
		},
		'centerOnScroll'	: true,
		'scrolling'			: 'no',
		'hideOnOverlayClick'	: false
	});
	
	
		$('a.thickbox').fancybox({
		'transitionIn'		: 'linear',
		'transitionOut'	: 'linear',
		'speedIn'			: 600, 
		'speedOut'			: 200, 
		'overlayOpacity'	: 0.8,
		'overlayColor'		: '#d2f8fc',
		'titlePosition'	: 'over',
		'titleFormat'		: function(title, currentArray, currentIndex, currentOpts)
		{
			if(typeof title != 'undefined')
				return '<span id="fancybox-title-over">' + title + '<br /><span class="small italic">Foto ' + (currentIndex + 1) + ' z ' + currentArray.length + '</span></span>';
			else
				return '';
		},
		'centerOnScroll'	: true,
		'scrolling'			: 'no',
		'hideOnOverlayClick'	: false
	});
	
	$.datepicker.regional['cs'] = {
		closeText: 'Zavřít',
		prevText: '&#x3c;Dříve',
		nextText: 'Později&#x3e;',
		currentText: 'Nyní',
		monthNames: ['leden','únor','březen','duben','květen','červen','červenec','srpen','září','říjen','listopad','prosinec'],
		monthNamesShort: ['leden','únor','březen','duben','květen','červen','červenec','srpen','září','říjen','listopad','prosinec'],
		dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
		dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
		dayNamesMin: ['ne','po','út','st','čt','pá','so'],
		weekHeader: 'Týd',
		dateFormat: 'dd.mm.yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''
	};
	
	$.datepicker.setDefaults($.datepicker.regional['cs']);

	//Kalendar odjezd
	$( "#datepicker-odjezd" ).datepicker({
		dateFormat: 'dd.mm.yy',
		numberOfMonths: 2,		
		minDate: 'now',	
		duration: 1,
		inline: true
	});
		
	//Kalendar prijezd
	$( "#datepicker-prijezd" ).datepicker({
		dateFormat: 'dd.mm.yy',
		numberOfMonths: 2,
		duration: 1,
		inline: true,
		minDate: '+1'
	});
					
	//more search

	
		$(".ico-more-search").toggle(function(){
	  $(this).addClass("swap"); 
	  $(".more-search").slideDown("fast");
	  return false;
	  }, function () {
      $(this).removeClass("swap");
	  $(".more-search").fadeOut("fast", function() {
	  	$(this).slideUp("fast").removeClass("swap");
		});
	  return false;
	}); 
	
	
	//podbarvené odkazy
	$('.vypis-hotelu .item').biggerlink({});
	
	if($('.more-search').size())
	{
		if($('#Boarding').val().length || $('#HotelCategory').val().length || $('#Price').val().length || $('#Code').val().length)
			$('.more-search').slideDown();		
	}
	
	if($('#RecommendMessage').size() && $('#RecommendMessage').html().length)
	{
		$('.mail.fancybox').click();
	}
});


  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-21500658-1']);
  _gaq.push(['_trackPageview']);
  

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
  

