/********************************************/
/*	core.js
/*	author: davide reppucci
/*	author uri: http://www.gdlabs.it
/*
/*  latest update: 31/07/2011
/*******************************************/
var core = {
	elementMargin: 5,
	bootstrap : function() {
		core.links();
		core.backLink();
		core.twitterFeed();
		core.changeImage();
		core.skype(function() {
			$('.phone a').click(function() { return false; });
			$('#no-phone').html('It seems you have not Skype. Copy the phone number to clipboard by selecting the phone button text and typing CTRL + V').fadeIn(400, "easeInOutCirc");
			$('#no-phone').stopTime();
			$('#no-phone').oneTime(5000, function() { $('#no-phone').fadeOut(400, "easeInOutCirc"); });
	    });
	},
	links : function() {	
		$('a').bind('mousedown touchstart MozTouchDown', function() {
			$(this).addClass('active');
		});
		$('a').bind('mouseup touchend MozTouchRelease', function() {
			$(this).removeClass('active');
		});
	},
	backLink : function() {
		$('.go-back a').bind('click mouseup touchend MozTouchRelease', function(event) {
			event.preventDefault();
			var $self = $(this);
			$('header').fadeOut(400, "easeInOutCirc");
			$('#ovl').fadeIn(400, "easeInOutCirc");
			$('#wrapper').fadeOut(400, "easeInOutCirc", function() {
				window.location.href = $self.attr('href');
			});
		});
		$('.social a').bind('click mouseup touchend MozTouchRelease', function(event) {
			var $self = $(this);
			window.open ($self.attr('href'),"external", "");
			return false;
		});
	},
	twitterFeed : function() {
		var tweetArray = [];
		var tweetIndex = 0;
		var JSONUrl = 'http://twitter.com/status/user_timeline/gdlabs.json?count=30&callback=?';
		var URLRe = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
		$.getJSON(JSONUrl, function(json) {
			$.each(json, function(item, value) {
				var string = value.text;
				marked = string.replace(/(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/, '<a href="$1://$3" title="$1://$3" target="_blank">$1://$3</a>');
				marked = marked.replace(/(^|\s)@(\w+)/g, '$1<a href="http://www.twitter.com/$2" title="@$2" target="_blank">@$2</a>');
				marked = marked.replace(/(^|\s)#(\w+)/g, '$1<a href="http://twitter.com/#!/search?q=%23$2" title="#$2" target="_blank">#$2</a>');
				tweetArray.push(marked);
			});
			$('<p class="tweet"/>').html('<a href="http://twitter.com/gdlabs" title="gdlabs" target="_blank" class="user">@gdlabs:</a> '+tweetArray[tweetIndex]).appendTo('#header-wrap');
			$('#header-wrap .tweet').css('display', 'none').fadeIn(400, "easeInOutCirc");
			tweetIndex++;
			$('#header-wrap').everyTime(10000, function() {
				if( tweetIndex == 0 ) {
					$('<p class="tweet"/>').html('<a href="http://twitter.com/gdlabs" title="gdlabs" target="_blank" class="user">@gdlabs:</a> '+tweetArray[tweetIndex]).appendTo('#header-wrap').css('display', 'none');
					$('#header-wrap .tweet').fadeIn(400, "easeInOutCirc");
				} else {
					$('#header-wrap .tweet').fadeOut(400, "easeInOutCirc", function() {
						$(this).remove();
						$('<p class="tweet"/>').html('<a href="http://twitter.com/gdlabs" title="gdlabs" target="_blank" class="user">@gdlabs:</a> '+tweetArray[tweetIndex]).appendTo('#header-wrap').css('display', 'none');
						$('#header-wrap .tweet').fadeIn(400, "easeInOutCirc");
					});
				}
				if(tweetIndex < tweetArray.length -1 ) { tweetIndex++; }
				else { tweetIndex = 0; }
			});
		});
	},
	changeImage : function() {
		var userAgent = navigator.userAgent.toLowerCase();
		
		jQuery.browser = {
			version: (userAgent.match( /.+(?:rv|it|ra|ie|me)[\/: ]([\d.]+)/ ) || [])[1],
			chrome: /chrome/.test( userAgent ),
			safari: /webkit/.test( userAgent ) && !/chrome/.test( userAgent ),
			opera: /opera/.test( userAgent ),
			msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
			mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
		};
		if( $.browser.msie || $.browser.webkit || $.browser.safari ) { $('h1 img').attr('src', 'splash/gfx/logo.png'); }

	},
	skype : function(failureFunction) {
        if ($.browser.safari || $.browser.opera) {
        	if( navigator.platform.indexOf('Mac') != -1 || navigator.platform.indexOf('Win') != -1 ) { $('.phone a').attr('href', 'skype:+393478421438'); }
            return true;
        } else if ($.browser.msie) {
            try {
                if (new ActiveXObject("Skype.Detection")) { return true; }
                else { $('.phone a').attr('href', 'skype:+393478421438'); }
            } catch(e) { }
        } else {
            if (typeof(navigator.mimeTypes["application/x-skype"]) == "object") { return true; }
            else { $('.phone a').attr('href', 'skype:+393478421438'); }
        }
        $('a[href^="tel:"]').click(function() {
            failureFunction();
            return false;
        });
        return false;
    }
};
