﻿/*  * 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: true
}
,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);