var _service;

$(document).ready(function () {
	if($("body").attr('id') != "ff-register") {
		initTwitter();
		initFollowFridays();
		initPodcastScroller();
	} else {
		initFollowFridaysRegister();
		_service = new MyService();
	}

	initCommentForm();
	
	$(".amzn_wdgt_pad #wdgt_hd").hide(); $(".amzn_wdgt_pad #wdgt_ft").hide;
	$(".amzn_wdgt_pad .wdgt_hd").hide();
});

function initTwitter() {
	var tweets_url = "http://twitter.com/statuses/user_timeline/adnerdsWW.json?callback=twitterCallback&count=1";
	
	$.getScript(tweets_url, function() {
		
	});	
}

function twitterCallback(twitters) {
	for (var i = 0; i < twitters.length; i++) {
		var username = twitters[i].user.screen_name;
		var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
			return '<a href="' + url + '">' + url + '</a>';
		}).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
			return reply.charAt(0) + '<a href="http://twitter.com/' + reply.substring(1) + '">' + reply.substring(1) + '</a>';
		});
    
    	$("#twitter-message").html(status);
    	$("#twitter-message-date").html(relative_time(twitters[i].created_at));
	}
}

function initPodcastScroller() {
	// initialize scrollable 
    $("div.scrollable").scrollable({ 
    size: 3
	});
}

function getDeliciousBookmarks(tag) {
	var url = "";
	url += "http://pipes.yahoo.com/pipes/pipe.run?_id=359cc6f46b9decff4bd2b017ad5784b4&_render=json";
	
	if(typeof tag != "undefined")
		url += "&tag=" + tag;
	
	url += "&_callback=?";
	
	$.getJSON(url, 
		function(data){
			//console.info(data);
			var bookmarkfeed = "<ul>\n";
			for (var i = 0; i < data.count ; i++){
				var bookmark = "";
				bookmark += "<li><a href=\"" + data.value.items[i].link + "\">" + data.value.items[i].title + "</a></li>"; // add tags
				bookmarkfeed += bookmark;
			};
			$('#delicious-box').append(bookmarkfeed + "</ul>");
		});
}

function getDeliciousBookmarksForSearch(tag) {
	var url = "";
	url += "http://pipes.yahoo.com/pipes/pipe.run?_id=359cc6f46b9decff4bd2b017ad5784b4&_render=json";
	
	if(typeof tag != "undefined")
		url += "&tag=" + tag;
	
	url += "&_callback=?";
	
	$.getJSON(url, 
		function(data){
			var bookmarkfeed = "<br /><h3>Lifestream Entries Found</h3><ul>\n";
			for (var i = 0; i < 10 ; i++){
				var bookmark = "";
				bookmark += "<li><a href=\"" + data.value.items[i].link + "\">" + data.value.items[i].title + "</a></li>"; // add tags
				bookmarkfeed += bookmark;
			};
			$('#delicious-search-box').append(bookmarkfeed + "</ul>");
		});
}

function initFollowFridays() {
	var earliestID = 0;
	var earliestDate = new Date();
	earliestDate.setDate(earliestDate.getDate() + 1000);

	for(var counter = 1; counter < 5; counter++) {
	 	var id = "dt#ffevent";
		var idDesc = "div#ffevent";
		
		id += counter;
		idDesc += counter + "desc";
		
		$(id).click(function(event){
			event.preventDefault();
				
			trace("click");

			for(var counter = 1; counter < 5; counter++) 
			{		
				if($("dt#ffevent" + counter).find("a.button").hasClass("downarrow"))
				{
					$("dt#ffevent" + counter).find("a.button").removeClass("downarrow");
				}
			}

			$(this).find("a.button").addClass("downarrow");
			
			$(this).parent().find("div").hide();
			$(this).next().find("div").slideToggle();
		});
		
		var dateString = $(id + " .date-for-ff-session").text();
		var sessionDate = new Date(dateString);
		var today = new Date();
		
		if(sessionDate < today) {
			$(id).addClass("session-over");
			$(idDesc).addClass("session-over");
		}
		
		if(sessionDate < earliestDate && sessionDate > today){
			earliestID = counter;
			earliestDate = sessionDate;
		}
		
		$(idDesc).hide();
	}
	
	$("div#ffevent" + earliestID + "desc").show();
	$("dt#ffevent" + earliestID).find("a.button").addClass("downarrow");

	initFollowFridayLinksFromEmail();
	initFollowFridaysSidebar();
}

function initFollowFridayLinksFromEmail()
{
	// get param and open correct event
	var id = 0;
	if($(document).getUrlParam("event") == "event1")
	{
		id = 1;
	} 
	else if($(document).getUrlParam("event") == "event2")
	{
		id = 2;
	} 
	else if($(document).getUrlParam("event") == "event3")
	{
		id = 3;
	}
	else if($(document).getUrlParam("event") == "event4")
	{
		id = 4;
	}
	
	if(id != 0)
	{
		// close all
		for(var counter = 1; counter < 5; counter++) 
		{		
			$("div#ffevent" + counter + "desc").hide();
			if($("dt#ffevent" + counter).find("a.button").hasClass("downarrow"))
			{
				$("dt#ffevent" + counter).find("a.button").removeClass("downarrow");
			}
		}
		
		$("div#ffevent" + id + "desc").show();
		$("dt#ffevent" + id).find("a.button").addClass("downarrow");
	}
	
	if($(document).getUrlParam("fromMail") == "true")
	{
		var link = $("#register_button").attr("href");
		$("#register_button").trigger("click");
		tb_show("Register", link);
	}
}

function initFollowFridaysSidebar(){
	var ffTags = new Array();
	ffTags.push({tag: "social media", 				session:"1"});
	ffTags.push({tag: "social media", 				session:"2"});
	ffTags.push({tag: "social media", 				session:"3"});
	ffTags.push({tag: "social media", 				session:"4"});			
	ffTags.push({tag: "Facebook", 					session:"1"});
	ffTags.push({tag: "Facebook", 					session:"3"});	
	ffTags.push({tag: "Twitter", 					session:"1"});
	ffTags.push({tag: "Twitter", 					session:"3"});	
	ffTags.push({tag: "portable web", 				session:"1"});
	ffTags.push({tag: "aggregator", 				session:"1"});
	ffTags.push({tag: "syndication", 				session:"1"});
	ffTags.push({tag: "integration", 				session:"2"});
	ffTags.push({tag: "replacement", 				session:"1"});
	ffTags.push({tag: "social tools", 				session:"1"});
	ffTags.push({tag: "mobile", 					session:"2"});
	ffTags.push({tag: "behaviour change", 			session:"2"});
	ffTags.push({tag: "digital", 					session:"2"});
	ffTags.push({tag: "everyday life", 				session:"2"});
	ffTags.push({tag: "viral", 						session:"3"});
	ffTags.push({tag: "value market", 				session:"3"});
	ffTags.push({tag: "social object", 				session:"3"});
	ffTags.push({tag: "currency", 					session:"3"});
	ffTags.push({tag: "social", 					session:"3"});
	ffTags.push({tag: "ar ", 						session:"4"});
	ffTags.push({tag: "mir", 						session:"4"});
	ffTags.push({tag: "mt ", 						session:"4"});
	ffTags.push({tag: "mobile tagging", 			session:"4"});
	ffTags.push({tag: "future", 					session:"4"});
	ffTags.push({tag: "semantic web", 				session:"4"});
	ffTags.push({tag: "augmented reality", 			session:"4"});
	ffTags.push({tag: "mobile image recognition",	session:"4"});
	ffTags.push({tag: "pervasive web", 				session:"4"});
	
	$(".cloud .ffTag").click(function(){
		for(var counter = 1; counter < 5; counter++) 
		{		
			if($("dt#ffevent" + ffTags[counter].session).hasClass("ff-session-tag-match")){
	 			$("dt#ffevent" + counter).removeClass("ff-session-tag-match");
	 		}
	
	 		$("dt#ffevent" + ffTags[counter].session).addClass("ff-session-tag-no-match");
			$("div#ffevent" + ffTags[counter].session + "desc").slideUp();	
	 	}
		
		for(var i=0; i < ffTags.length; i++)
		{
			if(ffTags[i].tag == $(this).text())
			{
	 			$("dt#ffevent" + ffTags[i].session).removeClass("ff-session-tag-no-match");
	 			
				$("dt#ffevent" + ffTags[i].session).addClass("ff-session-tag-match");
				$("div#ffevent" + ffTags[i].session + "desc").slideDown();
				
				var text = $(this).text();
		 		$("div#ffevent" + ffTags[i].session + "desc .tags a").each(function(){

		 			if($(this).text() == text){
		 				$(this).addClass("activetag");
		 			} else {
		 				if($(this).hasClass("activetag"))
							$(this).removeClass("activetag");
		 			}
		 		});				
			}
		}
				
		$(".cloud .ffTag").each(function ()
		{
			if($(this).hasClass("activetag"))
				$(this).removeClass("activetag");
		});
			
		$(this).addClass("activetag");
		
		return false;
	});
	
	$("#content-content #follow-fridays .tags a").click(function(){
		$("#content-content #follow-fridays .tags a").each(function ()
		{
			if($(this).hasClass("activetag"))
				$(this).removeClass("activetag");
		});
		
		for(var counter = 1; counter < 5; counter++) 
		{	
			if($("dt#ffevent" + ffTags[counter].session).hasClass("ff-session-tag-match"))
			{
	 			$("dt#ffevent" + counter).removeClass("ff-session-tag-match");
	 		}
	
	 		$("dt#ffevent" + ffTags[counter].session).addClass("ff-session-tag-no-match");
			$("div#ffevent" + ffTags[counter].session + "desc").slideUp();	
	 	}
		
		for(var i=0; i < ffTags.length; i++)
		{
			if(ffTags[i].tag == $(this).text())
			{
	 			$("dt#ffevent" + ffTags[i].session).removeClass("ff-session-tag-no-match");
	 			
				$("dt#ffevent" + ffTags[i].session).addClass("ff-session-tag-match");
				$("div#ffevent" + ffTags[i].session + "desc").slideDown();
				
				var text = $(this).text();
		 		$(".cloud .ffTag").each(function(){
		 			if($(this).text() == text){
		 				$(this).addClass("activetag");
		 			} else {
		 				if($(this).hasClass("activetag"))
							$(this).removeClass("activetag");
		 			}
		 		});
		 		$("#content-content #follow-fridays .tags a").each(function ()
				{
					if($(this).text() == text){
		 				$(this).addClass("activetag");
		 			} else {
		 				if($(this).hasClass("activetag"))
							$(this).removeClass("activetag");
		 			}
				});
			}
		}
		
			
		$(this).addClass("activetag");
		
		return false;

	});	
}

function onFormValidation(data){
	trace(data);
	$("#thanks").show();
	$("#form").hide();
}

function initFollowFridaysRegister(){
	$("#thanks").hide();
	
	$("form #isOPTIN").click(function(){
		if($("form #isOPTIN").is(':$checked'))
		{
			$("form #session_1").attr('checked', false);			
			$("form #session_2").attr('checked', false);			
			$("form #session_3").attr('checked', false);
			$("form #session_4").attr('checked', false);
		}	
	});
	
	$("form #session_1").click(function(){ if($(this).is(':checked')) { $("form #isOPTIN").attr('checked', false); }});
	$("form #session_2").click(function(){ if($(this).is(':checked')) { $("form #isOPTIN").attr('checked', false); }});		   
	$("form #session_3").click(function(){ if($(this).is(':checked')) { $("form #isOPTIN").attr('checked', false); }});
	$("form #session_4").click(function(){ if($(this).is(':checked')) { $("form #isOPTIN").attr('checked', false); }});
	
	$("#submit").click(function(){
		   var isvalid = true;
		   var errorMsg = "";
		   
		   if(!(($("form #session_1").is(':checked')) || ($("form #session_2").is(':checked')) || ($("form #session_3").is(':checked')) || ($("form #session_4").is(':checked')) || ($("form #isOPTIN").is(':checked'))))
			{
				 isvalid = false;
				 errorMsg += "<p>You must choose at least one session to follow</p>";
			}
			

		   if($("#email").val().match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)){
				   $("#email").removeClass("error");
		   } else {
				   isvalid = false;
				   $("#email").effect("highlight", {color: "#ED1C24"}, 3000);
				   $("#email").addClass("error");
				   errorMsg += "<p>The email is wrong</p>";
		   }
		   
		   if($("#first_name").val()!=""){
				   $("#first_name").removeClass("error");
		   } else {
				   isvalid = false;
				   $("#first_name").effect("highlight", {color: "#ED1C24"}, 3000);
				   $("#first_name").addClass("error");
					errorMsg += "<p>Enter your first name</p>";
		   }
		   
		   if($("#last_name").val()!=""){
				   $("#last_name").removeClass("error");
		   } else {
				   isvalid = false;
				   $("#last_name").effect("highlight", {color: "#ED1C24"}, 3000);
				   $("#last_name").addClass("error");
				   errorMsg += "<p>Enter your last name</p>";
		   }
		   
		   if($("#company").val()!=""){
				   $("#company").removeClass("error");
		   } else {
				   isvalid = false;
				   $("#company").effect("highlight", {color: "#ED1C24"}, 3000);
				   $("#company").addClass("error");
				   errorMsg += "<p>Enter your company</p>";
		   }
		   
			if(isvalid) {				
				var session1 = ($("form #session_1").is(':checked') ? "1" : "0");
				var session2 = ($("form #session_2").is(':checked') ? "1" : "0");
				var session3 = ($("form #session_3").is(':checked') ? "1" : "0");
				var session4 = ($("form #session_4").is(':checked') ? "1" : "0");
				var isOPTIN = ($("form #isOPTIN").is(':checked') ? "1" : "0");
				
				var first_name = $("form #first_name").val();
				var last_name = $("form #last_name").val();
				var email = $("form #email").val();
				var company = $("form #company").val();
				var jobposition = $("form #jobposition").val();
				
				var lang = ($("form #lang_fr").is(':checked') ? "fr" : lang);
				
				lang = ($("form #lang_nl").is(':checked') ? "nl" : lang);
				lang = ($("form #lang_en").is(':checked') ? "en" : lang);
				
				var thumbnail = $("form #thumb").val();
				var fbUID = $("form #fbUID").val();
				
				var result = _service.saveRegistration(session1, session2, session3, session4, first_name, last_name, email, company, jobposition, lang, thumbnail, fbUID, isOPTIN);
				trace(result.returner);
				if(result.returner == "OK")
				{
					$("#thanks").show();
					$("#form").hide();
				}
				else
				{
					errorMsg += "Something went wrong during the post :( please try again or refresh the page";
					$("form #errors").html(errorMsg).wrap("<div></div>");
				}			
							 	
										 	
			} else {
				$("form #errors").html(errorMsg).wrap("<div></div>");
			}
			
			return false;
	});
}

function initCommentForm(){
var active_color = '#000'; // Colour of user provided text
var inactive_color = '#999'; // Colour of default text

	$("input.default-value").css("color", inactive_color);
	var default_values = new Array();
	$("input.default-value").focus(function() {
    	if (!default_values[this.id]) {
      	default_values[this.id] = this.value;
    	}
		if (this.value == default_values[this.id]) {
		  this.value = '';
		  this.style.color = active_color;
		}
		$(this).blur(function() {
		  if (this.value == '') {
			this.style.color = inactive_color;
			this.value = default_values[this.id];
		  }
		});
	  });
}

function initFlickrPics(){
	$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?id=27293544@N04&lang=en-us&format=json&nojasoncallback=1&jsoncallback=?", function(data) {
			$.each(data.items, function(i, item){
				var imagelink = item.media.m.replace("_m", "");
				if(i < 14) {
					$("<img/>").attr("src", item.media.m.split("_m.jpg").join("_s.jpg")).attr("class", "edges imask0").appendTo("#flickr ul").wrap("<li></li>").wrap("<span></span>").wrap('<a class="lightbox" href="' + imagelink + '"></a>');
				}
				
			});
			
			$('a.lightbox').lightBox(); // Select all links in object with gallery ID
		});
}

//**********************************************************************************************//

function relative_time(time_value) {
	var values = time_value.split(" ");
	
	time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
	
	var parsed_date = Date.parse(time_value);
	var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
	var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
	
	delta = delta + (relative_to.getTimezoneOffset() * 60);
	
	if (delta < 60) {
	return 'less than a minute ago';
	} else if(delta < 120) {
	return 'about a minute ago';
	} else if(delta < (60*60)) {
	return (parseInt(delta / 60)).toString() + ' minutes ago';
	} else if(delta < (120*60)) {
	return 'about an hour ago';
	} else if(delta < (24*60*60)) {
	return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
	} else if(delta < (48*60*60)) {
	return '1 day ago';
	} else {
	return (parseInt(delta / 86400)).toString() + ' days ago';
	}
}