jQuery.noConflict();
(function($){

$(document).ready(function(){

	slider.init();

	var z = 999, accordion = false;
	$('.scrollAcc .item').each(function(){
		$(this).css({ zIndex: z-- });
		$(this).append('<a href="#" class="close">Close</a>');
	}).find('h3 a').each(function(){
		$('<span class="t"></span><span class="b"></span>').appendTo(this);
	}).click(function(){
		var p = $(this).parents('.item'),
			c = p.find('.content'),
			w = $(this).parents('.scrollWrap');
		if (p.hasClass('active'))
		{
			p.find('a.close').click();
			return false;
		}

		var pause = false;
		if (w.find('.item').filter('.active').length)
		{
			pause = true;
		}
		accordion = true;
		w.find('a.close').click();

		function completeSlide()
		{
			var hw = w.height();
			var sa = w.find('.scrollArea');
			var ta = parseInt(sa.css('top'));
			var ha = sa.height();
			var sb = w.find('.scrollBarIn');

			if (ha + ta < hw)
			{
				sa.animate({ top: (hw - ha) + 'px' }, 50);
				sb.slider('value', 0);
			}

			
			var hc = c.show().outerHeight();
			var pos = p.position();
			c.hide().slideDown(400, function(){
				w.trigger('updateScroll');
			});

			var hw = w.height();
			var sa = w.find('.scrollArea');
			var ta = parseInt(sa.css('top'));
			var tp = parseInt(pos['top']);
			var tr = tp + ta;

/*
			console.log('wrap ' + hw);
			console.log('area top ' + ta);
			console.log('parent top ' + tp);
			console.log('rel top ' + tr);
*/

			if ((tr + 75 + hc > hw) && (hc + 75 <= hw))
			{
				var diff = hw - (tr + 75 + hc);
//				console.log('diff ' + diff);

				if (diff < 0)
				{
					sa.animate({ top: '-=' + Math.abs(diff) + 'px' }, 500);
				}
			}

			var regs = p[0].className.match(/style-(\d+)/i);
			if (regs.length)
			{
				p.addClass('active-' + regs[1]);
			}
			p.addClass('active');

			accordion = false;
		}

		setTimeout(completeSlide, (pause ? 200 : 10));

		return false;
	}).end().find('a.close').click(function(){
		var p = $(this).parents('.item'),
			c = p.find('.content'),
			w = $(this).parents('.scrollWrap');
		if (!p.hasClass('active'))
			return false;
		c.slideUp(150, function(){
			w.trigger('updateScroll');
			p.removeClass('active active-1 active-2 active-3 active-4 active-5');

			if (!accordion)
			{
				var hw = w.height();
				var sa = w.find('.scrollArea');
				var ta = parseInt(sa.css('top'));
				var ha = sa.height();
				var sb = w.find('.scrollBarIn');
	/*
				console.log('wrap ' + hw);
				console.log('area height ' + ha);
				console.log('area top ' + ta);
	*/
				if (ha + ta < hw)
				{
					sa.animate({ top: (hw - ha) + 'px' }, 100);
					sb.slider('value', 0);
				}
			}

		});
		return false;
	});


	var z = 999;
	$('.scrollPopup .item').each(function(){
		$(this).css({ zIndex: z-- });
		$('<div class="t"></div><div class="b"></div>').appendTo(this);
	}).click(function(){
		var href = $('.more a', this).attr('href');
		location.href=href;
		return false;
	});

	/* $('.popup').find('.close a').click(function(){
		$(this).parents('.popup').hide();
		return false;
	}); */


	if ($.browser.msie) {
		try {document.execCommand("BackgroundImageCache", false, true);} catch(err){};
		if (typeof(DD_belatedPNG) != 'undefined')
		{
			DD_belatedPNG.fix('img, .item h3 a span, .item div, a.close, .close a');
		}
	}

});

var slider = {
	wheel: false,
	init: function(){
		$('.scroll').removeClass('scroll').addClass('scrollWrap').wrapInner('<div class="scrollArea"></div>').each(function(){
//			$(this).parents('.scrollWrap').attr('id', this.id);
//			this.id = '';
		});
		$('.scrollWrap').each(function(){
			var ha = $('.scrollArea', this).height();
			var hw = $(this).height();
			if (ha > hw)
			{
				$('.scrollWrap').append('<div class="scrollBar"><div class="scrollBarIn"></div><a href="#" class="up"></a><a href="#" class="dn"></a></div>');
				var sb = $('.scrollBarIn', this)[0];
				$.data(sb, 'ha', ha);
				$.data(sb, 'hw', hw);
				$('.scrollBarIn', this).css({ height: (hw - 29 - 16) + 'px' }).slider({
					orientation: 'vertical',
					min: 0,
					max: 100,
					slide: slider.slide,
					change: slider.slide
				}).slider('value', 100);
				$('.scrollBar a.dn', this).click(slider.dn);
				$('.scrollBar a.up', this).click(slider.up);
			}
		}).bind('updateScroll', function(){
			var ha = $('.scrollArea', this).height();
			var sb = $('.scrollBarIn', this)[0];
			$.data(sb, 'ha', ha);
		}).bind('mousewheel', function(ev, delta){
//			console.log(delta);
			var sb = $('.scrollBarIn', this)[0];
			slider.wheel = true;
			slider[(delta > 0 ? 'up' : 'dn')].apply(sb);
			slider.wheel = false;
		});
	},
	slide: function(event, ui){
//		console.log(ui.value);
		var sl = $(ui.handle.parentNode);
		var ha = $.data(sl[0], 'ha');
		var hw = $.data(sl[0], 'hw');
		var hs = ha - hw;
		var t = (- hs * (100 - ui.value) / 100);
		if (hs > 0)
			$('.scrollArea', sl.parents('.scrollWrap')).css('top', t + 'px');

		var sw = sl.parents('.scrollFix');
		if (sw.length)
		{
			sw.find('.image1').css('top', Math.abs(t) + 'px');
		}
	},
	up: function(){
		var sl = $(this).parents('.scrollBar').find('.scrollBarIn');
		var val = sl.slider('value');
		sl.slider('value', val + 5 * (slider.wheel ? 2 : 1));
		return false;
	},
	dn: function(){
		var sl = $(this).parents('.scrollBar').find('.scrollBarIn');
		var val = sl.slider('value');
		sl.slider('value', val - 5 * (slider.wheel ? 2 : 1));
		return false;
	}
};

})(jQuery);
