var GUI = (function() {
	var currentDomain = document.domain;
	var countDown = '-';
	
	function initGUI() {
		initFB();
		initTW();	
	}
	
	// Save countdown value for FB/TW sharing.
	function saveCountdown( value ) {
		countDown = value;
	}
	
	function getCountDownFormattedString() {
		var retString = "";
		var timeComps = countDown.split(':');
		
		if ( timeComps.length > 1 ) {
			timeComps[2] = timeComps[2].split('.');
			retString = timeComps[0] + ' days, ' + timeComps[1] + ' hours, ' + timeComps[2][0] + ' minutes and ' + timeComps[2][1] + ' seconds.';
		}
		
		return 'THE END BEGINS IN: ' + retString;
	}
	
	//TWITTER
	function initTW() {
		$('.sharetw').click( function() {
			var url = 'http://'+ currentDomain;
			window.open('http://twitter.com/home/?status=' + encodeURIComponent(getCountDownFormattedString() + ' ' + url));
		});
	}
	
	// FACEBOOK
	function initFB() {
		FB.init(getApiKeyByDomain());
		
		$('.sharefb').click( function() {
			prepareShare();
			return false;
		});
	}
	
	function callPublish(msg, attachment, action_link) {
		FB.ensureInit(function () {
			FB.Connect.streamPublish('', attachment, null, null, '', fbRedirect);
		});
	}
	
	function getQuerystring( key, default_ ) {
	  if (default_==null) default_="";
	  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
	  var qs = regex.exec(window.location.href);
	  if(qs == null)
		return default_;
	  else
		return qs[1];
	}
	
	function fbRedirect(id, e) {
		window.open('http://www.facebook.com/');
	}
	
	function prepareShare() {
		url = 'http://'+ currentDomain;
		
		callPublish(
			'',
			{
				'name':'Command & Conquer 4',
				'href': url,
				'description': getCountDownFormattedString(),
				'media':[
					{'type':'image','src':'http://'+ currentDomain +'/images/cc_thumb.jpg','href':url}
				]
			},
			null
		);
	}
	
	function getApiKeyByDomain() {
		var domain = document.domain.replace(/^w{3}./, "");
		switch ( domain ) {
			case "commandandconquer.se":
				return "4709a7dc4b3da9a076280bb201a3349b";
				break;
			case "commandandconquer.dk":
				return "6da14855c5ca4b235bd502ab4f218f4c";
				break;				
			case "commandandconquer.fi":
				return "009a410ce4d63960326757e45cdb654b";
				break;
			case "commandandconquer.no":
				return "4cf13ceccc0dcc94e6a08acec1ed5d2e";
				break;
		}
	}	
	
	return {
		init: initGUI,
		SetCurrentCountdownString: saveCountdown
	}
})();
$(document).ready( function() {
	GUI.init();
});
