var imageUrl = function(image, preference) {
	var def = '/images/anon.gif';
	
	if (image['600pxw'] && image['600pxw']['cdn'])
		return image['600pxw']['cdn'];
	if (image['url'])
		return image['url'];
	
	return def;
	
};

String.prototype.capitalize = function() {
	return this.charAt(0).toUpperCase() + this.slice(1);
}
var post = false;
var quoteIndex = 0;
var numQuotes = 0;
var nextQuote = function() {
		quoteIndex++;
		if (quoteIndex >= numQuotes) {
			quoteIndex=0;
			$(".quoteContainer").animate({"margin-left": "0px"}, 'slow');
			$(".quoteScrollbar").animate({"margin-left": "0px"}, 'slow');
		} else {
			$(".quoteContainer").animate({"margin-left": "-=" + parseInt($(".quote").width()) + "px"}, 'slow');
			if (quoteIndex == numQuotes - 1) {
				$(".quoteScrollbar").animate({"margin-left": $(".quoteScrollbarWrapper").width() - $(".quoteScrollbar").width()}, 'slow');
				
			} else {
				$(".quoteScrollbar").animate({"margin-left": "+=" + parseInt($(".quoteScrollbar").width()) + "px"}, 'slow');
			}
		}
	};
$(document).ready(function() {
	

	if (!Modernizr.input.placeholder) {
		$("label.placeholder").css("display", "block");
	}

	$(window).resize(function() {
		var leftBuffer = Math.floor(($(window).width() - 978)/2);
		$("#topRightFloat, #footer").css('left', leftBuffer + 666);
		$("#backgroundDiv").css('height', $(document).height());
	});
	$(window).resize();

	$(".withDefaultText").change(function() {
		if ($(this).val().length == 0) {
			$(this).val( $(this).attr("title") );
			$(this).addClass("grey");
			if ($(this).hasClass("password"))
				$(this).prop("type", "text");
		} 
			
	});
	$(".withDefaultText").focus(function() {
		if ($(this).val() == $(this).attr("title")) {
			$(this).val('');
			$(this).removeClass("grey orange");
			if ($(this).hasClass("password"))
				$(this).prop("type", "password");
		}
		
	});
	$(".withDefaultText").blur(function() { $(this).change() });
	$(".withDefaultText").change();
	
	if ($(".quoteWindow").length > 0) {
		numQuotes = $(".quote").length;
		var scrollBarWidth = $(".quoteScrollbarWrapper").width() / numQuotes;
		$(".quoteScrollbar").css("width", scrollBarWidth);
		setInterval(nextQuote, 7000);
	}
	
	
	var pageId = $("#pageId").attr("rel");
	if (pageId) {
		switch (pageId) {
			// Functions for the homepage
			case 'home':
				var baseUrl = "http://fashion.teenvogue.com";
				var seenOn = "FASHION CLICK";
				var render = function(resp) {
					if (resp.posts) {
						$("#articles").empty();
						resp.posts.forEach(function(post) {
							var content = post.content.sanitized.join(" ").substr(0, 250) + "...";
							var permalink = baseUrl + '/post/' + post.slug;
							var article = '\
							<div class="article">\
								<a target="_blank" href="' + permalink + '" class="imageLink"><img src="' + imageUrl(post.images[0]) + '" /></a>\
								<div class="articleRight">\
									<p class="byline">by <em>' + post.blog.name + '</em></p>\
									<p class="byline">seen ' + post.glances.total + ' times on:</p>\
									<p class="byline"><span class="orange">' + seenOn + '</p>\
									<!--<p class="byline channel">Teen Vogue</p>-->\
									<p class="teaser">' + content + '</p>\
									<p class="more"><a target="_blank" href="' + permalink + '">&mdash; See the full post</a></p>\
								</div>\
								<div class="clear"></div>\
							</div>';
							$("#articles").append(article);
							
						});
						$(".article:last").addClass("last");
					}					
				};
				$("#showLoginFormLink, #showSignupFormLink").click(function() {
					$("#loginForm, #signupForm").toggle();
					$("#loginText, #signupText").toggle();
				});
				$("#articles").html('');
				$(".postCategoryPicker").click(function() {
					switch ($(this).attr("rel")) {
						case 'fashion': 
							$.getJSON("http://fashion.teenvogue.com/posts/hot/1.json", render); 
							baseUrl = "http://fashion.teenvogue.com";
							seenOn = "FASHION CLICK";
							break;
						case 'food': 
							$.getJSON("http://zagat.tid.al/posts/hot/1.json", render); 
							baseUrl = "http://forkandtell.zagat.com";
							seenOn = "ZAGAT FORK & TELL";
							break;
						case 'home':
							$.getJSON("http://bobvila.tid.al/posts/hot/1.json", render);
							baseUrl = "http://nation.bobvila.com";
							seenOn = "BOB VILA NATION";
							break;
					}
					$(".postCategoryPicker").removeClass("selected");
					$(this).addClass("selected");
				});
				$.getJSON("http://fashion.teenvogue.com/posts/hot/1.json", render); 
				
				
				break;
				
				
			// Functions for the signup page.
			case 'signup2':
				$("#tagbox .tag").click(function() {
					var tags = [];
					$(this).toggleClass("selected");
					$("#tagbox .tag.selected").each(function() { 
						tags.push($(this).html().toLowerCase());
					});
					$("#tags").val(tags.join(','));
				});
				$("#categorySelect").change(function() {
					$(this).removeClass("grey orange");
					$("#tagbox").show();
					$("#tags").val('');
					$("#tagbox .tag").hide().removeClass("selected");
					$("#tagbox .tag[rel='" + $(this).val().toLowerCase() + "']").show();
					
				});
				$("#signup2pageForm").submit(function() {
					var valid = true;
					var requiredFields = ["name", "blogger_name", "blogger_birthday", "city"];

					
					var bday = $("input[name=blogger_birthday]");
					if (bday.val().search(/\d{2}\/\d{2}\/\d{4}/) == -1) {
						valid = false;
						bday.val('').addClass("orange").change();
					}
					requiredFields.forEach(function(field) {
						var jel = $("input[name=" + field + "]");
						if (jel.val().length == 0 || jel.val() == jel.attr("title")) {
							valid = false;
							jel.val('').addClass("orange").change();
						}						
					});
					var category = $("#categorySelect");
					if (category.val().length == 0 || category.val() == "false") {
						valid = false;
						category.addClass("orange");						
					}
					if ($("input[name=agree]").prop("checked") == false) {
						valid = false;
						$("#agreeToTerms").addClass("pop");
					}
					if (valid) {
						$("input, textarea, select").each(function() {
							if ($(this).val() == $(this).attr("title"))
								$(this).val('');
						});
					}
					return valid;
				});
				break;
				
		
			case 'channelsignup': case 'channelsettings': case 'editprofile':
				$("#tagbox .tag").click(function() {
					var tags = [];
					$(this).toggleClass("selected");
					$("#tagbox .tag.selected").each(function() { 
						tags.push($(this).html().toLowerCase());
					});
					$("#tags").val(tags.join(','));
				});
				$("input[name='categories[]']").change(function() {
					$("#tagbox").show();
					if ($(this).prop("checked")) {
						$("#tagbox .tag[rel='" + $(this).val().toLowerCase() + "']").show();
					} else {
						$("#tagbox .tag.selected[rel='" + $(this).val().toLowerCase() + "']").click();
						$("#tagbox .tag[rel='" + $(this).val().toLowerCase() + "']").hide();
						
					}
					
				});

				
				break;
		}
	}
});
