
var gallery = {
	init: false,
	width: null,
	viewwidth: null,
	itemwidth: null,
	btn_slideleft: null,
	btn_slideright: null,
	slider : null,
	fct_slideleft : null,
	fct_slideright : null,
	fct_slide : null,
	fct_updatebuttons : null,
	minpos : 0,
	maxpos : 0,
	steps : 1,
	pos : 0,
	slideduration : 0,
	autoslidepressduration : 0,
	autoslideduration : 0,
	animatemode : 'swing',
	
	pressdurationhandler : null
	
};

$(document).ready( function() {
	$('.invisible').each( function() {
		$(this).css( 'display', 'block');
	});
	
	$('.scrollable').jScrollPane( {
			showArrows		: true,
			scrollbarWidth	: 12,
			scrollbarMargin	: 10});


	$('.invisible').each( function() {
		$(this).css( 'display', 'none');
	});
	
	
	if (typeof gmapinit == 'function') {
		gmapinit();
	}


	$('.thumb').click( function() {
		var gallerymatch = $(this).attr('class').match(/galleryview\_(\d+)/);
		var itemid = gallerymatch[0];
		var itemobjid = gallerymatch[1];
		
		$('._largeitem_ ').each( function() {
			if (!$(this).hasClass(itemid)) {
				$(this).fadeOut('slow');
			} else {
				$(this).fadeIn('slow');
			}
		});
	});



	$('.thumbview').each( function() {
		if (gallery.init) return;
		
		gallery.slider = $(this).children('.gallery').children('div');
		gallery.viewwidth = $(this).children('.gallery').width();
		gallery.width = $(this).children('.gallery').children('div').children('div').width();
		var tmp = $(this).children('.gallery').children('div').children('div').children('.thumb');
		if (tmp.size() > 0) {
			gallery.itemwidth = tmp.width()*1 + tmp.css( 'margin-left').match(/(\d+)/)[1]*1 + tmp.css( 'margin-right').match(/(\d+)/)[1]*1;
		} else {
			gallery.itemwidth = 0;
		}
		gallery.btn_slideleft = $(this).children('.slide.left');
		gallery.btn_slideright = $(this).children('.slide.right');
		
		gallery.min = 0;
		gallery.max = Math.ceil(gallery.width / gallery.itemwidth) - Math.ceil( gallery.viewwidth / gallery.itemwidth);
		gallery.steps = 1;
		gallery.slideduration = 500;
		gallery.stdslideduration = gallery.slideduration;
		gallery.autoslideduration = 250;
		gallery.autoslidepressduration = 50;
		
		
		gallery.btn_slideleft.mousedown( function() {
			gallery.fct_slideleft();
			window.clearTimeout(gallery.pressdurationhandler);
			window.clearInterval(gallery.pressdurationhandler);
			gallery.slideduration = gallery.stdslideduration;
			gallery.pressdurationhandler = window.setTimeout( function() {
				gallery.animatemode = 'linear';
				gallery.slideduration = Math.ceil(gallery.stdslideduration / 2);
				gallery.pressdurationhandler = window.setInterval( 'gallery.fct_slideleft();', gallery.autoslideduration);
			}, gallery.autoslidepressduration);
		});
		gallery.btn_slideleft.mouseup( function() {
			gallery.animatemode = 'swing';
			window.clearTimeout(gallery.pressdurationhandler);
			window.clearInterval(gallery.pressdurationhandler);
			gallery.slideduration = gallery.stdslideduration;
		});

		gallery.btn_slideright.mousedown( function() {
			gallery.fct_slideright();
			window.clearTimeout(gallery.pressdurationhandler);
			window.clearInterval(gallery.pressdurationhandler);
			gallery.slideduration = gallery.stdslideduration;
			gallery.pressdurationhandler = window.setTimeout( function() {
				gallery.animatemode = 'linear';
				gallery.slideduration = Math.ceil(gallery.stdslideduration / 2);
				gallery.pressdurationhandler = window.setInterval( 'gallery.fct_slideright();', gallery.autoslideduration);
			}, gallery.autoslidepressduration);
		});
		gallery.btn_slideright.mouseup( function() {
			gallery.animatemode = 'swing';
			window.clearTimeout(gallery.pressdurationhandler);
			window.clearInterval(gallery.pressdurationhandler);
			gallery.slideduration = gallery.stdslideduration;
		});
		
		gallery.fct_slideleft = function() {
			var op = gallery.pos;
			gallery.pos -= gallery.steps;
			if (gallery.pos < gallery.min) gallery.pos = gallery.min;
			if (op != gallery.pos) gallery.fct_slide();
		};
		
		gallery.fct_slideright = function() {
			var op = gallery.pos;
			gallery.pos += gallery.steps;
			if (gallery.pos > gallery.max) gallery.pos = gallery.max;
			if (op != gallery.pos) gallery.fct_slide();
		};
		
		gallery.fct_slide = function() {
			var m = -gallery.pos * gallery.itemwidth;
			gallery.slider.stop();
			gallery.slider.animate( { 'marginLeft' : m}, gallery.slideduration, gallery.animatemode, function() {gallery.fct_updatebuttons();});
		}
		
		gallery.fct_updatebuttons = function() {
			if (gallery.pos == gallery.min) {
				gallery.btn_slideleft.css( 'visibility', 'hidden');
			} else {
				gallery.btn_slideleft.css( 'visibility', 'visible');
			}
			if (gallery.pos >= gallery.max || isNaN(gallery.max)) {
				//alert(gallery.max);
				gallery.btn_slideright.css( 'visibility', 'hidden');
			} else {
				gallery.btn_slideright.css( 'visibility', 'visible');
			}
		}
		
		
		
		gallery.fct_updatebuttons();
		
	});
	
	
	$('.jScrollPaneContainer .CMSeditPopUp').each( function() {
		var menu = this; 
		$(this).prev().children('a').click( function() {
			$(menu).css( 'top', '');
			$(menu).css( 'left', '');
		});
	});

});

