var isIE = false;
var scrollwhat = 'html, body';
var scrollpadding = 0;
var address;
var curHash = "";

jQuery(function($){
	if($('.bulb').length){
		$.supersized({
		//Background image
		slides	:  [ { image : 'http://www.go.co/_images/_ub/_bg/bg-night-sky.jpg' } ]					
		});
	}
});


$(function(){
	
	$(document).ready(function(){
		$('#bg-pattern').height($('#content-wrapper').height());
	});
	
	$(window).bind('load', function(){
		if ($.browser.msie)
		{
			isIE = true;
		} else {
			$('.right-corner').remove();
		}
	});
	
	if($('#domain').length){
		$('#domain').focus();
	}
	
	$('.email-signup').click(function(){
		var signup = $(this).find('#signup');
		$.modal(signup, { 
			onShow: function(dialog){
				$('#newsletter').validate({
					submitHandler: function(form){
						if($('#user-email').val() != ''){
							var isvalid = false;
							if($('#list1, #list2, #list3, #list4').is(':checked')){
								$('.list-error').hide();
								isvalid = true;
							} else {
								$('.list-error').show();
								return false;
							}
							if(isvalid == true){
								var list1 = $('#newsletter #list1').val();
								var list2 = $('#newsletter #list2').val();
								var list3 = $('#newsletter #list3').val();
								var list4 = $('#newsletter #list4').val();
								var email = $('#newsletter #user-email').val();
								var domainurl = $('#domainurl').val();
								//console.log(list1+" "+list2+" "+list3+" "+list4);
								$.ajax({
									   url: 'http://www.go.co/_process/newsletter.php',
									   type: 'GET',
									   data:  'email=' + email + '&listOne=' + list1 + '&listTwo=' + list2 + '&listThree=' + list3 + '&listFour=' + list4 + '&domainurl=' + domainurl,
									   success: function(result) {
										   if (result=='TRUE') {
												$('#signup-form').hide();
												$('#signup-success').show();
										   } else {
												//alert('boo');
										   }
									   }
								});
								return false;
							}
						}
					}
				});
				$('#hasDomain').siblings('span.checkbox').click(function(){
					if($('#hasDomain').is(':checked')){
						$('.my-dotco').show();
					} else {
						$('.my-dotco').hide();
					}
				});
			}
		});	
	});
	
	$(window).resize(function(){
		$('#bg-pattern').height($(document).height());
	});
	
	if($('.home').length){
		initrollovers();
		
		function initrollovers() {
		var aPreLoad = new Array();
			var aImages = $(".promo img");
			var sTempsrc;
			for (var i = 0; i < aImages.length; i++) {
				var src = aImages[i].getAttribute('src');
				var ftype = src.substring(src.lastIndexOf('.'), src.length);
				if(src.match(/-over/g)){ var hsrc = src; } else { var hsrc = src.replace(ftype, '-over'+ftype);	}
				aImages[i].setAttribute('hsrc', hsrc);
				aPreLoad[i] = new Image();
				aPreLoad[i].src = hsrc;
				aImages[i].onmouseover = function() {
					if($(this).parent('a').hasClass('current')) return false;
					sTempsrc = this.getAttribute('src');
					this.setAttribute('src', this.getAttribute('hsrc'));
				}
				aImages[i].onmouseout = function() {
					if($(this).parent('a').hasClass('current')) return false;
					if (!sTempsrc) sTempsrc = this.getAttribute('src').replace('-over'+ftype, ftype);
					this.setAttribute('src', sTempsrc);
				}
			}
		}	
	}
	
	if($('.cases').length){
		var cat;
		var isCat;
		$('#filter a').click(function(event){
			event.preventDefault();
			var target = $(this.hash);
			if(target == $.address.value()) return false;
			if(content.length && this.hash) {
				var before = $.address.value();
				$.address.value('/'+$(this).attr('href').replace('#', ''));
			} else {
				$.address.value('/'+$(this).attr('href').replace('#', ''));
			}
			return false;
		});
		
		$('#case-container .category').each(function(){
			var index = $(this).index();
			$(this).data('location', index);
		});
		
		$('.modal').click(function(){
			var t = $(this);
			modal(t);
		});
		
		$.address.change(function(event){
			if(event.pathNames[0] && event.pathNames[0] != isCat) {
				isCat = event.pathNames[0];
				$('#filter a').each(function(){
					if($(this).attr('href') == '#'+event.pathNames[0]){
						var catLink = $(this).attr('href');
						cat = catLink.replace('#','');
						$('.current-filter').removeClass('current-filter');
						$(this).addClass('current-filter');
						$('.category.active').removeClass('active');
						$('.category'+'#'+cat).addClass('active');
						filter(cat);
					}
				});
			}
			if(event.pathNames[1]){
				$('.case-study').each(function(){
					var l = $(this).find('a').attr('href');
					var a = $.address.value().replace('/', '#/');
					if(l == a){
						modal($(this));
					}
					
				})
			}
			if(event.pathNames[0] == (null || 'index')) {
				$('.simplemodal-close').trigger('click');
			}
		});
		
		function modal(t){
			var img = $(t).find('img').attr('src');
			var url = $(t).find('.url').text();
			var title = $(t).find('.title').text();
			var cat = $(t).find('.category').text();
			var desc = $(t).find('.description').text();
			var id = url.replace('.co','');
			var cate = $(t).parent().parent().attr('id');
			var caseLink = id.toLowerCase();
				$.modal('<div class="col '+caseLink+'"><img src="'+img+'" width="410" height="243" class="shadow" /><div class="play"></div></div><div class="case-info col"><p class="url">'+ url +'</p><a href="http://www.'+ url +'" class="visit" target="_blank">Visit Site</a><div class="detail"><p class="title">'+ title +'</p><p class="category">'+ cat +'</p><p class="description">'+ desc +'</p></div></div>', {
					onShow: function(dialog){
						$('.simplemodal-data .case-info').append('<div class="case-tweet"><iframe allowtransparency="true" frameborder="0" scrolling="no" src="//platform.twitter.com/widgets/tweet_button.html?url=http://www.go.co/%23/'+cate+'/'+caseLink+'&count=none&text=Check out what '+title+' is doing with their .CO web address" style="width:130px; height:20px;"></iframe></div>');
						if($(t).find('.bulb-promo').length){
							var src = $(t).attr('rel');
							
							$(t).find('.bulb-promo').clone().appendTo('.simplemodal-data .col:first');
							if($('.simplemodal-data .underthebulb').length){
								$('.simplemodal-data .bulb-promo').wrap('<a href="http://www.go.co/case-studies/underthebulb/" />');
							} else {
								$('.simplemodal-data .bulb-promo').wrap('<a href="http://www.go.co/case-studies/'+src+'" />');
							}
							$(t).find('iframe').clone().appendTo('.simplemodal-data .play');
						}						
					},
					onClose: function(dialog) {
						
						$.address.value(cat);
						$.modal.close();
					}
				});
			$('.visit').click(function(){
				_gaq.push(['_trackEvent', 'Outbound_Link', 'Click', '_CaseStudies']);
			});
		}
		
		var cases = new Array();
		$('#case-container div.category').each(function(i){
			cases[i] = $('div.category').eq(i).clone();
		});
		
		function filter(cat){
			$('#case-container').fadeTo(300, 0, function(){
				$('.inactive').removeClass('inactive');
				if(cat == 'all'){
					$('#case-container').empty();
					for(var i=0; i<cases.length; i++) {
						$('#case-container').append(cases[i]);
					}
					$('.whiteout').remove();
					$('#case-container').fadeTo(300, 1);
					document.title = 'GO.CO | Who is Using .CO | .CO Websites';
					return false;
				}
				$('div.category').each(function(){
					if($(this).attr('id') == cat){
						var curCat = $(this);
						$(this).find('.whiteout').remove();
						$(this).remove();
						$('#case-container').prepend(curCat).fadeTo(300, 1);
					} else {
						if(!$(this).find('.whiteout').length){
							$(this).find('.case-study a').prepend('<span class="whiteout"></span>');
						}
					}
				});
				$('.modal').click(function(){
					var t = $(this);
					modal(t);
				});
				scrollToElement($('#'+cat));
				var curCat = $('.current-filter').text();
				document.title = 'GO.CO | '+curCat+'\'s Using .CO | .CO Websites';
			});
		}
	}
	
	// Main nav
	if($('.bulb').length){
		$('#main-nav').append('<div id="glow"></div>');
		lbpos = $('#light-bulb').position();
		$('#glow').css({'left':(lbpos.left)+78});
	} else {
		$('#main-nav li').hover(function(){
			$(this).addClass('bl-br');
			$(this).find('.more').show();
			if($('.right-corner').length){
				$(this).find('.right-corner').show();
			}
		}, function(){
			$(this).find('.more').hide();
			if($('.right-corner').length){
				$(this).find('.right-corner').hide();
			}
			$(this).removeClass('bl-br');
		});
	}
	// Left Nav
	if($('#left-nav').length && !$.browser.msie){
		var nav = $('#content .col-1');
		var theWindow = $(window);
		var contentTop = nav.position().top;
		var contentHeight = $('#content').height();
		var navHeight = $('#content .col-1').height()+104;
		
		$('html, body').each(function () {
			var initScrollTop = $(this).attr('scrollTop');
			$(this).attr('scrollTop', initScrollTop + 1);
			if ($(this).attr('scrollTop') == initScrollTop + 1) {
				scrollwhat = this.nodeName.toLowerCase();
				$(this).attr('scrollTop', initScrollTop);
				return false;
			}
		});
		
		theWindow.scroll(function() {
			if(window.pageXOffset == 0){
				var y = theWindow.scrollTop();
				if(y > (contentHeight - navHeight) - 60){
					nav.css({'position':'absolute', 'bottom':'20px'});
				}
				if(y < (contentHeight - navHeight)){
					nav.css({'position':'fixed', 'bottom':'auto'});
				}
				if(contentHeight < 650){
					nav.css({'position':'absolute', 'top':'0'});
				}
			} else {
				
			}
		});
	}
	
	// Uniform
	$('#email-signup select').uniform();
	if($('#submit-domain').length){
		$('#submit-domain select').uniform();
		$('#submit-domain').validate();
	}
	
	// External Links
	$('.domains li a.btn-grey').click(function(){
		$(this).attr('target', '_self');		
	});
	$('.domains li a').click(function(){
		if($(this).hasClass('btn-grey')){
			return
		} else {
			$(this).attr('target', '_blank');
		}
	});
	
	
	
	$('#flickr-feed a[href^="http://"], #registrar a[href^="http://"], .community .last a[href^="http://"], a.external[href^="http://"], .community .feeds a[href^="http://"], #aux ul.right a[href^="http://"]').attr("target", "_blank");
	
	
	// Carousels
	if($('#home-slider').length){
		$('#home-slider .carousel').jCarouselLite({
			visible: 1,
			speed:0,
			btnNext: '.next',
			btnPrev: '.previous',
			btnGo:[
				'.controls .control1', '.controls .control2',
				'.controls .control3'
			],
			beforeStart: function(i){
			},
			afterEnd: function(el) {
				$('.controls li a').removeClass('current-promo');
				var index = $('#home-slider .carousel li').index(el);
				$('.controls li').eq(index-1).find('a').addClass('current-promo');
				if(index == 4){
					$('.controls li').eq(0).find('a').addClass('current-promo');
				}
				
			}
		});
	}
	if($('#videos').length){
		controlLength = $('#videos .carousel li').length;
		$('#videos .carousel').jCarouselLite({
			visible: 1,
			speed:0,
			btnGo:[
				'.controls .control1', '.controls .control2',
				'.controls .control3', '.controls .control4'
			],
			beforeStart: function(i){
			},
			afterEnd: function(el) {
				$('.controls li').removeClass('current-promo');
				var index = $('#videos .carousel li').index(el);
				$('.controls li').eq(index-1).addClass('current-promo');
				if(index == controlLength+1){
					$('.controls li').eq(0).addClass('current-promo');
				}
			}
		});
		$('.community .controls li').hover(function(){
			if($.browser.msie){
				if($(this).hasClass('current-promo')){
					return false;
				} else {
					$(this).addClass('current-promo active');
				}
			} else {
				$(this).css({'background-color':'#e8e8e8'});
			}
		}, function(){
			if($.browser.msie){
				if($(this).hasClass('active')){
					$(this).removeClass('current-promo active');
				}
			} else {
				$(this).css({'background-color':''});
			}
		});
	}
	
	// Address functions
	$('#jump-to a').click(function(event) {
		event.preventDefault();
		var target = $(this.hash);
		if(target.length && this.hash) {
			var before = $.address.value();
			$.address.value('/'+target.attr('id'));
			if(before == $.address.value()) scrollToElement(target);
		} else {
			$.address.value('/'+$(this).attr('href'));
		}
		return false;
	});
	
	$('.jump-top').click(function(event) {
		event.preventDefault();
		var target = $(this.hash);
		if(target.length && this.hash) {
			scrollToElement(target);
		}
		return false;				
	});
	if($('#jump-to').length){
		$.address.change(function(event) {
			if(event.pathNames[0]) {
				//$.address.strict(true);
				scrollToElement($("#" + event.pathNames[0]));
			}
		});
	}
	
	function scrollToElement(el) {				
		$(scrollwhat).stop().animate(
			{ scrollTop: el.offset().top - scrollpadding }, 600);	
	}
	
	// Articles
	
	if($('.post').length){
		var headheight = $('h1').height();
		if(headheight == 76){
			$('.col-1 .share').css({'margin-top': '165px'});
		}
		if(headheight == 114){
			$('.col-1 .share').css({'margin-top': '203px'});
		}
	}
	
	// Register & Signups	
	if($('#newsletter').length){
		if($('#footer #newsletter').length){
		} else if ($('#signup-page').length){
			$('#email-signup').submit(function(){
				if($('#user-email').val() == 'Enter your email'){
					if($('#email-signup .error').length){
						return false;
					} else {
						$('#email-signup').append('<span class="error">Please enter a valid email address.</span>');
						return false;
					}
				} else {
					$('#email-signup .error').remove();
					
					var list = $('#email-signup #l').val();
					var email = $('#email-signup #user-email').val();
					$.ajax({
						   url: 'http://www.go.co/_process/newsletter.php',
						   type: 'GET',
						   data: 'list=' + list + '&email=' + email,
						   success: function(result) {
							   if (result=='TRUE') {
									$('.signup').hide();
									$('.success').show();
							   } else {
									$('#email-signup').append('<span class="error">Please enter a valid email address.</span>');
							   }
						   }
					});
					return false;
				}
			});
		}
		
		$('#footer .reload').click(function(){
			$('#footer .result').hide();
			$('#email-signup').show();
			$('#footer .col-1 h4').text('Sign up for email updates');
			return false;
		});
	}
	if($('#contact-form').length){
		$("#contact-form").validate();
	}
	
	$('#whats-this').mouseover(function(){
    	$('#whats-this-hover').show();
		}).mouseout(function(){
      		setTimeout(function(){
      	if(!hovered) {
       		$('#whats-this-hover').hide(0);
      	}}, 250);
   	});

	$("#whats-this-hover").mouseover(function(){
		 hovered = true;
	}).mouseout(function(){
		 hovered = false;
 		$('#whats-this').trigger("mouseout");
	});
	
	var ecardLink = "";
	
	// Bulbies
	if($('#ecard .ub-car').length){
		var controlLength = $('#ecard .ub-car li').length;
		var controlList = new Array();
		for(i=0;i<=(controlLength-1);i++){
			if(i == 0){
				$('#ecard .ub-car-controls ul').append('<li class="current-promo"><a href="javascript:;" class="control-'+i+'"></a></li>');
			} else {
				$('#ecard .ub-car-controls ul').append('<li><a href="javascript:;" class="control-'+i+'"></a></li>');
			}
		}
		$('#ecard .carousel li').eq(0).addClass('active');
		ecardLink = $('#ecard .carousel li').eq(0).find('.link').attr('href');
		$('#ecard .ub-car-controls').css({'margin-left':-($('#ecard .ub-car-controls').width()/2)});
		$('#ecard .ub-car .carousel').jCarouselLite({
			visible: 1,
			speed:0,
			btnNext:'#ecard .ub-car-next',
			btnPrev:'#ecard .ub-car-prev',
			btnGo:[
				'#ecard .control-0', '#ecard .control-1', '#ecard .control-2',
				'#ecard .control-3', '#ecard .control-4', '#ecard .control-5', '#ecard .control-6', '#ecard .control-7', '#ecard .control-8', '#ecard .control-9', '#ecard .control-10', '#ecard .control-11', '#ecard .control-12', '#ecard .control-13', '#ecard .control-14', '#ecard .control-15'
			],
			beforeStart: function(i){
			},
			afterEnd: function(el) {
				$('#ecard .carousel li').removeClass('active');
				$('#ecard .ub-car-controls li').removeClass('current-promo');
				var index = $('#ecard .carousel li').index(el);
				$('#ecard .carousel li').eq(index).addClass('active');
				$('#ecard .ub-car-controls li').eq(index-1).addClass('current-promo');
				if(index == controlLength+1){
					$('#ecard .ub-car-controls li').eq(0).addClass('current-promo');
				}
				ecardLink = $('#ecard .carousel li').eq(index).find('.link').attr('href');
			}
		});
	}
	if($('#ecard-form').length){
		$('#ecard-form').validate();
	}
	
	if($('#gallery').length){
		// fix left column height
		$('.section .col-1').height() > $('.section .col-2').height() ? $('.section .col-2').height($('.section .col-1').outerHeight(true)) : $('.section .col-1').height($('.section .col-2').outerHeight(true));
		
		var controlLength = $('#gallery .ub-car li').length;
		var controlList = new Array();
		for(i=0;i<=(controlLength-1);i++){
			if(i == 0){
				$('#gallery .ub-car-controls ul').append('<li class="current-promo"><a href="javascript:;" class="control-'+i+'"></a></li>');
			} else {
				$('#gallery .ub-car-controls ul').append('<li><a href="javascript:;" class="control-'+i+'"></a></li>');
			}
		}
		$('#gallery .ub-car-controls').css({'margin-left':-($('#gallery .ub-car-controls').width()/2)});
		$('#gallery .ub-car .carousel').jCarouselLite({
			visible: 1,
			speed:0,
			btnNext:'#gallery .ub-car-next',
			btnPrev:'#gallery .ub-car-prev',
			btnGo:[
				'#gallery .control-0', '#gallery .control-1', '#gallery .control-2',
				'#gallery .control-3', '#gallery .control-4', '#gallery .control-5', '#gallery .control-6', '#gallery .control-7', '#gallery .control-8', '#gallery .control-9', '#gallery .control-10', '#gallery .control-11', '#gallery .control-12', '#gallery .control-13', '#gallery .control-14', '#gallery .control-15'
			],
			beforeStart: function(i){
			},
			afterEnd: function(el) {
				$('#gallery .ub-car-controls li').removeClass('current-promo');
				var index = $('#gallery .carousel li').index(el);
				$('#gallery .ub-car-controls li').eq(index-1).addClass('current-promo');
				if(index == controlLength+1){
					$('#gallery .ub-car-controls li').eq(0).addClass('current-promo');
				}
			}
		});
	}
	$('.btn-send-this-ecard').click(function(){
		$(this).attr('href',ecardLink);
	});
	
	
	// Bulbys
	if($('#carousel-container .carousel').length){
		$('.intro .ext-controls li').each(function(i){
			$(this).addClass('control-'+i);
		});
		$('.control-container .ext-controls li').each(function(i){
			$(this).addClass('control-'+i);
		});
		$('.control-0').addClass('active');
		updateCat();
		var controlLength = $('#carousel-container .carousel li').length;
		$('#carousel-container .carousel li').eq(0).addClass('active');
		$('#carousel-container .carousel').jCarouselLite({
			visible: 1,
			speed:300,
			btnNext:'.next',
			btnPrev:'.previous',
			btnGo:[
				'.control-0', '.control-1', '.control-2',
				'.control-3', '.control-4', '.control-5', '.control-6', '.control-7', '.control-8', '.control-9'
			],
			beforeStart: function(i){
			},
			afterEnd: function(el) {
				$('#carousel-container .carousel li').removeClass('active');
				$('#carousel-container .ext-controls li').removeClass('active');
				var index = $('#carousel-container .carousel li').index(el);
				$('#carousel-container .ext-controls li').eq(index-1).addClass('active');
				$('#carousel-container .carousel li').eq(index).addClass('active');
				if(index == controlLength+1){
					$('#carousel-container .ext-controls li').eq(0).addClass('active');
				}
				updateCat();
			}
		});
	}
	if(!$('.vote').length && $('.result').length){
		$('.result').css({'right':0});
	}
	
	/*if( location.hash != "" && location.hash != null )
	{
		//
		curHash = location.hash;
		//navigate to that item with animation
		doMoveToCat( curHash );
		
	}*/
	
	$('.like_button_like').click(function(){
		_gaq.push(['_trackEvent', 'Sharebutton', 'Click', '_Like']);
	});
});

function doMoveToCat(hash){
	switch(hash){
		case "#best-creative-agency":
			trigger = '.control-0';
			break;
		case "#best-company":
			trigger = '.control-1';
			break;
		case "#best-platform":
			trigger = '.control-2';
			break;
		case "#best-content":
			trigger = '.control-3';
			break;
		case "#best-social":
			trigger = '.control-4';
			break;
		case "#coolest-creative":
			trigger = '.control-5';
			break;
		case "#best-startup":
			trigger = '.control-6';
			break;
		case "#best-personal":
			trigger = '.control-7';
			break;
		case "#best-single-letter":
			trigger = '.control-8';
			break;
		case "#best-idea":
			trigger = '.control-9';
			break;
	}
	$(trigger).trigger('click');
}

// Flickr
function jsonFlickrApi(rsp) {
	 if (rsp.stat != "ok"){
	  // If this executes, something broke!
	  return;
	 }
	 
	 //variable "s" is going to contain 
	 //all the markup that is generated by the loop below
	 var s = "";
	 
	 //this loop runs through every item and creates HTML 
	 for (var i=0; i < 15; i++) {
	  photo = rsp.photos.photo[ i ];
	  
	  //notice that "t.jpg" is where you change the
	  //size of the image
	  t_url = "http://farm" + photo.farm + 
	  ".static.flickr.com/" + photo.server + "/" + 
	  photo.id + "_" + photo.secret + "_" + "s.jpg";
		
	  p_url = "http://www.flickr.com/photos/" + 
	  photo.owner + "/" + photo.id;
	  
	  s +=  '<li><a href="' + p_url + '">' + '<img alt="'+ 
	  photo.title + '"src="' + t_url + '"/>' + '</a></li>';
	 }
	
	 document.writeln(s); 
	 //this tells the JavaScript to write 
	 //everything in variable "s" onto the page
}


function updateCat(){
	var text = $('.control-container li.active a').attr('title');
	$('.cat-name p span').text(text);
}
