(function(f){function A(a,c){var b=f.extend({},B,c);return a.each(function(){var d=f(this);if(!d.hasClass(p)){d.find("."+b.listClass).find("."+b.itemClass).hide();d.data(n,u(b,b.initialScale,b.radius));for(e in v)d.bind(e+k,d,v[e]);d.addClass(p)}})}function C(a){var c=f(this),b=f(a.target),d=f.radmenu.container;b.hasClass(d.itemClz)||(b=b.closest("."+d.itemClz));var g=b.parents("."+d.itemClz).length>0;b=b.index();g?c.radmenu(b):c.parents("."+d.clz).radmenu(b);o(a)}function o(a){if(f.support.opacity)a.stopPropagation();
else window.event.cancelBubble=true}function u(a,c,b){return f.extend({},a,{radius:b*c})}function w(a){return parseInt(Math.random()*a)}function j(a){var c=a.data;return{menu:c,opts:c.data(n),raditems:function(){return c.find("."+f.radmenu.container.itemClz)}}}function q(a,c,b){if(c==b)b=c-1;var d=f(a.raditems()[c]),g=a.raditems()[b];c>b?d.insertBefore(g):d.insertAfter(g);D(a,c<b)}function E(a,c){var b=[];a.each(function(d){var g=f(this);d=r(d,a.length,c);var h="transform:rotate("+d.angle+"deg); ";
b.push("<div class='"+f.radmenu.container.itemClz+"' ");b.push("style='");b.push("position:absolute;display:none;");b.push("left:"+d.left+"px;");b.push("top:"+d.top+"px;");if(c.rotate)for(rot in i.opts)b.push(i.opts[rot]+h);b.push("'>");b.push(g.html());b.push("</div>")});return b.join("")}function x(a,c){return 2*Math.PI*parseFloat(a/c)}function r(a,c,b,d){var g=b.radius,h=x(a,c);h+=F(b.angleOffset);var l=b.centerX+Math.cos(h)*g;g=b.centerY+Math.sin(parseInt(h*100)/100)*g;a=b.rotate?b.getRotation(h*
180/Math.PI,a,c):0;c=b.rotate?x(1,c)*180/Math.PI:0;return{left:l,top:g,angle:a,animObj:{left:l,top:g,radrotate:(d==true?"-=":"+=")+c}}}function F(a){return a*Math.PI/180}function D(a,c){var b=a.raditems(),d=b.length;b.each(function(g){var h=f(this),l=r(g,d,a.opts,c);h.animate(l.animObj,a.opts.animSpeed,a.opts.animEasing,function(){g==d-1&&a.opts.afterAnimation(a)})})}var k=".radmenu",n="options"+k,s="prevoptions"+k,p="ui-radmenu-parent",B={listClass:"list",itemClass:"item",activeItemClass:"active",
selectEvent:null,onSelect:function(){},radius:10,angleOffset:0,centerX:0,centerY:0,animSpeed:500,animEasing:"swing",initialScale:1,scaleAnimSpeed:0,scaleAnimEasing:"swing",scaleAnimOpts:{},onScaleItem:function(){},afterAnimation:function(){},onShow:function(a){a.show()},onHide:function(a){a.hide()},onNext:function(){return true},onPrev:function(){return true},rotate:false,getRotation:function(a){return a}};f.radmenu={container:{html:"<div></div>",css:{position:"relative"},clz:"radial_div",itemClz:"radial_div_item"}};
f.fn.radmenu=function(a,c){try{var b=f(this),d=typeof a;if(arguments.length==0||d=="object")return A(b,a);else if(d=="string")return a=="items"||a=="opts"?b.triggerHandler(a+k):b.trigger(a+k,c||null);else if(d=="number")return b.trigger("select"+k,a)}catch(g){return"error : "+g}};var v={opts:function(a){return j(a).opts},show:function(a,c){var b=j(a),d=f.radmenu.container;b.menu.find("."+d.clz).remove();var g=b.menu.find("."+b.opts.itemClass),h=f(d.html).addClass(d.clz).css(d.css).html(E(g,b.opts));
g=h.find("."+d.itemClz);b.opts.selectEvent!=null&&g.bind(b.opts.selectEvent,C);h.appendTo(b.menu);typeof c=="function"?c(g):b.opts.onShow(g);o(a)},hide:function(a){var c=j(a),b=c.menu.find("."+f.radmenu.container.clz);c.opts.onHide(b.find("."+f.radmenu.container.itemClz));b.remove();o(a)},select:function(a,c){var b=j(a);c=f(b.raditems().get(c));c.siblings().removeClass(b.opts.activeItemClass);c.addClass(b.opts.activeItemClass);b.opts.onSelect(c);o(a)},next:function(a){a=j(a);a.opts.onNext(a)&&q(a,
a.raditems().length-1,0)},prev:function(a){a=j(a);a.opts.onPrev(a)&&q(a,0,a.raditems().length-1)},shuffle:function(a){a=j(a);var c=a.raditems().length;q(a,w(c),w(c))},destroy:function(a){a=j(a);a.menu.data(n,null).data(s,null).removeClass(p).unbind(k);return a.menu},items:function(a){return j(a).raditems()},scale:function(a,c){var b=j(a);if(c){var d=b.opts;a=f.radmenu.container;var g=b.menu.data(s);g||b.menu.data(s,g=d);var h=b.menu.find("."+a.itemClz),l=u(d,c,g.radius);b.menu.data(n,l);h.each(function(m){var y=
f(this);m=r(m,h.length,l);var t={top:m.top,left:m.left};if(typeof d.scaleAnimOpts=="object")t=f.extend({},d.scaleAnimOpts,t);y.animate(t,d.scaleAnimSpeed,d.scaleAnimEasing);b.opts.onScaleItem(y,c,m)})}return b.menu}},i={};i.attr=undefined;i.opts=["","-webkit-","-moz-","-ms-","-o-"];i.cssattrs=["","Webkit","Moz","ms","O"];i.getCSSAttr=function(a){if(this.attr)return this.attr;return this.attr=function(){for(var c=0;c<i.cssattrs.length;c++){var b=i.cssattrs[c]+"Transform";if(a[0].style[b])return b}return"transform"}()};
i.getTransformValue=function(a){return jQuery.style(a[0],i.getCSSAttr(a))};var z={};z.cur=f.fx.prototype.cur;f.fx.prototype.cur=function(){if(this.prop=="radrotate"){var a=f(this.elem);if(a=i.getTransformValue(a)||"none")if((a=a.match(/rotate\(([^)]+)\)/))&&a[1])return parseFloat(a[1]);return 0}return z.cur.apply(this,arguments)};f.fx.step.radrotate=function(a){var c=f(a.elem);c.css(i.getCSSAttr(c),"rotate("+a.now+"deg)")}})(jQuery);

