// JavaScript Document
//
//
//
//
var pics;
var clickable = true;
function initPicts(num) {
	pics = $$('img.pict');
	//$('debug').update(pics.length+' pics ('+num+')<br />');
	var ok = 1;
	for (var i = 0; i < pics.length; i++) {
		if (!(pics[i].complete)) {
			ok = 0;
		}
		//$('debug').insert('pics['+i+']: src='+pics[i].src+'; complete='+pics[i].complete+';<br />');
	}
	if (ok) {
		$('Photo').onselectstart = function() {return false;} // ie
		$('Photo').onmousedown = function() {return false;} // mozilla
		$('loading').hide();
		initScroll(0);
		initNavigator();
	} else {
		setTimeout('initPicts('+num+')', 100);
	}
	
	
}
// ---------------------------------------------------------------
//   SCROLL FUNCTIONS
// ---------------------------------------------------------------
var myControl, scrollbar_w, scrolldif, pos;
function initScroll(param) {
	$('ScrollBar').show();
	$('Navigator').show();
	var photo_w = $('SetList').clientWidth;
	scrollbar_w = $('ScrollBar').clientWidth;
	scrolldif = scrollbar_w - photo_w;
	var scrollratio = photo_w / scrollbar_w;
	$('Scroll').setStyle('width: '+Math.max(40, (scrollbar_w / scrollratio))+'px');
	//
	if ($('Scroll').clientWidth >= scrollbar_w) {
		$('Scroll').hide();
	} else {
		$('Scroll').show();
	}
	//$('debug').update('div#setlist :'+photo_w+'; div#scrollbar :'+scrollbar_w+'; scrolldif :'+scrolldif); 
	myControl = new Control.Slider('Scroll','ScrollBar',{
		sliderValue: param,
		onSlide: function(val){
			$('SetList').setStyle('left: '+val * scrolldif+'px;');
			//$('debug').update('Slide: '+val+' / '+$('scroll').offsetLeft+' + '+$('scroll').clientWidth+' ('+scrollbar_w+'); Photo: '+val * scrolldif);
			pos = val;
		},
		onChange: function(val){
			new Effect.Move('SetList', {
				x: val * scrolldif,
				y: 0,
				mode: 'absolute', 
				duration: Math.abs(param - val) * 1.5,
				//transition: Effect.Transitions.spring,
				fps: 30,
				transition: Effect.Transitions.EaseFromTo,
				beforeStart: function() {
					//
				},
				afterFinish: function() {
					param = val;
					//$('debug').update('Slide: '+val+' / '+$('scroll').offsetLeft+' + '+$('scroll').clientWidth+' ('+scrollbar_w+'); Photo: '+val * scrolldif);
				}
			});
			pos = val;
			return false;
		}
	});
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
window.onresize = function () {
	myControl.dispose();
	initScroll(pos);
}
//
//
//
// ---------------------------------------------------------------
//   NAVIGATOR FUNCTIONS
// ---------------------------------------------------------------
var nav_pg_tt, nav_pg = 1;
function initNavigator() {
	$('PrevBt').hide();
	var sets = $$('div.block');
	nav_pg_tt = Math.ceil(sets.length / 3);
	for (var i = 0; i < sets.length; i++) {
		var myw = parseInt($(sets[i]).clientWidth);
		var myli = $(sets[i]).up();
		myli.setStyle('left: '+((myw * i) + 10 + (10 * i))+'px;');
	}
	sets.each(function(set) {
		set.observe('click', scrollToSet);
		set.observe('mouseover', function(event) {
			$(set).addClassName('over');
		});
		set.observe('mouseout', function(event) {
			$(set).removeClassName('over');
		});
	});
	//
	$('PrevBt').observe('click', scrollNav);
	$('PrevBt').observe('mouseover', function(event) {
		this.src = 'assets/img/prevb.gif';									  
	});
	$('PrevBt').observe('mouseout', function(event) {
		this.src = 'assets/img/preva.gif';									  
	});
	//
	$('NextBt').observe('click', scrollNav);
	$('NextBt').observe('mouseover', function(event) {
		this.src = 'assets/img/nextb.gif';									  
	});
	$('NextBt').observe('mouseout', function(event) {
		this.src = 'assets/img/nexta.gif';									  
	});
	$('Navigator').onselectstart = function() {return false;} // ie
	$('Navigator').onmousedown = function() {return false;} // mozilla
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function scrollNav() {
	var elt = this.id;
	var eltx;
	//
	if (clickable == false) {
		return false;
	}
	clickable = false;
	//
	if (elt == 'NextBt') {
		eltx = parseInt($('NavList').offsetLeft) - 518; 
		nav_pg += 1;
		$('PrevBt').show();
		if (nav_pg == nav_pg_tt) {
			$('NextBt').hide();
		}
		new Effect.Move('NavList', {
			x: eltx,
			y: 10,
			mode: 'absolute', 
			duration: 0.75,
			transition: Effect.Transitions.EaseFromTo,
			fps: 30,
			beforeStart: function() {
				//
			},
			afterFinish: function() {
				clickable = true;
			}
		});
		return false;
	} else {
		eltx = parseInt($('NavList').offsetLeft) + 518; 
		nav_pg -= 1;
		$('NextBt').show();
		if (nav_pg == 1) {
			$('PrevBt').hide();
		}
		new Effect.Move('NavList', {
			x: eltx,
			y: 10,
			mode: 'absolute', 
			duration: 0.75,
			transition: Effect.Transitions.EaseFromTo,
			fps: 30,
			beforeStart: function() {
				//
			},
			afterFinish: function() {
				clickable = true;
			}
		});
		return false;
	}
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function scrollToSet() {
	var spliter = this.id.split('_');
	var eltid = spliter[1];
	var eltx = $('Set_'+eltid).offsetLeft;
	new Effect.Move('SetList', {
		x: Math.max(eltx * -1, scrolldif),
		y: 0,
		mode: 'absolute', 
		duration: 1,
		//duration: Math.abs(pos - val) * 1.5,
		transition: Effect.Transitions.EaseFromTo,
		fps: 30,
		beforeStart: function() {
			//
		},
		afterFinish: function() {
			//
		}
	});
	var scrollmax = scrollbar_w - $('Scroll').clientWidth;
	var scrollratio = Math.abs(scrolldif) / scrollmax;
	var scrollval = Math.abs($('Set_'+eltid).offsetLeft) / scrollratio;
	//$('debug').update('scrollratio = '+scrollval);
	new Effect.Move('Scroll', {
		x: scrollval,
		y: 0,
		mode: 'absolute', 
		duration: 1,
		//duration: Math.abs(pos - val) * 1.5,
		transition: Effect.Transitions.EaseFromTo,
		fps: 30,
		beforeStart: function() {
			//myControl.dispose();
		},
		afterFinish: function() {
			pos = $('Scroll').offsetLeft;
			//initScroll(pos)
		}
	});
}
