// ----------------------------------- Home Page Rotator

function theRotator() {
	//Set the opacity of all images to 0
	jQuery('#rotator li').css({opacity: 0.0});
	
	//Get the first image and show it full opacity
	jQuery('#rotator li:first').css({opacity: 1.0});
		
	//Call the rotator function to run the slideshow, 6000 = change to next image after 6 seconds
    setTimeout('rotate(#rotator li:first)', 16000);
	setInterval('rotate()',6000);
}

function rotate() {	
	//Get the first image
	var current = (jQuery('#rotator li.show1')?  jQuery('#rotator li.show1') : jQuery('#rotator li:first'));
    
	//Get next image, when it reaches the end, rotate it back to the first image
	var next = ((current.next().length) ? ((current.next().hasClass('show1')) ? jQuery('#rotator li:first') :current.next()) : jQuery('#rotator li:first'));	
	
	//Set the fade in effect for the next image, the show class has higher z-index
	next.css({opacity: 0.0})
	.addClass('show1')
	.animate({opacity: 1.0}, 3000);

	//Hide the current image
	current.animate({opacity: 0.0}, 1500)
	.removeClass('show1');
	
};

jQuery(document).ready(function() {		
	//Load the slideshow
	theRotator();
});



// ----------------------------------- News VTicker

/*
* vertical news ticker
* Tadas Juozapaitis ( kasp3rito@gmail.com )
* http://plugins.jquery.com/project/vTicker
*/
(function(a){a.fn.vTicker=function(b){var c={speed:700,pause:4000,showItems:3,animation:"",mousePause:true,isPaused:false,direction:"up",height:0};var b=a.extend(c,b);moveUp=function(g,d,e){if(e.isPaused){return}var f=g.children("ul");var h=f.children("li:first").clone(true);if(e.height>0){d=f.children("li:first").height()}f.animate({top:"-="+d+"px"},e.speed,function(){a(this).children("li:first").remove();a(this).css("top","0px")});if(e.animation=="fade"){f.children("li:first").fadeOut(e.speed);if(e.height==0){f.children("li:eq("+e.showItems+")").hide().fadeIn(e.speed)}}h.appendTo(f)};moveDown=function(g,d,e){if(e.isPaused){return}var f=g.children("ul");var h=f.children("li:last").clone(true);if(e.height>0){d=f.children("li:first").height()}f.css("top","-"+d+"px").prepend(h);f.animate({top:0},e.speed,function(){a(this).children("li:last").remove()});if(e.animation=="fade"){if(e.height==0){f.children("li:eq("+e.showItems+")").fadeOut(e.speed)}f.children("li:first").hide().fadeIn(e.speed)}};return this.each(function(){var f=a(this);var e=0;f.css({overflow:"hidden",position:"relative"}).children("ul").css({position:"absolute",margin:0,padding:0}).children("li").css({margin:0,padding:0});if(b.height==0){f.children("ul").children("li").each(function(){if(a(this).height()>e){e=a(this).height()}});f.children("ul").children("li").each(function(){a(this).height(e)});f.height(e*b.showItems)}else{f.height(b.height)}var d=setInterval(function(){if(b.direction=="up"){moveUp(f,e,b)}else{moveDown(f,e,b)}},b.pause);if(b.mousePause){f.bind("mouseenter",function(){b.isPaused=true}).bind("mouseleave",function(){b.isPaused=false})}})}})(jQuery);


// ----------------------------------- Hinted Text Box Form Labels

/* This code is licensed under Creative Commons Attribution 3.0    *
 * You may share and remix the script so long as you attribute the *
 * original author, Andrew January.                                *
 * http://creativecommons.org/licenses/by/3.0/                     */

jQuery(document).ready(function() {
	var isPassword = function(input) {
		return jQuery(input).attr('realType') == 'password';
	}
	
	var valueIsHint = function(input) {
		return input.value == jQuery(input).attr('hint');
	}

	var showHint = function(input, loading) {
		// FF and IE save values when you refresh the page. If the user refreshes the page
		// with the hints showing they will be the default values and the input fields won't
		// be empty. Using loading && valueIsHint is a hack to get around this and highlight
		// the hints properly on refresh.
		if (input.value == '' || (loading && valueIsHint(input))) {
			if (isPassword(input)) {
				// Must use setAttribute rather than jQuery as jQuery throws an exception
				// when changing type to maintain compatability with IE.
				// We use our own "compatability" method by simply swallowing the error.
				try {
					input.setAttribute('type', 'input');
				} catch (e) { }
			}
			input.value = jQuery(input).attr('hint');
			jQuery(input).addClass('hint');
		}
	}
	
	var hideHint = function(input) {
		if (valueIsHint(input) && jQuery(input).hasClass('hint')) {
			if (isPassword(input)) {
				try {
					input.setAttribute('type', 'password');
					// Opera loses focus when you change the type, so we have to refocus it.
					input.focus();
				} catch (e) { }
			}
			
			input.value = '';
			jQuery(input).removeClass('hint');
		}
	}
	
	jQuery(':text[hint],:password[hint]').each(function(index) {
		// We change the type of password fields to text so their hint shows.
		// We need to store somewhere that they are actually password fields so we can convert
		// back when the users types something in.
		if (jQuery(this).attr('type') == 'password') {
			jQuery(this).attr('realType', 'password');
		}

		showHint(this, true);
		
		jQuery(this).focus(function() { hideHint(this) });
		jQuery(this).blur(function() { showHint(this, false) });
	});
});


// --------------------------------- Tab SlideOut

/*
    tabSlideOUt v1.3
    
    By William Paoli: http://wpaoli.building58.com

    To use you must have an image ready to go as your tab
    Make sure to pass in at minimum the path to the image and its dimensions:
    
    example:
    
        $('.slide-out-div').tabSlideOut({
                tabHandle: '.handle',                         //class of the element that will be your tab -doesnt have to be an anchor
                pathToTabImage: 'images/contact_tab.gif',     //relative path to the image for the tab
                imageHeight: '133px',                         //height of tab image
                imageWidth: '44px',                           //width of tab image   
        });

    or you can leave out these options
    and set the image properties using css
    
*/


(function($){
    $.fn.tabSlideOut = function(callerSettings) {
        var settings = $.extend({
            tabHandle: '.handle',
            speed: 300, 
            action: 'click',
            tabLocation: 'left',
            topPos: '200px',
            leftPos: '20px',
            fixedPosition: false,
            positioning: 'absolute',
            pathToTabImage: null,
            imageHeight: null,
            imageWidth: null,
            onLoadSlideOut: false                       
        }, callerSettings||{});

        settings.tabHandle = $(settings.tabHandle);
        var obj = this;
        if (settings.fixedPosition === true) {
            settings.positioning = 'fixed';
        } else {
            settings.positioning = 'absolute';
        }
        
        //ie6 doesn't do well with the fixed option
        if (document.all && !window.opera && !window.XMLHttpRequest) {
            settings.positioning = 'absolute';
        }
        

        
        //set initial tabHandle css
        
        if (settings.pathToTabImage != null) {
            settings.tabHandle.css({
            'background' : 'url('+settings.pathToTabImage+') no-repeat',
            'width' : settings.imageWidth,
            'height': settings.imageHeight
            });
        }
        
        settings.tabHandle.css({ 
            'display': 'block',
            'textIndent' : '-99999px',
            'outline' : 'none',
            'position' : 'absolute'
        });
        
        obj.css({
            'line-height' : '1',
            'position' : settings.positioning
        });

        
        var properties = {
                    containerWidth: parseInt(obj.outerWidth(), 10) + 'px',
                    containerHeight: parseInt(obj.outerHeight(), 10) + 'px',
                    tabWidth: parseInt(settings.tabHandle.outerWidth(), 10) + 'px',
                    tabHeight: parseInt(settings.tabHandle.outerHeight(), 10) + 'px'
                };

        //set calculated css
        if(settings.tabLocation === 'top' || settings.tabLocation === 'bottom') {
            obj.css({'left' : settings.leftPos});
            settings.tabHandle.css({'right' : 0});
        }
        
        if(settings.tabLocation === 'top') {
            obj.css({'top' : '-' + properties.containerHeight});
            settings.tabHandle.css({'bottom' : '-' + properties.tabHeight});
        }

        if(settings.tabLocation === 'bottom') {
            obj.css({'bottom' : '-' + properties.containerHeight, 'position' : 'fixed'});
            settings.tabHandle.css({'top' : '-' + properties.tabHeight});
            
        }
        
        if(settings.tabLocation === 'left' || settings.tabLocation === 'right') {
            obj.css({
                'height' : properties.containerHeight,
                'top' : settings.topPos
            });
            
            settings.tabHandle.css({'top' : 0});
        }
        
        if(settings.tabLocation === 'left') {
            obj.css({ 'left': '-' + properties.containerWidth});
            settings.tabHandle.css({'right' : '-' + properties.tabWidth});
        }

        if(settings.tabLocation === 'right') {
            obj.css({ 'right': '-' + properties.containerWidth});
            settings.tabHandle.css({'left' : '-' + properties.tabWidth});
            
            $('html').css('overflow-x', 'hidden');
        }

        //functions for animation events
        
        settings.tabHandle.click(function(event){
            event.preventDefault();
        });
        
        var slideIn = function() {
            
            if (settings.tabLocation === 'top') {
                obj.animate({top:'-' + properties.containerHeight}, settings.speed).removeClass('open');
            } else if (settings.tabLocation === 'left') {
                obj.animate({left: '-' + properties.containerWidth}, settings.speed).removeClass('open');
            } else if (settings.tabLocation === 'right') {
                obj.animate({right: '-' + properties.containerWidth}, settings.speed).removeClass('open');
            } else if (settings.tabLocation === 'bottom') {
                obj.animate({bottom: '-' + properties.containerHeight}, settings.speed).removeClass('open');
            }    
            
        };
        
        var slideOut = function() {
            
            if (settings.tabLocation == 'top') {
                obj.animate({top:'-3px'},  settings.speed).addClass('open');
            } else if (settings.tabLocation == 'left') {
                obj.animate({left:'-3px'},  settings.speed).addClass('open');
            } else if (settings.tabLocation == 'right') {
                obj.animate({right:'-3px'},  settings.speed).addClass('open');
            } else if (settings.tabLocation == 'bottom') {
                obj.animate({bottom:'-3px'},  settings.speed).addClass('open');
            }
        };

        var clickScreenToClose = function() {
            obj.click(function(event){
                event.stopPropagation();
            });
            
            $(document).click(function(){
                slideIn();
            });
        };
        
        var clickAction = function(){
            settings.tabHandle.click(function(event){
                if (obj.hasClass('open')) {
                    slideIn();
                } else {
                    slideOut();
                }
            });
            
            clickScreenToClose();
        };
        
        var hoverAction = function(){
            obj.hover(
                function(){
                    slideOut();
                },
                
                function(){
                    slideIn();
                });
                
                settings.tabHandle.click(function(event){
                    if (obj.hasClass('open')) {
                        slideIn();
                    }
                });
                clickScreenToClose();
                
        };
        
        var slideOutOnLoad = function(){
            slideIn();
            setTimeout(slideOut, 500);
        };
        
        //choose which type of action to bind
        if (settings.action === 'click') {
            clickAction();
        }
        
        if (settings.action === 'hover') {
            hoverAction();
        }
        
        if (settings.onLoadSlideOut) {
            slideOutOnLoad();
        };
        
    };
})(jQuery);



// --------------------------------------- Snowstorm 

/** @license

 DHTML Snowstorm! JavaScript-based Snow for web pages
 --------------------------------------------------------
 Version 1.41.20101113 (Previous rev: 1.4.20091115)
 Copyright (c) 2007, Scott Schiller. All rights reserved.
 Code provided under the BSD License:
 http://schillmania.com/projects/snowstorm/license.txt
*/
/*
var snowStorm=function(e,d){function j(c,h){if(isNaN(h))h=0;return Math.random()*c+h}function t(){if(this.excludeMobile&&!u||!this.excludeMobile)e.setTimeout(function(){a.start(true)},20);a.events.remove(e,"load",t)}this.flakesMax=128;this.flakesMaxActive=64;this.animationInterval=33;this.excludeMobile=true;this.flakeBottom=null;this.followMouse=true;this.snowColor="#fff";this.snowCharacter="&bull;";this.snowStick=true;this.targetElement=null;this.useMeltEffect=true;this.usePositionFixed=this.useTwinkleEffect=
false;this.freezeOnBlur=true;this.flakeRightOffset=this.flakeLeftOffset=0;this.flakeHeight=this.flakeWidth=8;this.vMaxX=5;this.vMaxY=4;this.zIndex=0;var a=this,B=this,m=navigator.userAgent.match(/msie/i),C=navigator.userAgent.match(/msie 6/i),D=navigator.appVersion.match(/windows 98/i),u=navigator.userAgent.match(/mobile/i),E=m&&d.compatMode==="BackCompat",v=u||E||C,k=null,n=null,l=null,p=null,w=null,x=null,r=1,q=false,s;a:{try{d.createElement("div").style.opacity="0.5"}catch(F){s=false;break a}s=
true}var y=false,z=d.createDocumentFragment();this.timers=[];this.flakes=[];this.active=this.disabled=false;this.meltFrameCount=20;this.meltFrames=[];this.events=function(){function c(f){f=g.call(f);var o=f.length;if(i){f[1]="on"+f[1];o>3&&f.pop()}else o===3&&f.push(false);return f}function h(f,o){var A=f.shift()[b[o]];i?A(f[0],f[1]):A.apply(this,f)}var i=e.attachEvent,g=Array.prototype.slice,b={add:i?"attachEvent":"addEventListener",remove:i?"detachEvent":"removeEventListener"};return{add:function(){h(c(arguments),
"add")},remove:function(){h(c(arguments),"remove")}}}();this.randomizeWind=function(){var c=j(a.vMaxX,0.2);w=parseInt(j(2),10)===1?c*-1:c;x=j(a.vMaxY,0.2);if(this.flakes)for(c=0;c<this.flakes.length;c++)this.flakes[c].active&&this.flakes[c].setVelocities()};this.scrollHandler=function(){p=a.flakeBottom?0:parseInt(e.scrollY||d.documentElement.scrollTop||d.body.scrollTop,10);if(isNaN(p))p=0;if(!q&&!a.flakeBottom&&a.flakes)for(var c=a.flakes.length;c--;)a.flakes[c].active===0&&a.flakes[c].stick()};this.resizeHandler=
function(){if(e.innerWidth||e.innerHeight){k=e.innerWidth-(!m?16:2)-a.flakeRightOffset;l=a.flakeBottom?a.flakeBottom:e.innerHeight}else{k=(d.documentElement.clientWidth||d.body.clientWidth||d.body.scrollWidth)-(!m?8:0)-a.flakeRightOffset;l=a.flakeBottom?a.flakeBottom:d.documentElement.clientHeight||d.body.clientHeight||d.body.scrollHeight}n=parseInt(k/2,10)};this.resizeHandlerAlt=function(){k=a.targetElement.offsetLeft+a.targetElement.offsetWidth-a.flakeRightOffset;l=a.flakeBottom?a.flakeBottom:a.targetElement.offsetTop+
a.targetElement.offsetHeight;n=parseInt(k/2,10)};this.freeze=function(){if(a.disabled)return false;else a.disabled=1;for(var c=a.timers.length;c--;)clearInterval(a.timers[c])};this.resume=function(){if(a.disabled)a.disabled=0;else return false;a.timerInit()};this.toggleSnow=function(){if(a.flakes.length){a.active=!a.active;if(a.active){a.show();a.resume()}else{a.stop();a.freeze()}}else a.start()};this.stop=function(){this.freeze();for(var c=this.flakes.length;c--;)this.flakes[c].o.style.display="none";
a.events.remove(e,"scroll",a.scrollHandler);a.events.remove(e,"resize",a.resizeHandler);if(a.freezeOnBlur)if(m){a.events.remove(d,"focusout",a.freeze);a.events.remove(d,"focusin",a.resume)}else{a.events.remove(e,"blur",a.freeze);a.events.remove(e,"focus",a.resume)}};this.show=function(){for(var c=this.flakes.length;c--;)this.flakes[c].o.style.display="block"};this.SnowFlake=function(c,h,i,g){var b=this;this.type=h;this.x=i||parseInt(j(k-20),10);this.y=!isNaN(g)?g:-j(l)-12;this.vY=this.vX=null;this.vAmpTypes=
[1,1.2,1.4,1.6,1.8];this.vAmp=this.vAmpTypes[this.type];this.melting=false;this.meltFrameCount=c.meltFrameCount;this.meltFrames=c.meltFrames;this.twinkleFrame=this.meltFrame=0;this.active=1;this.fontSize=10+this.type/5*10;this.o=d.createElement("div");this.o.innerHTML=c.snowCharacter;this.o.style.color=c.snowColor;this.o.style.position=q?"fixed":"absolute";this.o.style.width=c.flakeWidth+"px";this.o.style.height=c.flakeHeight+"px";this.o.style.fontFamily="arial,verdana";this.o.style.overflow="hidden";
this.o.style.fontWeight="normal";this.o.style.zIndex=c.zIndex;z.appendChild(this.o);this.refresh=function(){if(isNaN(b.x)||isNaN(b.y))return false;b.o.style.left=b.x+"px";b.o.style.top=b.y+"px"};this.stick=function(){if(v||c.targetElement!==d.documentElement&&c.targetElement!==d.body)b.o.style.top=l+p-c.flakeHeight+"px";else if(c.flakeBottom)b.o.style.top=c.flakeBottom+"px";else{b.o.style.display="none";b.o.style.top="auto";b.o.style.bottom="0px";b.o.style.position="fixed";b.o.style.display="block"}};
this.vCheck=function(){if(b.vX>=0&&b.vX<0.2)b.vX=0.2;else if(b.vX<0&&b.vX>-0.2)b.vX=-0.2;if(b.vY>=0&&b.vY<0.2)b.vY=0.2};this.move=function(){var f=b.vX*r;b.x+=f;b.y+=b.vY*b.vAmp;if(b.x>=k||k-b.x<c.flakeWidth)b.x=0;else if(f<0&&b.x-c.flakeLeftOffset<0-c.flakeWidth)b.x=k-c.flakeWidth-1;b.refresh();if(l+p-b.y<c.flakeHeight){b.active=0;c.snowStick?b.stick():b.recycle()}else{if(c.useMeltEffect&&b.active&&b.type<3&&!b.melting&&Math.random()>0.998){b.melting=true;b.melt()}if(c.useTwinkleEffect)if(b.twinkleFrame){b.twinkleFrame--;
b.o.style.visibility=b.twinkleFrame&&b.twinkleFrame%2===0?"hidden":"visible"}else if(Math.random()>0.9)b.twinkleFrame=parseInt(Math.random()*20,10)}};this.animate=function(){b.move()};this.setVelocities=function(){b.vX=w+j(c.vMaxX*0.12,0.1);b.vY=x+j(c.vMaxY*0.12,0.1)};this.setOpacity=function(f,o){if(!s)return false;f.style.opacity=o};this.melt=function(){if(!c.useMeltEffect||!b.melting)b.recycle();else if(b.meltFrame<b.meltFrameCount){b.meltFrame++;b.setOpacity(b.o,b.meltFrames[b.meltFrame]);b.o.style.fontSize=
b.fontSize-b.fontSize*(b.meltFrame/b.meltFrameCount)+"px";b.o.style.lineHeight=c.flakeHeight+2+c.flakeHeight*0.75*(b.meltFrame/b.meltFrameCount)+"px"}else b.recycle()};this.recycle=function(){b.o.style.display="none";b.o.style.position=q?"fixed":"absolute";b.o.style.bottom="auto";b.setVelocities();b.vCheck();b.meltFrame=0;b.melting=false;b.setOpacity(b.o,1);b.o.style.padding="0px";b.o.style.margin="0px";b.o.style.fontSize=b.fontSize+"px";b.o.style.lineHeight=c.flakeHeight+2+"px";b.o.style.textAlign=
"center";b.o.style.verticalAlign="baseline";b.x=parseInt(j(k-c.flakeWidth-20),10);b.y=parseInt(j(l)*-1,10)-c.flakeHeight;b.refresh();b.o.style.display="block";b.active=1};this.recycle();this.refresh()};this.snow=function(){var c=0,h=0,i=0,g=null;for(g=a.flakes.length;g--;){if(a.flakes[g].active===1){a.flakes[g].move();c++}else if(a.flakes[g].active===0)h++;else i++;a.flakes[g].melting&&a.flakes[g].melt()}if(c<a.flakesMaxActive){g=a.flakes[parseInt(j(a.flakes.length),10)];if(g.active===0)g.melting=
true}};this.mouseMove=function(c){if(!a.followMouse)return true;c=parseInt(c.clientX,10);if(c<n)r=-2+c/n*2;else{c-=n;r=c/n*2}};this.createSnow=function(c,h){for(var i=0;i<c;i++){a.flakes[a.flakes.length]=new a.SnowFlake(a,parseInt(j(6),10));if(h||i>a.flakesMaxActive)a.flakes[a.flakes.length-1].active=-1}B.targetElement.appendChild(z)};this.timerInit=function(){a.timers=!D?[setInterval(a.snow,a.animationInterval)]:[setInterval(a.snow,a.animationInterval*3),setInterval(a.snow,a.animationInterval)]};
this.init=function(){for(var c=0;c<a.meltFrameCount;c++)a.meltFrames.push(1-c/a.meltFrameCount);a.randomizeWind();a.createSnow(a.flakesMax);a.events.add(e,"resize",a.resizeHandler);a.events.add(e,"scroll",a.scrollHandler);if(a.freezeOnBlur)if(m){a.events.add(d,"focusout",a.freeze);a.events.add(d,"focusin",a.resume)}else{a.events.add(e,"blur",a.freeze);a.events.add(e,"focus",a.resume)}a.resizeHandler();a.scrollHandler();if(a.followMouse)a.events.add(m?d:e,"mousemove",a.mouseMove);a.animationInterval=
Math.max(20,a.animationInterval);a.timerInit()};this.start=function(c){if(y){if(c)return true}else y=true;if(typeof a.targetElement==="string"){c=a.targetElement;a.targetElement=d.getElementById(c);if(!a.targetElement)throw Error('Snowstorm: Unable to get targetElement "'+c+'"');}if(!a.targetElement)a.targetElement=!m?d.documentElement?d.documentElement:d.body:d.body;if(a.targetElement!==d.documentElement&&a.targetElement!==d.body)a.resizeHandler=a.resizeHandlerAlt;a.resizeHandler();a.usePositionFixed=
a.usePositionFixed&&!v;q=a.usePositionFixed;if(k&&l&&!a.disabled){a.init();a.active=true}};a.events.add(e,"load",t,false);return this}(window,document);
*/
