/**
 * Coin Slider - Unique jQuery Image Slider
 * @version: 1.0 - (2010/04/04)
 * @requires jQuery v1.2.2 or later 
 * @author Ivan Lazarevic
 * Examples and documentation at: http://workshop.rs/projects/coin-slider/
 
 * Licensed under MIT licence:
 *   http://www.opensource.org/licenses/mit-license.php
**/

(function($)
		  {var params=new Array;

		  var order=new Array;
var images=new Array;
var links=new Array;
var linksTarget=new Array;
var titles=new Array;
var interval=new Array;
var imagePos=new Array;
var appInterval=new Array;
var squarePos=new Array;
var reverse=new Array;
$.fn.coinslider=$.fn.CoinSlider=function(options)
{
	init=function(el)
	{
	order[el.id]=new Array();
	images[el.id]=new Array();
	links[el.id]=new Array();
	linksTarget[el.id]=new Array();
	titles[el.id]=new Array();
	imagePos[el.id]=0;
	squarePos[el.id]=0;
	reverse[el.id]=1;
	params[el.id]=$.extend({},$.fn.coinslider.defaults,options);
	$.each($('#'+el.id+' img'),function(i,item)
{
images[el.id][i]=$(item).attr('src');links[el.id][i]=$(item).parent().is('a')?$(item).parent().attr('href'):'';linksTarget[el.id][i]=$(item).parent().is('a')?$(item).parent().attr('target'):'';titles[el.id][i]=$(item).next().is('span')?$(item).next().html():'';$(item).hide();$(item).next().hide();}
);$(el).css({'background-image':'url('+images[el.id][0]+')','width':params[el.id].width,'height':params[el.id].height,'position':'relative','background-position':'top left'}).wrap("<div class='coin-slider' id='coin-slider-"+el.id+"' />");$('#'+el.id).append("<div class='cs-title' id='cs-title-"+el.id+"' style='position: absolute; bottom:0; left: 0; z-index: 1000;'></div>");$.setFields(el);if(params[el.id].navigation)
																																																																																																																																																																																																																																																																																																																																										
																																																																																																																																																																																																																																																																																																																																										
$.setNavigation(el);$.transition(el,0);$.transitionCall(el);}

$.setFields=function(el)
{
tWidth=sWidth=parseInt(params[el.id].width/params[el.id].spw);tHeight=sHeight=parseInt(params[el.id].height/params[el.id].sph);counter=sLeft=sTop=0;tgapx=gapx=params[el.id].width-params[el.id].spw*sWidth;tgapy=gapy=params[el.id].height-params[el.id].sph*sHeight;for(i=1;i<=params[el.id].sph;i++)
{
gapx=tgapx;if(gapy>0)
{
gapy--;sHeight=tHeight+1;}
else{sHeight=tHeight;}

for(j=1;j<=params[el.id].spw;j++)
{
if(gapx>0)
{
gapx--;sWidth=tWidth+1;}
else{sWidth=tWidth;}

order[el.id][counter]=i+''+j;counter++;if(params[el.id].links)
$('#'+el.id).append("<a href='"+links[el.id][0]+"' class='cs-"+el.id+"' id='cs-"+el.id+i+j+"' style='width:"+sWidth+"px; height:"+sHeight+"px; float: left; position: absolute;'></a>");else
$('#'+el.id).append("<div class='cs-"+el.id+"' id='cs-"+el.id+i+j+"' style='width:"+sWidth+"px; height:"+sHeight+"px; float: left; position: absolute;'></div>");$("#cs-"+el.id+i+j).css({'background-position':-sLeft+'px '+(-sTop+'px'),'left':sLeft,'top':sTop});sLeft+=sWidth;}

sTop+=sHeight;sLeft=0;}

$('.cs-'+el.id).mouseover(function()
{
$('#cs-navigation-'+el.id).show();}
);$('.cs-'+el.id).mouseout(function()
{
$('#cs-navigation-'+el.id).hide();}
);$('#cs-title-'+el.id).mouseover(function()
{
$('#cs-navigation-'+el.id).show();}
);$('#cs-title-'+el.id).mouseout(function()
{
$('#cs-navigation-'+el.id).hide();}
);if(params[el.id].hoverPause)
{
$('.cs-'+el.id).mouseover(function()
{
params[el.id].pause=true;}
);$('.cs-'+el.id).mouseout(function()
{
params[el.id].pause=false;}
);$('#cs-title-'+el.id).mouseover(function()
{
params[el.id].pause=true;}
);$('#cs-title-'+el.id).mouseout(function()
{
params[el.id].pause=false;}
);}
};$.transitionCall=function(el)
{
clearInterval(interval[el.id]);delay=params[el.id].delay+params[el.id].spw*params[el.id].sph*params[el.id].sDelay;interval[el.id]=setInterval(function()
{
$.transition(el)},delay);}

$.transition=function(el,direction)
{
if(params[el.id].pause==true)return;$.effect(el);squarePos[el.id]=0;appInterval[el.id]=setInterval(function()
{
$.appereance(el,order[el.id][squarePos[el.id]])},params[el.id].sDelay);$(el).css({'background-image':'url('+images[el.id][imagePos[el.id]]+')'});if(typeof(direction)=="undefined")
imagePos[el.id]++;else
if(direction=='prev')
imagePos[el.id]--;else
imagePos[el.id]=direction;if(imagePos[el.id]==images[el.id].length)
{
imagePos[el.id]=0;}

if(imagePos[el.id]==-1)
{
imagePos[el.id]=images[el.id].length-1;}

$('.cs-button-'+el.id).removeClass('cs-active');$('#cs-button-'+el.id+"-"+(imagePos[el.id]+1)).addClass('cs-active');if(titles[el.id][imagePos[el.id]])
{
$('#cs-title-'+el.id).css({'opacity':0}).animate({'opacity':params[el.id].opacity},params[el.id].titleSpeed);$('#cs-title-'+el.id).html(titles[el.id][imagePos[el.id]]);}
else{$('#cs-title-'+el.id).css('opacity',0);}
};$.appereance=function(el,sid)
{
$('.cs-'+el.id).attr('href',links[el.id][imagePos[el.id]]).attr('target',linksTarget[el.id][imagePos[el.id]]);if(squarePos[el.id]==params[el.id].spw*params[el.id].sph)
{
clearInterval(appInterval[el.id]);return;}

$('#cs-'+el.id+sid).css({opacity:0,'background-image':'url('+images[el.id][imagePos[el.id]]+')'});$('#cs-'+el.id+sid).animate({opacity:1},300);squarePos[el.id]++;}
;$.setNavigation=function(el)
{
$(el).append("<div id='cs-navigation-"+el.id+"'></div>");$('#cs-navigation-'+el.id).hide();$('#cs-navigation-'+el.id).append("<a href='#' id='cs-prev-"+el.id+"' class='cs-prev'>Anterior</a>");$('#cs-navigation-'+el.id).append("<a href='#' id='cs-next-"+el.id+"' class='cs-next'>Proximo</a>");$('#cs-prev-'+el.id).css({'position':'absolute','top':params[el.id].height/2-15,'left':0,'z-index':1001,'line-height':'30px','opacity':params[el.id].opacity}).click(function(e)
{
e.preventDefault();$.transition(el,'prev');$.transitionCall(el);}
).mouseover(function()
{
$('#cs-navigation-'+el.id).show()});$('#cs-next-'+el.id).css({'position':'absolute','top':params[el.id].height/2-15,'right':0,'z-index':1001,'line-height':'30px','opacity':params[el.id].opacity}).click(function(e)
{
e.preventDefault();$.transition(el);$.transitionCall(el);}
).mouseover(function()
{
$('#cs-navigation-'+el.id).show()});$("<div id='cs-buttons-"+el.id+"' class='cs-buttons'></div>").appendTo($('#coin-slider-'+el.id));for(k=1;k<images[el.id].length+1;k++)
{
$('#cs-buttons-'+el.id).append("<a href='#' class='cs-button-"+el.id+"' id='cs-button-"+el.id+"-"+k+"'>"+k+"</a>");}

$.each($('.cs-button-'+el.id),function(i,item)
{
$(item).click(function(e)
{
$('.cs-button-'+el.id).removeClass('cs-active');$(this).addClass('cs-active');e.preventDefault();$.transition(el,i);$.transitionCall(el);}
)});$('#cs-navigation-'+el.id+' a').mouseout(function()
{
$('#cs-navigation-'+el.id).hide();params[el.id].pause=false;}
);$("#cs-buttons-"+el.id).css({'left':'50%','margin-left':-images[el.id].length*15/2-5,'position':'relative'});}

$.effect=function(el)
{
effA=['random','swirl','rain','straight'];if(params[el.id].effect=='')
eff=effA[Math.floor(Math.random()*(effA.length))];else
eff=params[el.id].effect;order[el.id]=new Array();
if(eff=='random')
{
counter=0;for(i=1;i<=params[el.id].sph;i++)
{
for(j=1;j<=params[el.id].spw;j++)
{
order[el.id][counter]=i+''+j;counter++;}
}
$.random(order[el.id]);}

if(eff=='rain')
{
$.rain(el);

}
if(eff=='swirl')
$.swirl(el);if(eff=='straight')
$.straight(el);reverse[el.id]*=-1;if(reverse[el.id]>0)
{
order[el.id].reverse();}
}
$.random=function(arr)
{
var i=arr.length;if(i==0)return false;while(--i)
{
var j=Math.floor(Math.random()*(i+1));var tempi=arr[i];var tempj=arr[j];arr[i]=tempj;arr[j]=tempi;}
}
$.swirl=function(el)
{
var n=params[el.id].sph;var m=params[el.id].spw;var x=1;var y=1;var going=0;var num=0;var c=0;var dowhile=true;while(dowhile)
{
num=(going==0||going==2)?m:n;for(i=1;i<=num;i++)
{
order[el.id][c]=x+''+y;c++;if(i!=num)
{
switch(going)
{
case 0:y++;break;case 1:x++;break;case 2:y--;break;case 3:x--;break;}
}}
going=(going+1)%4;switch(going)
{
case 0:m--;y++;break;case 1:n--;x++;break;case 2:m--;y--;break;case 3:n--;x--;break;}

check=$.max(n,m)-$.min(n,m);if(m<=check&&n<=check)
dowhile=false;}
}

$.rain=function(el)
	{
		var n=params[el.id].sph;
		var m=params[el.id].spw;
		var c=0;
		var to=to2=from=1;
		var dowhile=true;
		while(dowhile)
		{
			for(i=from;i<=to;i++)
			{
				order[el.id][c]=i+''+parseInt(to2-i+1);c++;
			}
			to2++;if(to<n&&to2<m&&n<m)
				{
					to++;
				}
				if(to<n&&n>=m)
				{
					to++;
				}
				if(to2>m)
				{
					from++;
				}
				if(from>to)dowhile=false;
			}
		}

$.straight=function(el)
	{
		counter=0;
		for(i=1;i<=params[el.id].sph;i++)
		{
			for(j=1;j<=params[el.id].spw;j++)
				{order[el.id][counter]=i+''+j;counter++;
			}
		}
	}
	

<!-- m = largura e n= altura -->
$.min=function(n,m)
{
if(n>m)return m;else return n;}

$.max=function(n,m)
{
if(n<m)return m;else return n;}


this.each(function()
				   {
					   init(this);
				   }
				   );}
;$.fn.coinslider.defaults={width:565,height:290,spw:3,sph:2,delay:4000,sDelay:30,opacity:0.7,titleSpeed:1000,effect:'',navigation:true,links:true,hoverPause:true};}
)(jQuery);
