/*
 * 	Easy Slider - jQuery plugin
 *	written by Alen Grakalic
 *	http://cssglobe.com/post/3783/jquery-plugin-easy-image-or-content-slider
 *
 *	Copyright (c) 2009 Alen Grakalic (http://cssglobe.com)
 *	Dual licensed under the MIT (MIT-LICENSE.txt)
 *	and GPL (GPL-LICENSE.txt) licenses.
 *
 *	Built for jQuery library
 *	http://jquery.com
 *
 */

/*
 *	markup example for $("#images").easySlider();
 *
 * 	<div id="images">
 *		<ul>
 *			<li><img src="images/01.jpg" alt="" /></li>
 *			<li><img src="images/02.jpg" alt="" /></li>
 *			<li><img src="images/03.jpg" alt="" /></li>
 *			<li><img src="images/04.jpg" alt="" /></li>
 *			<li><img src="images/05.jpg" alt="" /></li>
 *		</ul>
 *	</div>
 *
 */

(function($) {

	$.fn.easySlider = function(options){

	  var options = $.extend(defaults, options);
	  var count = options.count;
	  var current = options.current;

	  var cwidth = document.documentElement.clientWidth;
	  var cfirst = document.getElementById('first');
	  var prevBtn_am = document.getElementById('prevBtn_am');
	  var nextBtn_am = document.getElementById('nextBtn_am');

	  var fshowsize = 1000;
	  var sideshow = 172;
	  var margin = Math.round((cwidth - fshowsize) / 2);
	  var cpos = Math.round(cwidth * 0.26);

	  var flag = 1;

		if (current<=0)
			$('a','#prevBtn').hide(),
			prevBtn_am.innerHTML = ' ';
		else
			prevBtn_am.innerHTML = current;

		if ((current+1) >= count)
			$('a','#nextBtn').hide(),
			nextBtn_am.innerHTML = ' ';
		else
			nextBtn_am.innerHTML = count-current-1;

	  for (var i=0; i<=count; i++) {
		  if (i!=current) {
			  $('#hide'+i).hide();
		  }
	  }
		// default configuration properties
		var defaults = {
			prevId: 		'prevBtn',
			prevText: 		'Previous',
			nextId: 		'nextBtn',
			nextText: 		'Next',
			orientation:	'', //  'vertical' is optional;
			speed: 			800
		};

		return this.each(function() {
			obj = $(this);

			var s = $("li", obj).length;
			var w = obj.width();
			var h = obj.height();
			var ts = s-1;
			var t = current;

			var options = $.extend(defaults, options);
			var vertical = (options.orientation == 'vertical');
			$("li", obj).css('margin-left',margin);
			cfirst.style.marginLeft = cpos + 'px';

			$("ul", obj).css('width',s*w);
			if(!vertical) $("li", obj).css('float','left');

			if (flag = 1) {
					p = (current*(750+margin)*-1);
					$("ul",obj).animate({ marginLeft: p });
				/*	t = current;*/
				flag = 0;
			}
			
			$("a","#"+options.nextId).click(function(){
				animate("next");
				if (t>=ts) $(this).fadeOut();
				$("a","#"+options.prevId).fadeIn();
			});

			$("a","#"+options.prevId).click(function(){
				animate("prev");
				if (t<=0) $(this).fadeOut();
				$("a","#"+options.nextId).fadeIn();
			});

			function animate(dir){
				if(dir == "next"){
					t = (t>=ts) ? ts : t+1;
				} else {
					t = (t<=0) ? 0 : t-1;
				};
				if(!vertical) {
					p = (t*(750+margin)*-1);
					if (t==-1) p = 577+cpos;
					$("ul",obj).animate(
						{ marginLeft: p },
						dohideshow
					);

				} else {
					p = (t*h*-1);
					$("ul",obj).animate(
						{ marginTop: p },
						options.speed.
						dohideshow
					);
				}
			};

				function dohideshow() {
					if ((count-t-1)==0)
						nextBtn_am.innerHTML = ' ';
					else
						nextBtn_am.innerHTML = count-t-1;

					if (t==0)
						prevBtn_am.innerHTML = ' ';
					else
						prevBtn_am.innerHTML = t;

					for (var i=0; i<=count; i++) {
						if (i==(t)) {
							$('#hide'+i).fadeIn();
		  				} else {
							$('#hide'+i).fadeOut();
						}
					}
				}
		});
	};
})(jQuery);
