/* ==========================================================
 * MobilyBlocks
 * date: 29.11.2010
 * last update: 25.1.2011
 * author: Marcin Dziewulski
 * web: http://www.mobily.pl or http://playground.mobily.pl
 * email: hello@mobily.pl
 * Free to use under the MIT license.
========================================================== */
(function($){
$.fn.mobilyblocks=function(options){
	var defaults={trigger:"click",direction:"clockwise",duration:750,zIndex:10,widthMultiplier:1.2};
	var sets=$.extend({},defaults,options);
	return this.each(function(){
			var $t=$(this),w=$t.width(),h=$t.height(),parent=$t.find("ul"),list=parent.find("li"),size=list.length,hov=false,dir;
			if(sets.direction=="clockwise"){dir=-1}
			else{
				if(sets.direction=="counter"){dir=1}
				}
		var socials={init:function(){parent.hide().css({zIndex:sets.zIndex});
			$t.append($("<a />").addClass("trigger").css({display:"block",position:"absolute",zIndex:1,top:0,left:0,width:"100%",height:"100%"}));
			switch(sets.trigger){case"click":socials.click();
			break;
			case"hover":socials.hover();
			break;
			default:socials.click()}},click:function(){
				var trigger=$t.find("a.trigger");
				trigger.bind("click",function(){
					if($t.hasClass("close")){
						parent.fadeTo(sets.duration,0);
						socials.animation.close();
						$t.removeClass("close")
						}
					else{
						parent.fadeTo(sets.duration,1);
						socials.animation.open();
						$t.addClass("close")
						}
					return false
					}
				)
			},hover:function(){
				var trigger=$t.find("a.trigger");
				trigger.bind("mouseover",function(){
					if(hov==false){parent.fadeTo(sets.duration,1);
					socials.animation.open();
					$t.addClass("close")
					}
				});
				parent.bind("mouseleave",function(){
					$t.removeClass("close");
					parent.fadeTo(sets.duration,0);
					socials.animation.close();
					hov=true;
					setTimeout(function(){
						hov=false
						},500)
				})
			},animation:{open:function(){
				socials.ie.open();
				list.each(function(i){
					var li=$(this);
					li.animate({path:new $.path.arc({center:[0,0],radius:w*sets.widthMultiplier,start:0,end:360/size*i,dir:dir})},sets.duration)
				});
				list.hover(function(){
					var li=$(this);
					li.css({zIndex:sets.zIndex}).siblings("li").css({zIndex:sets.zIndex-1})
				})
				},close:function(){list.each(function(i){
				var li=$(this);
				li.animate({top:0,left:0},sets.duration,function(){socials.ie.close()})
				})}
			},ie:{open:function(){
				if($.browser.msie){list.show()}
				},close:function(){
					if($.browser.msie){list.hide()}
				}
			}
		};
		socials.init()
	})
}
}(jQuery));
(function($){
	$.path={};$.path.arc=function(params){
		for(var i in params){
			this[i]=params[i]
			}
			this.dir=this.dir||1;
			while(this.start>this.end&&this.dir>0){
				this.start-=360
				}
			while(this.start<this.end&&this.dir<0){
					this.start+=360
					}
			this.css=function(p){
				var a=this.start*(p)+this.end*(1-(p));
				a=a*3.1415927/180;
				var x=Math.sin(a)*this.radius+this.center[0];
				var y=Math.cos(a)*this.radius+this.center[1];
				return{top:y+"px",left:x+"px"}
			}
		};
		$.fx.step.path=function(fx){
			var css=fx.end.css(1-fx.pos);
			for(var i in css){
				fx.elem.style[i]=css[i]
				}
		}
})(jQuery);
