$(document).ready(function(){
	
	veg.init();
	veg.eventHandlers.init();
	$(".comments").corners("10px");
	
	$("a.lightbox").fancybox({
		overlayColor: "#000000",
		overlayOpacity: .9,
		height: 400,
		width: 500,
		autoDimensions: false
	});
	
});

try {
var addthis_ui_config = {
		ui_use_embeddable_services_beta: true,
		services_compact: 'facebook, myspace, twitter, netvibes, newstrust, posterous, stumbleupon, technorati, friendfeed, google, linkedin, ask, digg, email, tumblr, wordpress, more'
	}
	
	var addthis_share_config = {
		url: "",
		width: "500",
		height: "500",
		title: $(".loc-title").html(),
		description: "Read this review",
		swfurl: location.href
	}
} catch(err){}
var veg = {
	
	postData : {},
	
	init: function(){
		this.getCities();
		this.topRated();
		
		if(section == "CONNECT"){
			this.getPage('connect');
			this.getFeeds();
		}
		if(section == "REVIEW"){
			veg.getPost(slug);
		}
		if(section == "CITY"){
			veg.getCatFullPosts(city);
		}
		
		if(section == "CITIES"){
			veg.getCitiesPage();
		}
		
		
	},
	
	utils : {
		setHeights: function(){
			var highestCol = Math.max($('#main-content').height(),$('#column').height());
			//$('#main-content').height(highestCol);
			//$('#column').height(highestCol);
		},
		
		getMap: function(location){
			findLocation(location);			
		},
		
		viewMap: function(){
			$(window).scrollTo("div#map", 1000, {axis:'y'} );
		},
		
		hideMap: function(){
			$("#map").slideUp();
			$(".viewmap").html("view on map");
		},
		
		loaderOn: function(){
			$("#loader").css("display","block");
		},
		
		loaderOff: function(){
			$("#loader").css("display","none");
		},
		
		postComment: function(){
			
			if(location.href.toString().indexOf('detroitveg.com') >= 1){
				var id = 15;
			} else {
				var id = 46;
			}
			
			$.ajax({
			  url: '/data/?json=submit_comment&post_id='+id,
			  type: 'POST',
			  dataType: 'json',
			  data: $("#post").serialize(),
			  success: function(data) {
				  $("#fancybox-inner #suggest").html("Thank you for suggesting this location!");
			  },
			  complete: function(){
				  $("#fancybox-inner #suggest").html("Thank you for suggesting this location!");
			  }
			});
		}
		
		
		
	},
	
	eventHandlers : {
		init: function(){
			
			$("#column li a").live("mouseenter",
				function(){
					$(this).animate({
						left: '3px'
					}, 50);
					
					$(this).css({
						"color":"#dee104"
					})
				}
			);
			
			$("#column li a").live("mouseleave",
				function(){
					$(this).animate({
						left: '0px'
					}, 500);
					
					$(this).css({
						"color":"white"
					})
				}
			);
			
			$("#column li a.nav").live("click", function(){
				veg.utils.loaderOn();
				$("#cities .subnav").slideUp();
				$(this).next().slideDown();
				var slug = $(this).attr('rel');
				veg.getCatFullPosts(slug);
				$("#latest-reviewed").css("display","none");
				return false;
				
			});
			
			$(".city-title").live("click", function(){
				var slug = $(this).attr('rel');
				veg.getCatFullPosts(slug);
			});
			
			
			$(".city-title").live("mouseenter",
				function(){
					$(this).css({"color": "#777777"});
				}
			);
			
			$(".city-title").live("mouseleave",
					function(){
						$(this).css({"color": "#333333"});
					}
			);
			
			$("#column li a.cat-post").live("click", function(){
				veg.utils.loaderOn();
				var slug = $(this).attr('rel');
				var city = $(this).attr('title');
				window.location = "/review/"+city+"/"+slug+"/";
				return false;
			});
			
		
			
			$(".viewmap").live("click", function(){
				veg.utils.viewMap();
			});
			
			$(".submitcomment").live("click", function(){
				veg.utils.postComment();
			});
			
			$("#search .title").click(function(){
				var term = $("#searchbox").attr('value');
				veg.utils.loaderOn();
				veg.search(term);
			});
			
			$("#search input").keypress(function(e) {
			    if(e.keyCode == 13) {
			        var term = $("#searchbox").attr('value');
					veg.utils.loaderOn();
					veg.search(term);
			    }
			});
			
			
			
		}
	},
	
	search: function(term){
		
		$("#blog").empty();	
		
		if(term != undefined){
		
		$.ajax({
		  url: '/data/?json=get_search_results&custom_fields=veg_options,healthy,price&search='+term,
		  type: 'POST',
		  dataType: 'json',
		  success: function(data) {
			
			$("#blog").append("<ol></ol>");
			
			if(data.count_total == 0){
				$("#blog ol").append("<li>'0' Search Results<li>");
			} else {
				$("#blog ol").append("<li>'"+data.count_total+"' Search Results<li>");
			}
				
				$.each(data.posts, function(i, val){

					var title = val.title;

					var location = val.custom_fields.address;
					var veg_options = val.custom_fields.veg_options.toString();
					var healthy = val.custom_fields.healthy.toString();
					var price = val.custom_fields.price.toString();
					var slug = val.slug;
					var cat_slug = val.categories[0].slug;
					

					

					$("#blog ol").append(" \
						<li class='rated_items_list'><div class='post-body'> \
						<h4><a href='/review/"+cat_slug+"/"+slug+"/'>"+title+"</a></h4> \
						<div class='rated_items'> \
						Vegetarian Options <span class='rateditem-"+slug+"-options'></span> <br />\
						Healthy <span class='rateditem-"+slug+"-healthy'></span> <br />\
						Price Options <span class='rateditem-"+slug+"-price'></span> \
						</li> \
						</div></li> \
					");
					
					if(veg_options == "0"){
						$(".rated_items .rateditem-"+slug+"-options").append("<img title='Rated "+veg_options+" leafs' src='/images/noleaf.png' />")
					}
					
					if(healthy == "0"){
						$(".rated_items .rateditem-"+slug+"-healthy").append("<img title='Rated "+healthy+" leafs' src='/images/noleaf.png' />")
					}
					if(price == "0"){
						$(".rated_items .rateditem-"+slug+"-price").append("<img title='Rated "+price+" leafs' src='/images/noleaf.png' />")
					}
					
					for(i=0; i < veg_options; i++){
						$(".rated_items .rateditem-"+slug+"-options").append("<img title='Rated "+veg_options+" leafs' src='/images/leaf.png' />")
					}

					for(i=0; i < healthy; i++){
						$(".rated_items .rateditem-"+slug+"-healthy").append("<img title='Rated "+healthy+" leafs' src='/images/leaf.png' />")
					}

					for(i=0; i < price; i++){
						$(".rated_items .rateditem-"+slug+"-price").append("<img title='Rated "+price+" leafs' src='/images/leaf.png' />")
					}

				});
				
				
		  }
		});
	} else {
		$("#blog ol").append("<li>'0' Search Results<li>");
	}
		
	},
	
	getCitiesPage: function(){
		veg.utils.loaderOn();
		$.ajax({
		  url: '/data/?json=get_category_index',
		  type: 'POST',
		  dataType: 'json',
		  success: function(data) {
			$("#blog").append("<h2 style='display:block'>Cities</h2>");
			$.each(data.categories, function(i, val){
				var postcount = val.post_count;
				var title = val.title;
				var slug = val.slug;
				if(postcount > 1){
					var review = "Reviews";
				} else {
					var review = "Review";
				}
				
				$("#blog").append("<h3 title='"+postcount+" "+review+"' class='city-title' rel='"+slug+"'>"+title+"</h3>");
				
			});
		  },
		  complete: function(){
			veg.utils.loaderOff();
			$("h3.city-title").hoverAttribute({
			   attribute: "title"
			});
		}
		});
	},
	
	getFeeds: function(){
		
	},
	
	topRated: function(){
		$.ajax({
		  url: '/data/?json=1&custom_fields=veg_options,healthy,price',
		  type: 'POST',
		  dataType: 'json',
		  success: function(data) {
		  		
				$.each(data.posts, function(i, val){
					if(i <= 10){
					if(val.id != 46 && val.id != 15){
						var title = val.title;
						var slug = val.slug;
						var rating = parseInt(val.custom_fields.veg_options) + parseInt(val.custom_fields.healthy) + parseInt(val.custom_fields.price);
						var city = val.categories[0].slug;
						
						
						$("#rated ol").append("<li rel='"+rating+"'><a href='/review/"+city+"/"+slug+"/'>"+title+"</a></li>");
					}
				}
					
				
				});
				
				 $("#rated ol li").qsort({digits: true, attr: "rel", order: "desc"});
		  },
		  complete: function(){
			veg.utils.setHeights();
	 	  }
		});
	},
	
	getPage: function(page){
		
		$.ajax({
		  url: '/data/?json=get_page&page_slug='+page,
		  type: 'POST',
		  dataType: 'json',
		  success: function(data) {
		  		
				var content = data.page.content;
				var title = data.page.title;
				
				$("#blog").empty();
				
				$("#blog").append(" \
					<h2>"+title+"</h2> \
					<div class='post-body'> \
						"+content+" \
					</div> \
				");
		  },
		  complete: function(){
			veg.utils.setHeights();
			veg.utils.loaderOff();
	 	  }
		});
	},
	
	getPost: function(slug){
	
		initialize();
		veg.utils.getMap($('.address-loc').html().toString());
		veg.utils.setHeights();
		$(".page-head").corners("10px").css({
			"-moz-box-shadow":"0px 1px 12px #000",
			"-webkit-box-shadow":"0px 1px 12px #000"
		});
		$("#ratings").corners("10px");
		$("#column li#cat-"+city+" a.nav").next().slideDown();
		//addthis.button(".addthis_toolbox", addthis_ui_config, addthis_share_config);
		
		
				
		  
	},
	
	getCatFullPosts: function(slug){
		if(section != "REVIEW"){
			$("#blog").fadeOut();
		}
		veg.utils.loaderOn();
		$.ajax({
		  url: '/data/?json=get_category_posts&category_slug='+slug+'&custom_fields=veg_options,healthy,price',
		  type: 'POST',
		  dataType: 'json',
		  complete: function(){
			$(".rated_items_list").corners('10px');
			veg.utils.loaderOff();
			$("#blog").fadeIn();
		  },
		  success: function(data) {
			var category = data.category.title;
			var cat_slug = data.category.slug;
			$("#blog").empty();
			$("#blog").append("<h2>"+category+"</h2><div id='map'></div><ol></ol>");
			
		  	$.each(data.posts, function(i, val){
				var title = val.title;
				var excerpt = val.excerpt;
				var slug = val.slug;
				var rate = val.custom_fields.veg_options;
				var healthy = val.custom_fields.healthy.toString();
				var price = val.custom_fields.price.toString();
				$("#blog ol").append(" \
					<li class='rated_items_list'><div class='post-body'> \
					<h4><a href='/review/"+cat_slug+"/"+slug+"/'>"+title+"</a></h4> \
					<div class='rated_items'> \
					Vegetarian Options <span class='"+slug+"-rating'></span> <br />\
					Healthy <span class='"+slug+"-healthy'></span> <br />\
					Price Options <span class='"+slug+"-price'></span> <br /> \
					<p>"+excerpt+"</p> \
					</li> \
					</div></li> \
				");
				
				if(rate == "0"){
						$("."+slug+"-rating").append("<img title='Rated "+rate+" leafs' src='/images/noleaf.png' />")
					}
					
				if(healthy == "0"){
						$("."+slug+"-healthy").append("<img title='Rated "+healthy+" leafs' src='/images/noleaf.png' />")
					}
					
				if(price == "0"){
						$("."+slug+"-price").append("<img title='Rated "+price+" leafs' src='/images/noleaf.png' />")
					}
				
				for(i=0; i < rate; i++){
					$("."+slug+"-rating").append("<img title='Rated "+rate+" leafs' src='/images/leaf.png' />")
				}
				
				for(i=0; i < healthy; i++){
					$("."+slug+"-healthy").append("<img title='Rated "+healthy+" leafs' src='/images/leaf.png' />")
				}
				
				for(i=0; i < price; i++){
					$("."+slug+"-price").append("<img title='Rated "+price+" leafs' src='/images/leaf.png' />")
				}
			});
			
			$("a#lightbox").fancybox({
				overlayOpacity: .8,
				overlayColor: "#000000",
				height: 300,
				autoDimensions: false
			});
			
			initialize();
			veg.utils.getMap(category.toString() +", mi");
			
		  }
		});
	},
	
	getLatest: function(){
		$("#latest-reviewed .loader").css('display','block');
		$("#latest-reviewed").css("display","block");
		$.ajax({
		  url: '/data/?json=1',
		  type: 'POST',
		  dataType: 'json',
		  success: function(data) {
		  		
				$.each(data.posts, function(i, val){
					
					if(val.categories[0]){
						var title = val.title;
						var slugpost = val.slug;
						var catslug = val.categories[0].slug;
						var category = val.categories[0].title;
						
						if($("#latest-reviewed ol li").length <= 4){
							$("#latest-reviewed ol").append("<li class='rev-"+i+"' id='cat-"+slugpost+"'>"+category+" / <a rel='"+slugpost+"' title='"+slug+"' href='/review/"+catslug+"/"+slugpost+"/'>"+title+"</a><span class='rating'></span></li>");
						}
					}
					
				
				});
				
		  },
		complete: function(){
			$("#latest-reviewed .loader").css('display','none');
		}
		});
		
	},
	
	getCatPosts: function(title, slug){
		$.ajax({
		  url: '/data/?json=get_category_posts&category_slug='+slug+'&custom_fields=veg_options,healthy,price',
		  type: 'POST',
		  dataType: 'json',
		  complete: function(){
			$(".rated_items_list").corners("10px");
			veg.utils.loaderOff();
			if(section == "HOMEPAGE"){
				veg.getLatest();
			}
		  },
		  success: function(data) {
			var category = data.category.title;
			var slugcat = data.category.slug;
		  	$.each(data.posts, function(i, val){
				var title = val.title;
				var slugpost = val.slug;
				var rate = val.custom_fields.veg_options.toString();
				var healthy = val.custom_fields.healthy.toString();
				var price = val.custom_fields.price.toString();
				
					if($("#nav-"+slugpost).length == "0"){
						$("#cities ul li#cat-"+slug+" span").append("<li id='nav-"+slugpost+"'><a class='cat-post' rel='"+slugpost+"' title='"+slug+"' href='#'>"+title+"</a></li>");
					}
				
				
				
				
			});
		  }
		});
		
	},
	
	getCities: function(){
	
		$.ajax({
		  url: '/data/?json=get_category_index',
		  type: 'POST',
		  dataType: 'json',
		  complete: function(){
			veg.utils.loaderOff();
		  },
		  success: function(data) {
		  	$.each(data.categories, function(i, val){
				var title = val.title;
				var slug = val.slug;
				$("#cities ul").append("<li id='cat-"+slug+"'><a rel='"+slug+"' class='nav' href='#'>"+title+"</a><span class='hidden subnav'></span></li>");
				veg.getCatPosts(title, slug);
			});
			
		  }
		});
		
		
	}
}
