﻿var go4h =  {
	init: function(){
		this.main();
		this.mycarousel();
		this.bind_region();
		this.bind_calculate();
	},
	main: function() {
		if ($('#secondmenu').length) {
			var menu_c = $('#menu .current');
			menu_c.html('<span>' + menu_c.html() + '</span>')
			menu_c.prepend('<div class="left">&nbsp;</div>');
			menu_c.append('<div class="right">&nbsp;</div>');
			menu_c.prev().css('background', 'none');
		} else {
			$('#menu .current').removeClass('current');
		}
		
		$('.chat a').bind('click', function(e){
			e.preventDefault();
			newwindow = window.open($(this).attr('href'), 'czat','height=415,width=300');
			if (window.focus) {
				newwindow.focus();
			}
		});

		if ($('.jq_date').length>0 || $('li.date input').length>0){
			$('.jq_date, li.date input ').datepicker();
		}
	},
	bind_region: function() {
		$('#id_direction').change(go4h.change_region);
	},
	mycarousel_initCallback: function(carousel) {
	    jQuery('.jcarousel-control a').bind('click', function() {
	        carousel.scroll(jQuery.jcarousel.intval(jQuery(this).text()));
	        return false;
	    });
	},
	mycarousel_itemCallback: function(carousel, a,b,c,d) {
		b--;
		$('.jcarousel-control .selected').removeClass('selected');
		$($('.jcarousel-control a')[b]).addClass('selected');
	},
	mycarousel: function() {
	    jQuery("#mycarousel").jcarousel({
	        scroll: 1,
	        initCallback: this.mycarousel_initCallback,
	        itemVisibleInCallback: this.mycarousel_itemCallback,
	        buttonNextHTML: null,
	        buttonPrevHTML: null,
	        auto: 7,
	        wrap: 'last'
	    });
	},
	change_region: function(){
		$.ajax({
			url:'/szukaj/region/',
			data : {'direction': $('#id_direction').attr('value')},
			type :'post',
			success: function(data){
				$('#id_region_input').remove();
				$('#id_region_container').remove();
				$('#id_region').empty().append(data);
				$('#id_region').selectbox();
			}
		});
	},
	bind_calculate: function(){
		$('#calculate').each(function(){
			go4h.calculate();
		});
	},
	calculate: function(){
		form = $("#calculate form");
		$('#calculateLoad').css('display', 'block');
		$('#calculateLoad').css('left', form.offset().left + 'px');
		$('#calculateLoad').css('top', form.offset().top + 'px');
		$('#calculateLoad').css('height', form.height() + 'px');
		$('#calculateLoad').css('width', form.width() + 'px');
		$('input', form).bind('onChange', go4h.calculate);

		values = $("#calculate form").serialize();

		$.ajax({
			url:'/kalkulator/',
			data : {'values': values, 'hotel': hotel, 'offer': offer},
			type :'post',
			success: function(data){
				offer = 0;
				$('#calculateLoad').hide();
				form.html(data);
				$('select', form).each(function(i, x) {
					x = $(x);
					if (x.css('display') != 'none')
						x.change(go4h.calculate);
				});
			}
		});
	}
};

$(document).ready(function(){
	go4h.init();
});

$(function() {
	
	  //remove js-disabled class
		$("#logos").removeClass("js-disabled");
	
	  //create new container for images
		$("<div>").attr("id", "container").css({ position:"absolute"}).width($(".wrapper").length * 170).height(50).appendTo("div#viewer");
	  	
		//add images to container
		$(".wrapper").each(function() {
			$(this).appendTo("div#container");
		});
		
		//work out duration of anim based on number of images (1 second for each image)
		var duration = $(".wrapper").length * 5000;
		
		//store speed for later (distance / time)
		var speed = (parseInt($("div#container").width()) + parseInt($("div#viewer").width())) / duration;
						
		//set direction
		var direction = "rtl";
		
		//set initial position and class based on direction
		(direction == "rtl") ? $("div#container").css("left", $("div#viewer").width()).addClass("rtl") : $("div#container").css("left", 0 - $("div#container").width()).addClass("ltr") ;
		
		//animator function
		var animator = function(el, time, dir) {
		 
			//which direction to scroll
			if(dir == "rtl") {
			  
			  //add direction class
				el.removeClass("ltr").addClass("rtl");
			 		
				//animate the el
				el.animate({ left:"-" + el.width() + "px" }, time, "linear", function() {
										
					//reset container position
					$(this).css({ left:$("div#imageScroller").width(), right:"" });
					
					//restart animation
					animator($(this), duration, "rtl");
					
					//hide controls if visible
					($("div#controls").length > 0) ? $("div#controls").slideUp("slow").remove() : null ;			
									
				});
			} else {
			
			  //add direction class
				el.removeClass("rtl").addClass("ltr");
			
				//animate the el
				el.animate({ left:$("div#viewer").width() + "px" }, time, "linear", function() {
										
					//reset container position
					$(this).css({ left:0 - $("div#container").width() });
					
					//restart animation
					animator($(this), duration, "ltr");
					
					//hide controls if visible
					($("div#controls").length > 0) ? $("div#controls").slideUp("slow").remove() : null ;			
				});
			}
		};
		
		//start anim
		animator($("div#container"), duration, direction);
		
		//pause on mouseover
		$("a.wrapper").live("mouseover", function() {
		  
			//stop anim
			$("div#container").stop(true);
			
			//show controls
			($("div#controls").length == 0) ? $("<div>").attr("id", "controls").appendTo("div#outerContainer").css({ opacity:0.7 }).slideDown("slow") : null ;
			($("a#rtl").length == 0) ? $("<a>").attr({ id:"rtl", href:"#", title:"rtl" }).appendTo("#controls") : null ;
			($("a#ltr").length == 0) ? $("<a>").attr({ id:"ltr", href:"#", title:"ltr" }).appendTo("#controls") : null ;
			
			//variable to hold trigger element
			var title = $(this).attr("title");
			
			//add p if doesn't exist, update it if it does
			($("p#title").length == 0) ? $("<p>").attr("id", "title").text(title).appendTo("div#controls") : $("p#title").text(title) ;
		});
		
		//restart on mouseout
		$("a.wrapper").live("mouseout", function(e) {
		  
			//hide controls if not hovering on them
			(e.relatedTarget == null) ? null : (e.relatedTarget.id != "controls") ? $("div#controls").slideUp("slow").remove() : null ;
			
			//work out total travel distance
			var totalDistance = parseInt($("div#container").width()) + parseInt($("div#viewer").width());
												
			//work out distance left to travel
			var distanceLeft = ($("div#container").hasClass("ltr")) ? totalDistance - (parseInt($("div#container").css("left")) + parseInt($("div#container").width())) : totalDistance - (parseInt($("div#viewer").width()) - (parseInt($("div#container").css("left")))) ;
			
			//new duration is distance left / speed)
			var newDuration = distanceLeft / speed;
		
			//restart anim
			animator($("div#container"), newDuration, $("div#container").attr("class"));

		});
										
		//handler for ltr button
		$("#ltr").live("click", function() {
		 					
			//stop anim
			$("div#container").stop(true);
		
			//swap class names
			$("div#container").removeClass("rtl").addClass("ltr");
								
			//work out total travel distance
			var totalDistance = parseInt($("div#container").width()) + parseInt($("div#viewer").width());
			
			//work out remaining distance
			var distanceLeft = totalDistance - (parseInt($("div#container").css("left")) + parseInt($("div#container").width()));
			
			//new duration is distance left / speed)
			var newDuration = distanceLeft / speed;
			
			//restart anim
			animator($("div#container"), newDuration, "ltr");
		});
		
		//handler for rtl button
		$("#rtl").live("click", function() {
								
			//stop anim
			$("div#container").stop(true);
			
			//swap class names
			$("div#container").removeClass("ltr").addClass("rtl");
			
			//work out total travel distance
			var totalDistance = parseInt($("div#container").width()) + parseInt($("div#viewer").width());

			//work out remaining distance
			var distanceLeft = totalDistance - (parseInt($("div#viewer").width()) - (parseInt($("div#container").css("left"))));
			
			//new duration is distance left / speed)
			var newDuration = distanceLeft / speed;
		
			//restart anim
			animator($("div#container"), newDuration, "rtl");
		});
	});