var api = {
	timerSlide: null,
	stopSlide: false,

	initSliders: function() {
		$('div.scroll').wrap('<div class="scrollWrap"></div>');
		$('div.scrollWrap').
			append('<div class="scrollbar"><div class="slider"></div></div').
			append('<a href="#" class="arrowUp"></a>').
				find('a.arrowUp').bind('mousedown', function(){
					api.slideClear();
					var s = $('div.slider', this.parentNode)[0];
					api.stopSlide = false;
					api.timerSlide = window.setInterval(function(){ api.slideUp(s); }, 250);
					return false;
				}).bind('mouseup', api.slideStop).end().
			append('<a href="#" class="arrowDn"></a>').
				find('a.arrowDn').bind('mousedown', function(){
					api.slideClear();
					var s = $('div.slider', this.parentNode)[0];
					api.stopSlide = false;
					api.timerSlide = window.setInterval(function(){ api.slideDn(s); }, 250);
					return false;
				}).bind('mouseup', api.slideStop).end().
			find('div.slider').each(function(){
				api.initSlider(this);
			}).end().
			find('div.scrollbar').Slider({
				accept: 'div.slider',
				onSlide : function( cordx, cordy, x , y)
				{
					if (this.$scrollHeight > 0)
						this.$scroll.css('top', (- this.$scrollHeight * cordy / 100) + 'px');
					if (cordy >= 100)
						api.stopSlide = true;
				}
			});
	},
	initSlider: function(o) {
		o.$scroll = $('div.scroll', o.parentNode.parentNode);
		o.$scrollHeight = o.$scroll.height() - $(o.parentNode.parentNode).height();
		if (o.$scrollHeight <= 0) {
			$('div.scrollbar,a.arrowUp,a.arrowDn', o.parentNode.parentNode).hide();
		} else {
			$('div.scrollbar,a.arrowUp,a.arrowDn', o.parentNode.parentNode).show();
			var h = $(o.parentNode).height() * 100 / $(o.parentNode.parentNode).height();
			var p = (100 - Math.round(h)) * 2;
			o.style['height'] = Math.round($(o.parentNode.parentNode).height() * p / 100) + 'px';
		}
	},
	slideUp: function(elm) {
		$.iSlider.dragmoveBy(elm, [0, -20]);
		if (api.stopSlide) {
			api.slideClear();
		}
	},
	slideDn: function(elm) {
		$.iSlider.dragmoveBy(elm, [0, 20]);
		if (api.stopSlide) {
			api.slideClear();
		}
	},
	slideClear: function() {
		if (api.timerSlide)
		{
			window.clearInterval(api.timerSlide);
			api.timerSlide = null;
		}
	},
	slideStop: function() {
		api.stopSlide = true;
	},

	
	init: function() {
		$('a.pop').click(function(){
			var id = this.className.split(' ')[1];
			$('#' + id).show();
		});
		$('.popup .close').click(function(){
			$(this).parents('.popup').hide();
		});

		api.initSliders();
		if ($.browser.safari) {
			$('#page').addClass('safari');
		}
	}
};

window.onload = api.init;