var Local = {

    onCommentReply: function(id) {
		Comments.openReply(id);
	},

    onCancelReply: function(id) {
		Comments.closeReply();
	}

};

var wt = {}; // This is the setup for the webtools namespace

var gotham = { src: '/flash/sifr.swf' };
sIFR.activate(gotham);

sIFR.replace(gotham, {
  selector: 'h1.sifr-black',
  css: '.sIFR-root { color: #000000; text-transform: uppercase; }',
  wmode: 'transparent'
});
sIFR.replace(gotham, {
  selector: 'h1.sifr-black-narrow',
  css: '.sIFR-root { color: #000000; text-transform: uppercase; width: 300px; }',
  wmode: 'transparent'
});
sIFR.replace(gotham, {
  selector: '#health-care h1.red_sifr',
  css: '.sIFR-root { color: #c3122f; }',
  wmode: 'transparent'
});
sIFR.replace(gotham, {
  selector: 'h1.red_sifr',
  css: '.sIFR-root { color: #c3122f; }',
  wmode: 'transparent'
});
sIFR.replace(gotham, {
  selector: 'h1.blue_sifr',
  css: '.sIFR-root { background-color:transparent; color: #1096c9; }',
  wmode: 'transparent'
});
sIFR.replace(gotham, {
  selector: 'h2',
  css: '.sIFR-root { text-transform: uppercase; color: #000000; font-weight: normal; font-size: 11px; } .sIFR-root a { color: #000000; text-decoration: none; } .sIFR-root a:hover { color:#C3122F; }',
  wmode: 'transparent'
});
sIFR.replace(gotham, {
  selector: 'h3',
  css: '.sIFR-root { text-transform: uppercase; color: #000000; font-weight: normal; font-size: 12px; line-height: 12px; } .sIFR-root a { color: #000000; text-decoration: none; } .sIFR-root a:hover { color:#C3122F; }',
  wmode: 'transparent'
});

(function() { // This is where jQuery code can safely go without foobarring prototype
	var $ = jQuery
	
	$(document).ready(function() { // These functions get called on DOM ready
		$('a').click(function() { $(this).blur() }) // prevents outlines on links for IE
		$('.front-panels .heroshots').each(function() {
			var hero = $(this);
			var link = hero.find('a');
			var headline = hero.prev('h2');
			var newLink = link.clone(true);
			newLink.html(headline.html())
			headline.html(newLink);
		});
		wt.hero() // Crossfades hero shots if applicable
		wt.socialNetworks($('a[href=#share]'))
		$('a[href=#print]').click(function(c){ c.preventDefault(); window.print(); })
		wt.fixHeight();
	})
	
	$(window).load(function() { // These functions get called when everything has loaded
	    if($('div.blue-canoe').size()) {
			$('#slide_content p span').text($('#imageFadeContainer img:first').attr('alt'))
		}
		
		if($('#wrapper').height() < $('html').height()) { $('#wrapper').height($('html').height()); }
		
		if($('html#contact').size()) {
		    var form = $('div.form-contact form'),
            checked = function(){return form.find('fieldset:eq(0)').find('input:checked').length;},
            checkfix = function(){if(!checked()){form.find('fieldset:eq(0)').find('input:checkbox:eq(0)').attr('checked',true)}};
	        checkfix();
		    form.submit(checkfix);
		}
		
		wt.marginsFix();
		wt.fixHeight();
	})
	
	$(window).resize(function() {
		wt.fixHeight();
	});

	wt.formDefaults = function() { // Swaps default text form input values to blank on focus and back to default text on blur
		$('input:text,textarea').each(function() {
			var elem = $(this)
			var defaultText = elem.val()
			elem.focus(function(){
				if(elem.val() == defaultText) {
					elem.val('')
				}
			})
			elem.blur(function(){
				if(elem.val() == '') {
					elem.val(defaultText)
				}
			})
		})
	}

	wt.hero = function() { // Heroshot crossfader; set options below this function

		if(!$('.heroshots').size()) {
			return
		}
		
		wt.hero.interval = null
		
		wt.hero.containers = new Array();
		
		$('.heroshots.fade-container').each(function() {
			wt.hero.containers[wt.hero.containers.length] = $(this);
			var container = wt.hero.containers[wt.hero.containers.length - 1]
			container.wrapper = $(jQuery('<div style="position: relative;white-space: nowrap;top:0px;left:0px"></div>'))

			$(window).load(function() {
				container.find('img').each(function(){
					container.wrapper.width(container.wrapper.width() + $(this).width() + parseInt($(this).css('padding-left'),10) + parseInt($(this).css('padding-right'),10))
				})
			});

			container.children('a,img,div.image').appendTo(container.wrapper)

			container.wrapper.appendTo(container)

			var fade = container.find('input[name=fadevalue]')
			container.fade = fade.size() ? fade.val() * 1000 : 1 * 1000;
			fade.remove()

			var dur = container.find('input[name=showvalue]')
			container.dur = dur.size() ? dur.val() * 1000 : 5 * 1000;
			dur.remove()

			if(wt.hero.useForeground) {
				container.foreground = $(jQuery('<div class="hero-foreground" />'))
				container.append(container.foreground)
			}

			if(wt.hero.useCaptions) {
				if(container.children('a:first-child').size()) {
					var firstCaption = container.children('a:first-child').children('img').attr('alt')
				} else if(container.children('img:first-child').size()) {
					var firstCaption = container.children('img:first-child').attr('alt')
				} else if(container.children('div.image:first-child').size()) {
					var firstCaption = container.children('div.image:first-child').children('div.page.content')
				} else {
					var firstCaption = ''
				}

				container.captionHolder = $(jQuery('<div class="hero-caption" />'))
					.append(
						$(jQuery('<span class="caption-holder" />')).show().text(firstCaption)
					)
				container.parent().append(container.captionHolder)
			}

			if(container.wrapper.children('a,img,div.image').size() < 2) { // Less than two images, we don't need to xfade or add controls
				return
			}

			if(wt.hero.useControls) {
				container.append(
						$(jQuery('<div />'))
							.attr({'class': 'hero-controls'})
							.append(
								$(jQuery('<ul />'))
									.append(
										$(jQuery('<li />'))
											.append(
												$(jQuery('<a />'))
													.attr({
														title: 'Previous Photo',
														'class': 'hero-previous',
														href: '#previous-photo'
													})
													.click(function(c){
														c.preventDefault()
														clearInterval(container.interval)
														container.rotate('prev')
														container.find('.hero-pause').hide()
														container.find('.hero-play').show()
													})
											)
									)
									.append(
										$(jQuery('<li />'))
											.append(
												$(jQuery('<a />'))
													.attr({
														title: 'Pause Photos',
														'class': 'hero-pause',
														href: '#pause-photos'
													})
													.click(function(c){
														c.preventDefault()
														clearInterval(container.interval)
														container.find('.hero-pause').hide()
														container.find('.hero-play').show()
													})
													.css({display: 'block'})
													.show()
											)
									)
									.append(
										$(jQuery('<li />'))
											.append(
												$(jQuery('<a />'))
													.attr({
														title: 'Play Photos',
														'class': 'hero-play',
														href: '#play-photos'
													})
													.click(function(c){
														c.preventDefault()
														container.interval = setInterval(function(){
															container.rotate('next')
														}, container.dur + container.fade)
														container.find('.hero-pause').show()
														container.find('.hero-play').hide()
													})
													.css({display: 'block'})
													.hide()
											)
									)
									.append(
										$(jQuery('<li />'))
											.append(
												$(jQuery('<a />'))
													.attr({
														title: 'Next Photo',
														'class': 'hero-next',
														href: '#next-photo'
													})
													.click(function(c){
														c.preventDefault()
														clearInterval(container.interval)
														container.rotate('next')
														container.find('.hero-pause').hide()
														container.find('.hero-play').show()
													})
											)
									)
							).css({'display': 'none'})
					)
			}

			container.hover(function() {
				container.find('.hero-controls').show()
			}, function() {
				container.find('.hero-controls').hide()
			});


			container.wrapper.children('a:first-child,img:first-child,div.image:first-child').attr({current: 'current'})

			container.interval = setInterval(function() {
				container.rotate('next')
			}, container.dur + container.fade)

			container.rotate = function(dir) {
				if(container.wrapper.is(':animated')) { return false; }
				if(typeof dir == 'undefined') {
					var dir = 'next'
				}
				var images = container.wrapper.children('a,img,div.image')
				var current = container.wrapper.children('a[current],img[current],div.image[current]')
				if(dir == 'next') {
					if(current.next('a,img,div.image').size()) {
						var to = current.next('a,img,div.image')
					} else {
						to = false;
					}
				} else {
					if(current.prev('a,img,div.image').size()) {
						var to = current.prev('a,img,div.image')
					} else {
						to = false;
					}
				}

				if(wt.hero.useForeground) {
					if(to.href != 'undefined') {
						container.find('.hero-foreground').bind('click',function() {
							window.location = to.href
						})
					} else {
						container.find('.hero-foreground').unbind('click',function() {
							window.location = to.href
						})
					}
				}
				if(to) {
					if(wt.hero.useCaptions) {
						container.parent().find('.caption-holder').fadeOut(container.fade / 2, function(){
							container.parent().find('.caption-holder').text(to.find('img').size() ? to.find('img').attr('alt') : to.attr('alt'))
							container.parent().find('.caption-holder').fadeIn(container.fade / 2)
						})
					}
					if($('div.blue-canoe').size()) {
						$('#slide_content p').fadeOut(container.fade / 2, function(){
							$('#slide_content p span').text(to.find('img').size() ? to.find('img').attr('alt') : to.attr('alt'))
							$('#slide_content p').fadeIn(container.fade / 2)
						})
					}
					current.removeAttr('current')
					to.attr({current: 'current'})
					if(dir == 'next') {
						var newX = parseInt(container.wrapper.css('left'),10) - to.width() - parseInt(to.css('padding-left'),10) - parseInt(to.css('padding-right'),10)
					} else {
						var newX = parseInt(container.wrapper.css('left'),10) + to.width() + parseInt(to.css('padding-left'),10) + parseInt(to.css('padding-right'),10)
					}
					container.wrapper.animate({
						'left': (newX) + 'px'
					}, container.fade)
				}
			}
		});
		
	}

	// Heroshot options
	
	wt.hero.useForeground = $('div.blue-canoe').size()
	wt.hero.useControls = !$('div.blue-canoe').size()
	wt.hero.useCaptions = $('div.blue-canoe').size()
	
	// wt.hero.useForeground = false
	// wt.hero.useControls = true
	// wt.hero.useCaptions = false

	wt.socialNetworks = function(links) {
		if(typeof links == 'undefined') { return; }
		wt.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'] = wt.socialNetworks.urlEscape(window.location);
		page['title'] = wt.socialNetworks.urlEscape($('.entry h2').html());
		page['description'] = wt.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()
				list.toggle()
			});
		});
	}
	
	wt.marginsFix = function() {
		var headlines = $('div.cpr div div#wrapper #tn-doc #bd #main-content div.page-content h4, div.cpr div div#wrapper #tn-doc #bd #main-content div.page-content li')
		var hero = $('#main-content .heroshots')
		
		headlines.each(function() {
			var headline = $(this)
			if(headline.offset().top < parseInt(hero.offset().top + hero.height(),10)) {
				headline.css({'margin-left': (headline.parent().width() - hero.outerWidth({'margin': true}) - (this.tagName.toLowerCase() == 'h4' ? 10 : -16)) + 'px'})
			}
		});
		
		var headlines = $('div.company-info #tn-doc #bd #main-content div.page-content h3')
		var hero = $('#main-content img.L')
		
		headlines.each(function() {
			var headline = $(this)
			if(headline.offset().top < parseInt(hero.offset().top + hero.height(),10)) {
				headline.css({'margin-left': (hero.outerWidth({'margin': true})) + 'px'})
			}
		});
	}
	
	wt.fixHeight = function() {
		if($('#wrapper').height() < $('html').height()) {
			$('#wrapper').height($('html').height())
		}
	}

})();