function cogInit(){	 
	sitesDrawer();
	infoPopups();
	navDD();
	smoothScroll();
	greyInit();
	twitterAgreed();
	twitterCharCount();
	twitterAuthorizationCheck();
	startSwitchCommentingView();
	makeLibs();
}

$(document).ready(function() { 
	cogInit();
 });
 




	
	/*-------------------------------------------    
		Sites Drawer
	-------------------------------------------*/
function sitesDrawer() {
	
	var closeWidget = $("<a class='close'>Close</a>"); 
	$('#sites .wrap').append(closeWidget);

	
	$("#sites .close, strong.cog a").click(function(){
		
		if ($('strong.cog a').hasClass("open")) {
			$("#sites ").slideToggle("fast","swing");
			$('strong.cog a').removeClass('open');
		} else {
			$("#sites ").slideDown("fast","swing");
			$('strong.cog a').addClass('open');
		}
		return false;
	});
}


	/*-------------------------------------------    
	Info Popups 
	-------------------------------------------*/
function infoPopups() {
	var helpCloseWidget = $("<span class='close'>&nbsp;</span>"); 
	$('.popup-body').append(helpCloseWidget);

	$('.help-popup a').click(function() {
		$('.help-popup .popup-body').toggle();
		return false;		
	});

	$('.popup-body span.close').click(function() {
		$('.help-popup .popup-body').toggle();
		return false;
	});
	
	
	var shareCloseWidget = $("<span class='close'>&nbsp;</span>"); 
	$('.share-popup').append(shareCloseWidget);

	$('a.share-button').click(function() {
		$('.share-popup').toggle();
		return false;		
	});

	$('.share-popup span.close').click(function() {
		$('.share-popup').toggle();
		return false;
	});

	$('.article .share-popup a.responses').click(function() {
		$('.share-popup').toggle();
		return false;
	});
}


	/*-------------------------------------------    
		 Dropdowns
	-------------------------------------------*/
function navDD() {		
	$("#main-nav > li").hover(
			function () {
				var ww = $(window).width(); 
				if(ww > 640) $(this).find("div").show();
			}, 
			function () {
				$(this).find("div").hide();
			}
		);
		$('.nav-title').click(function() {
			var ww = $(window).width(); 
			if(ww > 640) {
				$(this).next().toggle();
				return true;
			}
		});
}


	/*-------------------------------------------    
  		Smooth Scroll
	-------------------------------------------*/
function smoothScroll() {
	$('a[href*=#]').click(function() {
		var duration=1000;
		var easing='swing';
		var newHash=this.hash;
		var target=$(this.hash).offset().top;
		var oldLocation=window.location.href.replace(window.location.hash, '');
		var newLocation=this;
			// make sure it's the same location
			if(oldLocation+newHash==newLocation)
			{
			// animate to target and set the hash to the window.location after the animation
			$('html:not(:animated),body:not(:animated)').animate({ scrollTop: target }, duration, easing, function() {
			// add new hash to the browser location
			window.location.href=newLocation;
		});
		return false;
		}
	});
}


	/*-------------------------------------------    
  		Grey Initial Values
	-------------------------------------------*/
function greyInit() {
	var filled = $('input.filled');
		
	if(filled.length > 0){
		for(var i = 0; i < filled.length; i++){
							
			$(filled[i]).addClass('empty');
			filled[i].initialValue = filled[i].value;
			
			filled[i].onclick = filled[i].onfocus = function(){
				$(this).removeClass('empty');
				$(this).addClass('filled');
				if(this.value == this.initialValue){
					this.value= '';
				}
			}
			
			filled[i].onblur = function(){
				if(this.value == this.initialValue || this.value == ''){
					$(this).addClass('empty');
					$(this).removeClass('filled');
					this.value = this.initialValue;
				}else{
					$(this).addClass('empty');
					$(this).removeClass('filled');
				}
			}
		}
	}
	
	else
	{
		return; 
	}
}


	/*-------------------------------------------    
		Twitter Character Count
	-------------------------------------------*/
function twitterCharCount() {
	
	$commentField = $('textarea[name="comment"]');
	if ($commentField.size())
	{
		$charCount = $('<p class="char-count">120 characters or less please (140 minus URL).</p>');
		$commentField.parent().after($charCount);
		
		$commentField.keyup(function()
		{
			var left = 120 - $commentField.val().length;
			
			if (left < 0)
			{
				$charCount.text('You need to lose about '+Math.abs(left)+' character'+(left==-1?'':'s')+'!');
			}
			else if (left == 0)
			{
				$charCount.html('0 characters left. It&rsquo;s perfect!');
			}
			else if (left < 10)
			{
				$charCount.text(''+left+' characters left. Almost there!');
			}
			else
			{
				$charCount.text(left+' character'+(left==1?'':'s')+' left.');
			}
			
			
		});
	}
	
}

	/*-------------------------------------------    
		Twitter Checkbox Functions
	-------------------------------------------*/
function twitterAgreed()
{
	var $input = $('input[name="tweet"]');
	var $form = $input.parents('form:eq(0)');
	
	$form.find('input[type="submit"]').attr('disabled', 'disabled');
	$form.find('input[type="submit"]').addClass('disabled');
	
	$input.click(function()
	{
		if ($input.attr('checked'))
		{
			$form.find('input[type="submit"]').removeAttr('disabled');
			$form.find('input[type="submit"]').removeClass('disabled');
		}
		else
		{
			$form.find('input[type="submit"]').attr('disabled', 'disabled');
			$form.find('input[type="submit"]').addClass('disabled');
		}
	});
}

	/*-------------------------------------------    
		Twitter Authorization Check
	-------------------------------------------*/
function twitterAuthorizationCheck()
{
	var $input = $('input[name="tweet"]');
	if (!$input.size() || $('.greeting').size()) { return; }
	
	var $form = $input.parents('form:eq(0)');
	
	$form.find('input[type="submit"]').attr('disabled', 'disabled');
	$form.find('input[type="submit"]').addClass('disabled');
	var defaultClass = $form.find('input[type="submit"]').attr('class');
	var defaultValue = $form.find('input[type="submit"]').attr('value');
	
	$input.click(function()
	{
		if ($input.attr('checked'))
		{
			$form.find('input[type="submit"]').removeAttr('disabled');
			$form.find('input[type="submit"]').attr('class', 'authorize-connection');
			$form.find('input[type="submit"]').attr('value', 'Authorize Connection to Twitter');
		}
		else
		{
			$form.find('input[type="submit"]').attr('class', defaultClass);
			$form.find('input[type="submit"]').attr('value', defaultValue);
		}
	});
}

	/*-------------------------------------------    
		Switch Commenting View
	-------------------------------------------*/
function startSwitchCommentingView()
{
	$respondToggle = $('<ul id="respond-toggler" />');
	$respondToggle.append('<li class="tweetresponses"><a class="toggle" href="#">'+$('.tweet-count').html()+'</a></li>').find('.tweetresponses').append($('.rt-wrap'));
	$respondToggle.append('<li class="blogresponses"><a class="toggle" href="#">'+$('.blog-count').html()+'</a></li>');
	
	$('.response-meta').before($respondToggle);
	$('.response-meta').remove();
	
	$respondHead = $('<div class="respond-toggle-head" />');
	$respondHead.append('<h4 class="zeta"><a class="toggle tweet-response" href="#">Tweet your thoughts</a></h4>');
	$respondHead.append('<em>or</em>');
	$respondHead.append('<h4 class="zeta"><a class="toggle blog-response" href="#">Respond on your Blog</a></h4>');
	$('#tweet-response').before($respondHead);
	
	$('form#tweet-response, form#blog-response').hide();
}

$(document).delegate('#respond-toggler a.toggle', 'click', function (e)
{
	$('#respond-toggler .on a.close').trigger('click');
	
	var $li = $(this).parent();
	$li.addClass('on');
	$li.find('a.toggle').replaceWith('<span class="toggle">'+$(this).html()+'</span>');
	$li.append('<a class="close" href="">Close</a>');
	
	$('#comments').addClass($li.attr('class'));
	$('#comments').removeClass($li.siblings('li').attr('class'));
	
	e.preventDefault();
});

$(document).delegate('#respond-toggler .close', 'click', function (e)
{
	var $li = $(this).parent();
	$li.removeClass('on');
	$li.find('span.toggle').replaceWith('<a class="toggle" href="#">'+$li.find('.toggle').html()+'</a>');
	
	$(this).remove();
	$('#comments').removeAttr('class');
	
	e.preventDefault();
});

$(document).delegate('.respond-toggle-head a', 'click', function (e)
{
	var $h4 = $(this).parent();
	$h4.addClass('on');
	$h4.find('a.toggle').replaceWith('<span class="'+$(this).attr('class')+'">'+$(this).html()+'</span>');
	
	$h4.siblings('.on').find('span.toggle').each(function()
	{
		$(this).replaceWith('<a href="#" class="'+$(this).attr('class')+'">'+$(this).html()+'</a>');
	}).end().removeClass('on');
	
	if ($(this).hasClass('tweet-response'))
	{
		$('form#tweet-response').show();
		$('form#tweet-response').siblings('form').hide();
	}
	else if ($(this).hasClass('blog-response'))
	{
		$('form#blog-response').show();
		$('form#blog-response').siblings('form').hide();
	}
	
	e.preventDefault();
});

$(document).delegate('#responses .input-reset', 'click', function (e)
{
	$('#responses form').hide();
	$('#responses h4').find('span.toggle').each(function()
	{
		$(this).replaceWith('<a href="#" class="'+$(this).attr('class')+'">'+$(this).html()+'</a>');
	}).end().removeClass('on');

});

/*-------------------------------------------    
	Make Libs
-------------------------------------------*/
function makeLibs() {
	
	$("a.generate-libs").click(function(){
		
		$('.lib-answers input').each(function()
		{
			var fieldNumber = $(this).attr("id");
			var fieldValue = $(this).val();
			$('.'+fieldNumber).val(fieldValue);
		})	
		
		$('.lib-answers').fadeOut();
		$('.lib-results').fadeIn();
	
	});
}
