var galleryContainer = null;
var galleryList = null;
var scroller	= null;
var scrollStep = 1;
var containerWidth = 690.0;
var scrollerMinX = 22;
var scrollableAreaWidth = containerWidth - scrollerMinX * 2;
var galleryWidth = 0;
var gallerySliderInitDone = false;
var scrollerMaxX = containerWidth - 26;
var scrollPositionOfSelectedPhoto = 0;

function initGallerySlider ()
{
	if (gallerySliderInitDone) return;
	//IE7 workaround	
	if(navigator.userAgent.toLowerCase ().indexOf("msie 7")>-1)
	{
		var className = document.body.className;
		document.body.className = "ie7" + (className ? " " + className : "");
		
	}
	/*if ($.browser.mozilla)
	{
		var htmlElement = $("HTML")[0];
		var currentClassName = htmlElement.className;
		htmlElement.className = "mozilla" + (currentClassName ? " " + currentClassName : "");
	} */
	
	//Init vars
	galleryContainer = document.getElementById("GaleryContainer");
	galleryList = document.getElementById("GalleryList");
	scroller = document.getElementById("scroller");
	if (!scroller) return;
	
	//Init events
	scroller.parentNode.onclick 	= scrollSliderByClick;	
	scroller.parentNode.onmousemove 	= scrollSliderByMouseOver;
	scroller.parentNode.onmouseout 	=  SynGallerySlider.StopScrolling;
	
	//Init params
	containerWidth = galleryContainer.offsetWidth * 1.0;
	scrollerMaxX = containerWidth-26;
	scrollableAreaWidth = scroller.parentNode.offsetWidth  - scrollerMinX*1.0 * 2;
	galleryWidth = getGalleryWidth() * 1.0;
	
	galleryList.style.width = String(galleryWidth) + "px";
	scrollStep = Math.abs(galleryWidth - containerWidth) / scrollableAreaWidth;//containerWidth;
	
	//Init drag & drop 	
	Drag.init (scroller, null, scrollerMinX, scrollerMaxX, 4, 4, false, false);
	scroller.onDrag = doSliderScroll;           
	scroller.style.position = "relative";
	scroller.style.left = String(scrollerMinX) + "px";
	scroller.style.top = "4px";
	
	//Scroll the selected photo into view
	if (scrollPositionOfSelectedPhoto>0)
	{
		galleryList.style.left = "-" + String(scrollPositionOfSelectedPhoto) + "px";
		var scrollerX = (scrollPositionOfSelectedPhoto + scrollStep*scrollerMinX)*1.0/scrollStep;
		if (scrollerX<scrollerMinX) scrollerX = scrollerMinX;
		if (scrollerX>scrollerMaxX) scrollerX = scrollerMaxX;
		scroller.style.left = String(scrollerX) + "px";
		
	}
	
	gallerySliderInitDone = true;
}

function getGalleryWidth ()
{
	if (!galleryList) return;
	var w= 0;
	for (var i=0; i <galleryList.childNodes.length; i++)
	{
		if (galleryList.childNodes [i].tagName!="LI") continue;
		//Check the position of the selected photo
		if (window.PhotoPrize_SelectedPhoto == String(galleryList.childNodes [i].id).toLowerCase())
			scrollPositionOfSelectedPhoto = w;
		
		w+= galleryList.childNodes [i].offsetWidth;
	}
	
	return w + 185;
}
function doSliderScroll(x, y, e)
{
	if (e) 
	{
		if (e.stopPropagation) e.stopPropagation();
		else if (document.all) e.cancelBubble = true;
	}
	var left = scrollStep * (x-scrollerMinX); 
	SynGallerySlider.CurrentX = x;
	galleryList.style.left = "-" + String(left) + "px";
}
function scrollSliderByClick (e)
{
	if (!e) e = window.event;
	var src = e.srcElement || e.target;
	
	if (!src) return;
	if (src.id == "scroller") return;
	var x = e.offsetX || e.layerX;
	SynGallerySlider.CurrentX = x;
	moveScrollerTo (x);
}
var SynGallerySlider = {
	Scrolling : false
	,CurrentX: 0
	,Step : 10 //Pixels
	,Speed: 50 //Milliseconds
	,Direction: -1
	,Timer : null
	
	,StartScrolling: function (dir)
	{
		if (SynGallerySlider.Scrolling) return;
		SynGallerySlider.Scrolling = true;
		SynGallerySlider.Direction = dir;
		
		SynGallerySlider.Timer = window.setInterval (SynGallerySlider.Scroll, SynGallerySlider.Speed);
	}
	,StopScrolling: function (e)
	{
		if (SynGallerySlider.Timer) window.clearTimeout (SynGallerySlider.Timer);
		SynGallerySlider.Timer = null;
		scroller.parentNode.title = "";
		
		SynGallerySlider.Scrolling = false;
	}
	,Scroll : function ()
	{
		if (SynGallerySlider.CurrentX<=0) SynGallerySlider.StopScrolling();
		
		SynGallerySlider.CurrentX += SynGallerySlider.Direction * SynGallerySlider.Step;
		
		moveScrollerTo (SynGallerySlider.CurrentX); 
	}
}
function scrollSliderByMouseOver (e)
{
	if (!e) e = window.event;
	
	//Check params
	var src = e.srcElement || e.target;
	if (!src) return; 
	if (src.className!="slider-scrollbar") return src.parentNode.title = "";
	var x = e.offsetX || e.layerX;
	var direction = 0;
	if (x < scrollerMinX)
	{
		src.title = "previous"
		direction = -1;
	}
	else if (x > (scrollerMaxX + scrollerMinX))
	{
		src.title = "next";
		direction = 1;
	}
	else
	{
		src.title = "";
		direction = 0;
		SynGallerySlider.StopScrolling(e);
	}
	
	if (direction!=0)
		SynGallerySlider.StartScrolling(direction);
	
}
function moveScrollerTo(x)
{
	if (x < scrollerMinX) x = scrollerMinX;
	if (x > scrollerMaxX) x = scrollerMaxX;
	
	scroller.style.left = String(x) + "px";
	doSliderScroll (x);
}

function getQueryString(name,querystring) {
	if(querystring==null)
		querystring = document.location.search.substr(1);
	var search = "" + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (querystring.length > 0) {
		offset = querystring.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = querystring.indexOf("&", offset)
			if (end == -1) {
				end = querystring.length;
			}
			setStr = unescape(querystring.substring(offset, end));
		}
	}
	return(setStr);
}