(function($){   
	$.fn.zinc_slide = function(zinc_slidearray, zinc_slidewait, zinc_slidetransit, zinc_slidebase, zinc_slidebuttons, zinc_slideoverlay, zinc_slidedesc) {  
		if ( typeof zinc_slidearray == "undefined") {
			zinc_slidearray = new array();
   		}
		if ( typeof zinc_slidetransit == "undefined" || zinc_slidetransit < 1) {
			zinc_slidetransit = 300;
   		}
		if ( typeof zinc_slidewait == "undefined" || zinc_slidewait < 1) {
			zinc_slidewait = 1000;
   		}
		if ( typeof zinc_slidebase == "undefined" || zinc_slidebase < 1) {
			zinc_slidebase = "";
   		} 
		if ( typeof zinc_slidebuttons == "undefined" || zinc_slidebuttons < 1) {
			zinc_slidebuttons = 0;
   		}
		if ( typeof zinc_slideoverlay == "undefined" || zinc_slideoverlay < 1) {
			zinc_slideoverlay = 0;
   		}
		if ( typeof zinc_slidedesc == "undefined" || zinc_slidedesc < 1) {
			zinc_slidedesc = 0;
   		}
		
		return this.each(function() {
			zinc_slidecurrentbox = 0;
			zinc_slidecurrentimage = 0;
			zinc_slideinvoke = 0;
			zinc_slideinit = 0;
			zinc_slideanimating = 0;
			zinc_slidetotal = zinc_slidearray.length;
			zinc_slidehtml = '<div id="zinc_slideholder" style="width:100%; height: 100%; float: left; position: relative: top: 0px; left: 0px; overflow: hidden;">';
				zinc_slidehtml += '<div id="zinc_slidemover" style="width: 200%; height: 100%; float: left; position: absolute; top: 0px; left: 0px;">';
					zinc_slidehtml += '<div style="width: 50%; height: 100%; float: left; position: absolute; top: 0px; left: 0px;" id="zinc_slidebox_0"></div>';
					zinc_slidehtml += '<div style="width: 50%; height: 100%; float: left; position: absolute; top: 0px; left: 0px;" id="zinc_slidebox_1"></div>';
				zinc_slidehtml += '</div>';
				
				if(zinc_slideoverlay == 1){
					zinc_slidehtml += '<div class="zinc_slideoverlay"></div>';
				}
				if(zinc_slidebuttons == 1){
					zinc_slidehtml += '<div class="zinc_slidebuttons">';
					for (zn=0;zn<zinc_slidetotal;zn++){
						zinc_slidehtml += '<a href="javascript:void(0)" class="zinc_slidebutton" rel="zinc_slideTO_'+zn+'"></a>';
					}
					zinc_slidehtml += '</div>';
				}
			zinc_slidehtml += '</div>';
			$(this).css('overflow','hidden');
			$(this).html(zinc_slidehtml);
			$('.zinc_slidebutton').click(function() {
				zinc_nr = $(this).attr('rel').substring(13);
				zinc_invoke(zinc_nr);
			});
			if(zinc_slidetotal > 0){
				zinc_slideload();
			}
		}); 
		
		function zinc_invoke(zinc_nr){
			if(zinc_slideanimating == 0){
				if(zinc_slidecurrentimage == 0){
					zinc_slidelast = zinc_slidetotal
				} else {
					zinc_slidelast = zinc_slidecurrentimage-1;
				}
				if(zinc_slidelast > zinc_nr){
					zinc_slideinvoke = 1;
				}
				if(zinc_slidelast != zinc_nr){
					if ( typeof zinc_slidetime !== "undefined") {
						clearTimeout(zinc_slidetime);
					}
					zinc_slidecurrentimage = zinc_nr;
					zinc_slideload();
				}
			}
		}
		
		function zinc_slideload() {
			if ( typeof zinc_slidetime !== "undefined") {
				clearTimeout(zinc_slidetime);
			}
			zinc_slideimageNow = zinc_slidebase+'/'+zinc_slidearray[zinc_slidecurrentimage];
			zinc_slideimage = new Image();
			$(zinc_slideimage).attr("src",zinc_slideimageNow).load(function(){												
				if(zinc_slidebuttons == 1){
					zinc_slideButtonAct();
				}
				zinc_slidecurrentimage++;
				if(zinc_slidecurrentimage >= zinc_slidetotal){
					zinc_slidecurrentimage = 0;
				}
				zinc_slideToBox();
			});
		}
		
		function zinc_slideButtonAct(){
			$('.zinc_slidebutton').removeClass('zinc_slidebuttonActive');
			$('.zinc_slidebutton[rel="zinc_slideTO_'+zinc_slidecurrentimage+'"]').addClass('zinc_slidebuttonActive');
		}
		
		function zinc_slideToBox(){
			$('#zinc_slidebox_'+zinc_slidecurrentbox).css('display','none');
			$('#zinc_slidebox_'+zinc_slidecurrentbox).html(zinc_slideimage);
			if(zinc_slidecurrentbox == 0){
				zinc_slidenextbox = 1;	
			} else {
				zinc_slidenextbox = 0;
			}
			if(zinc_slideinit == 0){
				zinc_slideinit = 1;	
				zinc_slideFadein();
			} else {
				if(zinc_slideinvoke == 1){
					zinc_slideinvoke = 0;
					zinc_slideRight();
				} else {
					zinc_slideLeft();
				}
			}
			if(zinc_slidedesc == 1){
				zinc_slideSetDesc();
			}
		}
		
		function zinc_slideSetDesc(){
			zinc_showdesc = zinc_sliderDescArray[zinc_slidecurrentimage];
			
			$('#zincdesc').slideUp(zinc_slidetransit,function(){
				$('#zincdesc').html(zinc_showdesc);
				Cufon.refresh();
				$('#zincdesc').slideDown(zinc_slidetransit);
			});
			
		}
		
		function zinc_slideFadein(){
			$('#zinc_slidebox_'+zinc_slidenextbox).css('display','none');
			$('#zinc_slidebox_'+zinc_slidecurrentbox).fadeIn(zinc_slidetransit);
			zinc_slidetimer();
		}
		
		function zinc_slideRight(){
			$('#zinc_slidebox_'+zinc_slidecurrentbox).css('left','-50%');
			$('#zinc_slidebox_'+zinc_slidecurrentbox).css('display','block');
			$('#zinc_slidemover').css('left','0');
			zinc_slideanimating = 1;
			$('#zinc_slidemover').animate({
				left: '100%'
			}, zinc_slidetransit, 'linear', function() {
				$('#zinc_slidemover').css('left','0');
				$('#zinc_slidebox_'+zinc_slidecurrentbox).css('left','0');
				$('#zinc_slidebox_'+zinc_slidenextbox).css('display','none');
				zinc_slideanimating = 0;
				zinc_slidetimer();	
			});
		}
		
		function zinc_slideLeft(){
			$('#zinc_slidebox_'+zinc_slidecurrentbox).css('left','50%');
			$('#zinc_slidebox_'+zinc_slidecurrentbox).css('display','block');
			$('#zinc_slidemover').css('left','0');
			zinc_slideanimating = 1;
			$('#zinc_slidemover').animate({
				left: '-100%'
			}, zinc_slidetransit, 'linear', function() {
				$('#zinc_slidemover').css('left','0');
				$('#zinc_slidebox_'+zinc_slidecurrentbox).css('left','0');
				$('#zinc_slidebox_'+zinc_slidenextbox).css('display','none');
				zinc_slideanimating = 0;
				zinc_slidetimer();	
			});
		}
		
		function zinc_slidetimer(){
			if ( typeof zinc_slidetime !== "undefined") {
				clearTimeout(zinc_slidetime);
			}
			if(zinc_slidetotal > 1){
				zinc_slidecurrentbox = zinc_slidenextbox;
				zinc_slidetime = setTimeout(function(){
					zinc_slideload();
				}, zinc_slidewait); 
			}
		}
			
		
		
	};   
})(jQuery);  

