$.fn.extend({
	qvivoScroll: function() {
		this.each(function(i) {
			$(this).wrapInner('<div class="content_wrapper" />').prepend('<div class="scroll_track"><div class="scroll_track_footer"><div class="scroll_bar"><div class="scroll_bar_top"></div><div class="scroll_bar_bottom"></div></div></div></div>').wrapInner('<div class="scroll_wrapper" />');
			var scrollWrapper = $(this).children('.scroll_wrapper');
			var track = scrollWrapper.children('.scroll_track');
			var content = scrollWrapper.children('.content_wrapper');
			if ($(this).attr('id') == 'navigation')
				content.append('<div class="content_padding"></div>')
			var scrollBar = track.children('div').children('.scroll_bar');
			var mouseOver = false;
			scrollBar.hover(
				function () { mouseOver = true; }, 
				function () { mouseOver = false; }
			);
			if(content.height() < track.height()) {
				track.hide();
			}
			var updateScroll = function() {
				if (!mouseOver){ // stops scrollbar jumping
					var ratio = (track.height() / content.height());
					if (ratio < 1) { // content is big enough to show the scrollbar
						var top = Math.min(Math.round(scrollWrapper.scrollTop() * ratio), content.height() - scrollBar.height());
						scrollBar.css({top: top + 'px'});
						if ((ratio * track.height()) < 100)
							scrollBar.css({height: '20%'});
						else
							scrollBar.css({height: (ratio * 100) + '%'});
						if ($.browser.msie && $.browser.version == 8 )
							scrollBar.show();
						else
							scrollBar.fadeIn(200);
					}
					else { // content is small enough to hide the scroll bar
						if ($.browser.msie && $.browser.version == 8 )
							scrollBar.hide();
						else
							scrollBar.fadeOut(200);
					}
				}
			}
			updateScroll();
			window.setInterval(function() { updateScroll(); }, 400);
			scrollWrapper.scroll(function() { updateScroll(); });
			scrollBar.draggable({ containment: 'parent' }).bind('drag', function(event, ui) {
				var actualDown = scrollBar.css('top').split('px')[0];
				var maxDown = scrollBar.parent().outerHeight() - $(this).outerHeight();
				var maxUp = content.height() - scrollWrapper.height();
				scrollWrapper.scrollTop(Math.floor((actualDown / maxDown) * maxUp));
			});
		});
	}
});

$menuTimer = 2000;
$menuSpeed = 500;

function menuAction(action) {
	if(action == 'close') {
		menuClose();
	} else {
		menuOpen();
	}
}
function menuOpen() {
	$('#menu').animate({
		top: '0'
	}, $menuSpeed, function() {
		$(this).data('open',true);
//		menuControl = setTimeout("menuAction('close')", $menuTimer);
	});
}
function menuClose() {
	$('#menu').animate({
		top: '-85'
	}, $menuSpeed, function() {
		$(this).data('open',false);
		clearTimeout(menuControl);
	});
}
$(window).load(function () {
	menuControl = setTimeout("menuAction('close')", $menuTimer);
	$(".birds").show();
});

$(function(){
	$('div.scrollboard').qvivoScroll();
	$('.gallery').before('<div id="nav">') 
	.cycle({ 
		speed:  'fast', 
		timeout: 0, 
		pager:  '#nav',
		cleartype: true, cleartypeNoBg: true 
	});
	$('#gallery').cycle({ 
		next:   '.next_image', 
		prev:   '.prev_image' 
//		pager:  '#gallery_links', 
//		pagerAnchorBuilder: function(idx, slide) { 
//			return '#gallery_links li:eq(' + idx + ') a'; 
//		},
//		cleartype: true, cleartypeNoBg: true
	});
	$('#clickable').hover(
		function(){
			clearTimeout(menuControl);
			menuOpen();
		},
		function(){
			menuControl = setTimeout("menuAction('close')", $menuTimer);
		}
	).click(function(){clearTimeout(menuControl);menuOpen();return false;});
	$('#menu_items a').hover(
		function(){
			clearTimeout(menuControl);
		},
		function(){
			menuControl = setTimeout("menuAction('close')", $menuTimer);
		}
	);
	$('.adv').hover(
		function(){
			$('.adv').addClass('hover');
		},
		function(){
			$('.adv').removeClass('hover');
		}
	);
	$('.wired').hover(
		function(){
			$('.wired').addClass('hover');
		},
		function(){
			$('.wired').removeClass('hover');
		}
	);
	setInterval("clientLink()",2000);
	setTimeout("birdback()",7000);
	setTimeout("birdforward()",3500);
});

function clientLink(){
		$('#client_link').animate({ 
        opacity: 0.5
      }, 1000 ).animate({ 
        opacity: 1
      }, 1000 );
		
}
function birdforward(){
		$('.ass-bird').animate({ 
        top: "-=20px",
        left: "-=20px"
      }, 100 ).animate({ 
        top: "+=20px",
        left: "-=20px"
      }, 100 ).animate({ 
        top: "-=20px",
        left: "-=20px"
      }, 100 ).animate({ 
        top: "+=20px",
        left: "-=20px"
      }, 100 );
		
}

function birdback(){
$('.ass-bird').stop().animate({ 
top: "-=20px",
left: "+=20px"
}, 100 ).animate({ 
top: "+=20px",
left: "+=20px"
}, 100 ).animate({ 
top: "-=20px",
left: "+=20px"
}, 100 ).animate({ 
top: "+=20px",
left: "+=20px"
}, 100 );
}    
/* IE PNG fix multiple filters */
(function ($) {
    if (!$) return;
    $.fn.extend({
        fixPNG: function(sizingMethod, forceBG) {
                if (!($.browser.msie)) return this;
                var emptyimg = "empty.gif"; //Path to empty 1x1px GIF goes here
                sizingMethod = sizingMethod || "scale"; //sizingMethod, defaults to scale (matches image dimensions)
                this.each(function() {
                        var isImg = (forceBG) ? false : jQuery.nodeName(this, "img"),
                                imgname = (isImg) ? this.src : this.currentStyle.backgroundImage,
                                src = (isImg) ? imgname : imgname.substring(5,imgname.length-2);
                        this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + sizingMethod + "')";
                        if (isImg) this.src = emptyimg;
                        else this.style.backgroundImage = "url(" + emptyimg + ")";
                });
                return this;
        }
    });
})(jQuery);

