var is_home = false;
var sub_menu = false;
var map, infowindow, bounds;
			
function initialize_gmap() {
	bounds = new GLatLngBounds();
	
    var myLatlng = new google.maps.LatLng(cent['lat'], cent['lng']);
    var myOptions = {
		zoom: 12,
		center: myLatlng,
		mapTypeId: GMapType.G_NORMAL_MAP,
        navigationControl : true
        //navigationControlOptions : {
          //  style : google.maps.NavigationControlStyle.SMALL
        //}
    }
    map = new google.maps.Map(document.getElementById("tab3"), myOptions);
    map.addControl(new GSmallMapControl());
}

function createMark(key)
{
	var myLatLng = new google.maps.LatLng(rmarkers[key].lat,rmarkers[key].lng);
    var im = new GIcon();
    im.image = "/img/marker-" + rmarkers[key].type + ".png";
    im.iconSize = new GSize(33, 41);
	im.iconAnchor = new GPoint(0, 5);
	im.infoWindowAnchor = new GPoint(0, 5);
    
	var point = new GLatLng(rmarkers[key].lat,rmarkers[key].lng);
	var marker = new GMarker(point,im);
	bounds.extend(point);
  	map.addOverlay(marker);
  	
    GEvent.addListener(marker, 'click', function() {
    	marker.openInfoWindowHtml('<p><strong>' + rmarkers[key]['name'] + '</strong></p><p style="margin-top: 10px; ">' + rmarkers[key]['address'] + '</p><p style="margin-top: 10px; "><em>' + rmarkers[key]['contact'] + '</em></p>');
    });
}

function load_positions() {
	var infowindows = new Array();
	
	n = 1;
	for(var key in rmarkers)
	{
		createMark(key);
		n++;
	}
	
	if(n==2){
	map.setZoom(17);
	}else{
	map.setZoom(map.getBoundsZoomLevel(bounds));
	}
	map.setCenter(bounds.getCenter());
}

function CufonReplace()
{
	Cufon.replace('h1', { fontFamily: 'bembo' });
	Cufon.replace('h1.banneritalic', { fontFamily: 'bembo-italic' });
	Cufon.replace('h2', { fontFamily: 'proxima' });
	Cufon.replace('h3', { fontFamily: 'proxima' });
}

function IERoundedCorners()
{
	if($.browser.msie)
	{
		$('.jshowoff').each(function(){
			if($('.cb-rotate .mpu', $(this)).hasClass('ishome'))
			{
				$(this).append('<div class="blc"><img src="/img/blc.jpg" /></div><div class="brc"><img src="/img/brc.jpg" /></div>');
				$('.blc', $(this)).css('position', 'absolute');
				$('.brc', $(this)).css('position', 'absolute');
			}
		});
	}
}

function CloseSM(smid)
{
	if(!sub_menu)
	{
		$('#' + smid).hide();
	}
}

$(document).ready(function(){
	
	$('a.lightbox').lightBox();
	$('div.cb-rotate').jshowoff();
	
	if($.browser.msie)
	{
		window.setTimeout("IERoundedCorners();", 500);
	}
	
	CufonReplace();
	
	/*if(!is_home || 1)
	{
		$('.cb-rotate').each(function(){
			var div = $('<div class="shadow"></div>');
			div.css('width', $(this).parent().width() + 'px');
			div.insertAfter($(this));
			$(this).parent().css('padding-bottom', '10px');
		});
		
		$('.mpu').each(function(){
			if(!$(this).parent().hasClass('cb-rotate'))
			{
				var div = $('<div class="shadow"></div>');
				div.insertAfter($(this));
			}
		});
	}*/
	
	if($('#fsidebar div:first').hasClass('jshowoff'))
	{
		$('#fsidebar div:first').css('margin-top', '0px');
	}
	
	$('ul#menu li').not('ul#menu li ul li').each(function(){
		$('a', $(this)).click(function(){
			$('.sub_menu', $(this).parent()).toggle();
		});
		$('a:first', $(this)).mouseover(function(){
			$('ul#menu li .sub_menu').hide();
			$('.sub_menu', $(this).parent()).show();
		});
	});
	
	$('input#restaurant_name').bind('keyup focus', function(){
		if($(this).val().length >= 3)
		{
			$.getJSON("/feedback?restaurant_name=" + $(this).val(), function(json){
				$('#restaurant-auto').html('');
				for(var key in json)
				{
					div = '<div>';
						div += '<a href="#">';
							div += '<h3>' + json[key]['name'] + '</h3>';
							if(json[key]['streetname'] == '')
							{
								div += '<p>' + json[key]['placename'] + '</p>';
							}
							else if(json[key]['placename'] == '')
							{
								div += '<p>' + json[key]['streetname'] + '</p>';
							}
							else
							{
								div += '<p>' + json[key]['streetname'] + ', ' + json[key]['placename'] + '</p>';
							}
							div += '<p>Cuisine: ' + json[key]['cuisine'] + '</p>';
						div += '</a>';
						for(var ke in json[key])
						{
							div += '<input type="hidden" name="pop-' + ke + '" id="pop-' + ke + '" value="' + json[key][ke] + '" />';
						}
					div += '</div>';
					
					$('#restaurant-auto').append(div);
				}
				$('#restaurant-auto').show();			
	
				if(json.length == 0)
				{
					$('#restaurant-auto').append('<div><h3>No Matches</h3></div>');
					$('#restaurant-auto').hide();
				}
				else
				{
					window.setTimeout('$(\'#restaurant-auto\').hide();', 10000);
				}
			});
		}
		else
		{
			$('#restaurant-auto').append('<div><h3>No Matches</h3></div>');
			$('#restaurant-auto').hide();
		}
	});
	
	$('#restaurant-auto div a').live("click", function(){
		var div = $(this).parent();
		var form = $('form.feedback');
		
		$('#restaurant_id').val($('#pop-id', div).val());
		$('#restaurant_name').val($('#pop-name', div).val());
		$('#address').val($('#pop-streetname', div).val());
		$('#city').val($('#pop-placename', div).val());
		$('#postcode, #location').val($('#pop-postcode', div).val());
		$('#main_cuisine').val($('#pop-cuisine', div).val());
		
		$('#restaurant-auto').hide();
		
		return false;
	});
	
	$('input#location').bind('keyup focus', function(){
		if($(this).val().length >= 3)
		{
			$.getJSON("/feedback?location=" + $(this).val(), function(json){
				$('#location-auto').html('');
				for(var key in json)
				{
					div = '<div>';
						div += '<a href="#">';
							div += '<h3>' + json[key]['location'] + '</h3>';
							div += '<p>' + json[key]['TownCounty'] + '</p>';
						div += '</a>';
						for(var ke in json[key])
						{
							div += '<input type="hidden" name="pop-' + ke + '" id="pop-' + ke + '" value="' + json[key][ke] + '" />';
						}
					div += '</div>';
					
					$('#location-auto').append(div);
				}
				$('#location-auto').show();			
	
				if(json.length == 0)
				{
					$('#location-auto').append('<div><h3>No Matches</h3></div>');
					$('#location-auto').hide();
				}
				else
				{
					window.setTimeout('$(\'#location-auto\').hide();', 10000);
				}
			});
		}
		else
		{
			$('#location-auto').append('<div><h3>No Matches</h3></div>');
			$('#location-auto').hide();
		}
	});
	
	$('#location-auto div a').live("click", function(){
		var div = $(this).parent();
		$('#location').val($('#pop-location', div).val());
		$('#location-auto').hide();
		
		return false;
	});
	
	$('.sub_menu').each(function(){
		$(this).mouseover(function(){
			sub_menu = true;
		});
		$(this).mouseout(function(){
			sub_menu = false;
			window.setTimeout("CloseSM('" + $(this).attr('id') + "')", 250); 
		});
	});
	
		$('.sub_menu a').each(function(){
			$(this).click(function(){
				$(this).parent().parent().hide();
			});
		});
		
	$(document).click(function(){
		if(!sub_menu)
		{
			$('ul#menu li .sub_menu').hide();
		}
	});
	
	$('a[href!=""]').each(function(){
		if($(this).attr('href') !== undefined && $(this).attr('href').substr(0,4) == 'http')
		{
			//pageTracker._trackEvent($(this).html(), $(this).html(), $(this).attr('href'));
			$(this).attr('target','_blank');
		}
	});
	
	$('a[rel="ext"]').each(function(){
		//pageTracker._trackEvent($(this).html(), $(this).html(), $(this).attr('href'));
		if($.browser.msie)
		{
			$(this).attr('target','_blank');
		}
		else
		{
			$(this).attr('onclick','window.open(\''+ $(this).attr('href') +'\'); return false; ');
		}
	});
	
	$('form.register input, form.register select').each(function(){
		$(this).focus(function(){
			var form = $(this).closest('form');
			
			$('.tooltip', form).hide();
			$('label', form).removeClass('focus');
			$('input', form).removeClass('focus');
			
			$('#tooltip-' + $(this).attr('name')).show();
			
			$('label', $(this).parent()).addClass('focus');
			$('input:eq(0)', $(this).parent()).addClass('focus');
		});
	});
	
	$('form.feedback input, form.feedback select, form.feedback textarea').each(function(){
		$(this).focus(function(){
			var form = $(this).closest('form');
			
			$('.tooltip', form).hide();
			$('label', form).removeClass('focus');
			$('input', form).removeClass('focus');
			
			$('#tooltip-' + $(this).attr('name')).show();
			
			$('label', $(this).parent()).addClass('focus');
			$('input:eq(0)', $(this).parent()).addClass('focus');
		});
	});
	
	$('input#pc-lookup').click(function(){
		$('input#address, input#address2, input#city, input#county').val('');
		$('#pc-results').html('<option value="X">Searching...</option>');
		$('#pc-results').show();
		$.getJSON('/register?postcode=' + $('input#postcode').val(), function(json){
			if(json.length == 0)
			{
				$('#pc-results').html('<option value="X">No Matches Found</option>');
			}
			else
			{
				$('#pc-results').html('<option value="X">Please Select</option>');
				for(var key in json)
				{
					$('#pc-results').append('<option value="' + json[key] + '">' + json[key].split(", ")[0] + '</option>');
				}
			}
		});
		return false;
	});
	
	$('select#pc-results').change(function(){
		if($(this).val() != 'X')
		{
			var parts = $(this).val().split(", ");
			
			$('input#county').val(parts[parts.length-1]);
			$('input#city').val(parts[parts.length-2]);
			if(parts.length == 3)
			{
				$('input#address').val(parts[parts.length-3]);
			}
			else if(parts.length == 4)
			{
				$('input#address2').val(parts[parts.length-3]);
				$('input#address').val(parts[parts.length-4]);
			}
			else if(parts.length >= 5)
			{
				$('input#address2').val(parts[parts.length-3]);
				$('input#address').val(parts[parts.length-4] + ' ' + parts[parts.length-5]);
			}
			$(this).hide();
		}
	});
	
	$('form.register').submit(function(){
		var errors = false;
		var form = $(this).closest("form");
			
		$("label", form).each(function(){
			$(this).removeClass('error');
		});
			
		var required = ['firstname', 'lastname', 'email_address', 'password', 'password_confirm'];
		$.each(required, function(index, value) { 
			if($('input[name="' + value + '"]', form).val() == '')
			{
				$('label[for="' + value + '"]', form).addClass('error');
				errors = true;
			}
		});
		
		if($('input[name="password"]', form).val() != $('input[name="password_confirm"]', form).val())
		{
			$('label[for="password_confirm"]', form).addClass('error');
			errors = true;
		}
		
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if(reg.test($('input[name="email_address"]', form).val()) == false)
		{
			$('label[for="email_address"]', form).addClass('error');
			errors = true;
		}
		
		if(errors)
		{
			alert('Please complete the fields marked in red.');
			return false;
		}
	});
	
	$('form.signup').submit(function(){
		var errors = false;
		var form = $(this).closest("form");
			
		$("label", form).each(function(){
			$(this).removeClass('error');
		});
			
		var required = ['billing_name', 'card_number', 'billing_cvv2', 'billing_address', 'billing_city', 'billing_county', 'billing_postcode'];
		$.each(required, function(index, value) { 
			if($('input[name="' + value + '"]', form).val() == '')
			{
				$('label[for="' + value + '"]', form).addClass('error');
				errors = true;
			}
		});
		
		if(errors)
		{
			alert('Please complete the fields marked in red.');
			return false;
		}
	});
	
	$('form.purchase').submit(function(){
		var errors = false;
		var form = $(this).closest("form");
			
		$("label", form).each(function(){
			$(this).removeClass('error');
		});
		
		var required = ['cardholder', 'cardnumber', 'cvv2', 'd_address', 'd_city', 'd_country', 'd_postcode', 'b_address', 'b_city', 'b_country', 'b_postcode'];
		$.each(required, function(index, value) { 
			if($('input[name="' + value + '"]', form).val() == '')
			{
				$('label[for="' + value + '"]', form).addClass('error');
				errors = true;
			}
		});
		
		if($('#email_address').length)
		{
			if($('input[name="email_address"]', form).val() == '')
			{
				$('label[for="email_address"]', form).addClass('error');
				errors = true;
			}
		}
		
		if(errors)
		{
			alert('Please complete the fields marked in red.');
			return false;
		}
	});
	
	$('form.competition').submit(function(){
		var errors = false;
		var form = $(this).closest("form");
		
		$('p', form).each(function()
		{
			if($(this).attr('id').substr(0, 9) == 'question-')
			{
				if($('input[name="answer-' + $(this).attr('id').substr(9) + '"]:checked').val() == undefined)
				{
					$(this).addClass('error');
					errors = true;
				}
				else
				{
					$(this).removeClass('error');
				}
			}
		});
		
		if(errors)
		{
			alert('Please answer the questions marked in red.');
			return false;
		}
	});
	
	$(".feedback-slider").slider({
		range: "max",
		min: 1,
		max: 4,
		value: 3,
		slide: function(event, ui) {
			var str;
			switch (ui.value)
			{
				case 1:
					str = 'Poor';
					break;
				case 2:
					str = 'Fair';
					break;
				case 3:
					str = 'Good';
					break;
				case 4:
					str = 'Excellent';
					break;
			}
			$(this).nextAll('.feedback-info:first').html('<p class="' + str.toLowerCase() + '">' + str + '</p>');
			$(this).nextAll('input[type="hidden"]:first').val(ui.value);
			
			var form = $(this).closest('form');
			$('.tooltip', form).hide();
			$('label', form).removeClass('focus');
			$('input', form).removeClass('focus');
		}
	});
	
	$('form.poll').submit(function(){
		var form = $(this);
		$.post($(this).attr('action'), $(this).serialize(), function(data){
			$(data).insertAfter(form.parent().parent().parent());
			$(form.parent().parent().parent().remove());
			CufonReplace();
		});
		return false;
	});
	
	$('select#main_cuisine').change(function(){
		if($(this).val() == 'Other')
		{
			$('#cuisine_other').show();
		}
		else
		{
			$('#cuisine_other').hide();
		}
	});
	
	$('#password-reset-form').submit(function(){
		var form = $(this).closest("form");
		var errors = false;
		var empty = ['password', 'password_verify'];
		
		for(var key in empty)
		{
			if($('input[name="' + empty[key] + '"]', form).val() == '' || (empty[key] == 'password_verify' && $('input[name="password"]', form).val() != $('input[name="' + empty[key] + '"]', form).val()))
			{
				$('input[name="' + empty[key] + '"]', form).addClass('error');
				$('label[for="' + empty[key] + '"]', form).addClass('error');
				errors = true;
			}
			else
			{
				$('input[name="' + empty[key] + '"]', form).removeClass('error');
				$('label[for="' + empty[key] + '"]', form).removeClass('error');
			}
		}
		if(errors) return false;
	});
	
	$('input#use_del').click(function(){
		if($(this).attr('checked'))
		{
			$('input#b_name').val($('input#d_name').val());
			$('input#b_address').val($('input#d_address').val());
			$('input#b_address2').val($('input#d_address2').val());
			$('input#b_city').val($('input#d_city').val());
			$('input#b_country').val($('input#d_country').val());
			$('input#b_postcode').val($('input#d_postcode').val());
		}
		else
		{
			$('input#b_name').val('');
			$('input#b_address').val('');
			$('input#b_address2').val('');
			$('input#b_city').val('');
			$('input#b_country').val('');
			$('input#b_postcode').val('');
		}
	});
	
	$('.tab-links a').live("click", function(){
		$('a', $(this).parent()).removeClass('active');
		$('.tab').hide();
		
		$('#' + $(this).attr('rel') + '.tab').show();
		$('a[rel="' + $(this).attr('rel') + '"]').addClass('active');
		
		if($(this).attr('rel') == 'tab3')
		{
			initialize_gmap();
			load_positions();
		}
		
		if($(this).attr('rel') == 'tab1')
		{
			if($.browser.msie)
			{
				window.location = '/restaurant-finder?tab1';
			}
		}
		
		return false;
	});
	
	$('select#entry_type').change(function(){
		var select_val = $(this).val();
		if(select_val != '')
		{
			$('.restaurant').each(function(){
				if(select_val == $(this).attr('rel'))
				{
					$(this).show();
				}
				else
				{
					$(this).hide();
				}
			});
		}
		else
		{
			$('.restaurant').show();
		}
	});
	
	$('a.view-restaurant').live('click', function(){
		var restaurant = $(this).closest('.restaurant');
		
		if($('.r-content', restaurant).css('display') == 'block')
		{
			$(this).html('Read Review');
			$('.add-actions', $(this).parent()).hide();
			if($.browser.msie)
				$('.r-content', restaurant).slideUp();
			else
				$('.r-content', restaurant).slideUp();
		}
		else
		{
			$(this).html('Close');
			$('.add-actions', $(this).parent()).show();
			if($.browser.msie)
				$('.r-content', restaurant).slideDown();
			else
				$('.r-content', restaurant).slideDown();
		}
		
		return false;
	});
	
	$('a.send-to-mobile').live('click', function(){
		var dialog = '#sendsms-dialog';
		$('input[name="rid"]', dialog).val($(this).parent().parent().parent().attr('id').split("-")[1]);
		$.scrollTo(0,0);
		$(dialog).dialog('open');
		return false;
	});
	
	$('input#sendsms-submit').live('click', function(){
		var form = $(this).closest('form');
		
		$('#loading').load('/restaurant-finder?rid=' + $('input[name="rid"]', form).val() + '&mobile=' + urlencode($('input[name="mobile"]').val()), function(data){
			$('#sendsms-dialog').dialog('close');
			$.scrollTo(0,0);
			$('#sentsms-dialog').dialog('open');
		});
	});
	
	$('a.book-table').live('click', function(){
		var dialog = '#booknow-dialog';
		
		$('input[name="rid"]', dialog).val($(this).parent().parent().attr('id').split("-")[2]);
		$('#available-times').html('');
		$.scrollTo(0,0);
		$(dialog).dialog('open');
		return false;
	});
	
	$('input#booknow-submit').live('click', function(){
		var dialog = '#booknow-dialog';
		var form = $(this).closest('form');
		
		$('#available-times').html('Checking availability...');
		$('#loading').load('/restaurant-finder?rid=' + $('input[name="rid"]', dialog).val() + '&people=' + urlencode($('select[name="people"]').val()) + '&date=' + $('select[name="year"]').val() + '-' + $('select[name="month"]').val() + '-' + $('select[name="date"]').val() + '&from-time=' + $('select[name="from-time"]').val() + '&to-time=' + $('select[name="to-time"]').val(), function(data){
			$('#available-times').html(data);
		});
	});
	
	$('input#confirmbook-submit').live('click', function(){
		var dialog = '#booknow-dialog';
		var form = $(this).closest('form');
		
		$('#available-times').html('Booking table...');
		$('#loading').load('/restaurant-finder?rid=' + $('input[name="rid"]', dialog).val() + '&people=' + urlencode($('select[name="people"]').val()) + '&date=' + $('select[name="year"]').val() + '-' + $('select[name="month"]').val() + '-' + $('select[name="date"]').val() + '&from-time=' + $('select[name="from-time"]').val() + '&to-time=' + $('select[name="to-time"]').val() + '&book=' + urlencode($('input[name="dining-time"]:checked').val()), function(data){
			$('#booknow-dialog').dialog('close');
			$.scrollTo(0,0);
			$('#booked-dialog').dialog('open');
		});
	});
	
	$('a.view-comments').live('click', function(){
		var dialog = '#comments-dialog';
		var rid = $(this).parent().parent().attr('id').split("-")[1];
		
		$.getJSON('/restaurant-finder?feedback=' + rid, function(json){
			$('#comments-here', dialog).html('');
			for(var key in json)
			{
				div = '<div class="f-comment">';
				div += '<p><strong>' + json[key]['date'] + '</strong></p>';
				div += '<p>- ' + json[key]['comment'] + '</p>';
				div == '</div>';
				
				$('#comments-here', dialog).append(div);
			}
			$('a.submit-feedback', dialog).attr('href', '/feedback?rid=' + rid);
			$.scrollTo(0,0);
			$(dialog).dialog('open');
		});
		return false;
	});
	
	$('a.add-favourite').live('click', function(){
		var parent = $(this).parent().parent();
		var rid = parent.attr('id').split("-")[1];
		var link = $(this);
		
		$.getJSON('/restaurant-finder?save=' + rid, function(json){
			if(json.saved)
			{
				$(link).html('Remove From Favourites');
				$(parent).clone().appendTo('#tab1');
			}
			else
			{
				$(link).html('Add To Favourites');
				$('#' + parent.attr('id'), $('#tab1')).remove();
			}
		});
		
		return false;
	});
	
	$('.whatscooking a').cluetip({splitTitle: '|'});
	
	$('.type.tt a').cluetip({splitTitle: '|'});
	
	$('#date-pick')
		.datePicker(
			// associate the link with a date picker
			{
				createButton:false
			}
		).bind(
			// when the link is clicked display the date picker
			'click',
			function()
			{
				updateSelects($(this).dpGetSelected()[0]);
				$(this).dpDisplay();
				return false;
			}
		).bind(
			// when a date is selected update the SELECTs
			'dateSelected',
			function(e, selectedDate, $td, state)
			{
				updateSelects(selectedDate);
			}
		).bind(
			'dpClosed',
			function(e, selected)
			{
				updateSelects(selected[0]);
			}
		);
		
	var updateSelects = function (selectedDate)
	{
		var selectedDate = new Date(selectedDate);
		$('#date option[value=' + selectedDate.getDate() + ']').attr('selected', 'selected');
		$('#month option[value=' + (selectedDate.getMonth()+1) + ']').attr('selected', 'selected');
		$('#year option[value=' + (selectedDate.getFullYear()) + ']').attr('selected', 'selected');
	}

	$('#date, #month, #year')
		.bind(
			'change',
			function()
			{
				var d = new Date(
							$('#year').val(),
							$('#month').val()-1,
							$('#date').val()
						);
				$('#date-pick').dpSetSelected(d.asString());
			}
		);
	
	var today = new Date();
	updateSelects(today.getTime());
	
	$('#date').trigger('change');
});

function urlencode(str)
{
	str = escape(str);
	str = str.replace('+', '%2B');
	str = str.replace('%20', '+');
	str = str.replace('*', '%2A');
	str = str.replace('/', '%2F');
	str = str.replace('@', '%40');
	return str;
}

$(document).ready(function(){		
	$.getJSON("names2.php",function(data){
	//data.sort(function(){return (Math.round(Math.random())-0.5);});
	for(var i=0;i<data.length;i++) $("#scroller ul").append($("<li>").html(data[i]+","));
	setTimeout(function(){animate(true)},1000);
	});	
});

function animate(firstRun){
	if(firstRun === undefined) $("#scroller ul").css('margin-top','0px').append($("#scroller ul li:first-child"));
	$("#scroller ul").animate({'margin-top':-20},1000,"linear",animate);
}
