/**
*
*	@author Popko Vitaliy ©
*	фото-скролл
*	@since 2008-09-26
*	
*	--config.example--
*	var LEFT_ARROW_STATUS 	= 'off'; 				//стрелка влево
*	var RIGHT_ARROW_STATUS 	= 'off'; 				//стрелка вправо
*	var COUNT_IMAGES	  	= 10; 					//кол-во картинко
*	var VISIBLE_IMAGES_Q	= 5;					//кол-во видимых картинко
*	var IMAGES_VISIBLE_AREA = 730;					//ширина видимой части
*	var AVERAGE_PHOTO_WIDTH = 170;					//средняя ширина картинки
*	var BLOCK_START_LEFT_POSITION = 120;			//Стартовая позиция блока
*/

var STOP_SCROLL_LEFT_POSITION = null; 

function scrolling( tooo, event ) {
	switch (tooo){
		case 'left':
			if ( RIGHT_ARROW_STATUS == 'off' ) return;
			break;
		case 'right':
			if ( LEFT_ARROW_STATUS == 'off' ) return;
			break;
	}
	var LeftPos = parseInt( $( 'imagesList' ).style.left );				
	$( 'imagesList' ).style.left = ( tooo == 'left' ? LeftPos - AVERAGE_PHOTO_WIDTH/3 : LeftPos + AVERAGE_PHOTO_WIDTH/3 ) + 'px';
	if ( LEFT_ARROW_STATUS == 'off' && LeftPos < BLOCK_START_LEFT_POSITION ) {
		enableArr( 'Left', 'on' );
	} else if ( LeftPos > BLOCK_START_LEFT_POSITION/2 && tooo == 'right' ) {
		enableArr( 'Left', 'off' );
	}
	if ( RIGHT_ARROW_STATUS == 'on' && LeftPos <= STOP_SCROLL_LEFT_POSITION+BLOCK_START_LEFT_POSITION ) {
		enableArr( 'Right', 'off' );
	} else if ( LeftPos >= STOP_SCROLL_LEFT_POSITION+BLOCK_START_LEFT_POSITION && tooo == 'right' ) {
		enableArr( 'Right', 'on' );
	}				
	var showQuantity = VISIBLE_IMAGES_Q+ -(Math.round( (parseInt( $( 'imagesList' ).style.left )-BLOCK_START_LEFT_POSITION)/AVERAGE_PHOTO_WIDTH) )
	showQuantity = tooo == 'right' ? showQuantity+1 : showQuantity;//чтоб не пропадали раньше времени
	if ( showQuantity > VISIBLE_IMAGES_Q && showQuantity <= COUNT_IMAGES ){
		$( 'photoItem' + (showQuantity-1) ).style.display = tooo == 'left' ? 'block' : 'none';
	}
}
function enableArr( sPos, sStatus ){
	if (!STOP_SCROLL_LEFT_POSITION ){
		STOP_SCROLL_LEFT_POSITION = -( (AVERAGE_PHOTO_WIDTH*(COUNT_IMAGES))-IMAGES_VISIBLE_AREA ); //Надо остановиться здесь!
	}
	var sTooo = sPos == 'Left' ? 'right' : 'left';
	$( 'arrow' + sPos ).className = ( sStatus == 'on' ? 'pointer' : '' );
	$( 'arrow' + sPos ).src = IMAGES_DIR + 'icons/arr'+( sPos.toLowerCase())+'_'+(sStatus=='on'?'red':'gray')+'.jpg';
	if ( sStatus == 'on' ){
		$( 'arrow' + sPos ).onmousedown = function(event){scrolling( sTooo, event );}
		$( 'arrow' + sPos ).onmouseup = function(event){scrolling( sTooo, event );}
	} else {
		$( 'arrow' + sPos ).onmousedown = function(){return;}
		$( 'arrow' + sPos ).onmouseup = function(){return;}
	}
	if ( sPos == 'Right' ){
		RIGHT_ARROW_STATUS = sStatus;
	} else {
		LEFT_ARROW_STATUS = sStatus;
	}
}


function hookEvent(element, eventName, callback)
{
	if(typeof(element) == "string")
	element = document.getElementById(element);
	if(element == null)
	return;
	if(element.addEventListener)
	{
	if(eventName == 'mousewheel')
	{
	element.addEventListener('DOMMouseScroll',
	callback, false);
	}
	element.addEventListener(eventName, callback, false);
	}
	else if(element.attachEvent)
	element.attachEvent("on" + eventName, callback);
}

function unhookEvent(element, eventName, callback)
{
	if(typeof(element) == "string")
	element = document.getElementById(element);
	if(element == null)
	return;
	if(element.removeEventListener)
	{
	if(eventName == 'mousewheel')
	{
	element.removeEventListener('DOMMouseScroll',
	callback, false);
	}
	element.removeEventListener(eventName, callback, false);
	}
	else if(element.detachEvent)
	element.detachEvent("on" + eventName, callback);
}

function cancelEvent(e) {
	e = e ? e : window.event;
	if(e.stopPropagation)
	e.stopPropagation();
	if(e.preventDefault)
	e.preventDefault();
	e.cancelBubble = true;
	e.cancel = true;
	e.returnValue = false;
	return false;
}

function gogo(e) {
	e = e ? e : window.event;
	var raw = e.detail ? e.detail : e.wheelDelta;
	//var normal = e.detail ? e.detail * -1 : e.wheelDelta / 40;
	scrolling( ( raw < 0 ? 'right' : 'left' ), e );
	cancelEvent(e);
}
