var autoscroll_id = 0;
var autoscroll_speed = 50;
var autoscroll_step = 10;	// 	Step size in px to the left or right
var stepsInProgress = 10;	//	Number of steps before new image must be shown
var scrollCount = 0;


function usericon_set_state(iconID, state) {
	if (iconID == "add_item") {
		var userIcon = document.getElementById("user_icon_add");
		var userMenuLink = document.getElementById("user_menu_add_item");
		var navbarLink = document.getElementById("button_user_add_item");
		var navbarIcon = document.getElementById("img_user_add_item");
		var iconName = "item_add";
	}
	
	if (state == "enabled") {
		userIcon.src = "./media/system/icons/" + iconName + "_enabled.gif";
		userIcon.style.cursor = "pointer";
		userMenuLink.style.color = "#000000";
		userMenuLink.style.cursor = "pointer";
		userMenuLink.onmouseover = function() {this.style.backgroundColor="#e8eaed";}
		userMenuLink.onmouseout = function() {this.style.backgroundColor="";}
		userMenuLink.onclick = function() {
									document.getElementById("user_menu").style.display="none";
									process_request("validate_form","request=member.add_item");
								}
		
		navbarIcon.src = "./media/system/icons/" + iconName + "_enabled.gif";
		navbarLink.style.cursor = "pointer";
		navbarLink.onclick = function() {
									process_request("validate_form","request=member.add_item");
								}
	} else {
		userIcon.src = "./media/system/icons/" + iconName + "_disabled.gif";
		userIcon.style.cursor = "default";
		userMenuLink.style.color = "#aaaaaa";
		userMenuLink.style.cursor = "default";
		userMenuLink.onmouseover = "";
		userMenuLink.onmouseout ="";
		userMenuLink.onclick = "";
		
		navbarIcon.src = "./media/system/icons/" + iconName + "_disabled.gif";
		navbarLink.style.cursor = "default";
		navbarLink.onclick = "";
	}
}

function select_catalog_item (element, item_id, category) {
	var objSelectedItem = document.getElementById("selected_item");
	var selectedItemAttributes = objSelectedItem.attributes;
	
	if (element.attributes.getNamedItem("selected").value=='false') {
		process_request("view_member_item","request=frmViewCatalog.view_item&category="+category+"&item_id="+item_id);
		document.getElementById("selected_item").style.display="block";
		element.attributes.getNamedItem("selected").value="true";
		document.getElementById("img_"+element.id).style.border="1px #000000 solid";
	} else {
		element.attributes.getNamedItem("selected").value="false";
		document.getElementById("selected_item").style.display="none";
		document.getElementById("img_"+element.id).style.border="1px #c1dad7 solid";
	}
}

function select_next_catalog_item () {
	var objSelectedItem = document.getElementById("item_details");
	var selectedItemAttributes = objSelectedItem.attributes;
	var selectedItemID = selectedItemAttributes.getNamedItem("item_id").value;
	
	document.getElementById(selectedItemID+"_next_item").onclick();
}

function select_previous_catalog_item () {
	var objSelectedItem = document.getElementById("item_details");
	var selectedItemAttributes = objSelectedItem.attributes;
	var selectedItemID = selectedItemAttributes.getNamedItem("item_id").value;
	
	document.getElementById(selectedItemID+"_previous_item").onclick();
}

/* -- Scroll functions used within the gallery view ---- */
function gallery_scroll_left(itemCount) {
	gallery_autoscroll("left",itemCount,scrollCount-stepsInProgress);
}

function gallery_scroll_right(itemCount) {
	gallery_autoscroll("right",itemCount,scrollCount+stepsInProgress);
}

function gallery_autoscroll (direction,itemCount,maxScroll) {
	var objImageBar = document.getElementById("image_bar");
	var objImageViewer = document.getElementById("image_viewer");
	
	if (autoscroll_id == 0) {
		if (direction == "right" && parseInt(objImageViewer.attributes.getNamedItem("current_index").value) < (parseInt(itemCount)-1)) {
			autoscroll_id = setInterval("autoscroll_right("+itemCount+","+maxScroll+")",autoscroll_speed);
		} else if (direction == "left" && parseInt(objImageViewer.attributes.getNamedItem("current_index").value) > 0) {
			autoscroll_id = setInterval("autoscroll_left("+itemCount+","+maxScroll+")",autoscroll_speed);
		}
	}
}

function autoscroll_left(itemCount,maxScroll) {
	var objImageBar = document.getElementById("image_bar");
	var objImageViewer = document.getElementById("image_viewer");
	var currentIndex = objImageViewer.attributes.getNamedItem("current_index");
	var minIndex = Math.round((objImageBar.clientWidth / 2) / 100);
	
	maxScroll = parseInt(maxScroll);
	scrollCount = parseInt(scrollCount);
	
	if (maxScroll < scrollCount || maxScroll == -1) {
		if (objImageBar.scrollLeft <= 0) {
			objImageBar.style.marginLeft = parseInt(objImageBar.style.marginLeft) + autoscroll_step + 'px';
		} else {
			objImageBar.scrollLeft=objImageBar.scrollLeft - autoscroll_step;
		}
		
		if(scrollCount % stepsInProgress == 0) {
			if (parseInt(currentIndex.value) > 0) {
				document.getElementById("gallery_title_"+parseInt(currentIndex.value)).style.display = "none";
				document.getElementById("gallery_image_"+parseInt(currentIndex.value)).style.border = "1px #c1dad7 solid";
				
				currentIndex.value = parseInt(currentIndex.value) - 1;
				
				document.getElementById("gallery_title_"+parseInt(currentIndex.value)).style.display = "block";
				document.getElementById("gallery_image_"+parseInt(currentIndex.value)).style.border = "1px #000000 solid";
				
				document.getElementById("catalog_gallery_image_zoom").src = document.getElementById("gallery_image_"+currentIndex.value).src;
			} else {
				autoscroll_stop();
				reset_image_bar();
			}
		}
		
		scrollCount--;
	} else {
		autoscroll_stop();
	}
}

function autoscroll_right(itemCount,maxScroll) {
	var objImageBar = document.getElementById("image_bar");
	var objImageViewer = document.getElementById("image_viewer");
	var currentIndex = objImageViewer.attributes.getNamedItem("current_index");
	var minIndex = Math.round((objImageBar.clientWidth / 2) / 100);

	maxScroll = parseInt(maxScroll);
	scrollCount = parseInt(scrollCount);
	
	if (scrollCount < maxScroll || maxScroll == -1) {
		if (parseInt(objImageBar.style.marginLeft) > 10) {
			objImageBar.style.marginLeft = parseInt(objImageBar.style.marginLeft) - autoscroll_step + 'px';
		}
		else if (parseInt(currentIndex.value) + minIndex >= itemCount) {
			objImageBar.style.marginLeft = parseInt(objImageBar.style.marginLeft) - autoscroll_step + 'px';
		} else {
			objImageBar.scrollLeft=objImageBar.scrollLeft + autoscroll_step;
		}
		
		if(scrollCount % stepsInProgress == 0) {
			if (parseInt(currentIndex.value) < (itemCount-1)) {
				//	Load new image from database, index +7 from currentIndex
				var objImage = document.getElementById("gallery_image_"+(parseInt(currentIndex.value)+7));
				
				if (objImage != null && objImage.src.endsWith("empty.gif")) {
					currentCatalogID = document.getElementById("gallery_image_"+(parseInt(currentIndex.value)+7)).attributes.getNamedItem("catalog_id").value;
					currentThumbnail = document.getElementById("gallery_image_"+(parseInt(currentIndex.value)+7)).attributes.getNamedItem("thumbnail").value;
					document.getElementById("gallery_image_"+(parseInt(currentIndex.value)+7)).src = currentThumbnail;
				}
				
				document.getElementById("gallery_title_"+parseInt(currentIndex.value)).style.display = "none";
				document.getElementById("gallery_image_"+parseInt(currentIndex.value)).style.border = "1px #c1dad7 solid";
			
				currentIndex.value = parseInt(currentIndex.value) + 1;
				
				document.getElementById("gallery_title_"+parseInt(currentIndex.value)).style.display = "block";
				document.getElementById("gallery_image_"+parseInt(currentIndex.value)).style.border = "1px #000000 solid";
			
				document.getElementById("catalog_gallery_image_zoom").src = document.getElementById("gallery_image_"+currentIndex.value).src;
			} else {
				autoscroll_stop();
				reset_image_bar();
			}
		}
		
		scrollCount++;
	} else {
		autoscroll_stop();
	}
}

function autoscroll_stop() {
	var objImageViewer = document.getElementById("image_viewer");
	var currentIndex = objImageViewer.attributes.getNamedItem("current_index");
	var currentCatalogID = document.getElementById("gallery_image_"+parseInt(currentIndex.value)).attributes.getNamedItem("catalog_id").value;
	
	clearInterval(autoscroll_id);
	autoscroll_id = 0;
	
	document.getElementById("item_similar_items").innerHTML="<span id='item_not_selected'>vergelijkbare items worden gezocht...</span><br /><br />";
	process_request("update_database","request=update.session&catalog_id="+currentCatalogID);
	process_request("silent_update","request=frmViewCatalog.search_similar_items&catalog_item="+currentCatalogID,"item_similar_items");
}

function reset_image_bar() {
	var objImageBar = document.getElementById("image_bar");
	var objImageViewer = document.getElementById("image_viewer");
	var currentIndex = objImageViewer.attributes.getNamedItem("current_index");
	var currentCatalogID = 0;
	
	document.getElementById("gallery_title_"+parseInt(currentIndex.value)).style.display = "none";
	document.getElementById("gallery_image_"+parseInt(currentIndex.value)).style.border = "1px #c1dad7 solid";
			
	currentIndex.value = 0;
	
	document.getElementById("gallery_title_0").style.display = "block";
	document.getElementById("gallery_image_0").style.border = "1px #000000 solid";
	
	objImageBar.style.marginLeft=(((document.body.clientWidth - 450)/2)-50) + "px";
	objImageBar.scrollLeft = 0;
	
	currentCatalogID = document.getElementById("gallery_image_"+parseInt(currentIndex.value)).attributes.getNamedItem("catalog_id").value;
	process_request("update_database","request=update.session&catalog_id="+currentCatalogID);
	process_request("silent_update","request=frmViewCatalog.search_similar_items&catalog_item="+currentCatalogID,"item_similar_items");
	
	document.getElementById("catalog_gallery_image_zoom").src = document.getElementById("gallery_image_0").src;
}
