var item_galleries = new Array();
var enlarged_img;
var caption_span;
var mh_gal_go_to_end = false;

function init_item_galleries() {
	var item_galleries = $$('.item_gallery_holder');
	for(var i=0;i<item_galleries.length;i++) {
		var gallery_id = item_galleries[i].getProperty('id');
		activate_gallery(gallery_id);
	}
}
function activate_gallery(item_gallery_id) {
	var image_margin=12;
	var max_items_vis = 4;
	var read_viewport_w = false;
	var check_nav_visible = false;
	if(item_gallery_id=='focus_page_gal') {
		enlarged_img=$('modal_gal_focus');
		caption_span=$('gallery_caption');
		read_viewport_w = true;
	} else if(item_gallery_id=='mh_items_small') {
		image_margin=5;
		check_nav_visible=true;
		max_items_vis = 13;
	}
	var gal_index = 0;
	var item_gallery_belt = $$('#'+item_gallery_id+' .item_gallery_belt')[0];
		
	var gal_prev = $$('#'+item_gallery_id+' a.gal_prev')[0];
	var gal_next = $$('#'+item_gallery_id+' a.gal_next')[0];

	var item_gallery_list = $$('#'+item_gallery_id+' ul.item_gallery_list')[0];
	var item_gallery_list_items = $$('#'+item_gallery_id+' li.gal_item_li');
	var item_gallery_pic_links = $$('#'+item_gallery_id+' a.item_gal_link');
	var num_gal_items = item_gallery_list_items.length;

	var gallery_viewport_w = item_gallery_belt.getStyle('width').toInt();

	var gal_item_animator = new Fx;
		
	// PAK ALLE IMG WIDTHS
	var gall_image_pos = new Array();
	for(var i=0; i<item_gallery_list_items.length; i++) {
		gall_image_pos[i] = item_gallery_list_items[i].getStyle('left').toInt();
	}
	// CHECK VIEWPORT WIDTH
	if(read_viewport_w==true) {
		var gal_list_width = item_gallery_list.getStyle('width').toInt();
	} else {
		if(num_gal_items>0) {
			var last_left = gall_image_pos[num_gal_items-1];
			var last_width = item_gallery_list_items[num_gal_items-1].getElement('img').width;
			var gal_list_width = last_left + last_width + image_margin;
		} else {
			gal_list_width = 0;
		}
		// output('last_left = '+last_left+' gal_list_width = '+gal_list_width+' & last_width = '+last_width);
	}
	var end_reached = false;
	// NAV VISIBLE ?
	if(check_nav_visible==true) {
		if(num_gal_items<=max_items_vis) {
			gal_next.setStyle('visibility', 'hidden');
			gal_prev.setStyle('visibility', 'hidden');
		} else {
			gal_next.setStyle('visibility', 'visible');
			gal_prev.setStyle('visibility', 'visible');
			if(mh_gal_go_to_end==true) {
				var cur_end = -1*(gal_list_width - gallery_viewport_w) + image_margin;
				gal_index = num_gal_items-max_items_vis;
				end_reached=true;
				item_gallery_list.setStyle('left', cur_end);
				output('scroll to end: gal_index = '+gal_index);
				// alert('scroll to end yesch');
			}
		}
	}
	
	/*
	CHECK FOR PREV NEXT LARGE IMAGE NAV
	#modal_img_prev .modal_img_nav
	#modal_img_next .modal_img_nav
	#prev_active_area .nav_active_area
	#next_active_area .nav_active_area
	*/
	if($('modal_img_prev')!=null) {
		var prev_img_link = $('modal_img_prev');
		var next_img_link = $('modal_img_next');
		var pic_index = $('pic_index_counter').value.toInt();
		var num_pics = item_gallery_list_items.length;
		
		function toggle_prev_next_visibility(index) {
			//alert('pic_index = '+pic_index+' nun_pics = '+num_pics)
			if(pic_index==0) {
				prev_img_link.style.visibility='hidden';
				next_img_link.style.visibility='visible';		
			} else if(pic_index==(num_pics-1)) {
				prev_img_link.style.visibility='visible';
				next_img_link.style.visibility='hidden';		
			} else {
				prev_img_link.style.visibility='visible';
				next_img_link.style.visibility='visible';		
			}
		}
		
		toggle_prev_next_visibility(pic_index);
		
		prev_img_link.onclick=function() {
			if((pic_index-1)>=0) {
				pic_index--;
				show_large_pic(item_gallery_pic_links[pic_index]);
				toggle_prev_next_visibility(pic_index);
			}
			return false;
		}
		next_img_link.onclick=function() {
			if((pic_index+1)<num_pics) {
				pic_index++;
				show_large_pic(item_gallery_pic_links[pic_index]);
				toggle_prev_next_visibility(pic_index);
			} else {
				alert('fail')
			}
			return false;
		}
	}
	
	// POP-UP LINK VAN IMAGES
	item_gallery_pic_links.each(function(gal_link, i){
		gal_link.onclick=function() {
			if(item_gallery_id=='focus_page_gal') {
				show_large_pic(this);			
			} else if(item_gallery_id=='mh_overview_gallery') {
				return true;
			} else if(item_gallery_id=='mh_items_small') {
				return true;
			} else {
				show_modal(this);
			}
			return false;
		}
	});
	
	// NEXT BUTTON
	// Quart.easeOut
	if(gal_next) {
		gal_next.onclick=function() {
			var cur_start = item_gallery_list.style.left;
			if(cur_start=='') { cur_start='0px'; }
			var cur_start_val = cur_start.toInt();
			var cur_diff = (-1*cur_start_val) + gallery_viewport_w;
			// NEXT POS BEKIJKEN, ALS VOLGENDE WITRUIMTE OVERLAAT, DAN NEXT POS AANPASSEN NAAR MAX
			var next_left_pos = gall_image_pos[gal_index+1];
			if((gal_index<num_gal_items) && (end_reached==false)) {
				gal_index++;
				var space_left = next_left_pos+gallery_viewport_w+ image_margin;
				if(space_left>=(gal_list_width)) {	
					var cur_end = -1*(gal_list_width - gallery_viewport_w) + image_margin;
					end_reached=true;
				} else {
					var cur_end = '-'+gall_image_pos[gal_index]+'px';
				}
				var cur_duration = 275;//cur_start_val - cur_end.toInt();
				gal_item_animator = new Fx.Tween(
						item_gallery_list, 
						{ property: 'left', duration: cur_duration, transition: Fx.Transitions.Quart.easeIn }
					)
					.start(cur_start, cur_end);
			}
			return false;
		}
	}
	// PREV BUTTON
	if(gal_prev) {
		gal_prev.onclick=function() {
			if(gal_index>0) {
				var cur_start = item_gallery_list.style.left;
				var max_gal_index = num_gal_items-1;
				gal_index--;
				if(end_reached==true) { end_reached=false; }
				var cur_end = '-'+gall_image_pos[gal_index]+'px';
				output('cur_start = '+cur_start+' & cur_end = '+cur_end);
				var cur_duration = 275;//-1*(cur_start.toInt() - cur_end.toInt());
				gal_item_animator = new Fx.Tween(
					item_gallery_list, 
					{ property: 'left', duration: cur_duration, transition: Fx.Transitions.Quart.easeIn }
					)
					.start(cur_start, cur_end);
			}
			return false;
		}
	}
}
//////////////////////////////////////////////////////////////////
/////////////////// ENLARGE PIC IN GALLERY MODAL /////////////////
//////////////////////////////////////////////////////////////////

function show_large_pic(the_link) {
	var img_to_show =the_link.href;
	var img_id = the_link.rel;
	update_full_screen_link(img_id);
	/*
	var img_settings = the_link.rev;
	image_settings_array = get_image_settings(img_settings);
	var img_width = image_settings_array[0];
	var img_height = image_settings_array[1];
	var img_caption = image_settings_array[2];
	if(img_caption=='') { 
		img_caption='&nbsp;'; 
	} else {
		img_caption = unescape(img_caption);
		img_caption = img_caption.replace(/\+/g, ' ');
	}
	*/
	// SHOW LOADING
	toggle_opacity(the_link, 'transparent');

	// PRELOAD IMAGE
	var load_img = new Image();
	load_img.onload = function() {
		enlarged_img.src=img_to_show;
		//enlarged_img.width=img_width;
		//enlarged_img.height=img_height;
		toggle_opacity(the_link, 'full');
		// SET CAPTION
		//caption_span.innerHTML=img_caption;
	}
	load_img.src=img_to_show;
}
var full_scr_link_checked_yet = false;
var full_scr_link = 0;
var full_scr_link_large = 0;

function update_full_screen_link(img_id) {
	if(full_scr_link_checked_yet==false) {
		if($('po_fullscreen')!=null) {
			full_scr_link = $('po_fullscreen');
			full_scr_link_large = $('gal_large_link');
		}
		full_scr_link_checked_yet=true;
	}
	if(full_scr_link!=0) {
		
		var cur_href = 	full_scr_link.href;
		var zoom_img_pos = cur_href.indexOf('zoom_img=') ;
		var cur_img_id = cur_href.substring(zoom_img_pos);
		var new_href = cur_href.replace(cur_img_id, 'zoom_img='+img_id);
		full_scr_link.href = new_href;
		full_scr_link_large.href = new_href;
	}
}
function get_image_settings(img_settings) {
	img_settings_array = img_settings.split('###');
	// WIDTH
	var img_width_raw = img_settings_array[0]; //  '{width: 315'
	var img_width = img_width_raw.split('{width: ')[1];	
	// HEIGHT
	var img_height_raw = img_settings_array[1]; //  height: 445
	var img_height = img_height_raw.split('height: ')[1];	
	// CAPTION
	img_caption_raw = img_settings_array[2]; // caption: ''}
	var img_caption = img_caption_raw.replace("caption: '", "");
	img_caption = img_caption.replace("'}", "");

	var image_settings_array = new Array(img_width, img_height, img_caption);
	return image_settings_array;
}
