/*
	TODO: 
		2005/07/27	iskelti scroll'o CSS i atskira faila
				image'u loading'as - pirmiausiai uzkrauti tas foto, kurios turi buti matomos, o tik paskui nematomose scroll'o vietose, ishvedineti image "kraunamos" vietoje neuzkrautu foto
	
*/

function Size(vw, vh, hw, hh, hm){
	this.verticalWidth = vw;
	this.verticalHeight = vh;
	this.horizontalWidth = hw;
	this.horizontalHeight = hh;
	this.horizontalMargin = hm;
}

function Arrow(key, img_over, img_out){
	this.imgOver = new Image();
	this.imgOut = new Image();
	this.imgOver.src = img_over;
	this.imgOut.src = img_out;
	this.key = key;
}

function browserData(browser, alphaOver, alphaOut){
	this.browser = browser;
	this.alphaOver = alphaOver;
	this.alphaOut = alphaOut;
}


function scrollBar(actPic, id_list, link_list, titles_list, scroll_width, link_key, img_key, size, over_alpha, out_alpha, left_key, right_key, margin_top, orient_list){
	this.activePicture = actPic;
	this.activeID = 0;
	this.status = 0;
	this.titles_list = new Array();
	this.images = new Array();
	this.scrollWidth = scroll_width; 
	this.idList = id_list;
	this.linkList = link_list;
	this.titlesList = titles_list;
	this.imgKey = img_key;
	this.linkKey = link_key;
	this.size = size;
	this.alphaOver = over_alpha;
	this.alphaOut = out_alpha;
	this.leftKey = left_key;
	this.rightKey = right_key;
	this.marginTop = margin_top;
	
	if (typeof orient_list == "undefined")
		this.orientList = null;
	else
		this.orientList = orient_list;
	
	images_count = this.idList.length;
	for (i = 0; i < images_count; i++){
		this.images[i] = new Image();
		this.images[i].src = "/pictures/" + this.idList[i] + "/2.jpg";
		if (this.idList[i] == this.activePicture) {
			this.status = i;
			this.activeID = i;
		}
	}
	
	if (images_count - this.status  < this.scrollWidth){
		if (images_count <= this.scrollWidth)
			this.status = 0;
		else
			this.status = images_count - this.scrollWidth;
	}
	
	if (this.scrollWidth > this.images.length)
		this.scrollWidth = this.images.length;
	
	function stepLeft(){
		this.status--;
		if (this.status < 0) {
			this.status = 0;
			document.getElementById(this.leftKey).style.visibility = 'hidden';
		} else {
			if (document.getElementById(this.rightKey).style.visibility == 'hidden')
				document.getElementById(this.rightKey).style.visibility = 'visible';
		}
		return this;
	}
	
	
	
	function stepRight(){
		this.status++;
		if (this.status > this.images.length - this.scrollWidth) {
			this.status = this.images.length  - this.scrollWidth;
			document.getElementById(this.rightKey).style.visibility = 'hidden';
		} else {
			if (document.getElementById(this.leftKey).style.visibility == 'hidden')
				document.getElementById(this.leftKey).style.visibility = 'visible';
		}
		return this;
	}
	
	this.stepRight = stepRight;
	this.stepLeft = stepLeft;
}

function setBar(obj, scroll_id){
	var allHorizontal = true;
	for (i = 0; i < obj.scrollWidth; i++){
		pos = obj.status + i;
		document.images[obj.imgKey + i].src = obj.images[pos].src;
		if (pos == obj.activeID)
			document.images[obj.imgKey + i].style.border="1px solid red";
		else
			document.images[obj.imgKey + i].style.border="1px solid gray";
		
		document.getElementById(obj.linkKey + "" + i).href= obj.linkList[pos];
		if (obj.orientList != null){
			if (obj.orientList[pos] == 'v'){
				allHorizontal = false;
				document.images[obj.imgKey + "" + i].style.width = obj.size.verticalWidth + "px";
				document.images[obj.imgKey + "" + i].style.height = obj.size.verticalHeight + "px";
			} else {
				document.images[obj.imgKey + "" + i].style.width = obj.size.horizontalWidth + "px";
				document.images[obj.imgKey + "" + i].style.height = obj.size.horizontalHeight + "px";
			}
		} else {
			document.images[obj.imgKey + "" + i].style.width = obj.size.horizontalWidth + "px";
			document.images[obj.imgKey + "" + i].style.height = obj.size.horizontalHeight + "px";
		}
		
		document.images[obj.imgKey + "" + i].style.marginTop = "0px";
		
		
		var d = detectBrowser(document.images[obj.imgKey + i], obj);
		if (d.browser == "mozilla"){
			document.images[obj.imgKey + i].style.MozOpacity = d.alphaOut;
		} else if (d.browser == "ie"){
			//document.images[obj.imgKey + i].filters.alpha.opacity = d.alphaOut;
			document.images[obj.imgKey + i].style.filter = "alpha(opacity=" + obj.alphaOut + ")"; 
		}
		
		if (obj.scrollWidth >= obj.images.length){
			document.getElementById(obj.leftKey).style.visibility = 'hidden';
			document.getElementById(obj.rightKey).style.visibility = 'hidden';
		} else {
			if (obj.status == 0)
				document.getElementById(obj.leftKey).style.visibility = 'hidden';
			if (obj.status >= obj.images.length - obj.scrollWidth)
				document.getElementById(obj.rightKey).style.visibility = 'hidden';
		}
		enableActive(obj, document.images[obj.imgKey + "" + i], d);
	}
	if (allHorizontal){
		document.getElementById(scroll_id).style.height = obj.size.horizontalHeight + "px";
		//alert(document.getElementById(scroll_id).style.height);
		document.getElementById(obj.leftKey).style.height = obj.size.horizontalHeight + 10 + "px";
		document.getElementById(obj.rightKey).style.height = obj.size.horizontalHeight + 10 + "px";
		document.getElementById('arrow_link_left').style.paddingTop = ((obj.size.horizontalHeight) / 2) + "px";
		document.getElementById('arrow_link_right').style.paddingTop = ((obj.size.horizontalHeight) / 2) + "px";
		
	}
	else{
		document.getElementById(scroll_id).style.height = obj.size.verticalHeight + "px";
		//alert(document.getElementById(scroll_id).style.height);
		//document.getElementById(scroll_id).style.background = "#D1D1D1"
		document.getElementById(obj.leftKey).style.height = obj.size.verticalHeight + 10 + "px";
		document.getElementById(obj.rightKey).style.height = obj.size.verticalHeight + 10 + "px";
		document.getElementById('arrow_link_left').style.paddingTop = ((obj.size.verticalHeight) / 2) + "px";
		document.getElementById('arrow_link_right').style.paddingTop = ((obj.size.verticalHeight) / 2) + "px";
		if (obj.orientList != null){
			for (i = 0; i < obj.scrollWidth; i++){
				pos = obj.status + i;
				if (obj.orientList[pos] == 'h')
					document.images[obj.imgKey + "" + i].style.marginTop = obj.marginTop + "px";
			}
		}
	}
}

function enableActive(obj, img, d){
	if (obj.images[obj.activeID].src == img.src){
		if (d.browser == "mozilla"){
			img.style.MozOpacity = d.alphaOver;
		}
		else if (d.browser == "ie"){
			img.style.filter = "alpha(opacity=" + d.alphaOver + ")"; 
		}
	}
}

function step_left(obj, background_id){
	obj.stepLeft();
	setBar(obj, background_id);
	
}

function step_right(obj, background_id){
	obj.stepRight();
	setBar(obj, background_id);
}


function tooltipOver(obj, id){
	return overlib(obj.titlesList[obj.status+id],BGCOLOR,'#61624E',FGCOLOR,'#FFFFFF',TEXTCOLOR,'#61624E', WIDTH,100);
}
	
function tooltipOut(){
	nd();
}

function mouse_over(obj){
	document.images[obj.key].src = obj.imgOver.src;
}

function mouse_out(obj){
	document.images[obj.key].src = obj.imgOut.src;
}

function imageOver(img, obj){
	
	var d = detectBrowser(img, obj);
	if (d.browser == "mozilla")
		img.style.MozOpacity = d.alphaOver;
	else if (d.browser == "ie"){
		//img.filters.alpha.opacity = d.alphaOver;
		img.style.filter = "alpha(opacity=" + d.alphaOver + ")"; 
	}
}

function imageOut(img, obj){
	var d = detectBrowser(img, obj);
	if (d.browser == "mozilla"){
		img.style.MozOpacity = d.alphaOut;
	}
	else if (d.browser == "ie"){
		//img.filters.alpha.opacity = d.alphaOut;
		img.style.filter = "alpha(opacity=" + d.alphaOut + ")"; 
	}
	enableActive(obj, img, d);
}

function detectBrowser(img, obj){
	if (typeof img.style.MozOpacity == "string"){
		result =  new browserData("mozilla", obj.alphaOver/100, obj.alphaOut/100);
	} else if (img.filters){
		result =  new browserData("ie", obj.alphaOver, obj.alphaOut);
	}
	return result;
}
