jQuery(document).ready(function($){

	$(".trigger").click(function(){

		$(".themes").toggle("fast");

		$(this).toggleClass("active");

		return false;

	});

});







/***************************************************

		  DROPDOWN MENU

***************************************************/

//** Smooth Navigational Menu- By Dynamic Drive DHTML code library: http://www.dynamicdrive.com

//** Script Download/ instructions page: http://www.dynamicdrive.com/dynamicindex1/ddlevelsmenu/

//** Menu created: Nov 12, 2008



//** Dec 12th, 08" (v1.01): Fixed Shadow issue when multiple LIs within the same UL (level) contain sub menus: http://www.dynamicdrive.com/forums/showthread.php?t=39177&highlight=smooth



//** Feb 11th, 09" (v1.02): The currently active main menu item (LI A) now gets a CSS class of ".selected", including sub menu items.



//** May 1st, 09" (v1.3):

//** 1) Now supports vertical (side bar) menu mode- set "orientation" to 'v'

//** 2) In IE6, shadows are now always disabled



//** July 27th, 09" (v1.31): Fixed bug so shadows can be disabled if desired.

//** Feb 2nd, 10" (v1.4): Adds ability to specify delay before sub menus appear and disappear, respectively. See showhidedelay variable below



var ddsmoothmenu={



//Specify full URL to down and right arrow images (23 is padding-right added to top level LIs with drop downs):

arrowimages: {down:[], right:[]},

transition: {overtime:150, outtime:150}, //duration of slide in/ out animation, in milliseconds

shadow: {enable:true, offsetx:5, offsety:5}, //enable shadow?

showhidedelay: {showdelay: 150, hidedelay: 150}, //set delay in milliseconds before sub menus appear and disappear, respectively



///////Stop configuring beyond here///////////////////////////



detectwebkit: navigator.userAgent.toLowerCase().indexOf("applewebkit")!=-1, //detect WebKit browsers (Safari, Chrome etc)

detectie6: document.all && !window.XMLHttpRequest,



getajaxmenu:function($, setting){ //function to fetch external page containing the panel DIVs

	var $menucontainer=$('#'+setting.contentsource[0]) //reference empty div on page that will hold menu

	$menucontainer.html("Loading Menu...")

	$.ajax({

		url: setting.contentsource[1], //path to external menu file

		async: true,

		error:function(ajaxrequest){

			$menucontainer.html('Error fetching content. Server Response: '+ajaxrequest.responseText)

		},

		success:function(content){

			$menucontainer.html(content)

			ddsmoothmenu.buildmenu($, setting)

		}

	})

},





buildmenu:function($, setting){

	var smoothmenu=ddsmoothmenu

	var $mainmenu=$("#"+setting.mainmenuid+">ul") //reference main menu UL

	$mainmenu.parent().get(0).className=setting.classname || "ddsmoothmenu"

	var $headers=$mainmenu.find("ul").parent()

	$headers.hover(

		function(e){

			$(this).children('a:eq(0)').addClass('selected')

		},

		function(e){

			$(this).children('a:eq(0)').removeClass('selected')

		}

	)

	$headers.each(function(i){ //loop through each LI header

		var $curobj=$(this).css({zIndex: 100-i}) //reference current LI header

		var $subul=$(this).find('ul:eq(0)').css({display:'block'})

		$subul.data('timers', {})

		this._dimensions={w:this.offsetWidth, h:this.offsetHeight, subulw:$subul.outerWidth(), subulh:$subul.outerHeight()}

		this.istopheader=$curobj.parents("ul").length==1? true : false //is top level header?

		$subul.css({top:this.istopheader && setting.orientation!='v'? this._dimensions.h+"px" : 0})

		$curobj.children("a:eq(0)").css(this.istopheader? {paddingRight: smoothmenu.arrowimages.down[2]} : {})

		if (smoothmenu.shadow.enable){

			this._shadowoffset={x:(this.istopheader?$subul.offset().left+smoothmenu.shadow.offsetx : this._dimensions.w), y:(this.istopheader? $subul.offset().top+smoothmenu.shadow.offsety : $curobj.position().top)} //store this shadow's offsets

			if (this.istopheader)

				$parentshadow=$(document.body)

			else{

				var $parentLi=$curobj.parents("li:eq(0)")

				$parentshadow=$parentLi.get(0).$shadow

			}

			this.$shadow=$('<div class="ddshadow'+(this.istopheader? ' toplevelshadow' : '')+'"></div>').prependTo($parentshadow).css({left:this._shadowoffset.x+'px', top:this._shadowoffset.y+'px'})  //insert shadow DIV and set it to parent node for the next shadow div

		}

		$curobj.hover(

			function(e){

				var $targetul=$subul //reference UL to reveal

				var header=$curobj.get(0) //reference header LI as DOM object

				clearTimeout($targetul.data('timers').hidetimer)

				$targetul.data('timers').showtimer=setTimeout(function(){

					header._offsets={left:$curobj.offset().left, top:$curobj.offset().top}

					var menuleft=header.istopheader && setting.orientation!='v'? 0 : header._dimensions.w

					menuleft=(header._offsets.left+menuleft+header._dimensions.subulw>$(window).width())? (header.istopheader && setting.orientation!='v'? -header._dimensions.subulw+header._dimensions.w : -header._dimensions.w) : menuleft //calculate this sub menu's offsets from its parent

					if ($targetul.queue().length<=1){ //if 1 or less queued animations

						$targetul.css({left:menuleft+"px", width:header._dimensions.subulw+'px'}).animate({height:'show',opacity:'show'}, ddsmoothmenu.transition.overtime)

						if (smoothmenu.shadow.enable){

							var shadowleft=header.istopheader? $targetul.offset().left+ddsmoothmenu.shadow.offsetx : menuleft

							var shadowtop=header.istopheader?$targetul.offset().top+smoothmenu.shadow.offsety : header._shadowoffset.y

							if (!header.istopheader && ddsmoothmenu.detectwebkit){ //in WebKit browsers, restore shadow's opacity to full

								header.$shadow.css({opacity:1})

							}

							header.$shadow.css({overflow:'', width:header._dimensions.subulw+'px', left:shadowleft+'px', top:shadowtop+'px'}).animate({height:header._dimensions.subulh+'px'}, ddsmoothmenu.transition.overtime)

						}

					}

				}, ddsmoothmenu.showhidedelay.showdelay)

			},

			function(e){

				var $targetul=$subul

				var header=$curobj.get(0)

				clearTimeout($targetul.data('timers').showtimer)

				$targetul.data('timers').hidetimer=setTimeout(function(){

					$targetul.animate({height:'hide', opacity:'hide'}, ddsmoothmenu.transition.outtime)

					if (smoothmenu.shadow.enable){

						if (ddsmoothmenu.detectwebkit){ //in WebKit browsers, set first child shadow's opacity to 0, as "overflow:hidden" doesn't work in them

							header.$shadow.children('div:eq(0)').css({opacity:0})

						}

						header.$shadow.css({overflow:'hidden'}).animate({height:0}, ddsmoothmenu.transition.outtime)

					}

				}, ddsmoothmenu.showhidedelay.hidedelay)

			}

		) //end hover

	}) //end $headers.each()

	$mainmenu.find("ul").css({display:'none', visibility:'visible'})

},



init:function(setting){

	if (typeof setting.customtheme=="object" && setting.customtheme.length==2){ //override default menu colors (default/hover) with custom set?

		var mainmenuid='#'+setting.mainmenuid

		var mainselector=(setting.orientation=="v")? mainmenuid : mainmenuid+', '+mainmenuid

		document.write('<style type="text/css">\n'

			+mainselector+' ul li a {background:'+setting.customtheme[0]+';}\n'

			+mainmenuid+' ul li a:hover {background:'+setting.customtheme[1]+';}\n'

		+'</style>')

	}

	this.shadow.enable=(document.all && !window.XMLHttpRequest)? false : this.shadow.enable //in IE6, always disable shadow

	jQuery(document).ready(function($){ //ajax menu?

		if (typeof setting.contentsource=="object"){ //if external ajax menu

			ddsmoothmenu.getajaxmenu($, setting)

		}

		else{ //else if markup menu

			ddsmoothmenu.buildmenu($, setting)

		}

	})

}



} //end ddsmoothmenu variable











/***************************************************

	     ADDITIONAL CODE FOR DROPDOWN MENU and FOR team list and For comment Reply button and for all images

***************************************************/

jQuery(document).ready(function($) {

$("div.ddsmoothmenu ul li ul li:last-child a").addClass("last");

$("div.ddsmoothmenu").attr("id","smoothmenu1");

$("div.team ul li:last-child").addClass("last");

$("a.comment-reply-link").addClass("button-color");

$(".entry_content img").addClass("imgborder");

$("#content h1, #content h2, #content h3, #content h4").addClass("primary-title");

$("h2.title").removeClass("primary-title");

});





jQuery(document).ready(function($){

ddsmoothmenu.init({

	mainmenuid: "smoothmenu1", //menu DIV id

	orientation: 'h', //Horizontal or vertical menu: Set to "h" or "v"

	classname: 'ddsmoothmenu', //class added to menu's outer DIV

	//customtheme: ["#1c5a80", "#18374a"],

	contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]

})

});













/***************************************************

	     SCROLL TO TOP JAVASCRIPT

***************************************************/	

jQuery(document).ready(function($){

    $('a[href=#wrapper]').click(function() {

    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')

        && location.hostname == this.hostname) {

            var $target = $(this.hash);

            $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');

            if ($target.length) {

                var targetOffset = $target.offset().top;

                $('html,body').animate({scrollTop: targetOffset}, 500);

                return false;

            }

        }

    });

});









/***************************************************

		TABS JAVASCRIPT

***************************************************/

jQuery(document).ready(function($) {



	//Default Action

	$(".tab_content").hide(); //Hide all content

	$("ul.tabs li:first").addClass("active").show(); //Activate first tab

	$(".tab_content:first").show(); //Show first tab content

	

	//On Click Event

	$("ul.tabs li").click(function() {

		$("ul.tabs li").removeClass("active"); //Remove any "active" class

		$(this).addClass("active"); //Add "active" class to selected tab

		$(".tab_content").hide(); //Hide all tab content

		var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content

		$(activeTab).fadeIn(); //Fade in the active content

		return false;

	});



});











/***************************************************

		ACCORDION

***************************************************/

(function($){ 

     $.fn.extend({  

         accordion: function() {       

            return this.each(function() {

				if($(this).data('accordiated'))

					return false;									

				$.each($(this).find('ul, li>div'), function(){

					$(this).data('accordiated', true);

					$(this).hide();

				});

				$.each($(this).find('a:not(.foo)'), function(){

					$(this).click(function(e){

						activate(e.target);

						return void(0);

					});

				});

				

				var active = false;

				if(location.hash)

					active = $(this).find('a[href=' + location.hash + ']')[0];

				else if($(this).find('li.current'))

					active = $(this).find('li.current a')[0]; 

				

				if(active){

					activate(active, 'toggle','parents');

					$(active).parents().show();

				}

				

				function activate(el,effect,parents){

					$(el)[(parents || 'parent')]('li').toggleClass('active').siblings().removeClass('active').children('ul, div').slideUp('fast');

					$(el).siblings('ul, div')[(effect || 'slideToggle')]((!effect)?'fast':null);

				}

				

            });

        } 

    }); 

})(jQuery);





/***************************************************

	     ADDITIONAL CODE FOR ACCORDION

***************************************************/

		jQuery(document).ready(function ($) {

			$('ul#accordion').accordion();

		});









/***************************************************

				  PORTFOLIO FILTERABLE

***************************************************/

/*

* Copyright (C) 2009 Joel Sutherland.

* Liscenced under the MIT liscense

*/

(function($) {

	$.fn.filterable = function(settings) {

		settings = $.extend({

			useHash: true,

			animationSpeed: 800,

			show: { width: 'show', opacity: 'show' },

			hide: { width: 'hide', opacity: 'hide' },

			useTags: true,

			tagSelector: '#portfolio-filter a',

			selectedTagClass: 'current',

			allTag: 'all'

		}, settings);

		

		return $(this).each(function(){

		

			/* FILTER: select a tag and filter */

			$(this).bind("filter", function( e, tagToShow ){

				if(settings.useTags){

					$(settings.tagSelector).removeClass(settings.selectedTagClass);

					$(settings.tagSelector + '[href=' + tagToShow + ']').addClass(settings.selectedTagClass);

				}

				$(this).trigger("filterportfolio", [ tagToShow.substr(1) ]);

			});

		

			/* FILTERPORTFOLIO: pass in a class to show, all others will be hidden */

			$(this).bind("filterportfolio", function( e, classToShow ){

				if(classToShow == settings.allTag){

					$(this).trigger("show");

				}else{

					$(this).trigger("show", [ '.' + classToShow ] );

					$(this).trigger("hide", [ ':not(.' + classToShow + ')' ] );

				}

				if(settings.useHash){

					location.hash = '#' + classToShow;

				}

			});

			

			/* SHOW: show a single class*/

			$(this).bind("show", function( e, selectorToShow ){

				$(this).children(selectorToShow).animate(settings.show, settings.animationSpeed);

			});

			

			/* SHOW: hide a single class*/

			$(this).bind("hide", function( e, selectorToHide ){

				$(this).children(selectorToHide).animate(settings.hide, settings.animationSpeed);	

			});

			

			/* ============ Check URL Hash ====================*/

			if(settings.useHash){

				if(location.hash != '')

					$(this).trigger("filter", [ location.hash ]);

				else

					$(this).trigger("filter", [ '#' + settings.allTag ]);

			}

			

			/* ============ Setup Tags ====================*/

			if(settings.useTags){

				$(settings.tagSelector).click(function(){

					$('#portfolio ul').trigger("filter", [ $(this).attr('href') ]);					

					$(settings.tagSelector).removeClass('current');

					$(this).addClass('current');

				});

			}

		});

	}

})(jQuery);



jQuery(document).ready(function($){	

	$('#portfolio ul').filterable();

});











/***************************************************

	     ZOOM PORTFOLIO HOVER

***************************************************/

jQuery(document).ready(function($){

	$("#portfolio a, #portfolio2 a").hover(function(){

		$(this).find("img").stop().animate({

			opacity:0.4

		}, 400);

	}, function() {

		$(this).find("img").stop().animate({

			opacity:1

		}, 400);

	});

});













/***************************************************

		FORM VALIDATION JAVASCRIPT

***************************************************/

jQuery(document).ready(function($) {

	$('form#newsletter-form').submit(function() {

		$('form#newsletter-form .error').remove();

		var hasError = false;

		$('form#newsletter-form .requiredField').each(function() {

			if(jQuery.trim($(this).val()) == '' || jQuery.trim($(this).val()) == 'Enter your name') {

            	var labelText = $(this).prev('label').text();

            	$(this).parent().append('<span class="error">Required</span>');

            	$(this).addClass('inputError');

            	hasError = true;

            } else if($(this).hasClass('email')) {

            	var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

            	if(!emailReg.test(jQuery.trim($(this).val()))) {

            		var labelText = $(this).prev('label').text();

            		$(this).parent().append('<span class="error">Invalid</span>');

            		$(this).addClass('inputError');

            		hasError = true;

            	}

            }

		});

		if(!hasError) {

			

           

            $('form#newsletter-form input.submit').fadeOut('normal', function() {

                $(this).parent().append('');

            });

			

            var formInput = $(this).serialize();

            

            var test_value = $('[name=email_n]').val()

            





            

            $.post($(this).attr('action'),formInput, function(data){

                $('form#newsletter-form').slideUp("fast", function() {

                    $(this).before("<p class='subscribe'>Thanks for subscribing to our newsletter.<br /> You'll shortly receive an email from us asking you to confirm your subscription. Please click the link in the email to confirm.</p>");

                });

            });



		}



		return false;



	});

});





jQuery(document).ready(function($) {

    $('form#contact-form').submit(function() {

        $('form#contact-form .error').remove();

        var hasError = false;

        $('form#contact-form .requiredField').each(function() {

            if(jQuery.trim($(this).val()) == '' || jQuery.trim($(this).val()) == 'Enter your name') {

                var labelText = $(this).prev('label').text();

                $(this).parent().append('<span class="error">Required</span>');

                $(this).addClass('inputError');

                hasError = true;

            } else if($(this).hasClass('email')) {

                var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

                if(!emailReg.test(jQuery.trim($(this).val()))) {

                    var labelText = $(this).prev('label').text();

                    $(this).parent().append('<span class="error">Invalid</span>');

                    $(this).addClass('inputError');

                    hasError = true;

                }

            }

        });

        if(!hasError) {

            

            $('form#contact-form input.submit').fadeOut('normal', function() {

                $(this).parent().append('');

            });

            

            var formInput = $(this).serialize();

            

            var test_value = $('[name=email_n]').val()

            

            



            

            $.post($(this).attr('action'),formInput, function(data){

                $('form#contact-form').slideUp("fast", function() {

                    $(this).before('<p class="success">Thanks!<br /> Your message was successfully sent. We will contact you as soon as possible.</p>');                    

                });

            });





        }



        return false;



    });

});















/***************************************************

		HOVER COLOR ANIMATION

***************************************************/

/*

 * jQuery Color Animations

 * Copyright 2007 John Resig

 * Released under the MIT and GPL licenses.

 */



(function(jQuery){



	// We override the animation for all of these color styles

	jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){

		jQuery.fx.step[attr] = function(fx){

			if ( fx.state == 0 ) {

				fx.start = getColor( fx.elem, attr );

				fx.end = getRGB( fx.end );

			}



			fx.elem.style[attr] = "rgb(" + [

				Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),

				Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),

				Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)

			].join(",") + ")";

		}

	});



	// Color Conversion functions from highlightFade

	// By Blair Mitchelmore

	// http://jquery.offput.ca/highlightFade/



	// Parse strings looking for color tuples [255,255,255]

	function getRGB(color) {

		var result;



		// Check if we're already dealing with an array of colors

		if ( color && color.constructor == Array && color.length == 3 )

			return color;



		// Look for rgb(num,num,num)

		if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))

			return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];



		// Look for rgb(num%,num%,num%)

		if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))

			return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];



		// Look for #a0b1c2

		if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))

			return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];



		// Look for #fff

		if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))

			return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];



		// Otherwise, we're most likely dealing with a named color

		return colors[jQuery.trim(color).toLowerCase()];

	}

	

	function getColor(elem, attr) {

		var color;



		do {

			color = jQuery.curCSS(elem, attr);



			// Keep going until we find an element that has color, or we hit the body

			if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") )

				break; 



			attr = "backgroundColor";

		} while ( elem = elem.parentNode );



		return getRGB(color);

	};

	

	// Some named colors to work with

	// From Interface by Stefan Petre

	// http://interface.eyecon.ro/



	var colors = {

		aqua:[0,255,255],

		azure:[240,255,255],

		beige:[245,245,220],

		black:[0,0,0],

		blue:[0,0,255],

		brown:[165,42,42],

		cyan:[0,255,255],

		darkblue:[0,0,139],

		darkcyan:[0,139,139],

		darkgrey:[169,169,169],

		darkgreen:[0,100,0],

		darkkhaki:[189,183,107],

		darkmagenta:[139,0,139],

		darkolivegreen:[85,107,47],

		darkorange:[255,140,0],

		darkorchid:[153,50,204],

		darkred:[139,0,0],

		darksalmon:[233,150,122],

		darkviolet:[148,0,211],

		fuchsia:[255,0,255],

		gold:[255,215,0],

		green:[0,128,0],

		indigo:[75,0,130],

		khaki:[240,230,140],

		lightblue:[173,216,230],

		lightcyan:[224,255,255],

		lightgreen:[144,238,144],

		lightgrey:[211,211,211],

		lightpink:[255,182,193],

		lightyellow:[255,255,224],

		lime:[0,255,0],

		magenta:[255,0,255],

		maroon:[128,0,0],

		navy:[0,0,128],

		olive:[128,128,0],

		orange:[255,165,0],

		pink:[255,192,203],

		purple:[128,0,128],

		violet:[128,0,128],

		red:[255,0,0],

		silver:[192,192,192],

		white:[255,255,255],

		yellow:[255,255,0]

	};

	

})(jQuery);

















/***************************************************

	   GALLERY CAROUSEL

***************************************************/

/*!

 * jCarousel - Riding carousels with jQuery

 *   http://sorgalla.com/jcarousel/

 *

 * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com)

 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)

 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.

 *

 * Built on top of the jQuery library

 *   http://jquery.com

 *

 * Inspired by the "Carousel Component" by Bill Scott

 *   http://billwscott.com/carousel/

 */



(function($){$.fn.jcarousel=function(o){if(typeof o=='string'){var instance=$(this).data('jcarousel'),args=Array.prototype.slice.call(arguments,1);return instance[o].apply(instance,args);}else

return this.each(function(){$(this).data('jcarousel',new $jc(this,o));});};var defaults={vertical:false,start:1,offset:1,size:null,scroll:3,visible:null,animation:'normal',easing:'swing',auto:0,wrap:null,initCallback:null,reloadCallback:null,itemLoadCallback:null,itemFirstInCallback:null,itemFirstOutCallback:null,itemLastInCallback:null,itemLastOutCallback:null,itemVisibleInCallback:null,itemVisibleOutCallback:null,buttonNextHTML:'<div></div>',buttonPrevHTML:'<div></div>',buttonNextEvent:'click',buttonPrevEvent:'click',buttonNextCallback:null,buttonPrevCallback:null};$.jcarousel=function(e,o){this.options=$.extend({},defaults,o||{});this.locked=false;this.container=null;this.clip=null;this.list=null;this.buttonNext=null;this.buttonPrev=null;this.wh=!this.options.vertical?'width':'height';this.lt=!this.options.vertical?'left':'top';var skin='',split=e.className.split(' ');for(var i=0;i<split.length;i++){if(split[i].indexOf('jcarousel-skin')!=-1){$(e).removeClass(split[i]);skin=split[i];break;}}if(e.nodeName=='UL'||e.nodeName=='OL'){this.list=$(e);this.container=this.list.parent();if(this.container.hasClass('jcarousel-clip')){if(!this.container.parent().hasClass('jcarousel-container'))this.container=this.container.wrap('<div></div>');this.container=this.container.parent();}else if(!this.container.hasClass('jcarousel-container'))this.container=this.list.wrap('<div></div>').parent();}else{this.container=$(e);this.list=this.container.find('ul,ol').eq(0);}if(skin!=''&&this.container.parent()[0].className.indexOf('jcarousel-skin')==-1)this.container.wrap('<div class=" '+skin+'"></div>');this.clip=this.list.parent();if(!this.clip.length||!this.clip.hasClass('jcarousel-clip'))this.clip=this.list.wrap('<div></div>').parent();this.buttonNext=$('.jcarousel-next',this.container);if(this.buttonNext.size()==0&&this.options.buttonNextHTML!=null)this.buttonNext=this.clip.after(this.options.buttonNextHTML).next();this.buttonNext.addClass(this.className('jcarousel-next'));this.buttonPrev=$('.jcarousel-prev',this.container);if(this.buttonPrev.size()==0&&this.options.buttonPrevHTML!=null)this.buttonPrev=this.clip.after(this.options.buttonPrevHTML).next();this.buttonPrev.addClass(this.className('jcarousel-prev'));this.clip.addClass(this.className('jcarousel-clip')).css({overflow:'hidden',position:'relative'});this.list.addClass(this.className('jcarousel-list')).css({overflow:'hidden',position:'relative',top:0,left:0,margin:0,padding:0});this.container.addClass(this.className('jcarousel-container')).css({position:'relative'});var di=this.options.visible!=null?Math.ceil(this.clipping()/this.options.visible):null;var li=this.list.children('li');var self=this;if(li.size()>0){var wh=0,i=this.options.offset;li.each(function(){self.format(this,i++);wh+=self.dimension(this,di);});this.list.css(this.wh,wh+'px');if(!o||o.size===undefined)this.options.size=li.size();}this.container.css('display','block');this.buttonNext.css('display','block');this.buttonPrev.css('display','block');this.funcNext=function(){self.next();};this.funcPrev=function(){self.prev();};this.funcResize=function(){self.reload();};if(this.options.initCallback!=null)this.options.initCallback(this,'init');if($.browser.safari){this.buttons(false,false);$(window).bind('load.jcarousel',function(){self.setup();});}else

this.setup();};var $jc=$.jcarousel;$jc.fn=$jc.prototype={jcarousel:'0.2.4'};$jc.fn.extend=$jc.extend=$.extend;$jc.fn.extend({setup:function(){this.first=null;this.last=null;this.prevFirst=null;this.prevLast=null;this.animating=false;this.timer=null;this.tail=null;this.inTail=false;if(this.locked)return;this.list.css(this.lt,this.pos(this.options.offset)+'px');var p=this.pos(this.options.start);this.prevFirst=this.prevLast=null;this.animate(p,false);$(window).unbind('resize.jcarousel',this.funcResize).bind('resize.jcarousel',this.funcResize);},reset:function(){this.list.empty();this.list.css(this.lt,'0px');this.list.css(this.wh,'10px');if(this.options.initCallback!=null)this.options.initCallback(this,'reset');this.setup();},reload:function(){if(this.tail!=null&&this.inTail)this.list.css(this.lt,$jc.intval(this.list.css(this.lt))+this.tail);this.tail=null;this.inTail=false;if(this.options.reloadCallback!=null)this.options.reloadCallback(this);if(this.options.visible!=null){var self=this;var di=Math.ceil(this.clipping()/this.options.visible),wh=0,lt=0;$('li',this.list).each(function(i){wh+=self.dimension(this,di);if(i+1<self.first)lt=wh;});this.list.css(this.wh,wh+'px');this.list.css(this.lt,-lt+'px');}this.scroll(this.first,false);},lock:function(){this.locked=true;this.buttons();},unlock:function(){this.locked=false;this.buttons();},size:function(s){if(s!=undefined){this.options.size=s;if(!this.locked)this.buttons();}return this.options.size;},has:function(i,i2){if(i2==undefined||!i2)i2=i;if(this.options.size!==null&&i2>this.options.size)i2=this.options.size;for(var j=i;j<=i2;j++){var e=this.get(j);if(!e.length||e.hasClass('jcarousel-item-placeholder'))return false;}return true;},get:function(i){return $('.jcarousel-item-'+i,this.list);},add:function(i,s){var e=this.get(i),old=0,add=0;if(e.length==0){var c,e=this.create(i),j=$jc.intval(i);while(c=this.get(--j)){if(j<=0||c.length){j<=0?this.list.prepend(e):c.after(e);break;}}}else

old=this.dimension(e);e.removeClass(this.className('jcarousel-item-placeholder'));typeof s=='string'?e.html(s):e.empty().append(s);var di=this.options.visible!=null?Math.ceil(this.clipping()/this.options.visible):null;var wh=this.dimension(e,di)-old;if(i>0&&i<this.first)this.list.css(this.lt,$jc.intval(this.list.css(this.lt))-wh+'px');this.list.css(this.wh,$jc.intval(this.list.css(this.wh))+wh+'px');return e;},remove:function(i){var e=this.get(i);if(!e.length||(i>=this.first&&i<=this.last))return;var d=this.dimension(e);if(i<this.first)this.list.css(this.lt,$jc.intval(this.list.css(this.lt))+d+'px');e.remove();this.list.css(this.wh,$jc.intval(this.list.css(this.wh))-d+'px');},next:function(){this.stopAuto();if(this.tail!=null&&!this.inTail)this.scrollTail(false);else

this.scroll(((this.options.wrap=='both'||this.options.wrap=='last')&&this.options.size!=null&&this.last==this.options.size)?1:this.first+this.options.scroll);},prev:function(){this.stopAuto();if(this.tail!=null&&this.inTail)this.scrollTail(true);else

this.scroll(((this.options.wrap=='both'||this.options.wrap=='first')&&this.options.size!=null&&this.first==1)?this.options.size:this.first-this.options.scroll);},scrollTail:function(b){if(this.locked||this.animating||!this.tail)return;var pos=$jc.intval(this.list.css(this.lt));!b?pos-=this.tail:pos+=this.tail;this.inTail=!b;this.prevFirst=this.first;this.prevLast=this.last;this.animate(pos);},scroll:function(i,a){if(this.locked||this.animating)return;this.animate(this.pos(i),a);},pos:function(i){var pos=$jc.intval(this.list.css(this.lt));if(this.locked||this.animating)return pos;if(this.options.wrap!='circular')i=i<1?1:(this.options.size&&i>this.options.size?this.options.size:i);var back=this.first>i;var f=this.options.wrap!='circular'&&this.first<=1?1:this.first;var c=back?this.get(f):this.get(this.last);var j=back?f:f-1;var e=null,l=0,p=false,d=0,g;while(back?--j>=i:++j<i){e=this.get(j);p=!e.length;if(e.length==0){e=this.create(j).addClass(this.className('jcarousel-item-placeholder'));c[back?'before':'after'](e);if(this.first!=null&&this.options.wrap=='circular'&&this.options.size!==null&&(j<=0||j>this.options.size)){g=this.get(this.index(j));if(g.length)this.add(j,g.children().clone(true));}}c=e;d=this.dimension(e);if(p)l+=d;if(this.first!=null&&(this.options.wrap=='circular'||(j>=1&&(this.options.size==null||j<=this.options.size))))pos=back?pos+d:pos-d;}var clipping=this.clipping();var cache=[];var visible=0,j=i,v=0;var c=this.get(i-1);while(++visible){e=this.get(j);p=!e.length;if(e.length==0){e=this.create(j).addClass(this.className('jcarousel-item-placeholder'));c.length==0?this.list.prepend(e):c[back?'before':'after'](e);if(this.first!=null&&this.options.wrap=='circular'&&this.options.size!==null&&(j<=0||j>this.options.size)){g=this.get(this.index(j));if(g.length)this.add(j,g.find('>*').clone(true));}}c=e;var d=this.dimension(e);if(d==0){alert('jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...');return 0;}if(this.options.wrap!='circular'&&this.options.size!==null&&j>this.options.size)cache.push(e);else if(p)l+=d;v+=d;if(v>=clipping)break;j++;}for(var x=0;x<cache.length;x++)cache[x].remove();if(l>0){this.list.css(this.wh,this.dimension(this.list)+l+'px');if(back){pos-=l;this.list.css(this.lt,$jc.intval(this.list.css(this.lt))-l+'px');}}var last=i+visible-1;if(this.options.wrap!='circular'&&this.options.size&&last>this.options.size)last=this.options.size;if(j>last){visible=0,j=last,v=0;while(++visible){var e=this.get(j--);if(!e.length)break;v+=this.dimension(e);if(v>=clipping)break;}}var first=last-visible+1;if(this.options.wrap!='circular'&&first<1)first=1;if(this.inTail&&back){pos+=this.tail;this.inTail=false;}this.tail=null;if(this.options.wrap!='ci
