$(document).ready(function(){
	init();
	var page = $('body').attr('id');
	if (page == 'home') homePage();
	
	//if ($('#shopping_basket').length > 0) scrollMenu();
	if ($('#shopping_basket').length > 0) removeBorder($('#basket_contents'));
	if ($('#catering_column').length > 0) removeBorder($('#catering_column'));
	if ($('#details_form').length > 0) $("#details_form").validate();
	if ($('#card_form').length > 0) $("#card_form").validate();
	if ($('#feedback_form').length > 0) $("#feedback_form").validate();
	if ($('#details_form').length > 0) duplicateAddress();
	if ($('.date-pick').length > 0) $('.date-pick').datePicker();
	if ($('#delivery_map').length > 0) initializeDeliveryMap();
});

function init() {
	mainNav();
	Cufon.replace('#main_nav ul li a, #nav_column a, #content_column .highlight, #column_one_wrapper #main_content, #home_columns #column_one #sub_content', { fontFamily: 'adventor', hover: true});
	Cufon.replace('#content_column h1, #content_column h2,#content_column_catering h1, #content_column_catering h2, #sub_content_column h2, .total_text, #review_table th', { fontFamily: 'adventor'});
	$('#nav_column li:visible:last').css('border-bottom','1px solid #D4AC67').css('margin-bottom','30px');
	copyright();
	$('#menu-footer-menu li:first').css('padding-left', '0px');
	$('#menu-footer-menu li:last').css('border-right', 'none');
	cart();
};

function homePage() {
	Cufon.replace('#blackboard', { fontFamily: 'blackboard' });
	$('#blackboard ul:last').css('background-image','none');
}

function mainNav() {
	$('#main_nav ul li a').each(function(){
		var me = $(this);
		me.html(me.html().replace(/^(\w+)/, '<span class="first_word">$1</span>'));
	});
}

function copyright() {
	$('ul#menu-footer-menu').prepend('<li class="copyright">' + $('#copyright').text() + '</li>');
	$('#copyright').detach();
	
}

function cart() {
	var $tr = $('#review_table tr');
	var $el = $tr.eq($tr.length-2);
	$('td', $el).css('padding-bottom','15px');
	
	$(".food_item_entry form, #review_order form").each(function() { 
		 $(this).validate({
			errorPlacement: function(error, element) {
				alert(error.html());
			}
		});
	});
	
	$("input[name='pickup']:radio").change(function() {
		if ($("input[value='pickup']:radio").is(':checked')) {
            $("#delivery_address_text").val("");
			$("#delivery_instructions_text").val("");
			$("#dev_specific").hide();
        }
		if ($("input[value='delivery']:radio").is(':checked')) {
			$("#dev_specific").show();
        }
    });
}

/*function scrollMenu() {
    var name = "#shopping_basket";
    var menuYloc = null;

	menuYloc = parseInt($(name).css("top").substring(0,$(name).css("top").indexOf("px")));
	$(window).scroll(function () {
		var offset = menuYloc+$(document).scrollTop()+"px";
		$(name).animate({top:offset},{duration:800,queue:false});
	});
}*/

function duplicateAddress() {
	$('#details_form #address').blur(function() {
		var v = $(this).val();
		var z = $('#details_form #delivery_address_text').val();
		if (!z){
			$('#details_form #delivery_address_text').val(v);
		}
	});
}

function removeBorder(e) {
	$('div', e).last().css('border-bottom','none');
}

/**
* Function : dump()
* Arguments: The data - array,hash(associative array),object
*    The level - OPTIONAL
* Returns  : The textual representation of the array.
* This function was inspired by the print_r function of PHP.
* This will accept some data as the argument and return a
* text that will be a more readable version of the
* array/hash/object that is given.
*/
function dump(arr,level) {
var dumped_text = "";
if(!level) level = 0;

//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += "    ";

if(typeof(arr) == 'object') { //Array/Hashes/Objects
 for(var item in arr) {
  var value = arr[item];
 
  if(typeof(value) == 'object') { //If it is an array,
   dumped_text += level_padding + "'" + item + "' ...\n";
   dumped_text += dump(value,level+1);
  } else {
   dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
  }
 }
} else { //Stings/Chars/Numbers etc.
 dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
} 

function initializeDeliveryMap() {
    var myLatLng = new google.maps.LatLng(-36.8461597, 174.7651393);
    var myOptions = {
      zoom: 15,
      center: myLatLng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var bermudaTriangle;

    var map = new google.maps.Map(document.getElementById("delivery_map"),
        myOptions);

    var triangleCoords = [
        new google.maps.LatLng(-36.8437, 174.7638),
        new google.maps.LatLng(-36.8454, 174.7699),
        new google.maps.LatLng(-36.849155060484698, 174.766022329753156),
        new google.maps.LatLng(-36.847950213106664, 174.761996335717356)
    ];
	
	/*var triangleCoords = [
        new google.maps.LatLng(-36.84265, 174.7643),
        new google.maps.LatLng(-36.8444, 174.7707492),
        new google.maps.LatLng(-36.849155060484698, 174.766022329753156),
        new google.maps.LatLng(-36.847950213106664, 174.761996335717356)
    ];*/

    // Construct the polygon
    bermudaTriangle = new google.maps.Polygon({
      paths: triangleCoords,
      strokeColor: "#FF0000",
      strokeOpacity: 0.8,
      strokeWeight: 2,
      fillColor: "#FF0000",
      fillOpacity: 0.35
    });

   bermudaTriangle.setMap(map);
}
