/*
Created By: Christian Klinger / Klinger-webDESIGN
Website: http://www.klinger-webdesign.de
Date: 2011-04-15
*/

var delay = 6000;		// set timer for slide effect
var delayOffer = 5000;		// set timer for slide effect
var move;				// distance to move the list item - set at initSlider()
var moveBackUp;
var timer;				// timer-object for start/stop timer
var list;				// list-object, contains all list items
var position;			// counter to detect position of list items

// call this function to start rotation
function initSlider( ) {
	list = $('slider').getElementsByTagName('li'); 								// get native list of slides
	var firstClone = document.getElementById('sliderItem-1').cloneNode(true); 	// create clone of first list element
	var i = list.length + 1
	firstClone.setAttribute( 'id', 'sliderItem-'+i ); 							// change ID-attribute for clone
	firstClone.setAttribute( 'rel', i ); 										// set rel-attribute - important for direkt linking
	new Insertion.Bottom( document.getElementById('slider'), firstClone ); 		// add clone to end of slider-lisst
	list = $('slider').getElementsByTagName('li');								// get full list of slides with clone at the end

	eventObserver();															// check for user events
	moveBackUp = move = -170; 																// set to width of li-element
	position = 0;																// set start position

	setTimeout( rotateSwitch( ), delay );										// start rotation
}

// main function for rotating list items
function rotateSwitch( ) {
	return( Effect.Run = function() {
		if( position == list.length - 1 ) {
			// if rotation is befor last position: move every list item to start
			for( i=1; i <= list.length; i++){
				$('sliderItem-'+i).setStyle({
					  'left': '0px',
					  'position': 'relative',
					  'top': '0px'
				});
			}
			position = 0;
			move =moveBackUp ;
			// call rotation without delay to avoid double delay time
			timer = setTimeout( rotateSwitch( ), 0 );
		}
		else {
			// move to next item in list
			for( i=1; i <= list.length; i++){
				new Effect.MoveBy($('sliderItem-'+i), 0, move);
			}
			position++;
			// call rotation with delay
			timer = setTimeout( rotateSwitch( ), delay );
		}
	});
}

// call this function to start rotation
function initOfferSlider( ) {
	listOffer = $('sliderOffer').getElementsByTagName('li'); 								// get native list of slides
	var firstCloneOffer = document.getElementById('sliderOfferItem-1').cloneNode(true); 	// create clone of first list element
	var iOffer = listOffer.length + 1
	firstCloneOffer.setAttribute( 'id', 'sliderOfferItem-'+iOffer ); 							// change ID-attribute for clone
	firstCloneOffer.setAttribute( 'rel', iOffer ); 										// set rel-attribute - important for direkt linking
	new Insertion.Bottom( document.getElementById('sliderOffer'), firstCloneOffer ); 		// add clone to end of slider-lisst
	listOffer = $('sliderOffer').getElementsByTagName('li');								// get full list of slides with clone at the end

	eventObserver();															// check for user events
	moveBackUpOffer = moveOffer = -174; 																// set to width of li-element
	positionOffer = 0;																// set start position

	setTimeout( rotateSwitchOffer( ), delay );										// start rotation
}

// main function for rotating list items
function rotateSwitchOffer( ) {
	return( Effect.Run = function() {
		if( positionOffer == listOffer.length - 1 ) {
			// if rotation is befor last position: move every list item to start
			for( iOffer=1; iOffer <= listOffer.length; iOffer++){
				$('sliderOfferItem-'+iOffer).setStyle({
					  'left': '0px',
					  'position': 'relative',
					  'top': '0px'
				});
			}
			positionOffer = 0;
			moveOffer =moveBackUpOffer ;
			// call rotation without delay to avoid double delay time
			timerOffer = setTimeout( rotateSwitchOffer( ), 0 );
		}
		else {
			// move to next item in list
			for( iOffer=1; iOffer <= listOffer.length; iOffer++){
				new Effect.MoveBy($('sliderOfferItem-'+iOffer), 0, moveOffer);
			}
			positionOffer++;
			// call rotation with delay
			timerOffer = setTimeout( rotateSwitchOffer( ), delayOffer );
		}
	});
}

function eventObserver() {

    var links = $$("#paging a");
    if( links ) {
    	links.each(function(link){										// check if direkt link is clicked
    		link.observe('click', function (event) {
        		if( link.readAttribute('rel') == 'sliderStartStop' ) {
        			if( link.innerHTML == "stop" ) {
        				clearTimeout(timer);							// stop rotation
        				link.update( 'start' );							// change start/stop button
        				return true;
        			} else {
        				link.update( 'stop' );							// change start/stop button
        				timer = setTimeout( rotateSwitch( ), delay );	// resume rotation
        				return true;
        			}
        		} else {
	    			clearTimeout(timer);								// stop rotation
	    			$("sliderStartStop").update( 'start' );				// change start/stop button
	    			position = link.readAttribute('rel');				// get position for clicked list item
	    			move = moveBackUp * (position - 1);						// calc distance to move

	    			for( i=1; i <= list.length; i++){					// move all items to view selected one
	    				$('sliderItem-'+i).setStyle({
	    					'left': move+'px',
	    					  'position': 'relative',
	    					  'top': '0px'
	    				});
	    			}
        		}
    		});
    	});
    	return true;
    }
}

