// Assign appropriate 'on' classname to triggers
fadeClassSwitch = function(id,frameto,classname) {
	for(i=1; i<eval("numberofframes" + id) + 1; i++) {
		eval("$('fadetrigger" + id + i + "').removeClassName('" + classname + "');");
	}
	eval("$('fadetrigger" + id + frameto + "').addClassName('" + classname + "');");
}

// Are we able to trigger a fade?
checkFadeH = function(id,classname) {
	if(eval("lockfade" + id) != true) {
		if(eval("fadeinprogress" + id) != true) {
			eval("fadeinprogress" + id + "=true;");
			var newframe = eval("currentframe" + id) + 1;
			if(newframe > eval("numberofframes" + id)) {
				newframe = 1;
			}		
			moveFadeH(id,eval("currentframe" + id),newframe,classname);		
			eval("currentframe" + id + "=newframe;");
		}
	}
}

// Fade out one div, fade in another
moveFadeH = function(id,currentframe,newframe,classname) {	
	if($('fade' + id + currentframe)) {	
		fadeClassSwitch(id,newframe,classname);
		new Effect.Fade('fade' + id + currentframe, {
			duration: 0.2,
			afterFinish: function() { 
				new Effect.Appear('fade' + id + newframe, {
					duration: 0.2,
					afterFinish: function() { 				
						eval("fadeinprogress" + id + "=false;"); 	
					} 
				});							
			} 
		});				
	} 
}

// Manual jump, lock autoslide - apply class to relevant clicked element
jumpFadeH = function(id,frameto,classname) {
	eval("lockfade" + id + "=true;");						
	fadeClassSwitch(id,frameto,classname);
	fadeTo(id,frameto);	
}

autofadeH = function(id,delay,classname) {
	setTimeout(function() { autofade2H(id, delay, classname) }, delay);	
}	

autofade2H = function(id, delay ,classname) {
	checkFadeH(id, classname);
	autofadeH(id, delay, classname);	
}
