/*--------------------------- slider ----------------------------------  */



/*!

 * slideViewerPro 1.0

 * Examples and documentation at: 

 * http://www.gcmingati.net/wordpress/wp-content/lab/jquery/svwt/

 * 2009 Gian Carlo Mingati

 * Version: 1.0.2 (22-MAY-2009)

 * Dual licensed under the MIT and GPL licenses:

 * http://www.opensource.org/licenses/mit-license.php

 * http://www.gnu.org/licenses/gpl.html

 * Requires:

 * jQuery v1.3.2 or later

 * Option:

 * jQuery Timers plugin | plugins.jquery.com/project/timers (for autoslide mode)

 * 

 */





jQuery.extend( jQuery.easing, // from the jquery.easing plugin

{

	easeInOutExpo: function (x, t, b, c, d) {

		if (t==0) return b;

		if (t==d) return b+c;

		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;

		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;

	}

});



/* -------------------- from easing plugin --------------------------- */

jQuery.easing.easeInOutExpo = function (x, t, b, c, d) {

	if (t==0) return b;

	if (t==d) return b+c;

	if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;

	return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;

};



jQuery.easing.easeOutExpo =function (x, t, b, c, d) {

	return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;

};

/* [end] from easing plugin */



jQuery(function(){

  		 $(".svwp").addClass("scriptyes");

		//$("ul.list-portfolio li").css({"width":"673px"});	

		$("ul.list-portfolio li").css({"width":"auto"});

		$("ul.list-portfolio a.img").css({"border-left":"none", "border-right":"none", "border-top":"none", "border-bottom":"none", });	

   jQuery("div.slider").prepend("<div class='ldrgif' alt='loading...' ><img src='../images/loader.gif' alt='Loading'/></div>"); //change with YOUR loader image path   

		

});

var j = 0;

jQuery.fn.slideViewerPro = function(settings) {

	  settings = jQuery.extend({

			galBorderWidth: 6,

			thumbsTopMargin: 3, 

			thumbsRightMargin: 3,

			thumbsBorderWidth: 3,

			buttonsWidth: 20,

			galBorderColor: "#000000",

			thumbsBorderColor: "#d8d8d8",

			thumbsActiveBorderColor: "#000000",

			buttonsTextColor: "#000000",

			thumbsBorderOpacity: 1.0, // could be 0, 0.1 up to 1.0

			thumbsActiveBorderOpacity: 1.0, // could be 0, 0.1 up to 1.0

			easeTime: 750,

			asTimer: 4000,

			thumbs: 5,

			thumbsPercentReduction: 12,

			thumbsVis: true,

			easeFunc: "easeInOutExpo",

			leftButtonInner: "-", //could be an image "<img src='../images/larw.gif' />" or an escaped char as "&larr";

			rightButtonInner: "+", //could be an image or an escaped char as "&rarr";

			autoslide: false,

			typo: false,

			shuffle: false

		}, settings);

		

	return this.each(function(){

		function shuffle(a) {

	    var i = a.size();

	    while (--i) {

	        var j = Math.floor(Math.random() * (i));

	        var tmp = a.slice(i, i+1);

	        a.slice(j, j+1).insertAfter(tmp);

	    }

		} 

		

		var container = jQuery(this);

		(!settings.shuffle) ? null : shuffle(container.find("li"));

		container.find("div.ldrgif").remove();

		container.removeClass("scriptyes")

		container.removeClass("svwp").addClass("slideViewer");	

		container.attr("id", "svwp"+j);

		

		var pictWidth /*= container.find("img").attr("width")*/ = 'auto';		

		var pictHeight /*= container.find("img").attr("height")*/ = 'auto';		

//		var pictHeight /*= container.find("img").attr("height")*/ = '300px';		

		var pictEls = container.find("li").size();

		(pictEls >= settings.thumbs) ? null : settings.thumbs = pictEls;

		var slideViewerWidth = pictWidth*pictEls;

		var thumbsWidth = Math.round(pictWidth*settings.thumbsPercentReduction/100);

		var thumbsHeight =  Math.round(pictHeight*settings.thumbsPercentReduction/100);

		var pos = 0;

		var r_enabled = true;

		var l_enabled = true;

    container.find("ul").css("width" , slideViewerWidth)

    .wrap(jQuery("<div style='width:"+ pictWidth +"px; overflow: hidden; position: relative; top: 0; left: 0'>"));

		container.css("width" , pictWidth);

		container.css("height" , pictHeight);

		container.each(function(i) {

								

			if(settings.typo)

			{

			jQuery(this).find("img").each(function(z) {

				jQuery(this).after("<span class='typo'>"+jQuery(this).attr("alt")+"<\/span>");

			});

			}

			jQuery("#slidermenu").append("<div class='thumbSlider' id='thumbSlider" + j + "'><ul class=\"foliomenu\"><\/ul><\/div>");

						//jQuery("#slidermenu").append('nevena');

			//jQuery(this).next().after("<a href='#' class='left' id='left" + j + "'>LEFT<span>"+settings.leftButtonInner+"</span><\/a><a href='#' class='right' id='right" + j + "'>RIGHT<span>"+settings.rightButtonInner+"<\/span><\/a>");

			

			

			//jQuery("#svwp0 div").append("<a href='#' class='left' id='left" + j + "'>LEFT<span>"+settings.leftButtonInner+"</span><\/a><a href='#' class='right' id='right" + j + "'>RIGHT<span>"+settings.rightButtonInner+"<\/span><\/a>");

			

			listcounter = 1;

			jQuery(this).find("li").each(function(n) { 

						jQuery("div#thumbSlider" + j + " ul").append("<li id=\"link"+ listcounter +"\"><a title='" + jQuery(this).find("img").attr("alt") + "' href='#'>" + jQuery(this).find("img").attr("title") + "<\/a><\/li>");

				listcounter++;

			});

			

    		

			icnt = 0;



			// slide to left 

			jQuery(".slideleft").bind("click", function(e){

				e.preventDefault();

				

				playcounter = $("div#thumbSlider0 li").index(jQuery("div#thumbSlider0").find("li.active"));

				playcounter--;	

				

				/*

				if (playcounter<1)

					{

					// if there are no more slides to the left then disable button

					$(this).addClass("noslideleft");

					}

				else {$(this).removeClass("noslideleft");

				}

				*/

				if (playcounter<0)

					{

					// if there are no more slides to the left stand still

					return false;

					}



				if (playcounter>=jQuery("div#thumbSlider0 a").length)

					playcounter=0;

				

				jQuery("div#thumbSlider0").find("a").eq(playcounter).trigger("click");

			});

			

			jQuery(".slideright").bind("click", function(e){

														 

				e.preventDefault();

				playcounter = $("div#thumbSlider0 li").index(jQuery("div#thumbSlider0").find("li.active"));

					playcounter++;

				/*					

				if (playcounter>0)

					{

					$('.slideleft').removeClass("noslideleft");

					}					

				*/

				// if there are no more slides to the right go to the begining

				if (playcounter>=jQuery("div#thumbSlider0 a").length)

					playcounter=0;

				//alert("right " + playcounter);

				jQuery("div#thumbSlider0").find("a").eq(playcounter).trigger("click");

	

															   

			});			

			

			jQuery("div#thumbSlider" + j + " a").each(function(z) {			

				icnt++;		

			

				jQuery(this).bind("click", function(){



					jQuery(this).trigger("focus"); //n

					jQuery(this).parent('li').addClass('active');	

					

					

					//activeindex = $("div#thumbSlider0 li").index(jQuery("div#thumbSlider0").find("li.active")) + 2;

					jQuery(this).parent('li').parent("ul").removeClass("activelink1").removeClass("activelink2").removeClass("activelink3").removeClass("activelink4").removeClass("activelink5").addClass("active" + jQuery(this).parent('li').attr("id"));

					//jQuery(this).parent('li').parent("ul").css("border","1px solid red");

					//notvena autoplay

					if ($play)

					{

					clearInterval(autoplay);

					autoplay = setInterval(triggerClick, 5000);

					}

					jQuery(this).parent().parent().find("li").not(jQuery(this).parent('li')).removeClass('active');					

					var cnt = -(pictWidth*z);

					container.find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc);					

					return false;

				});



			});

			// shortcuts to +/- buttons

			var jQuerybtl = jQuery("a#left" + j);	

			var jQuerybtr = jQuery("a#right" + j);	

			

			// right/left 			

			jQuerybtr.bind("click", function(){

					if (r_enabled) (pictEls-pos > settings.thumbs*2 || pictEls%settings.thumbs == 0)? pos += settings.thumbs : pos += pictEls % settings.thumbs;

					r_enabled = false;

					jQuery(this).prev().prev().find("ul:not(:animated)").animate({ left: -(thumbsWidth+settings.thumbsRightMargin)*pos}, 500, settings.easeFunc, function(){authorityMixing();});					

					return false;

			});

			jQuerybtl.bind("click", function(){	

					if (l_enabled) (pictEls-pos > settings.thumbs || pictEls%settings.thumbs == 0)? pos -= settings.thumbs : pos -= pictEls % settings.thumbs;

					l_enabled = false;

					jQuery(this).prev().find("ul:not(:animated)").animate({ left: -(thumbsWidth+settings.thumbsRightMargin)*pos}, 500, settings.easeFunc, function(){authorityMixing();});			

					return false;

			});						

			

			function authorityMixing()

			{				

				//right btt

				(pos == pictEls-settings.thumbs) ? jQuerybtr.addClass("r_dis") : jQuerybtr.removeClass("r_dis");

				(pos == pictEls-settings.thumbs) ? r_enabled = false : r_enabled = true;

				//left btt

				(pos == 0) ? jQuerybtl.addClass("l_dis") : jQuerybtl.removeClass("l_dis");

				(pos == 0) ? l_enabled = false : l_enabled = true;

			}

			

			//CSS	defs @ runtime

			var tBorder = settings.thumbsBorderWidth;

			var contBorder = settings.galBorderWidth

			

			//jQuery(".slideViewer a img").css({border: "0"});

			jQuery("div#svwp"+ j + " span.typo").css({position: "absolute", margin: "0 0 0 "+(-pictWidth)+"px"});

			//jQuery("div#svwp"+ j).css({border: settings.galBorderWidth +"px solid "+settings.galBorderColor});

			

			//jQuery("div#thumbSlider" + j).css({position: "relative", left: contBorder, top: settings.thumbsTopMargin+"px", width: settings.thumbs*thumbsWidth+((settings.thumbsRightMargin*settings.thumbs)-settings.thumbsRightMargin), height: thumbsHeight, textAlign: "center", overflow: "hidden", margin: "0 auto"});

			//jQuery("div#thumbSlider" + j + " ul").css({width: (thumbsWidth*pictEls)+settings.thumbsRightMargin*pictEls, position: "relative", left: "0", top: "0"});

			//jQuery("div#thumbSlider" + j + " ul li").css({marginRight: settings.thumbsRightMargin});

					

			//jQuery("div#thumbSlider" + j).find("p.tmbrdr").css({width: (thumbsWidth-tBorder*2)+"px", height: (thumbsHeight-tBorder*2) +"px", top: -(thumbsHeight) +"px", border: settings.thumbsBorderWidth +"px solid "+settings.thumbsBorderColor, opacity: settings.thumbsBorderOpacity});			

			//jQuery("div#thumbSlider" + j + " a:first p.tmbrdr").css({borderColor: settings.thumbsActiveBorderColor, opacity: settings.thumbsActiveBorderOpacity});

			

			jQuery("div#thumbSlider" + j).find("p.tmbrdr").css({width: (thumbsWidth-tBorder*2)+"px", height: (thumbsHeight-tBorder*2) +"px", top: -(thumbsHeight) +"px", border: settings.thumbsBorderWidth +"px solid "+settings.thumbsBorderColor, opacity: settings.thumbsBorderOpacity});			

			jQuery("div#thumbSlider" + j + " li:first").addClass('active');

			

			//var rbttLeftMargin = (pictWidth/2) + (jQuery("div#thumbSlider" + j).width()/2) + settings.thumbsRightMargin + contBorder;

			//var lbttLeftMargin = (pictWidth/2) - (jQuery("div#thumbSlider" + j).width()/2) - (settings.buttonsWidth + settings.thumbsRightMargin) + contBorder;			

			//var innerImgH = jQuery("a#right" + j + " span img").attr("height");

			

			//jQuery("a#left" + j).css({display: "block", textAlign: "center", width: settings.buttonsWidth + "px" , height: thumbsHeight+"px",  margin: -(thumbsHeight-settings.thumbsTopMargin) +"px 0 0 "+lbttLeftMargin+"px", textDecoration: "none", lineHeight: thumbsHeight+"px", color: settings.buttonsTextColor});

			//jQuery("a#right" + j).css({display: "block", textAlign: "center", width: settings.buttonsWidth + "px", height: thumbsHeight+"px" , margin: -(thumbsHeight) +"px 0 0 "+rbttLeftMargin+"px", textDecoration: "none", lineHeight: thumbsHeight+"px", color: settings.buttonsTextColor});			

			//jQuery("a#left" + j + " span img").css({margin: Math.round((thumbsHeight/2)-(innerImgH/2))+"px 0 0 0"});

			//jQuery("a#right" + j + " span img").css({margin: Math.round((thumbsHeight/2)-(innerImgH/2))+"px 0 0 0"});



			authorityMixing();

	

			if(settings.autoslide){

					var i = 1;

					//alert("div#thumbSlider" + j);

					jQuery("div#thumbSlider" + j).everyTime(settings.asTimer, "asld", function() {			

		  			jQuery(this).find("a").eq(i).trigger("click");

		  			if(i == 0)

		  			{

						

						pos = 0;

						l_enabled = false;

						jQuery("div#thumbSlider" + j).find("ul:not(:animated)").animate({ left: -(thumbsWidth+settings.thumbsRightMargin)*pos}, 500, settings.easeFunc, function(){authorityMixing();});

		  			}

		  			else l_enabled = true;

		  			

						(i%settings.thumbs == 0)? jQuery(this).next().next().trigger("click") : null;

						(i < pictEls-1)?	i++ : i=0;		  			

					});		

					

					//stops autoslidemode	

					/*jQuery("a#right" + j).bind("mouseup", function(){

						jQuery(this).prev().prev().stopTime("asld");

		    		});

					jQuery("a#left" + j).bind("mouseup", function(){

						jQuery(this).prev().stopTime("asld");	

					});

					*/

					jQuery("div#thumbSlider" + j + " a").bind("mouseup", function(){

						jQuery(this).parent().parent().parent().stopTime("asld");

					});

			}

			var uiDisplay = (settings.thumbsVis)? "block":"none";

			//jQuery("div#thumbSlider" + j + ", a#left" + j + ", a#right" + j).wrapAll("<div style='width:"+ pictWidth +"px; display: "+uiDisplay+"' id='ui"+j+"'><\/div>");		// ns			

			jQuery("div#thumbSlider" + j).wrapAll("<div id='ui"+j+"'><\/div>");			

//			jQuery("div#svwp"+ j + ", div#ui" + j).wrapAll("<div style='width:"+ pictWidth +"px'><\/div>"); //ns

			

			jQuery("div#svwp"+ j).wrapAll("<div style='width:"+ pictWidth +"px'><\/div>");	

			



			

			});

			//(jQuery("div#thumbSlider" + j).width()+(settings.buttonsWidth*2) >= pictWidth)? alert("ALERT: THE THUMBNAILS SLIDER IS TOO WIDE! \nthumbsPercentReduction and/or buttonsWidth needs to be scaled down!") : null;

		j++;

  });	

};



/*----------------------------------------- timers ------------------------------------- */

jQuery.fn.extend({

	everyTime: function(interval, label, fn, times, belay) {

		return this.each(function() {

			jQuery.timer.add(this, interval, label, fn, times, belay);

		});

	},

	oneTime: function(interval, label, fn) {

		return this.each(function() {

			jQuery.timer.add(this, interval, label, fn, 1);

		});

	},

	stopTime: function(label, fn) {

		return this.each(function() {

			jQuery.timer.remove(this, label, fn);

		});

	}

});



jQuery.extend({

	timer: {

		guid: 1,

		global: {},

		regex: /^([0-9]+)\s*(.*s)?$/,

		powers: {

			// Yeah this is major overkill...

			'ms': 1,

			'cs': 10,

			'ds': 100,

			's': 1000,

			'das': 10000,

			'hs': 100000,

			'ks': 1000000

		},

		timeParse: function(value) {

			if (value == undefined || value == null)

				return null;

			var result = this.regex.exec(jQuery.trim(value.toString()));

			if (result[2]) {

				var num = parseInt(result[1], 10);

				var mult = this.powers[result[2]] || 1;

				return num * mult;

			} else {

				return value;

			}

		},

		add: function(element, interval, label, fn, times, belay) {

			var counter = 0;

			

			if (jQuery.isFunction(label)) {

				if (!times) 

					times = fn;

				fn = label;

				label = interval;

			}

			

			interval = jQuery.timer.timeParse(interval);



			if (typeof interval != 'number' || isNaN(interval) || interval <= 0)

				return;



			if (times && times.constructor != Number) {

				belay = !!times;

				times = 0;

			}

			

			times = times || 0;

			belay = belay || false;

			

			if (!element.$timers) 

				element.$timers = {};

			

			if (!element.$timers[label])

				element.$timers[label] = {};

			

			fn.$timerID = fn.$timerID || this.guid++;

			

			var handler = function() {

				if (belay && this.inProgress) 

					return;

				this.inProgress = true;

				if ((++counter > times && times !== 0) || fn.call(element, counter) === false)

					jQuery.timer.remove(element, label, fn);

				this.inProgress = false;

			};

			

			handler.$timerID = fn.$timerID;

			

			if (!element.$timers[label][fn.$timerID]) 

				element.$timers[label][fn.$timerID] = window.setInterval(handler,interval);

			

			if ( !this.global[label] )

				this.global[label] = [];

			this.global[label].push( element );

			

		},

		remove: function(element, label, fn) {

			var timers = element.$timers, ret;

			

			if ( timers ) {

				

				if (!label) {

					for ( label in timers )

						this.remove(element, label, fn);

				} else if ( timers[label] ) {

					if ( fn ) {

						if ( fn.$timerID ) {

							window.clearInterval(timers[label][fn.$timerID]);

							delete timers[label][fn.$timerID];

						}

					} else {

						for ( var fn in timers[label] ) {

							window.clearInterval(timers[label][fn]);

							delete timers[label][fn];

						}

					}

					

					for ( ret in timers[label] ) break;

					if ( !ret ) {

						ret = null;

						delete timers[label];

					}

				}

				

				for ( ret in timers ) break;

				if ( !ret ) 

					element.$timers = null;

			}

		}

	}

});



if (jQuery.browser.msie)

	jQuery(window).one("unload", function() {

		var global = jQuery.timer.global;

		for ( var label in global ) {

			var els = global[label], i = els.length;

			while ( --i )

				jQuery.timer.remove(els[i], label);

		}

	});











/* ----------------- script start ------------------------------ */

$play = true; 

//$play = false; 

 



$settings = { 

			thumbs: 2,  

			autoslide: false,  

			asTimer: 5500,  

			typo: false, 

			galBorderWidth: 0, 

			thumbsBorderOpacity: 0,  

			buttonsTextColor: "#707070", 

			buttonsWidth: 40, 

			thumbsActiveBorderOpacity: 0, 

			thumbsActiveBorderColor: "black", 

			shuffle: false, 

			easeFunc:"easeInOutExpo"

			/*easeOutExpo*/

		};

var playcounter = 1;

var autoplay; 

function triggerClick(){

	//alert('trigger click');

	//playcounter = ;

	playcounter = $("div#thumbSlider0 li").index(jQuery("div#thumbSlider0").find("li.active")) + 1;

	if (playcounter>=jQuery("div#thumbSlider0 a").length)

		playcounter=0;

	jQuery("div#thumbSlider0").find("a").eq(playcounter).trigger("click");

	playcounter++;

	}



$(window).bind("load", function() { 

	$("#ciplexpromo").css({"height":"346px", "overflow": "hidden", "position":"relative"});

	$("#navbox").css({"height":"346px", "position":"absolute"});

	

	

    if ($("div#web-design-works").length > 0)

		{

		$("div#web-design-works").before('<a href="#" class="slideleft">left</a> <a href="#" class="slideright">right</a>');

		$("div#web-design-works").slideViewerPro($settings);

		autoplay = setInterval(triggerClick, 6000);

		// stops or playes slideshow 

		$(".list-portfolio li a").bind('mouseenter',

			function(){

				if($.browser.msie){

				$(this).children("a span.shade").css('filter', 'alpha(opacity=40)');

				}

				$(this).children("a span.shade").fadeIn("slow");

				

				});

		

		$(".list-portfolio li a").bind('mouseleave',

			function(){

				$(this).children("a span.shade").fadeOut("slow");

				

				});	

		}	// if works page

		

}); 






