// Explore bar
var timeout    = 350;
var closetimer = 0;
var ddmenuitem = 0;

function jsddm_open() {
	jsddm_canceltimer();
	jsddm_close();
	ddmenuitem = $(this).find('div').css('visibility', 'visible');
	ddmenuitem2 = $(this).find('a.d');
	ddmenuitem2.css('color', '#FFF');
	ddmenuitem2.css('background', '#585858 url(../img/down-arrow-white.gif) no-repeat scroll 100% 50%');
}
function jsddm_close() {
	if(ddmenuitem) {
		ddmenuitem.css('visibility', 'hidden');
		ddmenuitem2.css('color', '#585858');
		ddmenuitem2.css('background', 'transparent url(../img/down-arrow.gif) no-repeat scroll 100% 50%');
	}
}
function jsddm_timer() {
	closetimer = window.setTimeout(jsddm_close, timeout);
	}
function jsddm_canceltimer() {
	if(closetimer) {
	window.clearTimeout(closetimer);
	closetimer = null;}
}

function single() {
	// Bind explore bar events
	$('#jsddm > span').bind('mouseover', jsddm_open);
	$('#jsddm > span').bind('mouseout',  jsddm_timer);

	// Bind smooth scroll events
	$('#leader-stats').localScroll();
	$('#days').localScroll();
	$('#tabs').localScroll();
	$('#leader-reviews').localScroll();
	$('#category-trails').localScroll();

	// Activate UI tabs
	var $tabs = $('#tabs').tabs(); // first tab selected
	$('#info-tab-days').click(function() { // bind click event to link
		$tabs.tabs('select', 2); // switch to third tab
		return false;
	});

	// Feedback links
	$(function() {
		var	trailname = $("#dialog-trailname"),
			trailid = $("#dialog-trailid"),
			//subject = $("#subject"),
			surname = $("#dialog-surname"),
			name = $("#dialog-name"),
			email = $("#dialog-email"),
			message = $("#dialog-message"),
			allFields = $([]).add(name).add(email).add(message),
			tips = $("#validateTips");

		var	subject = "";

		// Display error messages
		function updateTips(t) {
			tips.text(t).effect("highlight",{},1500);
		}

		// Check the lenth of entered text
		function checkLength(o,n,min,max) {
			if ( o.val().length > max || o.val().length < min ) {
				o.addClass('ui-state-error');
				//updateTips("Length of " + n + "  "+min+" and "+max+".");

				updateTips("Please fill in a valid " + n);
				return false;
			} else {
				return true;
			}
		}

		// Validate different fields, e.g. email
		function checkRegexp(o,regexp,n) {
			if ( !( regexp.test( o.val() ) ) ) {
				o.addClass('ui-state-error');
				updateTips(n);
				return false;
			} else {
				return true;
			}
		}

		$("#dialog").dialog({
			bgiframe: true,
			autoOpen: false,
			resizable: false,
			width: 450,
			modal: true,
	   
			buttons: {
				Cancel: function() {
					$(this).dialog('close');
				},
				'Submit': function() {
					var bValid = true;
					allFields.removeClass('ui-state-error');

					bValid = bValid && checkLength(name,"name",1,50);
					bValid = bValid && checkLength(email,"email",6,80);
					bValid = bValid && checkLength(message,"message",1,2000);

					bValid = bValid && checkRegexp(email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"eg. ui@jquery.com");

					if (bValid) {
						$(".ui-dialog-buttonpane button").attr("disabled", "disabled");
						updateTips("Sending...");
						$.ajax({
							type: "POST",
							url: "/ajax/terugvoer.php",
							data: "trailname="+trailname.val()+"&trailid="+trailid.val()+"&subject="+subject+"&surname="+surname.val()+"&name="+name.val()+"&email="+email.val()+"&message="+message.val(),
							success: function(msg){
								$('#dialog').dialog('close');
								$(".ui-dialog-buttonpane button").removeAttr("disabled");
								alert( "Thank you for your feedback.");
							},
							error: function(msg){
								$('#dialog').dialog('close');
								$(".ui-dialog-buttonpane button").removeAttr("disabled");
								alert("Something went wrong, please try again later.");
							}

						});
						//$(this).dialog('close');
					}
				}
			},
			close: function() {
				allFields.val('').removeClass('ui-state-error');
			}
		});

		$('.feedback').click(function(e) {
			e.preventDefault();
			subject = this.id;
			//$('#dialog #subject').val(this.id);
			$('#dialog #dialog-message-label').html(this.innerHTML);
			//updateTips("Please complete all the fields below. Be assured, your email address will not be shared or abused.");
			$('#dialog #validateTips').html("");
			$('#dialog').dialog('open');
		})

		.hover(
			function(){
				$(this).addClass("ui-state-hover");
			},
			function(){
				$(this).removeClass("ui-state-hover");
			}
		).mousedown(function(){
			$(this).addClass("ui-state-active");
		})
		.mouseup(function(){
			$(this).removeClass("ui-state-active");
		});
	});
}
