Date.prototype.format=function(format){var returnStr='';var replace=Date.replaceChars;for(var i=0;i<format.length;i++){var curChar=format.charAt(i);if(replace[curChar]){returnStr+=replace[curChar].call(this);}else{returnStr+=curChar;}}return returnStr;};Date.replaceChars={shortMonths:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],longMonths:['January','February','March','April','May','June','July','August','September','October','November','December'],shortDays:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],longDays:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],d:function(){return(this.getDate()<10?'0':'')+this.getDate();},D:function(){return Date.replaceChars.shortDays[this.getDay()];},j:function(){return this.getDate();},l:function(){return Date.replaceChars.longDays[this.getDay()];},N:function(){return this.getDay()+1;},S:function(){return(this.getDate()%10==1&&this.getDate()!=11?'st':(this.getDate()%10==2&&this.getDate()!=12?'nd':(this.getDate()%10==3&&this.getDate()!=13?'rd':'th')));},w:function(){return this.getDay();},z:function(){return"Not Yet Supported";},W:function(){return"Not Yet Supported";},F:function(){return Date.replaceChars.longMonths[this.getMonth()];},m:function(){return(this.getMonth()<9?'0':'')+(this.getMonth()+1);},M:function(){return Date.replaceChars.shortMonths[this.getMonth()];},n:function(){return this.getMonth()+1;},t:function(){return"Not Yet Supported";},L:function(){return"Not Yet Supported";},o:function(){return"Not Supported";},Y:function(){return this.getFullYear();},y:function(){return(''+this.getFullYear()).substr(2);},a:function(){return this.getHours()<12?'am':'pm';},A:function(){return this.getHours()<12?'AM':'PM';},B:function(){return"Not Yet Supported";},g:function(){return this.getHours()%12||12;},G:function(){return this.getHours();},h:function(){return((this.getHours()%12||12)<10?'0':'')+(this.getHours()%12||12);},H:function(){return(this.getHours()<10?'0':'')+this.getHours();},i:function(){return(this.getMinutes()<10?'0':'')+this.getMinutes();},s:function(){return(this.getSeconds()<10?'0':'')+this.getSeconds();},e:function(){return"Not Yet Supported";},I:function(){return"Not Supported";},O:function(){return(-this.getTimezoneOffset()<0?'-':'+')+(Math.abs(this.getTimezoneOffset()/60)<10?'0':'')+(Math.abs(this.getTimezoneOffset()/60))+'00';},T:function(){var m=this.getMonth();this.setMonth(0);var result=this.toTimeString().replace(/^.+ \(?([^\)]+)\)?$/,'$1');this.setMonth(m);return result;},Z:function(){return-this.getTimezoneOffset()*60;},c:function(){return"Not Yet Supported";},r:function(){return this.toString();},U:function(){return this.getTime()/1000;}};

(function($) {
	var root = (window.location.pathname.indexOf('/rtv/') != -1) ? '/rtv/' : '/';
	$("#print_link").click(function(event) { 
		window.print(); 
		event.preventDefault();
	});
	function checkOptional() {
		if($(".send_catalog:checked").length > 0) {
			$("#optional_data").show();
		}
		else {
			$("#optional_data").hide();
		}
	}
	checkOptional();
	
	function checkAccept() {
		if($("#Form_RegistrationForm_Accept:checked").length > 0) {
			valid = true;
			$("#required_data input:text").each(function() {
				if ($(this).val() == "") {
					valid = false;
					$("#Form_RegistrationForm_action_RegisterSubscriber").attr("disabled", true);
					return false;	
				}	
			});
			if (valid)
				$("#Form_RegistrationForm_action_RegisterSubscriber").attr("disabled", false);
		}
		else {
			$("#Form_RegistrationForm_action_RegisterSubscriber").attr("disabled", true);
		}
	}
	checkAccept();

	$("#required_data input:text").blur(function() {
		checkAccept();	
	});

	$(".send_catalog").change(function() {
		checkOptional();			
	});
	
	$("#Form_RegistrationForm_Accept").change(function() {
		checkAccept();	
	});
	
	$("#pdf_dialog").dialog({
		autoOpen: false,
	//	bgiframe: true,
		height: 650,
		resizable: false,
		draggable: false,
		width: "90%",
		modal: true
	});
	$("#login_dialog").dialog({
		autoOpen: false,
	//	bgiframe: true,
		height: 180,
		resizable: false,
		draggable: false,
		width: 200,
		modal: true
	});
	$("#login_link").click(function(event) {
		$("#login_dialog").dialog("open");
		event.preventDefault();	
	});
	$("a.pdf").click(function(event) {
		$('#pdf_dialog').dialog('option', 'title', $(this).text());
		$("#pdf_dialog").dialog('open');
		var pdfObject = '<object data="'+this.href+'" type="application/pdf" width="100%" height="600">'
			+'<param name="src" value="'+this.href+'">'
	  		+'alt : <a href="'+this.href+'">'+$(this).text()+'</a>'
			+'</object>';
		$("#pdf_dialog").empty().append(pdfObject);
		event.preventDefault();	
	});	

	var menus = [];
	
	function menuCallback(menu, item) {
		var menuParent = $(item).parent().parent();
		var menuId = menuParent.attr("id").split("_").shift();
		var menuContent = '<span class="ui-icon ui-icon-circle-triangle-s"></span>';
		
		if (menus.length < 3) {
			var hit = false;
			for (var i = 0; i < menus.length; i++) {
				if (menus[i].id == menuId) {
					hit = true;
					break;
				}	
			}
			if (!hit) {
				menus.push({id: menuId, menu: menu});
			}
		}
		$("#"+menuId+" .choice").html($(item).html());
		menu.kill();
		$(".positionHelper").remove();
		for (var i = 0; i < menus.length; i++) {
			menus[i].menu.create();	
			menus[i].menu.kill();	
		}
		getShows();
	}
	
	function onShowCallback(caller) {
		if (caller.hasClass("ui-state-disabled"))
			return false;
		else
			return true;	
	}
	
	function getShows() {
		var choices = {};

		$('.scrollContainer, #slider_nav p').fadeOut('slow');
		$('#coverbuttons a').addClass("ui-state-disabled");
		$(".choice").each(function() {
			choices[$(this).parent().attr("id")] = $(this).text();	
		});
		$.getJSON(root+"home/shows_ajax", choices, function(data) {
			if (data.success) {
				$(".scrollContainer").replaceWith(data.ajaxResult);
				$("#slider_nav p").replaceWith(data.showControl);
				Slider.init();
				$('.scrollContainer, #slider_nav p').fadeIn('slow', function() {
					$('#coverbuttons a').removeClass("ui-state-disabled");
				});
			}
			else {
				$('#coverbuttons a').removeClass("ui-state-disabled");
			}
		});		
	}

	var Slider = {
		currentSlide:	$('.scrollContainer .current'),
		prevSlide:		$('.scrollContainer .current').prev(),
		pPrevSlide:		$('.scrollContainer .current').prev().prev(),
		nextSlide: 		$('.scrollContainer .current').next(),
		nNextSlide:		$('.scrollContainer .current').next().next(),
		totalSlides:	$('.scrollContainer img').length,
		movingDistance:	155,
		slideNumber:	1,
		
		init: function() {
			$.datepicker.setDefaults($.datepicker.regional['sv']);
			Slider.currentSlide =	$('.scrollContainer .current');
			Slider.prevSlide =		$('.scrollContainer .current').prev();
			Slider.pPrevSlide =		$('.scrollContainer .current').prev().prev();
			Slider.nextSlide = 		$('.scrollContainer .current').next();
			Slider.nNextSlide =		$('.scrollContainer .current').next().next();
			Slider.totalSlides =	$('.scrollContainer img').length;
			Slider.movingDistance =	155;
			Slider.slideNumber =	1;
			
			$('.scroll .current')
				.removeClass('smaller')
				.addClass('large')
				.next()
				.removeClass('smaller')
				.addClass('small')
				.end()
				.prev()
				.removeClass('smaller')
				.addClass('small')
				.end()
				.nextAll('.smaller').css('margin-left', '-55px');			
			
			$("#slider").data("currentlyMoving", false);
			$("#slider").data("currentlySwitching", false);
			Slider.slideNumber = parseInt(Slider.currentSlide.attr('id').split('_').pop(), 10);
			$("#slider_right").click(function(){ Slider.singleScroll(true); });	
			$("#slider_left").click(function(){ Slider.singleScroll(false); });
			Slider.imageMover();
			Slider.initMenu();
			
			$("#date_from").datepicker({
				minDate: new Date(),
				onSelect: function(dateText, ui) {
					var selDate = dateText.split("-");
					selDate = new Date(selDate[0], (selDate[1]-1), selDate[2]);
					$("#date_to").datepicker('option', 'minDate', selDate);
				}
			});
			$("#date_to").datepicker({
				minDate: new Date(),
				onSelect: function(dateText, ui) {
					console.log(dateText);
					
				}				
			});
			$(document).ready(function() {
				$("#date_from").datepicker('option', $.extend($.datepicker.regional['sv']));
				$("#date_to").datepicker('option', $.extend($.datepicker.regional['sv']));
			});
			
			$("#all_dates, #select_dates").click(function(event) {
				var fromDate = $("#date_from").datepicker('getDate').format('Y-m-d');
				var toDate = $("#date_to").datepicker('getDate').format('Y-m-d');
				var returnValue = (this.id == "all_dates") ? "Alla" : fromDate+" - "+toDate;
					
				$("#datum .choice").html(returnValue);
				$(document).click();
				getShows();
				event.preventDefault();
			});
		},
		initMenu: function() {
			var closeMenu = false;
			var menuOpen = false;

			$('#datum_items').css("left", $("#datum").position().left+"px");
			$("#datum").click(
				function(event) {
					if (!$(this).hasClass("ui-state-disabled")) {
						if (!menuOpen) {
							$('#datum_items').css("left", $(this).position().left+"px");
							$(this).addClass("fg-menu-open").addClass("ui-state-active");
							$('#datum_items').show();
							menuOpen = true;
							closeMenu = false;
						}
						else {
							$(this).removeClass("fg-menu-open").removeClass("ui-state-active");
							$('#datum_items').hide();
							menuOpen = false;
						}
					}
					event.preventDefault();
				}
			);

			$("#datum_items").click(function() {closeMenu = false;});

			$(document).click(function(event) {
				if (closeMenu) {
					$("#datum").removeClass("fg-menu-open").removeClass("ui-state-active");
					$('#datum_items').hide();
					menuOpen = false;
				}	
				closeMenu = true;
			});

			$("#kategori, #target, #ort").click(function() {
				$("#datum").removeClass("fg-menu-open").removeClass("ui-state-active");
				$('#datum_items').hide();
				menuOpen = false;				
			});			
			
			$('#kategori').menu({
				content: $('#kategori_items').html(), // grab content from this page
				showSpeed: 0,
				width: 220,
				callback: menuCallback,
				onShow: onShowCallback
			});		
			$('#target').menu({
				content: $('#target_items').html(), // grab content from this page
				showSpeed: 0,
				width: 220,
				callback: menuCallback,
				onShow: onShowCallback
			});	
			$('#ort').menu({
				content: $('#ort_items').html(), // grab content from this page
				showSpeed: 0,
				width: 220,
				callback: menuCallback,
				onShow: onShowCallback
			});	
		},
		scroll: function(direction, duration) {
			if((direction && !(Slider.slideNumber < Slider.totalSlides)) || (!direction && (Slider.slideNumber <= 1))) { return false; }

			//if not currently moving
			if (($("#slider").data("currentlyMoving") == false && $("#slider").data("currentlySwitching") == false)) {
				$("#slider").data("currentlyMoving", true);

				var leftValue    = $(".scrollContainer").css("left");
				var movement	 = direction ? parseFloat(leftValue, 10) - Slider.movingDistance : parseFloat(leftValue, 10) + Slider.movingDistance;
		
				$(".scrollContainer")
					.stop()
					.animate({
						"left": movement
					}, function() {
						$("#slider").data("currentlyMoving", false);
					});
				Slider.setCurrent(direction);
			}			
		},
		doubleScroll: function(direction, clickedSlide, callback) {
			Slider.movingDistance = 310;
			Slider.doubleSwitch(direction, clickedSlide, callback);
		},
		singleScroll: function(direction) {
			Slider.movingDistance = 155;
			Slider.scroll(direction);
		},
		imageMover: function() {
			$('.scrollContainer img').live('click', function() {
				var scrollTo = parseInt(this.id.split('_').pop(), 10);

				if (!$(this).hasClass("current")) {
					var direction = (scrollTo > Slider.slideNumber) ? true : false;
					if (Math.abs(scrollTo-Slider.slideNumber) === 1)
						Slider.singleScroll(direction);
					else if (Math.abs(scrollTo-Slider.slideNumber) === 2)
						Slider.doubleScroll(direction, this)
				}	
				else {
					window.location = $("#desc_"+scrollTo).parent().attr("href");
				}
			});
		},
		setCurrent: function(direction) {
			var nextId;
			var currentId;
			
			if (($("#slider").data("currentlySwitching") == false)) {
				$("#slider").data("currentlySwitching", true);
				var scrollSlide = direction ? Slider.nextSlide : Slider.prevSlide;
							
				$('.scrollContainer img').removeClass('current');
				scrollSlide.css('z-index', 10)
				.stop()
				.animate({ marginTop: 0, marginLeft: -72, "height": 270, "width":245 }, function() {
					scrollSlide.addClass('current');
					$("#slider").data("currentlySwitching", false);
				});
				if (direction) {
					Slider.currentSlide.css('z-index', 8)
					.stop()
					.animate({ marginTop: 30, marginLeft: -50, "height": 220, "width":200 });
					Slider.prevSlide.stop()
					.animate({ marginTop: 55, marginLeft: 0, "height": 171, "width":155 });	
					
					Slider.nNextSlide.css('z-index', 8).stop()
					.animate({ marginTop: 30, marginLeft: -50, "height": 220, "width":200 });
				}
				else {
					nextId = Slider.nextSlide.attr("id");
					currentId = Slider.currentSlide.attr("id");
					
					Slider.currentSlide.css('z-index', 9)
					.stop()
					.animate({ marginTop: 30, marginLeft: -50, "height": 220, "width":200 }, function() {
						$("#"+currentId).css('z-index', 8);
					});
					Slider.nextSlide.stop()
					.animate({ marginTop: 55, marginLeft: -55, "height": 171, "width":155 }, function() {
						$("#"+nextId).css('z-index', 5);
					});
					
					Slider.pPrevSlide.css('z-index', 8).stop()
					.animate({ marginTop: 30, marginLeft: -50, "height": 220, "width":200 });
				}
	
				Slider.updateSlides(scrollSlide);
				$("#slider_nav span").hide();
				$("#desc_"+Slider.slideNumber+", #desc_"+Slider.slideNumber+" span").show();	
			}
		},
		doubleSwitch: function(direction, clickedSlide, callback) {
			if (($("#slider").data("currentlySwitching") == false)) {
				$("#slider").data("currentlySwitching", true);
				var scrollSlide = $(clickedSlide);
				var leftValue    = $(".scrollContainer").css("left");
				var movement	 = direction ? parseFloat(leftValue, 10) - Slider.movingDistance : parseFloat(leftValue, 10) + Slider.movingDistance;
				var extraSlides = "#"+scrollSlide.next().attr('id')+", #"+scrollSlide.prev().attr('id');
											
				$('.scrollContainer img:not(.current)').stop()
					.animate({ marginTop: 55, marginLeft: -27, "height": 171, "width":155 }, function() {
						$('.scrollContainer img:not(.current)').css('z-index', 5);
					});
				$('.scroll .current').stop()
					.animate({ marginTop: 55, marginLeft: -27, "height": 171, "width":155 }, function() {
						$('.scroll .current').css('z-index', 5).removeClass('current');
					}); 
				
				$(".scrollContainer")
				.stop()
				.animate({
					"left": movement
				}, function() {
					$('.scrollContainer img').removeClass('current');
					$(scrollSlide).css('z-index', 10)
						.stop().animate({ marginTop: 0, marginLeft: -72, "height": 270, "width":245 })
						.next().nextAll().stop().animate({marginLeft: -55})
						.end().prev().prevAll().stop().animate({marginLeft: 0});
					$(extraSlides).css('z-index', 8).stop()
						.animate({ marginTop: 30, marginLeft: -50, "height": 220, "width":200 }
							, function() {
								$("#slider").data("currentlySwitching", false);
								$(scrollSlide).addClass('current');
					            if (typeof(callback) == "function")
					            	callback();
							});	
					$(scrollSlide).prev().prevAll().stop().animate({marginLeft: 0});		
				});						
				Slider.updateSlides(scrollSlide);	
				$("#slider_nav span").hide();
				$("#desc_"+Slider.slideNumber+", #desc_"+Slider.slideNumber+" span").show();	
			}
		},
		updateSlides: function(clickedSlide) {
			Slider.currentSlide = clickedSlide;
			Slider.prevSlide = Slider.currentSlide.prev();
			Slider.pPrevSlide = Slider.prevSlide.prev();
			Slider.nextSlide = Slider.currentSlide.next();
			Slider.nNextSlide = Slider.nextSlide.next();
			Slider.slideNumber = parseInt(Slider.currentSlide.attr('id').split('_').pop(), 10);
		}		
	}
	Slider.init();
	Slider.doubleScroll(true, $("img.current").next().next(), function() {
		$('#slider, #slider_nav, #coverbuttons').fadeIn("slow");
	});
	//all hover and click logic for buttons
	$(".fg-button:not(.ui-state-disabled)")
	.hover(
		function(){ 
			$(this).addClass("ui-state-hover"); 
		},
		function(){ 
			$(this).removeClass("ui-state-hover"); 
		}
	)
	.mousedown(function(){
			$(this).parents('.fg-buttonset-single:first').find(".fg-button.ui-state-active").removeClass("ui-state-active");
			if( $(this).is('.ui-state-active.fg-button-toggleable, .fg-buttonset-multi .ui-state-active') ){ 
				$(this).removeClass("ui-state-active"); 
			}
			else { $(this).addClass("ui-state-active"); }	
	})
	.mouseup(function(){
		if(! $(this).is('.fg-button-toggleable, .fg-buttonset-single .fg-button,  .fg-buttonset-multi .fg-button') ){
			$(this).removeClass("ui-state-active");
		}
	});
}(jQuery));