// JavaScript Document
var gallery_view_initiated = false;
var gal_load_err = false;
var view_width = '500'; // default width
var images = new Array();

try {
	if (!((gallery_style) && (typeof(gallery_style) == 'string'))) var gallery_style = '/styles/gallery.css';
	document.write('<link rel="stylesheet" href="' + gallery_style + '" type="text/css">');
} catch(e) {
	gal_load_err = true;
}
function get_widget_contents(view_obj) {
	if (gal_load_err) return false;
	if (!(widget_contents.length > 0)) return false;
	if (!gallery_view_initiated) {
		var xml = get_gallery_xml();
		if (!(xml.length == 2)) return false;
		widget_contents = xml;
		if (!set_widget_contents()) return false;
		gallery_view_initiated = true;
	}
	var jump_to = 1;
	if (!view_obj.src) {
		switch (view_obj) {
			case 'next':
				view_obj = get_image_element(1);
				break;
			case 'prev':
				view_obj = get_image_element(-1);
				break;
		}
		if ((typeof(view_obj) != 'object') || !view_obj.src) return false;
	}
	var class_text = '';
	if (view_obj.className) class_text = view_obj.className;
	else if (view_obj.getAttribute) class_text = view_obj.getAttribute('class');
	if (!gallery_set_image(gallery_make_path(gallery_filename(view_obj.src, false), gallery_filename(view_obj.src, true), false, false), class_text)) return false;
	if (!set_gallery_img_title()) return false;
	return true;
}

function set_gallery_img_title() {
	var title = document.getElementById('widget_content_img_title');
	if (!title) return false;
	var current_img = get_image_element(0);
	if (!current_img.src || !current_img.alt) return false;
	if (document.all) {
		 title.innerText = current_img.alt;
	} else {
		title.textContent = current_img.alt;
	}
	return true;
}

function get_image_element(range) { // image element can only be retrieven when an image is already set, range is an ordinary number (-oo, .. , 0 , .. , +oo) where 0 is the current image
	var gal = document.getElementById('gal');
	var gal = gal.getElementsByTagName('img');
	var current_img = document.getElementById('widget_content_img_img');
	if (!gal || !current_img.src) return false;
	current_img = gallery_filename(current_img.src, false) + '.' + gallery_filename(current_img.src, true);
	var img;
	if (images.length <= 0) {
		for (img in gal) {
			if ((typeof(gal[img]) == 'object') && gal[img].src && gal[img].onclick) images.push(gal[img]);
		}
	}
	if (images.length <= 0) return false;
	var count = null;
	var addend = -1;
	var file = '';
	if (range < 0) addend = 1;
	for (count in images) {
		file = gallery_filename(images[count].src, false) + '.' + gallery_filename(images[count].src, true);
		if (file == current_img) {
			count = parseInt(count);
			while (range != 0) {
					range = parseInt(range) + parseInt(addend);
					count = parseInt(count) + parseInt(addend*(-1));
					if (count < 0) count = images.length - 1;
					else if (count > (images.length - 1)) count = 0;
			}
			return images[count];
			break;
		}
	}
	/*for (var count = 0; ((count < images.length) && !found); count++) {
		if (gallery_filename(images[count].src, false) == current_img) {
			var temp_count = count;
			for (var cycle = 0; range != 0; cycle++) {
				temp_count += (range < 0) ? -1 : 1;
				range += (range < 0) ? 1 : -1;
				if (temp_count < 0) temp_count = images.length - 1;
				else if (temp_count >= images.length) temp_count = 0;
			}
			return ((temp_count < 0) || (temp_count >= images.lenth)) ? false : images[temp_count];
			break;
		}
	}*/
}

function gallery_filename(path, suffix) {
	path = (path.indexOf('/') >= 0) ? path.substring((path.lastIndexOf('/') + 1), path.length) : path;
	if (suffix) { // return suffix
		var dump = path.lastIndexOf('.');
		if ((dump < 1) || (dump >= (path.length - 1))) return false;
		return path.substring(dump, (path.length));
	} else { // return filename without suffix
		dump = path.indexOf('_');
		if (dump == 0) return false;
		else if (dump == -1) { // if no _ then all to extension is name
			return path.substring(0, (path.lastIndexOf('.')));
		} else {
			return path.substring(0, (dump ));
		}
	}
	return false;
}

function gallery_set_image(path, class_text) {
	var img;
	var widget_img = document.getElementById('widget_content_img_img');
	if (!widget_img) return false;
	try {
		//img = new Image();
		//img.src = path;
		/*if ((img.width > 0) && (img.height > 0)) { // IE
			widget_img.width = img.width;
			widget_img.height = img.height;
		} elseif ((img.width == 0) && (widget_img.width > 0)) {
			
		}*/
		try {
			widget_img.className = class_text;
			if (widget_img.setAttribute) widget_img.setAttribute('class', class_text);
		} catch(e) { }
		widget_img.src = path;
		
	} catch(e) {
		return false;
	}
	return true;
}

function gallery_make_path(filename, suffix, width, height) {
	if (!width) width = view_width;
	if (!width > 0) return false;
	//if (!height > 0) height = '';
	if (!filename.length || !suffix.length) return false;
	if (!suffix.indexOf('.') == 0) suffix = '.' + suffix;
	return '/img2/' + filename + '_' + width + suffix;
}

function get_gallery_xml() {
	if (!lang_arr) return false;
	/*gallery content setup: 
		<div id="widget_content">
			-------------->
			<div id="widget_content_prev">
				<a href="#none" onclick="load_widget('prev')" title="_PREV_"><span>_PREV_</span></a>
			</div>
			<div id="widget_content_img">
				<img src="" alt="" title="_CLOSE-TEXT_" onclick="hide_widget();" id="widget_content_img_img" />
				<p id="widget_content_img_title"> </p>
			</div>
			<div id="widget_content_next">
				<a href="#none" onclick="load_widget('next')" title="_NEXT_"><span>_NEXT_</span></a>
			</div>
			<--------------
		</div>
	*/
	var pile = new Array(0, 0);
	try { //DOM XML
		var prev;
		var next;
		var _link;
		var _link1;
		var span;
		var span1;
		var img;
		var img_div;
		var img_title;
		// ----- DIV PREV
		prev = document.createElement('div');
		_link = document.createElement('a');
		_link.setAttribute('href', '#none');
		_link.onclick = function () { load_widget('prev') };
		_link.setAttribute('title', lang_arr[3]);
		span = document.createElement('span');
		span.appendChild(document.createTextNode(lang_arr[3]));
		_link.appendChild(span);
		prev.appendChild(_link);
		prev.setAttribute('id', 'widget_content_prev');
		// ----- DIV NEXT
		next = document.createElement('div');
		_link1 = document.createElement('a');
		_link1.setAttribute('href', '#none');
		_link1.onclick = function () { load_widget('next') };
		_link1.setAttribute('title', lang_arr[4]);
		span1 = document.createElement('span');
		span1.appendChild(document.createTextNode(lang_arr[4]));
		_link1.appendChild(span1);
		next.appendChild(_link1);
		next.setAttribute('id', 'widget_content_next');
		// ----- DIV IMG
		img = document.createElement('img');
		img.setAttribute('alt', '');
		img.setAttribute('title', lang_arr[1]);
		img.setAttribute('src', '');
		img.setAttribute('id', 'widget_content_img_img');
		img.onclick = function () { hide_widget(); };
		img_div = document.createElement('div');
		img_div.setAttribute('id', 'widget_content_img');
		img_div.appendChild(img);
		img_title = document.createElement('p');
		img_title.setAttribute('id', 'widget_content_img_title');
		img_title.appendChild(document.createTextNode(' '));
		img_div.appendChild(img_title);
		pile[0] = 'DOM';
		pile[1] = new Array(prev, img_div, next);
	} catch (e) { // (IE), Opera < 9]
		pile[0] = 'XML';
		pile[1] = '<div id="widget_content_prev"><a href="#none" onclick="load_widget('+"'prev'"+')" title="'+lang_arr[3]+'"><span>'+lang_arr[3]+'</span></a></div><div id="widget_content_img"><img src="" alt="" title="" onclick="hide_widget();" /><p></p></div><div id="widget_content_next"><a href="#none" onclick="load_widget('+"'next'"+')" title="'+lang_arr[4]+'"><span>'+lang_arr[4]+'</span></a></div>';
	}
	return pile;
}
