colorSearch={
	chooseColor: function(atag, color) {
	ivw('chooseColor');
		/* if the link is already selected, we will unselect */
		var isSame=Element.hasClassName(atag,'hl');
		if ($(atag).up('.colorsearch')) {
			$(atag).up('.colorsearch').getElementsByClassName('colorsearchinput')[0].value=isSame?'':color;
			buttons=$(atag).up('.colorsearch').getElementsBySelector('a');
			for(i=0; i<buttons.length; i++) {
				if(buttons[i]==atag && !isSame) {
					buttons[i].addClassName('hl');
					buttons[i].blur();
				} else {
					buttons[i].removeClassName('hl');
				}
			}
		}
	}
}

function switchGallery(aStripID, anURL){

	var track = $('band_'+ aStripID);
	var theCurrentGallerySwitch = $('GallerySwitch_'+aStripID);
	
	var theChosenGalleryID = theCurrentGallerySwitch.options[theCurrentGallerySwitch.selectedIndex].value;
	
	var theElementToFill = track.getElementsByClassName('frame_center')[0];
	
	var requestParameters = eval(
		'('+theElementToFill.getElementsByClassName('requestParameters')[0].innerHTML+')'
	);
	
	var theURLParams = 'g=' + theChosenGalleryID + '&tpl=v2_module_image_list.html';
	
	if(aStripID > 12) {
		theURLParams = 'g=' + theChosenGalleryID + '&tpl=v2_module_series_list.html';
	}
	
	new Ajax.Request(anURL, {
			method:'get',
			parameters: theURLParams,
			onSuccess: function(transport) {
				theElementToFill.innerHTML = transport.responseText;
				$('plus_' + aStripID).setAttribute('href',globalURL + '/gallery/' + theChosenGalleryID);
				track.getElementsByClassName('linkl')[0].style.display = 'none';	 
				track.getElementsByClassName('linkr')[0].style.display = '';	
			},
			onFailure: function(){
				alert('Something went wrong...');
			}
	});	
	

}


function initPagerArrows(container)
{
	target = container.getElementsByClassName('frame_center')[0];
	havePrev = target.getElementsByClassName('havePrev')[0].innerHTML;
	if(havePrev == '1' || (havePrev == '' && target.getElementsByClassName('itemCount')[0].innerHTML > 0))
	{
		container.getElementsByClassName('linkl')[0].style.display='';
	}
	else
	{
		container.getElementsByClassName('linkl')[0].style.display='none';
	}	
	
	//container.getElementsByClassName('linkr')[0].style.visibility=target.getElementsByClassName('haveNext')[0].innerHTML=='1'?'visible':'hidden';
	container.getElementsByClassName('linkr')[0].style.display=target.getElementsByClassName('haveNext')[0].innerHTML=='1'?'':'none';
}

/* Scrolling Track Images 
 *	Ajax Category Scrolling
 *	Scrollt die Divs unter dem div mit id 'trackId'.
 *	Die 3 Frames werden durch ihre Klassen 'frame_before', 'frame_center',
 *  'frame_after' ermittelt.
 *	Die Frames k�nnen nich beliebige andere Klassen haben.
 *	Pro Aufruf werden die frames um 'direction' pixel verschoben.
 *	Is 'direction' negativ, so wird nach links verschoben. Sonst nach rechts.
 */
var scrollScrolling = false;
var scrollAjax = false;
function scroll(orientation, trackId, direction, url,ivw_appendix) {
	ivw_appendix = ivw_appendix?'-'+ivw_appendix:'';
	ivw('scroll' + ivw_appendix);
	if(scrollScrolling || scrollAjax)
		return;
	scrollScrolling = true;
	scrollAjax = true;
	var track = $(trackId);
	var before = track.getElementsByClassName('frame_before')[0];
	var center = track.getElementsByClassName('frame_center')[0];
	var after = track.getElementsByClassName('frame_after')[0];
	if(direction<0) {
		target=after;
	} else {
		target=before;
	}
	if(orientation=='v') {
		dirx=0;
		diry=direction;
	} else {
		dirx=direction;
		diry=0;
	}
	
	center.removeClassName("frame_center");
	after.removeClassName("frame_after");
	before.removeClassName("frame_before");
	var requestParameters = eval(
		'('+center.getElementsByClassName('requestParameters')[0].innerHTML+')'
	);
	
	if(direction > 0) {
		//loading content for invisible before frame
		requestParameters['prev'] = 't';
		requestParameters['anchorId'] = center.getElementsByClassName('firstId')[0].innerHTML;
		new Ajax.Request(url, {
			method:'get',
			parameters: requestParameters,
			onSuccess: function(transport) {
				target.innerHTML = transport.responseText;
				scrollAjax = false;
				track.getElementsByClassName('linkl')[0].style.display=target.getElementsByClassName('havePrev')[0].innerHTML=='1'?'':'none';
				track.getElementsByClassName('linkr')[0].style.display=target.getElementsByClassName('haveNext')[0].innerHTML=='1'?'':'none';
				/* start scrolling */
				var oldLeft = before.style.left;
				var oldTop = before.style.top;
				center.addClassName("frame_after");
				after.addClassName("frame_before");
				before.addClassName("frame_center");
				new Effect.MoveBy(before, diry, dirx);
				new Effect.MoveBy(center, diry, dirx, {
					afterFinish: function (obj) {
						after.style.left = oldLeft;
						after.style.top = oldTop;
						scrollScrolling = false;
					}	
				});		
			},
			onFailure: function(){
				scrollAjax = false;
				scrollScrolling=false;
				alert('Something went wrong...');
			}
		});
	} else if(direction < 0) {
		//loading content for invisible after frame
		requestParameters['anchorId'] = center.getElementsByClassName('lastId')[0].innerHTML;
		requestParameters['prev'] = '';
		new Ajax.Request(url, {
			method:'get',
			parameters: requestParameters,
			onSuccess: function(transport) {
				target.innerHTML = transport.responseText;
				scrollAjax = false;
				track.getElementsByClassName('linkl')[0].style.display=target.getElementsByClassName('havePrev')[0].innerHTML=='1'?'':'none';
				track.getElementsByClassName('linkr')[0].style.display=target.getElementsByClassName('haveNext')[0].innerHTML=='1'?'':'none';
				/* start scrolling */
				var oldLeft = after.style.left;
				var oldTop = after.style.top;
				center.addClassName("frame_before");
				after.addClassName("frame_center");
				before.addClassName("frame_after");
				new Effect.MoveBy(after, diry, dirx);
				new Effect.MoveBy(center, diry, dirx, {
					afterFinish: function () {
						before.style.left = oldLeft;
						before.style.top = oldTop;
						scrollScrolling = false;
					}	
				});
			},
			onFailure: function(){
				scrollAjax = false;
				scrollScrolling=false;
				alert('Something went wrong...');
			}
		});
	}
}

function hscroll(trackId, direction, url, ivw_appendix) {
	scroll('h', trackId, direction, url, ivw_appendix);
}

function vscroll(trackId, direction, url, ivw_appendix) {	
	scroll('v', trackId, direction, url, ivw_appendix);
}
 	
 	

ThumbEnlarger =  
{ 	
	trace_mouse_postition_started: false,
	
	init: function ()
	{
		this.xOffset = 30;
		this.yOffset = 95;
		if(!this.trace_mouse_postition_started)
		{
			document.onmousemove = this.updateMousePosition;
			this.trace_mouse_postition_started = true;
		}
		this.varPicDiv = document.getElementById('picDiv');
	},
	
	updateMousePosition: function(e) 
	{
		
	    //x -= ThumbEnlarger.triggerCurrent.offsetLeft;
	    //y -= ThumbEnlarger.triggerCurrent.offsetTop; 
	    
	    
		if (typeof ThumbEnlarger.varPicDiv != 'undefined' && ThumbEnlarger.varPicDiv != null && ThumbEnlarger.varPicDiv.style.display == '') 
		{
			if (document.documentElement && document.documentElement.scrollTop) // Explorer 6 Strict
			{
				scrollX = document.documentElement.scrollLeft;
				scrollY = document.documentElement.scrollTop;
			}
			else if (document.body) // all other Explorers
			{
				scrollX = document.body.scrollLeft;
				scrollY = document.body.scrollTop;
			}	
			x = (document.all) ? window.event.clientX + scrollX : e.pageX;
			y = (document.all) ? window.event.clientY + scrollY  : e.pageY;
			ThumbEnlarger.varPicDiv.style.left = (x + ThumbEnlarger.xOffset) + "px";
			ThumbEnlarger.varPicDiv.style.top 	= (y - ThumbEnlarger.yOffset) + "px";
		}
	},
	
	//shows an enlarged image relative to the mouse position
	show: function(imgPath) {
		varPicDivImg = document.getElementById('picDivImg');
		varPicDivImg.src = imgPath;
		this.varPicDiv.style.display = "";
		//ivw('thumbenlarger');
	},
	
	//hides the enlarged image
	hide: function() {
		//varPicDivImg.src = '';
		this.varPicDiv.style.display = "none";
	}
}