function limitChars(limit){
	var text = $('#'+textid).val(); 
	var textlength = text.length;
	if(textlength > limit) {
		$('#' + infodiv).html('You cannot write more then '+limit+' characters!');
		$('#'+textid).val(text.substr(0,limit));
		return false;
	} else {
		$('#charsremaining').html('You have '+ (limit - textlength) +' characters left.');
		return true;
	}
}

function nextComment(){
	$('#feedback_loading').fadeIn(600);
	$('#feedback_bubble').fadeOut(600);
	$('#feedback_text').fadeOut(600);
	$('#feedback_head').animate({
		top: '+=60'
	}, 1200, function() {
		// load random comment from db
		id = $("#commentid").val();
		
		$.ajax({
			url: "load_comment.php",
			data: "id="+id,
			dataType: "xml",
			success: function(xml) {
				var id = $(xml).find('comment').attr("id");
				var character = $(xml).find('comment').attr("character");
				var description = $(xml).find('comment').attr("description");
				var feedback = $(xml).find('comment').attr("feedback");
				$("#feedback_bubble_quote").html(feedback);
				$("#feedback_text").html(description);
				$("#commentid").val(id);
				$('#feedback_head').removeClass();
				$('#feedback_head').addClass(character);
				
				$('#feedback_loading').fadeOut(600);
				$('#feedback_head').animate({
					top: '-=60'
				}, 600);
				$('#feedback_text').fadeIn(600);
				$('#feedback_bubble').fadeIn(1200, function() {
					// animation complete
				});
			}
		});
	});
}


$(document).ready(function(){

	// start cycling of comments.
	window.setInterval(nextComment, 15000);

	// contact form js
	if ($("#contact_type").length > 0) {
		if ($("#contact_type").val() == "reservation"){ 
			$("#reservation_fieldset").css("display", "block");
		}
		else { 
			$("#reservation_fieldset").css("display", "none");
		}
	
		$("#contact_type").change(function(){
			if ($("#contact_type").val() == "reservation"){ 
				$("#reservation_fieldset").slideDown();
			}
			else { 
				$("#reservation_fieldset").slideUp();
			}
		});
		
		$('.selectdate').datepicker({
			dateFormat: 'yy-mm-dd',
			changeMonth: true,
			changeYear: true,
			minDate: "+1D",
			maxDate: "+1Y",
			yearRange: "0:+1"
		}); 
	}
	
	// feedback survey js
	$(".feedback_select").css("visibility", "hidden");
	$(".slider_wrapper").css("visibility", "visible");
	$(".feedback_score").css("visibility", "visible");
	if ($(".question").length > 0) {
	
		updateCountry = function(){
			if ($("#website_name").val() == ""){ name = "Anonymous"; }
			else { name = $("#website_name").val(); }
			
			text = "<p>" + name + ", " + $("#select_country").val() + "</p>";
			$("#website_question_preview_info").html(text);
		}
	
		$("#website_name").keyup(function(){
			if ($("#website_name").val() == ""){ name = "Anonymous"; }
			else { name = $("#website_name").val(); }
			
			text = "<p>" + name + ", " + $("#website_location").val() + "</p>";
			$("#website_question_preview_info").html(text);
		})
	
		$("#select_country").blur(function(){
			updateCountry();
		});
		$("#select_country").change(function(){
			updateCountry();
		});
	
		$("#select_country").blur(function(){
			
			if ($("#website_name").val() == ""){ name = "Anonymous"; }
			else { name = $("#website_name").val(); }
			
			text = "<p>" + name + ", " + $("#select_country").val() + "</p>";
			$("#website_question_preview_info").html(text);
		})
	
		$("#website_quote").keyup(function(){
			var quote = $("#website_quote").val();
			var textlength = quote.length;
			if(textlength > 200) {
				$('#website_quote').val(quote.substr(0,200));
			} else {
				$('#charsremaining').html((200 - textlength));
			}
		
			if (quote.length < 21){
				quoteclass="quoteveryshort";
			}
			else if (quote.length < 56){
				quoteclass="quoteshort";
			}
			else if (quote.length < 111){
				quoteclass="quotemed";
			}
			else if (quote.length < 161){
				quoteclass="quotelong";
			}
			else {
				quoteclass="quoteverylong";
			}
			text = "<p class=" + quoteclass + ">&#8220;" + quote + "&#8221;</p>";
			$("#website_question_preview_quote").html(text);
		})
		

		$("#character_radios input:radio").change(function(){
			character = $('#character_radios input:radio:checked').val();
			$("#website_question_preview_character").html('<img src="/images/graphics/fb_'+character+'.png" width="40" height="39" alt="Man 1" />');
		
		});
	
		$('.selectdate').datepicker({
			dateFormat: 'yy-mm-dd',
			changeMonth: true,
			changeYear: true,
			minDate: "-80Y",
			maxDate: "-8Y",
			yearRange: "-80:-8",
			beforeShow: function() { // hide the ui slider handles as would appear over datetimepicker
				$(".ui-slider-handle").css({"visibility":"hidden"});
			},
			onClose: function() {
				$(".ui-slider-handle").css({"visibility":"visible"});
			}
		}); 
		
		$( "#character_radios" ).buttonset();
		$( "#marketing_radios" ).buttonset();

		//alert("this is a survey");
		$(function() {
			var select = $("#question1_select");
			var slider = $("#question1_slider").slider({
				animate: true,
				min: 0,
				max: 10,
				range: "min",
				value: select[0].selectedIndex,
				slide: function(event, ui) {
					select[0].selectedIndex = ui.value;
					$("#question1_score").html(select[0].selectedIndex + "/10");
				}
			});
			$("#question1_select").click(function() {
				slider.slider("value", this.selectedIndex + 1);
			});
		});
		$(function() {
			var select = $("#question2_select");
			var slider = $("#question2_slider").slider({
				animate: true,
				min: 0,
				max: 10,
				range: "min",
				value: select[0].selectedIndex,
				slide: function(event, ui) {
					select[0].selectedIndex = ui.value;
					$("#question2_score").html(select[0].selectedIndex + "/10");
				}
			});
			$("#question2_select").click(function() {
				slider.slider("value", this.selectedIndex + 1);
			});
		});
		$(function() {
			var select = $("#question3_select");
			var slider = $("#question3_slider").slider({
				animate: true,
				min: 0,
				max: 10,
				range: "min",
				value: select[0].selectedIndex,
				slide: function(event, ui) {
					select[0].selectedIndex = ui.value;
					$("#question3_score").html(select[0].selectedIndex + "/10");
				}
			});
			$("#question2_select").click(function() {
				slider.slider("value", this.selectedIndex + 1);
			});
		});
		$(function() {
			var select = $("#question4_select");
			var slider = $("#question4_slider").slider({
				animate: true,
				min: 0,
				max: 10,
				range: "min",
				value: select[0].selectedIndex,
				slide: function(event, ui) {
					select[0].selectedIndex = ui.value;
					$("#question4_score").html(select[0].selectedIndex + "/10");
				}
			});
			$("#question4_select").click(function() {
				slider.slider("value", this.selectedIndex + 1);
			});
		});
	}
	
	//Start the gallery - only if gallery images exist?
	if ($(".kwicks").length > 0) {
		$('.kwicks').kwicks({  
			min : 50,  
			spacing : 0 
		});  
	}
	
	//Start the gallery - only if gallery images exist?
	if ($("a[rel='gallery']").length > 0) {
		$("a[rel='gallery']").colorbox();
	}

	$('#feedback_loading').fadeOut();
	$("ul.menu").supersubs({ 
	    minWidth:    6,   // minimum width of sub-menus in em units 
	    maxWidth:    27,   // maximum width of sub-menus in em units 
	    extraWidth:  0     // extra width can ensure lines don't sometimes turn over 
	                       // due to slight rounding differences and font-family 
	}).superfish();  // call supersubs first, then superfish, so that subs are 
	                 // not display:none when measuring. Call before initialising 
	                 // containing tabs for same reason. 
                         
	$(".nextComment").click(function(){
		nextComment();
		return false; 
	});
	
}); 


/*
 * Superfish v1.4.8 - jQuery menu widget
 * Copyright (c) 2008 Joel Birch
 *
 * Dual licensed under the MIT and GPL licenses:
 * 	http://www.opensource.org/licenses/mit-license.php
 * 	http://www.gnu.org/licenses/gpl.html
 *
 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
 */

;(function($){
	$.fn.superfish = function(op){

		var sf = $.fn.superfish,
			c = sf.c,
			$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
			over = function(){
				var $$ = $(this), menu = getMenu($$);
				clearTimeout(menu.sfTimer);
				$$.showSuperfishUl().siblings().hideSuperfishUl();
			},
			out = function(){
				var $$ = $(this), menu = getMenu($$), o = sf.op;
				clearTimeout(menu.sfTimer);
				menu.sfTimer=setTimeout(function(){
					o.retainPath=($.inArray($$[0],o.$path)>-1);
					$$.hideSuperfishUl();
					if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
				},o.delay);	
			},
			getMenu = function($menu){
				var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
				sf.op = sf.o[menu.serial];
				return menu;
			},
			addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
			
		return this.each(function() {
			var s = this.serial = sf.o.length;
			var o = $.extend({},sf.defaults,op);
			o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
				$(this).addClass([o.hoverClass,c.bcClass].join(' '))
					.filter('li:has(ul)').removeClass(o.pathClass);
			});
			sf.o[s] = sf.op = o;
			
			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
				if (o.autoArrows) addArrow( $('>a:first-child',this) );
			})
			.not('.'+c.bcClass)
				.hideSuperfishUl();
			
			var $a = $('a',this);
			$a.each(function(i){
				var $li = $a.eq(i).parents('li');
				$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
			});
			o.onInit.call(this);
			
		}).each(function() {
			var menuClasses = [c.menuClass];
			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
			$(this).addClass(menuClasses.join(' '));
		});
	};

	var sf = $.fn.superfish;
	sf.o = [];
	sf.op = {};
	sf.IE7fix = function(){
		var o = sf.op;
		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
			this.toggleClass(sf.c.shadowClass+'-off');
		};
	sf.c = {
		bcClass     : 'sf-breadcrumb',
		menuClass   : 'sf-js-enabled',
		anchorClass : 'sf-with-ul',
		arrowClass  : 'sf-sub-indicator',
		shadowClass : 'sf-shadow'
	};
	sf.defaults = {
		hoverClass	: 'sfHover',
		pathClass	: 'overideThisToUse',
		pathLevels	: 1,
		delay		: 0,
		animation	: {opacity:'show'},
		speed		: 'normal',
		autoArrows	: true,
		dropShadows : true,
		disableHI	: false,		// true disables hoverIntent detection
		onInit		: function(){}, // callback functions
		onBeforeShow: function(){},
		onShow		: function(){},
		onHide		: function(){}
	};
	$.fn.extend({
		hideSuperfishUl : function(){
			var o = sf.op,
				not = (o.retainPath===true) ? o.$path : '';
			o.retainPath = false;
			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
					.find('>ul').hide().css('visibility','hidden');
			o.onHide.call($ul);
			return this;
		},
		showSuperfishUl : function(){
			var o = sf.op,
				sh = sf.c.shadowClass+'-off',
				$ul = this.addClass(o.hoverClass)
					.find('>ul:hidden').css('visibility','visible');
			sf.IE7fix.call($ul);
			o.onBeforeShow.call($ul);
			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
			return this;
		}
	});

})(jQuery);

/*
 * Supersubs v0.2b - jQuery plugin
 * Copyright (c) 2008 Joel Birch
 *
 * Dual licensed under the MIT and GPL licenses:
 * 	http://www.opensource.org/licenses/mit-license.php
 * 	http://www.gnu.org/licenses/gpl.html
 *
 *
 * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
 * their longest list item children. If you use this, please expect bugs and report them
 * to the jQuery Google Group with the word 'Superfish' in the subject line.
 *
 */

;(function($){

	$.fn.supersubs = function(options){
		var opts = $.extend({}, $.fn.supersubs.defaults, options);
		return this.each(function() {
			var $$ = $(this);
			var o = $.meta ? $.extend({}, opts, $$.data()) : opts;
			var fontsize = $('<li id="menu-fontsize">&#8212;</li>').css({
				'padding' : 0,
				'position' : 'absolute',
				'top' : '-999em',
				'width' : 'auto'
			}).appendTo($$).width();
			// remove em dash
			$('#menu-fontsize').remove();
			$ULs = $$.find('ul');
			$ULs.each(function(i) {	
				var $ul = $ULs.eq(i);
				var $LIs = $ul.children();
				var $As = $LIs.children('a');
				var liFloat = $LIs.css('white-space','nowrap').css('float');
				var emWidth = $ul.add($LIs).add($As).css({
					'float' : 'none',
					'width'	: 'auto'
				})
				.end().end()[0].clientWidth / fontsize;
				emWidth += o.extraWidth;
				if (emWidth > o.maxWidth)		{ emWidth = o.maxWidth; }
				else if (emWidth < o.minWidth)	{ emWidth = o.minWidth; }
				emWidth += 'em';
				$ul.css('width',emWidth);
				$LIs.css({
					'float' : liFloat,
					'width' : '100%',
					'white-space' : 'normal'
				})
				.each(function(){
					var $childUl = $('>ul',this);
					var offsetDirection = $childUl.css('left')!==undefined ? 'left' : 'right';
					$childUl.css(offsetDirection,emWidth);
				});
			});
			
		});
	};
	$.fn.supersubs.defaults = {
		minWidth		: 9,		
		maxWidth		: 25,		
		extraWidth		: 0			
	};
	
})(jQuery); // plugin code ends

