/**
 * PaperJamz.com/
 */
$(document).ready(function() {
	lang = $("body").attr("lang");
	
	// External Link
	$("a[href^=http]:not(.internal)").externalLinks({
		kidfriendlyDomains: ["wowwee.com", "paperjamzpro.com", "caru.org"]
	});
	
	// language toggle dropdown
	$("#b_changelanguage").dropdown();
	
	// shadowbox
	Shadowbox.init();
	
	// showcase slider
	$(".slider").slides({
		pagination: true,
		effect: 'fade',
		crossfade: true,
		play: 5000,
		hoverPause: true
	});
	
	// Tweets
	$("#tweet").tweet({
		count: 2,
		query: "from:paperjamz",
		loading_text: "searching twitter...",
		completed: "tweetsLink"
	});
	
	// Validate form
	$("#frm_subscribe").validate({
		rules: {
			email: { 
				required: true,
				email   : true
			},
			year: 'required',
			month: 'required',
			day: 'required'
		},
		submitHandler: function(form) {
			birthday = new Date($('#year').val(), $('#month').val() -1, $('#day').val());
			current  = new Date();
			birthday.setYear(birthday.getFullYear() + 13);
			
			email     = escape($("#email").val());
			error_msg = '<div class="tt" id="tt_under13" onclick="$(this).fadeOut();">\
							<div class="tt_wrap">\
								<div class="tt_content">\
									<a href="#" onclick="javascript:return false;" class="b_close">X</a>\
									<p>'+SIGNUP_AGE_ERROR+'</p>\
								</div>\
							</div>\
						</div>';
						
			/* Check if Under13 cookie exist for that email
			-------------------------------------------------------------------------------*/
			if(readCookie(email)==1){
				$(error_msg).appendTo("#dateofbirth_year").fadeIn();
				return false;
			}else{
				if (birthday > current){
					/*Under 13*/
					if($("#msg_under13").is("div")){
						$("#msg_under13").fadeIn();
					}else{
						$(error_msg).appendTo("#dateofbirth_year").fadeIn();
						createCookie(email,1,1);
					}
				}else{
					/*Disable submit button*/
					$("#signup").attr("disabled", "disabled").css("opacity", "0.5");
				
					/*Post to Mailchimp*/
					$.ajax({
						url: "http://www.wowwee.com/mc/subscribe",
						data: "email=" + $("#email").val() + "&year=" + $("#year").val() + "&month=" + $("#month").val() + "&day=" + $("#day").val(),
						type: "POST",
						success: function(){
							_gaq.push(['_trackPageview', '/'+lang+'/virtual/subscribe']);
					
							$(".get-updates").fadeOut(100, '', function(){
								$("#signup").removeAttr("disabled").css("opacity", "1");
							
								if($(".success_msg").is("div")){
									$(".success_msg").fadeIn(200);
								}else{
									$("#frm_subscribe").append('\
										<fieldset class="success_msg">\
											<legend>'+SIGNUP_THANKS+'</legend>\
											<p>'+SIGNUP_CONFIRMED+'</p>\
											<p class="subscribe_again"><a href="javascript:toggleSubscribe();">'+SIGNUP_ANOTHER_EMAIL+'</a></p>\
										</fieldset>\
									');
								}
							});
						},
						error: function(){
							alert(SIGNUP_GENERIC_ERROR);
						}
					});
				}
			}
		}
	});
	
	// Games GA
	$("a", "#list_games li").bind("click", function(){
		_gaq.push(['_trackPageview', '/'+lang+'/virtual/games/' + $(this).attr("class")]);
	});
	
});



/* Toggle Subscribe
-------------------------------------------------------------------------------*/
function toggleSubscribe(){
	$(".success_msg").fadeOut(200, '', function(){
		$(".get-updates").fadeIn(200);
	}).hide();
}

/* Language Dropdown
*  @author JF Fortier
-------------------------------------------------------------------------------*/
$.fn.dropdown = function(options) {
	return this.each(function() {
		var $btn = $(this);
		
		$btn.bind("click", function(e){ /* Open/Close the dropdown */
			$btn.toggleClass("selected");
			$btn.siblings(".dd_options:first").toggle();
			e.stopPropagation();
			return false;
		});
		$(document).bind("click", function(){ /* Close the dropdown when clicking outside */
			$btn.removeClass("selected");
			$btn.siblings(".dd_options:first").hide();
		});
		$btn.siblings(".dd_options:first").bind("click", function(e){ /* Stop propagation of click in dropdown */
			e.stopPropagation();
		});
	});  
};

	
/* Cookies
-------------------------------------------------------------------------------*/
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}


/* External Links
-------------------------------------------------------------------------------*/
$.fn.externalLinks = function(options) {
    var defaults = {
		allowedDomains: [location.hostname],
		kidfriendlyDomains: null,
	}
    var o = $.extend(defaults, options);

	return this.each(function() {
		
		$(this).filter(function(el){
			for ( var i=0; i < o.allowedDomains.length; i++ ) {
				if ( this.href.indexOf(o.allowedDomains[i])>-1 ) return false;
			}
			for ( var i=0; i < o.kidfriendlyDomains.length; i++ ) {
				if ( this.href.indexOf(o.kidfriendlyDomains[i])>-1 ){ $(this).addClass("kidfriendly"); }
			}
			return true;
		})
		.bind("click", function(){
			built_url = '/'+lang+'/external/' + $(this).attr("href");

			if(!$(this).hasClass("kidfriendly")){
			    Shadowbox.open({
					content:'<div class="popin">\
								<div class="popin_bottom">\
									<div class="popin_content">\
										<p>'+DISCLAIMER_POPIN+'</p>\
										<a href="'+this.href+'" onclick="openExternal(built_url, this);	Shadowbox.close(); return false;" class="b">'+DISCLAIMER_POPIN_ACTION+'</a> <div class="popin_actions">'+DISCLAIMER_POPIN_OR+' <a href="#" onclick="Shadowbox.close();return false;">'+DISCLAIMER_POPIN_CANCEL+'</a></div>\
									</div>\
								</div>\
							</div>',
					player: "html",
					height: 170
			    });
			}else{
				openExternal(built_url, this);
			}
			return false;
		});
		
	});
};


/* External Links on Tweets
-------------------------------------------------------------------------------*/
function tweetsLink(){
	$("a[href^=http]:not(.internal)", "#tweet").externalLinks({
		kidfriendlyDomains: ["wowwee.com", "paperjamzpro.com", "caru.org"]
	});
}

/* Open external URL
-------------------------------------------------------------------------------*/
function openExternal(url, obj){
	_gaq.push(['_trackPageview', url]);
	return !window.open(obj.href);
}
