(function($) {
	$.fn.kreezo = function() {
		
		/*
			Parameter background
		*/
		var kreezo = $('#kreezo');
		
				
		$(".social .panel a").not("a.readmore").addClass("iframe");	    

		$("a.image_elements", kreezo).fancybox({
	        'autoScale'     	: true,
	        'transitionIn'		: 'none',
			'transitionOut'		: 'none'
		});

		$("a.movie_elements", kreezo).fancybox({
	        'autoScale'     	: true,
	        'transitionIn'		: 'none',
			'transitionOut'		: 'none',
			'type'			: 'swf'
		});
				
		$("a.iframe", kreezo).fancybox({
			'width'				: '75%',
			'height'			: '75%',
	        'autoScale'     	: false,
	        'transitionIn'		: 'none',
			'transitionOut'		: 'none',
			'type'				: 'iframe'
		});
		
		$("a.readmore", kreezo).fancybox({
			'titlePosition'		: 'inside',
			'transitionIn'		: 'none',
			'transitionOut'		: 'none'
		});

		$(".coda-slider", kreezo).codaSlider({
			dynamicTabs: false,
			autoHeight: false,
			dynamicArrows: false,
			crossLinking: false,
			autoHeightEaseDuration: 100,
			autoHeightEaseFunction: "easeInBounce",
			slideEaseDuration: 100,
			slideEaseFunction: "easeInBounce"
		});
		
		ActivateGoogleTrack();
		TruncateSearchvarToUrl();	
		
		var initial_height = $("#rating-body").css('height');
		var header_height  = '35px';
	

		$("button.rating-negative").click(function () { 
			var keyword = $(this).attr("rel");
			//$("#rating-buttons").css("display","none");
			$('#rating-buttons').html("<img src=\"images/spinner.gif\" alt=\"spinner\"/>");
			rate(0,keyword);
			
			return false;
		});
		
		$("button.rating-positive").click(function () {
			var keyword = $(this).attr("rel");
			//$("#rating-buttons").css("display","none");
			$('#rating-buttons').html("<img src=\"images/spinner.gif\" alt=\"spinner\"/>");
			rate(1,keyword);
			return false;
		});
		
		
		$("#rating-footer").click(function () { 
			collapse();
		});
		
		$("#rating-header").click(function () { 
			collapse();
		});
		
		
		
		function TruncateSearchvarToUrl() {
			$("input#search_kreezo_submit").click(function ()
				{ 
					var keyword = $("#search_kreezo").val();
					var action = $('form#search_kreezo_form').attr("action");
					var url = action+keyword;

					$('form#search_kreezo_form').attr("action",url);
					$('form#search_kreezo_form').submit();
				}
			);
		}
		
		function ActivateGoogleTrack() {
			if(typeof(pageTracker) == 'undefined') {
				return false;
			}
			
			$("a.tracker").bind("click", function(e){
				var google_tracker = $(this).attr("rel");
				var first_char = google_tracker.charAt(0);
				
				//Google trackers has to start with a trailing slash
				if(first_char != '/') {
					google_tracker = '/'+google_tracker;
				}
				
				pageTracker._trackPageview(google_tracker);
			});
		}
		
		function collapse() {
			if( $("#rating-body").css('height') == header_height) {
				$("#rating-body").css('height', initial_height); 
			} else {
				$("#rating-body").css('height', header_height); 
			}	
		}
		
		
		get_rating_topic();
		
		function get_rating_topic() {
			
			if ( $(".rating-positive").length == 1 && $(".rating-negative").length == 1){

				var likes = 0;
				var dislikes = 0;
				var base = $("base").attr("href");
				var keyword = $('meta[name=kreezo-keywords]').attr("content")
				var url = base+'ajax/getratingtopic/'+keyword;
				
				
				$.getJSON(url,
					function(data){
						likes = data.num_likes;
						dislikes = data.num_dislikes;
						
						var val_pos = $(".rating-positive").text() + "(+" + likes + ")";
						var val_neg = $(".rating-negative").text() + "(-" + dislikes + ")";
											
						$(".rating-positive").text(val_pos);
						$(".rating-negative").text(val_neg);
				});
			}
				
		}	
		
		
		
		function rate(type,keyword) {
			var base = $("base").attr("href");
			var url = base+'ajax/like/'+type+'/'+keyword;
			
			$.ajax({
			   url: url,
			   success: function(msg){
					//$("#rating-buttons").css("display","block");
					$('#rating-buttons').html(msg);
			   }
			});
		}
		
		if( $('#kreezo_mapcanvas').length == 1 && $(".kreezoloc").length != 0 ) { 
			kreezomaps();
		} else {
			$('#kreezo_mapcanvas').css("display","none");
		}
		
		function kreezomaps() {
			map = new google.maps.Map(document.getElementById("kreezo_mapcanvas"), {
			scaleControl: true});
			
			geocoder = new google.maps.Geocoder();
		  
			$(".kreezoloc").each(function () {
				var location = $(this).attr("rel");		
				codeAddress(location, $(this).html() , true);	
			});	
			
			map.setZoom(9);
			map.setMapTypeId(google.maps.MapTypeId.ROADMAP); 
		}
		
		function codeAddress(address, content, setcenter) {
			geocoder.geocode( { 'address': address}, function(results, status) {
				if (status == google.maps.GeocoderStatus.OK) {
					if(setcenter) {
						 map.setCenter(results[0].geometry.location);
					}
					
					var marker = new google.maps.Marker({
						map: map, 
						position: results[0].geometry.location
					});
					
					var infowindow = new google.maps.InfoWindow();
					infowindow.setContent(content);
					google.maps.event.addListener(marker, 'click', function() {
						infowindow.open(map, marker);
					});
				
			    } 
			});
		}
		
	};
})(jQuery);


