var Sibylla = {
	init : function () {
		this.fonts();
		this.ie6fix();
		this.menu();
		this.contact();
		this.nutrients();
		this.map();
	},
	ie6fix : function () {
		if ($.browser.msie && parseInt($.browser.version, 10) <= 6) {
			$("img[src$='png'], .main-menu ul li a, .main-menu ul li ul, .main-menu ul li ul li, .main-menu ul li ul li a, .main-content-top, .main-content-middle, .main-content-bottom, .meals .meal, .extras, .extras ul li, .splash, .meal-navigation .button").each(function() {
				DD_belatedPNG.fixPng(this);
			});
		}
	},
	fonts : function () {
		Cufon.replace('.main-menu > ul > li > a', { fontFamily: 'Sibylla', hover: true });
		Cufon.replace('.main-menu ul li ul li a', { fontFamily: 'BarmenoMedium', hover: true });
		Cufon.replace('.sub-menu li a', { fontFamily: 'BarmenoMedium', hover: true });
		Cufon.replace('.single-meal h1, .single-meal h2', { fontFamily: 'Sibylla'});
		Cufon.replace('.start-meal h1', { fontFamily: 'Sibylla'});
		Cufon.replace('.single-meal h3, .single-meal .extras ul li', { fontFamily: 'BarmenoMedium'});
		Cufon.replace('.columns h1, .columns h2, .split-view h1, .split-view h2', { fontFamily: 'BarmenoMedium' });
		Cufon.replace('.columns ul.gps li', { fontFamily: 'BarmenoMedium'});
		Cufon.replace('.full-size h1, .full-size h2', { fontFamily: 'BarmenoMedium' });
		Cufon.replace('a.read-more, a.campaign', { fontFamily: 'BarmenoMedium' });
		Cufon.replace('.no-bg .main-content-bottom p', { fontFamily: 'BarmenoMedium', textShadow: '#333 1px 1px'});
		Cufon.replace('.start-meal .splash span', { fontFamily: 'Sibylla'});
		Cufon.replace('.start-meal .splash-text p', { fontFamily: 'Sibylla'});
	},
	menu : function () {
	    $(".main-menu > ul > li").hover(function(){
			$(this).addClass("hover");
			$('ul:first',this).css('display', 'block');
    	}, function(){
			$(this).removeClass("hover");
			$('ul:first',this).css('display', 'none');
			Cufon.refresh('.main-menu > ul > li > a');
		});
	},
	splashrotate : function(x) {
		if ($('.splash').length === 0) { return; }
		if (x > 0) {
			$('.splash').removeClass('splash-rotate-' + x + '');
		}
		x++;
		if (x <= 3) {
			$('.splash').addClass('splash-rotate-' + x + '');
		} else {
			x = 0;
		}
		var rt = setTimeout(function() { Sibylla.splashrotate(x); }, 150);
	},
	contact : function () {
		if ($('.contact-form').length === 0) { return; }
		var defaultMessage = 'Meddelande här';
		var defaultEmail = 'E-postadress här';
		var inputMessage = $('div.contact-form textarea.meddelande');
		var inputEmail = $('.contact-form input.epost');
		inputMessage.val(defaultMessage).addClass('blur').focus(function() {
			if ($(this).val() === defaultMessage) {
				$(this).val('').removeClass('blur');
			}
		});
		inputMessage.blur(function() {
			if ($(this).val() === '') {
				$(this).val(defaultMessage).addClass('blur');
			}
		});		
		inputEmail.val(defaultEmail).addClass('blur').focus(function() {
			if ($(this).val() === defaultEmail	) {
				$(this).val('').removeClass('blur');
			}
		});
		inputEmail.blur(function() {
			if ($(this).val() === '') {
				$(this).val(defaultEmail).addClass('blur');
			}
		});	
	},
	nutrients : function () {
		if ($('.nutrients-table').length === 0) { return; }
		$('.nutrients-table tbody tr').hover(function() {
			$(this).addClass('hover');	
		}, 
		function() {
			$(this).removeClass('hover');
		});
	
	},
	map : function () {
		if ($('#sibylla-map').length === 0) { return; }
		// initialise the map with your choice of API
		var mapstraction = new Mapstraction('sibylla-map','google');
		
		// create a lat/lon object
		var startPoint = new LatLonPoint(59.84481485969105, 14.58984375);
		 
		// display the map centered on a latitude and longitude (Google zoom levels)
		mapstraction.setCenterAndZoom(startPoint, 5);
		
		mapstraction.addControls({
		    pan: true, 
		    zoom: 'large',
		    map_type: false 
		});
		
		var sibyllaIcon = '/ui/images/pin.png';
		var sibyllaIconSize = [21, 28];
		var sibyllaShadowIcon = '/ui/images/pixel.gif';
		var sibyllaShadowIconSize = [1, 1];
		var restaurantDropdown;

		$.get("/ui/xml/KitchenMarkers.xml", function(data){
			restaurantDropdown = '<select name="restaurant">';
			$(data).find('region').each(function() {
				var restaurantRegion = $(this).find('name:first').text();
				//var restaurantRegionId = $(this).find('id:first').text();
				
				var restaurantRegionId = $(this).find('coordinates:first').text();
				restaurantDropdown += '<option value="' + restaurantRegionId +'">' + restaurantRegion;
					if ($(this).find('restaurant').length > 1) {
						restaurantDropdown += ' (' + $(this).find('restaurant').length + ' k&ouml;k)';
					}
				restaurantDropdown += '</option>';
			});
			restaurantDropdown += '</select>';			
			
			$(data).find('restaurant').each(function() {
			
					var restaurantCoords = $(this).find('coordinates').text().split(",");
					var restaurantCoordX = parseFloat(restaurantCoords[0]);
					var restaurantCoordY = parseFloat(restaurantCoords[1]);
					var restaurantPoint = new LatLonPoint(restaurantCoordX, restaurantCoordY);

					var restaurantName = $(this).find("name").text();
					
					var restaurantRegion = $(this).closest("region name:first").text();
	
					var restaurantText = '<div class="map-top"></div>';
					restaurantText += '<div class="map-middle">';
					restaurantText += '<h2>' + restaurantName + ' <span>' + restaurantRegion + '</span></h2>';
					restaurantText += '<img src="http://www.sibylla.se' + $(this).find("imagepath").text() + '" width="190" alt="" />';
					restaurantText += '<p>' + $(this).find("information").text().replace(/,/g, '<br />') + '</p>';
					restaurantText += '<p>' + $(this).find("address").text().replace(/,/g, '<br />') + '</p>';
					restaurantText += '<div><img src="/ui/images/button-zooma-in.gif" alt="Zooma in" rel="' + restaurantCoordX + ',' + restaurantCoordY + '" class="sibylla-map-zooma-in" /><img src="/ui/images/button-stang.gif" alt="Stäng" class="sibylla-map-stang" /></div>';
					restaurantText += '</div>';
					restaurantText += '<div class="map-bottom"></div>';
				    
					// create a marker positioned at a lat/lon 
					sibyllaMarker = new Marker(restaurantPoint);
					sibyllaMarker.setShadowIcon(sibyllaShadowIcon, sibyllaShadowIconSize);
					sibyllaMarker.setIcon(sibyllaIcon, sibyllaIconSize);

					// add info bubble to the marker
					sibyllaMarker.setInfoDiv(restaurantText, "sibylla-map-info");
					
					sibyllaMarker.infoBubble = restaurantName;				   
					
					// display marker 
					mapstraction.addMarker(sibyllaMarker);
					
			});
		
			$('.sibylla-map-stang').live("click", function(){
      			$('#sibylla-map-info').html('');
    		});
			$('.sibylla-map-zooma-in').live("click", function(){
				var restaurantCoords = $('.sibylla-map-zooma-in').attr('rel').split(",");
				var restaurantCoordX = parseFloat(restaurantCoords[0]);
				var restaurantCoordY = parseFloat(restaurantCoords[1]);
				var zoomPoint = new LatLonPoint(restaurantCoordX, restaurantCoordY);
				mapstraction.setCenterAndZoom(zoomPoint, 13);
    		});
			$('#sibylla-map-list').html(restaurantDropdown);
			$('#sibylla-map-list').find('select').change(function() {
				
				//var regionId = $(this).val();
				// .find with contains fails in ALL IE. And there's no need to loop all data since it's already done while creating the option list.
				//var regionCoords = $(data).find('id:contains(' + regionId +') ~ coordinates').text().split(",");
				var regionCoords = $(this).val().split(',');
				var regionCoordX = parseFloat(regionCoords[0]);
				var regionCoordY = parseFloat(regionCoords[1]);
				var regionPoint = new LatLonPoint(regionCoordX, regionCoordY);
				mapstraction.setCenterAndZoom(regionPoint, 12);

			});
		});

	}
};
$(document).ready(function() {
	Sibylla.init();
});