/*!
 * jQuery Roundrr Plugin (2010)
 *
 * This version written by Addy Osmani extending Nirvana Tikku's RadMenu
 *
 * Roundrr is a plugin for plotting interactive image or multimedia content
 * around a circle. It is based on RadMenu with an extended model for events
 * occurring in the pre and post animation phases. It also contains further
 * configuration for automated playback of a wheel of content and support for
 * 'pick' interfaces which allow you to perform an action when an object 
 * falls between two other objects of fixed known position. 
 *
 * For further documentation please see addyosmani.com or Roundrr on github
 * at http://github.com/legacye/jquery-roundrr.
 *
 * This is an initial release and further forks/bug-patches are more than welcome
 * for any behaviour you feel may require some fixing or improvement.
 *
 * For further information about plotting items in a circle or oval outside of this
 * plugin, I recommend checking out my minimalist javascript library ShapeLib. 
 *
 */
(function(a){function q(b,c,d){var e=b.menu.find("."+a.roundrrwheel.container.itemClz),f=e.length,g=Math.floor(b.opts.requiredLeftA.replace("px","")),h=Math.floor(b.opts.requiredTopA.replace("px","")),i=Math.floor(b.opts.requiredLeftB.replace("px","")),j=Math.floor(b.opts.requiredTopB.replace("px",""));e.each(function(e){var k=a(this),l=Math.floor(k.css("left").replace("px","")),m=Math.floor(k.css("top").replace("px",""));b.opts.mode=="standard"&&(e==0?(b.opts.onImageFocus(k),k.find("img").addClass("selected")):k.find("img").removeClass("selected"));var n=p(e+c,f,b.opts);if(b.opts.mode=="pick"){switch(e){case 2:g=Math.floor(n.x),h=Math.floor(n.y);break;case 4:i=Math.floor(n.x),j=Math.floor(n.y)}switch(d){case"next":l==g&&m==h?b.opts.onImageFocus(k):b.opts.onImageBlur(k);break;case"prev":l==i&&m==j?b.opts.onImageFocus(k):b.opts.onImageBlur(k)}}k.animate({left:n.x,top:n.y},b.opts.animSpeed,e==f-1?function(){b.opts.onAnimationComplete(b)}:undefined)})}function p(a,b,c){var d=c.radius,e=c.angleOffset,f=2*Math.PI*parseFloat(a/b),g=c.centerX+Math.cos(f+e)*d,h=c.centerY+Math.sin(f+e)*d;return{x:g,y:h}}function o(b,c){var d="";b.each(function(e){var f=a(this),g=p(e+1,b.length,c);d+="<div class='"+a.roundrrwheel.container.itemClz+"' ",d+="style='position:absolute;left:"+g.x+"px;top:"+g.y+"px;display:none;'>",d+=f.html(),d+="</div>"});return d}function n(b,c,d,e,f){c==d&&(d=c-1);var g=a(b.raditems()[c]),h=b.raditems()[d];c>d?g.insertBefore(h):g.insertAfter(h),q(b,e,f)}function m(b){var d=b.data;return{menu:d,opts:d.data(c),raditems:function(){return d.find("."+a.roundrrwheel.container.itemClz)}}}function l(a){return parseInt(Math.random()*a)}function k(b,c,d){return a.extend({},b,{radius:d*c})}function i(b){a.support.opacity?b.stopPropagation():window.event.cancelBubble=!0}function h(b){var c=a(this),d=a(b.target),e=a.roundrrwheel.container;d.hasClass(e.itemClz)||(d=d.closest("."+e.itemClz));var f=d.parents("."+e.itemClz).length>0,g=d.index();f?c.roundrrwheel(g):c.parents("."+e.clz).roundrrwheel(g),i(b)}function g(d,g){var h=a.extend({},f,g);jQuery("."+h.centerClass).wrapInner("<img class='centerImage' src='"+h.centerImageSrc+"'></img>");return d.each(function(d){var f=a(this),g=f.find("."+h.listClass);g.find("."+h.itemClass).hide(),f.data(c,k(h,h.initialScale,h.radius));for(e in j)f.bind(e+b,f,j[e])})}var b=".roundrrwheel",c="options"+b,d="prevoptions"+b,f={mode:"standard",autoplay:!1,autoplayDirection:"clockwise",autoplayDuration:5e3,centerClass:"roundrr_center",listClass:"list",itemClass:"item",activeItemClass:"active",selectEvent:null,onSelect:function(a){},onImageFocus:function(a){},onImageBlur:function(a){},onNextBegin:function(a){},onPrevBegin:function(a){},radius:10,animationEffect:1,initialScale:1,angleOffset:0,centerImageSrc:"images/placeholder2.png",centerX:0,centerY:0,requiredLeftA:"-55.1904px",requiredTopA:"-143.253px",requiredLeftB:"113.19px",requiredTopB:"-143.253px",animSpeed:500,scaleAnimSpeed:400,scaleAnimOpts:{},onAnimationComplete:function(a){},onShow:function(a){a.show()},onHide:function(a){a.hide()}};a.roundrrwheel={container:{clz:"roundrr_div",itemClz:"roundrr_div_item",html:"<div></div>",css:{position:"relative"}}},a.fn.roundrrwheel=function(c,d){try{console.log("Input: "+c+" param: "+d);var e=a(this),f=typeof c;if(arguments.length==0||f=="object")return g(e,c);if(f=="string")return c=="items"?e.triggerHandler(c+b):e.trigger(c+b,d||null);if(f=="number")return e.trigger("select"+b,c)}catch(h){return"error : "+h}};var j={show:function(b,c){var d=m(b),e=a.roundrrwheel.container;d.menu.find("."+e.clz).remove();var f=d.menu.find("."+d.opts.itemClass),g=a(e.html).addClass(e.clz).css(e.css).html(o(f,d.opts)),f=g.find("."+e.itemClz);d.opts.selectEvent!=null&&f.bind(d.opts.selectEvent,h),g.appendTo(d.menu);var j=d.opts.autoplay;if(j)switch(d.opts.autoplayDirection){case"clockwise":setInterval(function(){n(d,d.raditems().length-1,0,d.opts.animationEffect,"next")},d.opts.autoplayDuration);break;case"anticlockwise":setInterval(function(){n(d,0,d.raditems().length-1,1,"prev")},d.opts.autoplayDuration)}typeof c=="function"?c(f):d.opts.onShow(f),i(b)},hide:function(b){var c=m(b),d=c.menu.find("."+a.roundrrwheel.container.clz);c.opts.onHide(d.find("."+a.roundrrwheel.container.itemClz)),d.remove(),i(b)},select:function(b,c){var d=m(b),e=a(d.raditems().get(c));e.siblings().removeClass(d.opts.activeItemClass),e.addClass(d.opts.activeItemClass),d.opts.onSelect(e),i(b)},next:function(a){var b=m(a);b.opts.onNextBegin(b),n(b,b.raditems().length-1,0,b.opts.animationEffect,"next"),console.log("Finished next...")},prev:function(a){var b=m(a);b.opts.onPrevBegin(b),n(b,0,b.raditems().length-1,1,"prev")},shuffle:function(a,b){var c=m(a),d=c.raditems().length;n(c,l(d),l(d),l(b||15))},destroy:function(a){var e=m(a);e.menu.data(c,null).data(d,null).unbind(b);return e.menu},items:function(a){return m(a).raditems()}}})(jQuery)
