(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 contents	= new Array;
	var tooltip		= new Array;
	var interval	= new Array;
	var imagePos	= new Array;
	var appInterval = new Array;	
	var squarePos	= new Array;	
	var reverse		= new Array;
	var category	= new Array;
	var categoryLength = new Array;
	var currentCategory	= new Array;
	var current		= new Array;
	
	$.fn.slideshow = $.fn.SlideShow = function(options){
		
		init = function(el){
			images[el.id]		= new Array();
			links[el.id]		= new Array();
			linksTarget[el.id]	= new Array();
			titles[el.id]		= new Array();
			contents[el.id]		= new Array();
			tooltip[el.id]		= new Array();
			imagePos[el.id]		= 0;
				
			params[el.id] = $.extend({}, $.fn.slideshow.defaults, options);
						
			// create images, links and titles arrays
			$.each($('#'+el.id+' img'), function(i,item){
				images[el.id][i] 		= $(item).attr('src');
				if ($(item).next().is('span')) $(item).next().hide(); // For IE6
				links[el.id][i] 		= $(item).parent().is('a') ? $(item).parent().attr('href') : '';
				linksTarget[el.id][i] 	= $(item).parent().is('a') ? $(item).parent().attr('target') : '';
				tooltip[el.id][i]		= $(item).parent().is('a') ? $(item).parent().attr('title') : '';
				titles[el.id][i] 		= $(item).parent().find('h2') ? $(item).parent().find('h2').html() : '';
				contents[el.id][i] 		= $(item).parent().find('div') ? $(item).parent().find('div').text() : '';
				$(item).hide();
				$(item).parent().find('h2').hide();
				$(item).parent().find('div').hide();
			});
			

			// set panel
			$(el).css({
				'width': params[el.id].width,
				'position' : 'relative'
			});

			// create img
			$('#'+el.id).append("<a class='slideshowImage cs-links-"+el.id+"' id='cs-img-"+el.id+"' href='"+links[el.id][0]+"'></a>");
			$('#cs-img-'+el.id).css({
				'width' : params[el.id].iWidth,
				'height' : params[el.id].iHeight,
				'background-image' : 'url('+images[el.id][0]+')',
				'margin' : '0 auto',
				'display' : 'block'
			});

			// create title bar
			$('#'+el.id).append("<div class='slideshowText' id='cs-titleBlock-"+el.id+"'><a class='cs-links-"+el.id+"' href='"+links[el.id][0]+"'><h2 id='cs-title-"+el.id+"'>"+titles[el.id][0]+"</h2></a><p id='cs-content-"+el.id+"'>"+jQuery.trim(contents[el.id][0])+"</p></div>");

			// create navigation bar
			var tmp_nav = '';
			for (i = 1; i <= images[el.id].length; i++) {
				tmp_nav += '<li id="cs-button-'+el.id+'-'+(i - 1)+'" class="cs-button-'+el.id+''+(i == 1 ? ' selected' : '')+'">'+i+'</li>';
			}
			$('#'+el.id).append("<ul id='cs-navigation-"+el.id+"'>"+tmp_nav+"</ul>");
			
			// create tooltip
			$('#'+el.id).append('<div id="cs-tooltip-'+el.id+'" class="cs-tooltip">'+tooltip[el.id][i]+'</div>');
			$('#cs-tooltip-'+el.id).css({'display' : 'none'});
			$('#cs-navigation-'+el.id+' li').hover(function() {
				var item = parseInt($(this).text()) - 1;
				
				$('#cs-tooltip-'+el.id).text(tooltip[el.id][item]);
				if ($('#cs-tooltip-'+el.id).text().length > 0) {
					$('#cs-tooltip-'+el.id).css({'bottom' : '-'+(parseInt($('#cs-tooltip-'+el.id).height()) + 22)+'px', 'display' : 'block'});
				}
			}, function() {
				$('#cs-tooltip-'+el.id).css({'display' : 'none'});
			});

			$.each($('.cs-button-'+el.id), function(i,item){
				$(item).click( function(e){
					$('.cs-button-'+el.id).removeClass('selected');
					$(this).addClass('selected');
					$.transition(el, i);
					$.transitionCall(el);
				})
			});

			// Onmousehover stop transition
			if (params[el.id].hoverPause == true) {
				$('#cs-title-'+el.id+', #cs-content-'+el.id+', #cs-img-'+el.id).each(function(i, item) {
					$(item).hover(function(e) {
						params[el.id].pause = true;
					}, function() {
						params[el.id].pause = false;
					});
				});
			}
			
			if (images[el.id].length > 1) {
				$.transitionCall(el);
			}
		}

		$.transitionCall = function(el){
			
			clearInterval(interval[el.id]);	
			delay = params[el.id].delay + params[el.id].sDelay;
			interval[el.id] = setInterval(function() { $.transition(el)  }, delay);
			
		}
		
		// transitions
		$.transition = function(el,direction){
			
			if(params[el.id].pause == true) return;
			
			if (typeof(direction) == "undefined")
				imagePos[el.id]++;
			else
				imagePos[el.id] = direction;
			
			if  (imagePos[el.id] == images[el.id].length) {
				imagePos[el.id] = 0;
			}

			if(jQuery.browser.msie) {
				//Change img
				$("#cs-img-"+el.id).css({
					'background-image' : 'url('+images[el.id][imagePos[el.id]]+')'
				});
				
				//Change links
				$('.cs-links-'+el.id).attr('href', links[el.id][imagePos[el.id]]);
				
				//Deselect and select
				$('.cs-button-'+el.id).removeClass('selected');
				$('#cs-button-'+el.id+"-"+imagePos[el.id]).addClass('selected');
				
				//Change title
				if(titles[el.id][imagePos[el.id]]) {
					$('#cs-titleBlock-'+el.id+' h2').html(titles[el.id][imagePos[el.id]]);
					$('#cs-titleBlock-'+el.id+' p#cs-content-'+el.id).html(contents[el.id][imagePos[el.id]]);
				} else {
					$('#cs-titleBlock-'+el.id).css('opacity',0);
				}
				$('#cs-navigation-slideshow').css('bottom', '1px');
			} else {
				$("#cs-img-"+el.id+', #cs-titleBlock-'+el.id).animate({
					'opacity' : 0
				}, params[el.id].sDelay / 2, function() {
					//Change img
					$("#cs-img-"+el.id).css({
						'background-image' : 'url('+images[el.id][imagePos[el.id]]+')'
					});
					
					//Change links
					$('.cs-links-'+el.id).attr('href', links[el.id][imagePos[el.id]]);
					
					//Deselect and select
					$('.cs-button-'+el.id).removeClass('selected');
					$('#cs-button-'+el.id+"-"+imagePos[el.id]).addClass('selected');
					
					//Change title
					if(titles[el.id][imagePos[el.id]]) {
						$('#cs-titleBlock-'+el.id+' h2').html(titles[el.id][imagePos[el.id]]);
						$('#cs-titleBlock-'+el.id+' p#cs-content-'+el.id).html(contents[el.id][imagePos[el.id]]);
					} else {
						$('#cs-titleBlock-'+el.id).css('opacity',0);
					}
					$("#cs-img-"+el.id+', #cs-titleBlock-'+el.id).animate({
						'opacity' : 1
					}, params[el.id].sDelay / 2, 'linear');
				});
			}
		};
		
		this.each (
			function(){ init(this); }
		);

	};
		// default values
		$.fn.slideshow.defaults = {	
			width: 565, // width of slider panel
			height: 290, // height of slider panel
			iWidth: 669, // width of image
			iHeight: 302, // height of image
			spw: 7, // squares per width
			sph: 5, // squares per height
			delay: 10000, // delay between images in ms
			sDelay: 1000, // delay fading
			opacity: 0.7, // opacity of title and navigation
			titleSpeed: 1000, // speed of title appereance in ms
			effect: '', // random, swirl, rain, straight
			navigation: true, // prev next and buttons
			links : true, // show images as links 
			hoverPause: true, // pause on hover
			pause: false // pause
		};	


		$.fn.slideshowSite = $.fn.SlideShowSite = function(options){
			
			initSite = function(el){
				images[el.id]		= new Array();
				links[el.id]		= new Array();
				linksTarget[el.id]	= new Array();
				titles[el.id]		= new Array();
				imagePos[el.id]		= 0;
					
				params[el.id] = $.extend({}, $.fn.slideshowSite.defaults, options);
							
				// create images, links and titles arrays
				$.each($('#'+el.id+' img'), function(i,item){
					images[el.id][i] 		= $(item).attr('src');
					if ($(item).next().is('span')) $(item).next().hide(); // For IE6
					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).parent().next().is('h2') ? $(item).parent().next().html() : '';
					$(item).hide();
					$(item).parent().next().hide();
				});

				// create img and title
				$('#'+el.id).append("<a class='cs-links-"+el.id+"' id='cs-img-"+el.id+"' href='"+links[el.id][0]+"'><img alt='"+titles[el.id][0]+"' src='"+images[el.id][0]+"' /></a><a class='cs-links-"+el.id+"' id='cs-img-"+el.id+"' href='"+links[el.id][0]+"'><h2 id='cs-title-"+el.id+"'>"+titles[el.id][0]+"</h2></a>");
				$.truncateTitle($('#cs-title-'+el.id));

				// Onmousehover stop transition
				if (params[el.id].hoverPause == true) {
					$('#cs-title-'+el.id+', #cs-img-'+el.id).each(function(i, item) {
						$(item).hover(function(e) {
							params[el.id].pause = true;
						}, function() {
							params[el.id].pause = false;
						});
					});
				}
				
				if (images[el.id].length > 1) {
					$.transitionCallSite(el);
					$('#miniSitesNavigationPrevious').click(function(e) {
						$.transitionSite(el, ((imagePos[el.id] - 1) < 0 ? (images[el.id].length - 1) : (imagePos[el.id] - 1)));
						$.transitionCallSite(el);
					});
					
					$('#miniSitesNavigationNext').click(function(e) {
						$.transitionSite(el, ((imagePos[el.id] + 1) >= images[el.id].length ? 0 : (imagePos[el.id] + 1)));
						$.transitionCallSite(el);
					});
				} else {
					// Hide navigation buttons when less than 1 mini site
					$('#miniSitesNavigationNext, #miniSitesNavigationPrevious').css({'display' : 'none'});
				}
			}

			$.transitionCallSite = function(el){
				
				clearInterval(interval[el.id]);	
				delay = params[el.id].delay + params[el.id].sDelay;
				interval[el.id] = setInterval(function() { $.transitionSite(el)  }, delay);
				
			}
			
			$.truncateTitle = function(obj) {
				var h2 = $(obj);
				var flag_truncate = 0;
			
				if (h2.height() > 45) {
					flag_truncate = 1;
					while (h2.height() > 45 && h2.text().length > 0) {
						h2.text(h2.text().substr(0, (h2.text().length - 1)));
					}
				}
			
				if (flag_truncate == 1 && h2.text().length > 0) {
					h2.text(h2.text().substr(0, (h2.text().length - 3))+'...');
				}
			}
			
			// transitions
			$.transitionSite = function(el,direction){
				
				if(params[el.id].pause == true) return;
				
				if (typeof(direction) == "undefined")
					imagePos[el.id]++;
				else
					imagePos[el.id] = direction;
				
				if  (imagePos[el.id] == images[el.id].length) {
					imagePos[el.id] = 0;
				}

				$("#cs-img-"+el.id+" img").attr('src', images[el.id][imagePos[el.id]]);

				//Change links
				$('.cs-links-'+el.id).attr('href', links[el.id][imagePos[el.id]]);
				
				$('#cs-title-'+el.id).html(titles[el.id][imagePos[el.id]]);

				$.truncateTitle($('#cs-title-'+el.id));
			};
			
			this.each (
				function(){ initSite(this); }
			);

		};
			// default values
			$.fn.slideshowSite.defaults = {	
				width: 565, // width of slider panel
				height: 290, // height of slider panel
				iWidth: 669, // width of image
				iHeight: 302, // height of image
				spw: 7, // squares per width
				sph: 5, // squares per height
				delay: 10000, // delay between images in ms
				sDelay: 1000, // delay fading
				opacity: 0.7, // opacity of title and navigation
				titleSpeed: 1000, // speed of title appereance in ms
				effect: '', // random, swirl, rain, straight
				navigation: true, // prev next and buttons
				links : true, // show images as links 
				hoverPause: true // pause on hover		
			};	

		$.fn.bioTeam = $.fn.BioTeam = function(options){
			
			init = function(el){
				var imagesCats			= new Array();
				images[el.id]			= new Array();
				titles[el.id]			= new Array();
				contents[el.id]			= new Array();
				category[el.id]			= new Array();
				categoryLength[el.id]	= new Array();
				currentCategory[el.id]	= 0;
				current[el.id]			= 0;
				count					= 0;

				params[el.id] = $.extend({}, $.fn.bioTeam.defaults, options);

				// create images, links and titles arrays
				$.each($('#'+el.id+' li h3'), function(j,item2){
					var tmp_cat = $(item2).text().split(new RegExp(';'));
					
					if (tmp_cat.length > 1)
						categoryLength[el.id][j] = new Array(tmp_cat[1], ((443 - parseInt(tmp_cat[1])) + 211), (((443 - parseInt(tmp_cat[1])) + 211) - 16));
					else
						categoryLength[el.id][j] = new Array('443', '211', '195');
					category[el.id][j] = tmp_cat[0];

					$.each($(item2).next().find('li h4'), function(i,item) {
						titles[el.id][count] 	= $(item) ? $(item).html() : '';
						images[el.id][count] 	= $(item).next().is('img') ? $(item).next().attr('src') : '';
						contents[el.id][count] 	= $(item).next().next().is('div') ? $(item).next().next().html() : '';
						imagesCats[count] = j;
						count++;
					});
				});
				$('#'+el.id+' ul').hide();

				if (location.hash.length > 0 && parseInt(location.hash.slice(1)) == 4) {
					$('#coda-slider-1').css('height', '334px');
				}

				// set structure
				var tmp_avatar = '';
				var tmp_categories_listing = '';
				for (cat = 0; cat < category[el.id].length; cat++) {
					tmp_categories_listing += '<li>'+(cat == 0 ? '' : ' | ')+'<a '+(cat == 0 ? 'class="selected"' : '')+' rel="'+cat+'" title="'+category[el.id][cat]+'" href="javascript:void();">'+category[el.id][cat]+'</a></li>';
				}
				for (i = 0; i < images[el.id].length; i++) {
					tmp_avatar += '<li class="bteam-cat-'+imagesCats[i]+' '+(i == 0 ? ' selected' : '')+'"><img alt="'+titles[el.id][i]+'" rel="'+i+'" src="'+images[el.id][i]+'" /></li>';
				}
				$('#'+el.id).append('<div id="bteam-left-'+el.id+'" class="bteam-left" style="width: '+categoryLength[el.id][0][0]+'px;" style="width: '+categoryLength[el.id][0][0]+'px;"><ul id="bteam-categories-'+el.id+'" class="bteam-categories">'+tmp_categories_listing+'</ul><div class="clear"></div><div id="bteam-avatars-'+el.id+'" class="bteam-avatars"><ul>'+tmp_avatar+'</ul></div></div><div id="bteam-right-'+el.id+'" class="bteam-right" style="width: '+categoryLength[el.id][0][1]+'px;"><div id="bteam-right2-'+el.id+'" class="bteam-right2"><h2 id="bteam-title-'+el.id+'" style="width: '+categoryLength[el.id][0][2]+'px;">'+titles[el.id][0]+'</h2><div class="bteam-presentation biois-content" id="bteam-presentation-'+el.id+'" style="width: '+categoryLength[el.id][0][2]+'px;">'+contents[el.id][0]+'</div></div></div><div class="clear"></div><div id="bteam-name-'+el.id+'" class="bteam-name" style="width: '+categoryLength[el.id][0][0]+'px;"></div>');
				
				$.reloadScroll(el);
				
				//Show only avatars from the first category
				for (cat = 0; cat < category[el.id].length; cat++) {
					if (cat != currentCategory[el.id]) {
						$('li.bteam-cat-'+cat).css({'display' : 'none'});
					}
				}
				
				//Function on hover
				$('#bteam-avatars-'+el.id+' li').hover(function() {
					//$('#bteam-avatars-'+el.id+' li.selected').removeClass('selected');
					//$(this).addClass('selected');
					$('#bteam-name-'+el.id).text(titles[el.id][$(this).find('img').attr('rel')]);
				}, function() {
					/*if ($(this).find('img').attr('rel') != current[el.id])
						$(this).removeClass('selected');*/
					$('#bteam-name-'+el.id).text('');
				});
				
				//Function to select a person
				$('#bteam-avatars-'+el.id+' li').click(function() {
					$('#bteam-avatars-'+el.id+' li.selected').removeClass('selected');
					current[el.id] = $(this).find('img').attr('rel');
					$('#bteam-title-'+el.id).text(titles[el.id][current[el.id]]);
					$('#bteam-presentation-'+el.id).html(contents[el.id][current[el.id]]);
					$(this).addClass('selected');
					
					$.reloadScroll(el);
				});
				
				//Function to select a category
				$('#bteam-categories-'+el.id+' li a').click(function() {
					if ($(this).attr('rel') == currentCategory[el.id])
						return;

					$('#bteam-categories-'+el.id+' li a.selected').removeClass('selected');

					currentCategory[el.id] = $(this).attr('rel');
					
					for (cat = 0; cat < category[el.id].length; cat++) {
						if (cat != currentCategory[el.id]) {
							$('li.bteam-cat-'+cat).css({'display' : 'none'});
						}
					}

					$('li.bteam-cat-'+currentCategory[el.id]).css({'display' : 'inline'});
					$(this).addClass('selected');
					
					//Select the first avatar
					$('li.bteam-cat-'+currentCategory[el.id]+':first').each(function(i, item) {
						$('#bteam-avatars-'+el.id+' li.selected').removeClass('selected');
						current[el.id] = $(item).find('img').attr('rel');
						$('#bteam-title-'+el.id).text(titles[el.id][current[el.id]]);
						$('#bteam-presentation-'+el.id).html(contents[el.id][current[el.id]]);
						$(item).addClass('selected');
						
						$.reloadScroll(el);
					});
					
					//Change width
					//alert(categoryLength[el.id][currentCategory[el.id]][1]+'px');
					$('#bteam-left-'+el.id+', #bteam-name-'+el.id).css('width', categoryLength[el.id][currentCategory[el.id]][0]+'px');
					$('#bteam-right-'+el.id).css('width', categoryLength[el.id][currentCategory[el.id]][1]+'px');
					//$('#bteam-right2-'+el.id).css('width', categoryLength[el.id][currentCategory[el.id]][1]+'px');
					$('#bteam-title-'+el.id+', #bteam-presentation-'+el.id).css('width', categoryLength[el.id][currentCategory[el.id]][2]+'px');
					$.reloadScroll(el);
				});
			},
			
			$.reloadScroll = function(el) {
				if(!jQuery.browser.msie || parseInt(jQuery.browser.version) >= 7) {
					$('#bteam-avatars-'+el.id+', #bteam-right2-'+el.id).jScrollPane({
						showArrows: true
					});
				}
			}

			this.each (
				function(){ init(this); }
			);

		};
			// default values
			$.fn.bioTeam.defaults = {	
				width: 565, // width of slider panel
				height: 290, // height of slider panel
				iWidth: 669, // width of image
				iHeight: 302, // height of image
				spw: 7, // squares per width
				sph: 5, // squares per height
				delay: 10000, // delay between images in ms
				sDelay: 1000, // delay fading
				opacity: 0.7, // opacity of title and navigation
				titleSpeed: 1000, // speed of title appereance in ms
				effect: '', // random, swirl, rain, straight
				navigation: true, // prev next and buttons
				links : true, // show images as links 
				hoverPause: true, // pause on hover
				pause: false // pause
			};	

})(jQuery);

/*(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;
	
})(jQuery);*/


/**
 * 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();	// order of square appereance
			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);
						
			// create images, links and titles arrays
			$.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();
			});			
			

			// set panel
			$(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+"' />");

			// create img
			$('#'+el.id).append("<img id='cs-img-"+el.id+"' src='"+images[el.id][0]+"' />");
			
			// create title bar
			$('#'+el.id).append("<div class='cs-title' id='cs-title-"+el.id+"'></div>");
						
			$.setFields(el);
			
			if(params[el.id].navigation)
				$.setNavigation(el);
			
			$.transition(el,0);
			$.transitionCall(el);
				
		}
		
		// squares positions
		$.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>");
								
					// positioning squares
					$("#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);
			
		}
		
		// transitions
		$.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]]+')' });
			$("#cs-img-"+el.id).src = 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]++;
			
		};
		
		// navigation
		$.setNavigation = function(el){
			// create prev and next 
			$(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'>prev</a>");
			$('#cs-navigation-'+el.id).append("<a href='#' id='cs-next-"+el.id+"' class='cs-next'>next</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() });
		
			// image buttons
			$("<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'
				
			});
			
				
		}




		// effects
		$.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();
			}

		}

			
		// shuffle array function
		$.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 effect by milos popovic
		$.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 effect
		$.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 effect
		$.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++;
				}
				
			}
		}

		$.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); }
	);
	

	};
	
	
	// default values
	$.fn.coinslider.defaults = {	
		width: 565, // width of slider panel
		height: 290, // height of slider panel
		spw: 7, // squares per width
		sph: 5, // squares per height
		delay: 3000, // delay between images in ms
		sDelay: 30, // delay beetwen squares in ms
		opacity: 0.7, // opacity of title and navigation
		titleSpeed: 500, // speed of title appereance in ms
		effect: '', // random, swirl, rain, straight
		navigation: true, // prev next and buttons
		links : true, // show images as links 
		hoverPause: true // pause on hover		
	};	
	
})(jQuery);
	
