/*
 * Karmic Flow 0.1
 * http://www.karmagination.com
 * Released under the MIT, BSD, and GPL Licenses - Choose one that fit your needs
 * Copyright (c) 2009 Kean L. Tan 
 * Start date: 2009-07-20
 * Build date: 2009-09-02
*/
(function karmicFlow(a){a.fn.karmicFlow=function(b){b=a.extend({container:"karmic_flow_container",slider:"karmic_flow_slider",slides:"karmic_flow_slides",sliding:"karmic_flow_sliding",slide_selected:"karmic_flow_slide_selected",slide_overflow:"karmic_flow_slide_overflow",controller:"karmic_flow_controller",controller_selected:"karmic_flow_controller_selected",next:"karmic_flow_next_controller",prev:"karmic_flow_prev_controller",play:"karmic_flow_play_controller",pause:"karmic_flow_pause_controller",duration:300,timer:2500,auto:false},b||{});this.data("opts",b);this.data("cur_index",this.data("cur_index")||0);var e=function(i,w){var y=a(i),p=y.attr("target"),x=a("#"+p),r=x.children(),m=x.find("."+b.slide_selected),l=m.parent().children(),o=l.index(m),t=l.length,s=x.data("cur_index"),n=x.data("opts").duration,v=1;if(o==-1){return false}if(w||y.hasClass(b.next)){o=(o+1==t)?0:o+1}else{if(y.hasClass(b.prev)){o=(o==0)?t-1:o-1}}x.data("cur_index",o);l.removeClass(b.slide_selected);l.eq(o).addClass(b.slide_selected);var q=a("[href=#"+l.eq(o).attr("name")+"]"),u=a("[target="+q.attr("target")+"]");u.removeClass(b.controller_selected);q.addClass(b.controller_selected);r.addClass(b.sliding);if((o==0&&s==t-1)||(o==t-1&&s==0)){v=t}r.stop().animate({marginLeft:-1*m.width()*o},n*v,function(){r.removeClass(b.sliding)});return q[0]};for(var g=0;g<this.length;g++){a(this[g]).find("."+b.slides).each(function(){var i=a("<div></div>");i.append(this.childNodes).appendTo(this).addClass(b.slide_overflow).css("height",a(this).parent().parent().height())})}var f=a();if(!f.data("karmic_flow_init")){f.data("karmic_flow_init",1);f.bind("click",function(s){var l=s.target,w=a(l),p=w.attr("target");if(w.hasClass(b.controller)){var v=a("#"+p),r=v.find("[name="+l.hash.substring(1,l.hash.length)+"]"),q=r.parent().children().index(r[0]),t=r.parent(),o=v.data("cur_index"),n=v.data("opts").duration,i=v.data("opts").timer;a("[target="+p+"]").removeClass(b.controller_selected);w.addClass(b.controller_selected);t.children().removeClass(b.slide_selected);r.addClass(b.slide_selected);t.addClass(b.sliding);v.data("cur_index",q);var m=-1*r.width()*q;t.stop().animate({marginLeft:-1*r.width()*q},n*Math.abs(q-o),function(){t.removeClass(b.sliding)});s.preventDefault()}else{if(w.hasClass(b.next)||w.hasClass(b.prev)){e(l);s.preventDefault()}else{if(w.hasClass(b.play)){var u=l,v=a("#"+p),i=v.data("opts").timer;if(v.data("interval")!==null){clearInterval(v.data("interval"));v.data("interval",null);w.removeClass(b.pause)}else{w.addClass(b.pause);v.data("player",u);v.data("interval",setInterval(function(){v.data("player",e(v.data("player"),true))},i))}s.preventDefault()}}}})}for(var g=0;g<this.length;g++){var k=a(this[g]),j=k.children(),h=j.height(k.height()).children(),d=k.data("opts").timer;j.width(h.length*k.width());h.width(k.width());if(b.auto){var c=a("."+b.play).filter("[target="+this[g].id+"]");if(!c.length){c=a('<a href="#" target="'+this[g].id+'" class="'+b.next+'"> </a>')}k.data("player",c[0]);k.data("interval",setInterval(function(){k.data("player",e(k.data("player"),true))},d))}}return this}})(this.jQuery||this.Karma);
