//LIBRARIES
//
//Twitter
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 'alguns segundos atrás';
	} else if(delta < 120) {
		return '1 minuto atrás';
	} else if(delta < (60*60)) {
		return (parseInt(delta / 60)).toString() + ' minutos atrás';
	} else if(delta < (120*60)) {
		return '1 hora atrás';
	} else if(delta < (24*60*60)) {
		return (parseInt(delta / 3600)).toString() + ' horas atrás';
	} else if(delta < (48*60*60)) {
		return '1 dia atrás';
	} else {
		return (parseInt(delta / 86400)).toString() + ' dias atrás';
	}
}

function timeline(twitters) {
	var statusHTML = [];
	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>';
		});

	statusHTML.push('<li><span>'+status+'</span> <a class="status" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'"><span class="sprite replace"></span>'+relative_time(twitters[i].created_at)+'</a></li>');
	}

	//jQuery('#timeline').prepend('<ul>' + statusHTML.join('') + '</ul>').find('.loading').remove();
}


//
//jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d)},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b}});

//
//Twitter
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 'alguns segundos atrás';
	} else if(delta < 120) {
		return '1 minuto atrás';
	} else if(delta < (60*60)) {
		return (parseInt(delta / 60)).toString() + ' minutos atrás';
	} else if(delta < (120*60)) {
		return '1 hora atrás';
	} else if(delta < (24*60*60)) {
		return (parseInt(delta / 3600)).toString() + ' horas atrás';
	} else if(delta < (48*60*60)) {
		return '1 dia atrás';
	} else {
		return (parseInt(delta / 86400)).toString() + ' dias atrás';
	}
}

function timeline(twitters) {
	var statusHTML = [];
	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>';
		});

	statusHTML.push('<li><span>'+status+'</span> <a class="status" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'"><span class="sprite replace"></span>'+relative_time(twitters[i].created_at)+'</a></li>');
	}

	jQuery('#timeline').prepend('<ul>' + statusHTML.join('') + '</ul>').find('.loading').remove();
}


//FUNCTIONS
//
//Mount

function grayscale(img) {
	if(jQuery.browser.msie) {
		img.css('filter','progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)');
		return img.attr('src');
	} else {
		var canvas = document.createElement('canvas');
		var ctx = canvas.getContext('2d');

		var imgObj = new Image();
		imgObj.src = img.attr('src');

		canvas.width = imgObj.width;
		canvas.height = imgObj.height;

		ctx.drawImage(imgObj, 0, 0);

		var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height);

		for(var y = 0; y < imgPixels.height; y++){
			for(var x = 0; x < imgPixels.width; x++){
				var i = (y * 4) * imgPixels.width + x * 4;
				var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3;
					imgPixels.data[i] = avg;
					imgPixels.data[i + 1] = avg;
					imgPixels.data[i + 2] = avg;
			}
		}

		ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);
		return canvas.toDataURL();
	}
}

//
//Move
function move(index) {
	//Duplicate elements
	qtd = parseInt(index,'10');
	var elementArray  = new Array();
	for(var z = 0; z <= qtd; z++) {
		var element = jQuery('#nav li:eq(' + z + ')');
		if( jQuery('#nav li.' + element.attr('class') ).size() <= 1 ) {
			element.clone().appendTo( jQuery('#nav') );
			elementArray.push(element);
		 }
	}

	//Animate
	content(index);
	jQuery('#' + id).prependTo('#slider').css({height: '0px', overflow: 'hidden'}).animate({
		height: 320
	}, 1000, 'easeOutExpo', function() {
		jQuery('#' + id).removeAttr('css');
	});

	jQuery('#nav').animate({
		top: -1 * (index + 1) * (jQuery('#nav').find('li').outerHeight(true))
	}, 500 * (index/2 + 1), 'easeOutCubic',function() {
		//Remove
		jQuery('#nav').css({top: 0});

		jQuery.each(elementArray, function(i, elements){
			jQuery(elements).remove();
		});
	});

	setTimeout(function() {
		jQuery('#text h2:eq(1)').remove();
		jQuery('#nav').removeClass('block');
	}, 1250);
}

function content(index) {
	id = jQuery('#nav li:eq(' + index + ')').attr('class');
	jQuery('#text').prepend('<h2 style="display: none">' + jQuery('#' + id).attr('title') + '</h2>');
	jQuery('#text h2:eq(0)').slideDown();
	jQuery('#text h2:eq(1)').slideUp();
	jQuery('#text p').text(jQuery('#' + id).children('strong').text());
} content(0);

//
//Auto
function auto_pilot() {
	jQuery('#nav li:eq(0)').trigger('click');
}

var pilot = '';

function restart() {
	pilot = window.setInterval(auto_pilot, 10000);
} restart();





//
//Document Ready
window.onload = function()
{

//FUNCTIONS
//
//Mount
	jQuery('#scroll').prepend('<ul id="nav"></ul>');

	jQuery('#slider a span').each(function() {
		var $img = jQuery(this).html(),
			id = jQuery(this).parent().attr('id');
		jQuery('#nav').prepend('<li class="' + id + '"><span></span>' + $img + '</li>');
		jQuery(this).remove();
	});

	jQuery('#nav img').each(function() {
		this.src = grayscale(jQuery(this));
	});




//
//Zebra
	jQuery('.widget_categories ul li:odd').addClass('odd');
	
	//FEATURE
	jQuery('#featured').hover(function() {
		clearInterval(pilot);
	}, function() {
		restart();
	})

	jQuery('#featured .up').click(function() {
		jQuery('#nav li:eq(0)').trigger('click');
	});

	jQuery('#featured .click').click(function() {
		window.location = jQuery('#slider a:eq(0)').attr('href');
	});

	jQuery('#nav').fadeTo(0,.5).hover(function() {
		jQuery(this).fadeTo(500,1);
	}, function() {
		jQuery(this).fadeTo(250,.5);
	})

	jQuery('#nav li').live('click',function() {
		var item = jQuery(this),
			index = item.index();

		if(!jQuery(this).parent().is('.block')) {
			move(index);
			jQuery('#nav').addClass('block');
		}

		return false;
	});
	//SEARCH
	jQuery(window).bind('load', function() {
		if(jQuery('#s').val() != '' ) {
			jQuery('#s').prev('label').fadeTo(250,0);
		}
	});
	
	jQuery('#s').bind('focus', function() {
		jQuery(this).prev('label').hide();
	}).bind('blur', function() {
		if(jQuery(this).val() == '' ) {
			jQuery(this).prev('label').show();
		}
	});
}


