/**
 * Initialize portfolio page javascript
 */
if (typeof mode == 'string')
{
	var client_mode = (mode != undefined && mode != null && mode == 'client' ? true : false);
}else{
	var client_mode = false;
}

var sb = null;						//Scroll bar object
var scroller = null;				//Scroller object

if (client_mode) {
	var SCROLL_ELEMENT_PADDING = 0;		//CSS width for one scroller element
	var SCROLL_ELEMENT_WIDTH = 216;		//CSS padding for one scroller element
} else {
	var SCROLL_ELEMENT_WIDTH = 199;		//CSS width for one scroller element
	var SCROLL_ELEMENT_PADDING = 30;	//CSS padding for one scroller element
}

$(document).ready(function () {
	
	/* Scroller content */
		
			var element_list = $('div.container_wrapper div.content tr:first-child td').not('.img_td');
			
			scroller = new Scroller();
			
			/* Refresh arguments: container_object, content_object, list_of_elements */
			scroller.refresh('div.container', 'div.content', element_list);
	
			/* Resetting element widths, because of padding for all elements except the last one */
			var w = 0;
			for(var i = 0, j = scroller.widths.length; i < j; i++)
			{
				scroller.widths[i] = SCROLL_ELEMENT_WIDTH + (i != j - 1 ? SCROLL_ELEMENT_PADDING : 0);
				w += scroller.widths[i];
			}
	
			
			scroller.max_pos = w - scroller.container.width();

	/* Initial position */
			var hash_value = parseInt(getUrlHash());
			if (hash_value)
			{
				scroller.setPos(hash_value);
			}

	/* Scrollbar, see 'scrollbar.js' */
		
			var sb_options = {
				value: hash_value,
				max_value: scroller.max_pos,												//Max value; min value by default is 0
				button_scroll: scroller.widths[0] + 1,										//Arrow buttons changes value by
				mouse_track_tick: 16,														//Time between mouse position check
				on_drag: function (scrollbar) { scroller.setPos(scrollbar.value()); },		//Drag callback
				on_change: function (scrollbar) { scroller.scrollTo(scrollbar.value()); },	//Arrow click callback
				remember_position: true														//Allow to use URL hash to remember and restore position
			};
	
			/* 'div.slider' is scrollbar container element */
			sb = new ScrollBar('div.slider', sb_options);
			
	
	/* 'Sort' list drop down menus */

			$('#content div.sorting>div').each(function () {
				
				var popup = $('div.popup', this);
				var h = popup.height();
				var t = null;
				
				/* If popup exists */
				if (popup[0])
				{
					/* Reset after retrieving height */
					popup.css('height', '0px');
					
					var o = $(this);
						
					/* Attach event listeners */
					o.mouseover(function () {
						if (t != null) clearTimeout(t);
						$(this).addClass('open');
						$('div.popup', this).stop().css('opacity', '0.9').animate({height: h + 'px'}, "fast");
					});
					o.mouseout(function (e) {
						if (t != null) clearTimeout(t);
						t = setTimeout(delayedHide, 300);
					});
					
					/* For delayed hiding, also removes flickering */
					function delayedHide() {
						t = null;
						$('div.popup', o).stop().animate({height: '0px'}, "fast", function () {
							$(this).stop().css('height', '0px');
							o.removeClass('open');
						});
					}
				}
			});
			
			//Safari bugfix
			if (jQuery.browser.safari)
				$('#content div.popup').css('marginTop', '30px');
		

	/* Mouse wheel scroll set up */
		setUpMouseWheel(sb, '.container_wrapper', '.slider');
		
});