if(!window['medium']) {
	window['medium'] = {};
	var medium = window['medium'];
}

(function() {
  
 $(document).ready(function() {
		medium.comments()
		medium.contact()
		medium.formDefaults()
		medium.gridList()
		medium.peopleLinks();
		medium.printLink();
		medium.navigationSubnav();
    medium.share($('li.share a'));
    $('.to_top').click(function(){
      $('html,body').animate({scrollTop:0}, {duration:'normal'})
    })
		medium.twitterFeed('#twitterfeed','#twitterstatus');
	});
	
	$(window).load(function() {
		
	});
	
	$(".columns").columnize({columns: 4});
	
	medium.comments = function() {
		var form = $('form.comment-form')
		var inputs = form.find('textarea,input[type=text]')
		
		inputs.each(function() {
			var input = $(this)
			var label = input.prev('label')
			label.addClass('processed')
			if(input.val() == '' && input.attr('name') != 'honeypot') {
				input.val(label.html())
			}
		});
	}
	medium.contact = function() {
		var form = $('form.contact')
		var inputs = form.find('textarea,input[type=text]')
		
		inputs.each(function() {
			var input = $(this)
			var label = input.prev('label')
			label.addClass('processed')
			if(input.val() == '' && input.attr('name') != 'honeypot') {
				input.val(label.html())
			}
		});
	}
	
	medium.formDefaults = function() {
		var inputs = $('textarea,input[type=text]')
		inputs.each(function() {
			var input = $(this)
			var defaultText = input.val()
			input.focus(function() {
				if(input.val() == defaultText) { input.val('') }
			});
			input.blur(function() {
				if(input.val() == '' && input.attr('name') != 'honeypot') { input.val(defaultText) }
			});
		});
	}
	
	medium.gridList = function() {
	    var btn_grid = $("#grid-switch a");
        var btn_list = $("#list-switch a");
        var grid = $(".grid");
        var list = $(".list");
        list.addClass('hidden');
        grid.addClass('selected');
        btn_grid.addClass('selected');

        $('#grid-switch a').click(function(c) {
            c.preventDefault();
            btn_list.removeClass('selected');
            btn_grid.addClass('selected');
            list.removeClass('selected');
            list.addClass('hidden');
        	grid.removeClass('hidden');
        	grid.addClass('selected');
        	
        })

        $('#list-switch a').click(function(c) {
            c.preventDefault();
        	btn_grid.removeClass('selected');
            btn_list.addClass('selected');

            grid.removeClass('selected');
            grid.addClass('hidden');
        	list.removeClass('hidden');
        	list.addClass('selected');
        	$(".columns").columnize({columns: 4});
        })
	}
	
	medium.peopleLinks = function() {
        if(!$('#staff').size()) { return; }
        var authors = $('.author');
        		authors.each(function() {
        		    var author = $(this);
        		    var link = $(this).find('a')
        		    if (link.attr('class')) {
        		        var service = link.attr('class')
        		    } else {
        		        var service = ''
        		    }
        		    link.hover(function() {
        		        var frame = $(jQuery('<div class="service ' + service + '"></div>'));
                        link.append(frame);
                        
        		    }, 
        		    function() {
        		        link.find('div.service').remove()
        		    });
        		})
	}
	
	medium.printLink = function() {
	    if(!$('body.blog-entry').size()) { return; }
	    $('ul.blog-nav li.print a').click(function(c) {
    	    c.preventDefault();
    	    window.print();
    	})
    	
	}
	
	medium.navigationSubnav = function() {
	    var newsLink = $('ul.navigation li.news');
	    newsLink.hover(function() {
	        newsLink.find('ul').show();
	        newsLink.addClass('selected');
	    },
	    function() {
	        newsLink.find('ul').hide();
	        newsLink.removeClass('selected');  
	    })
	
	    var aboutLink = $('ul.navigation li.about');
	    var aboutMenu = aboutLink.find('ul')
	    aboutMenu.css('left',aboutLink.outerWidth()-aboutMenu.outerWidth()+1+'px')
	    aboutLink.hover(function() {
	        aboutMenu.show();
	        aboutLink.addClass('selected');
	    },
	    function() {
	        aboutMenu.hide();
	        aboutLink.removeClass('selected');  
	    })
	}
	
	medium.share = function(links){
	  if(typeof links == 'undefined') { return; }
	  medium.workintitle = document.title || "Medium"

  	medium.bitlyParse = function(data){
  		var result
  		for(var i in data.results){
  			result = data.results[i]; break
  		}
  		return result.shortUrl
  	}
  	medium.bitly = function(url,funk){
  		BitlyClient.shorten(url,funk)
  	}
  	medium.twitterBoom = function(data){
  		var url = medium.bitlyParse(data)
  		window.open('http://twitter.com/home?status=' + encodeURIComponent(medium.workintitle) + '%20' + encodeURIComponent(url), 'tweet')
  	}
  	medium.twitterGo = function(u){
  		medium.bitly(u,'medium.twitterBoom')
  	}
	  
	  links.each(function(){
	    var link = $(this)
	    var butan = new ShareDis(link,null,null,'bottom center', [null,["Twitter",function(url,title,event){medium.twitterGo(window.location)}]])
	  })
	}
	
  medium.socialNetworks = function(links) {
    if(typeof links == 'undefined') { return; }
    medium.socialNetworks.urlEscape = function(inputString) {
      var encoded = escape(inputString);
      encoded = encoded.replace(/http%3A\/\//gi,'');
      encoded = encoded.replace(/\+/gi, "%2B");
      encoded = encoded.replace(/\//gi, "%2F");
      encoded = encoded.replace(/iago/gi,'com');
      return encoded;
    }

    var page = [];
    page['url'] = medium.socialNetworks.urlEscape(window.location);
    page['title'] = medium.socialNetworks.urlEscape($('.entry h2').html());
    page['description'] = medium.socialNetworks.urlEscape($('.entry h4').html());
    
    
    links.each(function() {
      var link = $(this)
      var list = $(jQuery('<ul />'))
      var digg = $(jQuery('<li />'))
      digg.addClass('digg')
      var diggLink = $(jQuery('<a />'))
      diggLink.click(function(c) {
        c.preventDefault()
        window.open('http://digg.com/submit?url='+page.url+'&title='+page.title+'&bodytext='+page.description+'&topic=design&step=2','digger');
      });
      diggLink.html('Digg')
      diggLink.attr({'href': '#digg'})
      diggLink.appendTo(digg)
      digg.appendTo(list)
      
      var facebook = $(jQuery('<li />'))
      facebook.addClass('facebook')
      var facebookLink = $(jQuery('<a />'))
      facebookLink.click(function(c) {
        c.preventDefault()
        window.open('http://www.facebook.com/sharer.php?u='+page.url+'&t='+page.title,'sharer','toolbar=0,status=0,width=626,height=436');
      });
      facebookLink.html('Facebook')
      facebookLink.attr({'href': '#facebook'})
      facebookLink.appendTo(facebook)
      facebook.appendTo(list)
      
      var buzz = $(jQuery('<li />'))
      buzz.addClass('buzz')
      var buzzLink = $(jQuery('<a />'))
      buzzLink.click(function(c) {
        c.preventDefault()
        window.open('http://buzz.yahoo.com/submit/?submitUrl=' + escape('http://').replace(/\//gi, "%2F") + page.url + '&submitHeadline=' + page.title + '&submitSummary=' + page.description,'buzzer');
      });
      buzzLink.html('Y! Buzz')
      buzzLink.attr({'href': '#buzz'})
      buzzLink.appendTo(buzz)
      buzz.appendTo(list)
      
      list.appendTo(link)
      
      link.click(function(c) {
        c.preventDefault()
        $(this).blur()
        list.toggle()
      });
    });
  }

	medium.twitterFeed = function(){
		var url="http://twitter.com/statuses/user_timeline.json?screen_name=thisismedium&count=3"
		var feed=$('#twitterfeed ul')
		$.get(url, 'count=3', function(data, status){
			for(i=0; i<data.length; i++){
				var tweet = data[i]
				var status = tweet.text
				// var date = new Date("Tue Jun 09 20:44:24 +0000 2009")
				var date = new Date(tweet.created_at.replace(/\s\+\d+\s/g,' '))
				// console.log(tweet)
				
				// Replace URL lookin' (according to Twitter) stuff with links
				status = status.replace(/((https?:\/\/(www\.)?|www\.)([^\s]+)\.[a-z]{2,5}([^\s]+)?)/gm, '<a target="new" title="$1" href="$1">$1</a>').replace(/href="www\./,'href="http://www.')
				// Replace @s with link to user's Twitter page
				status = status.replace(/@([a-zA-Z0-9_]+)/gm, '<a target="new" title="$1" href="http://twitter.com/$1">@$1</a>')
				
				// Prettify the time
				var time = (["January","February","March","April","May","June","July","August","September","October","November","December"][parseInt(date.getMonth())]) + "&nbsp;" + date.getDate() + ",&nbsp;" + date.getFullYear().toString() + " at "
				if (date.getHours()>12){
					time += date.getHours()-12 + ":" + date.getMinutes()
				}else{
					time += date.getHours() + ":" + date.getMinutes()
				}
				time += (date.getHours()-12>=0)? "pm" : "am"
				
				$("<li></li>").html(status).appendTo(feed).append(" ").append($("<span></span>").html(time))
				// .click(function(){
				// 					var d = tweet.id
				// 					window.open('http://twitter.com/thisismedium/status/' + d, 'tweet')
				// 				})
			}
			$('#twitterstatus').hide()
			feed.find('a').click(function(e){e.stopPropagation()})
		}, 'jsonp')
	}
	
})();



