/*--------------------------------------------------------------------------
 *  Smooth Scroller Script, version 1.0.1
 *  (c) 2007 Dezinerfolio Inc. <midart@gmail.com>
 *
 *  For details, please check the website : http://dezinerfolio.com/
 *
/*--------------------------------------------------------------------------*/

Scroller = {
	// control the speed of the scroller.
	// dont change it here directly, please use Scroller.speed=50;		
	tx:0,
	speed:8,
	width:474,
	animationId:false,
	isSliding:false,
	frameToPos:0,	
	scroll_width:474,
	scroll_border:12,
	scroll_element_width:20,
	element_lenght:0,
	start_element:10,
	first_start_silderh:0,
	ie:false,
	scroll_elements_counts:0,
	silderh_width:34,
	scrollerOBJ:"team_scroll_holder",
				
							
	// attach an event for an element
	// (element, type, function)
	add: function(event, body, d) {
	    if (event.addEventListener) return event.addEventListener(body, d,false)
	    if (event.attachEvent) return event.attachEvent('on'+body, d)
	},

	// kill an event of an element
	end: function(e){
		if (window.event) {
			window.event.cancelBubble = true
			window.event.returnValue = false
      		return;
    	}
	    if (e.preventDefault && e.stopPropagation) {
	      e.preventDefault()
	      e.stopPropagation()
	    }
	},
	
	echo: function(s){ 
    	var elDebug = document.getElementById("debug");
    	elDebug.innerHTML = "<div> " + s + "</div>" + elDebug.innerHTML;	
	},
	
	
	// returns the X position of the div
	gx: function (d) {
		
		
		if(parseInt(d) < 1){
			return false;	
		}
		return parseInt(Scroller.width * (d-1));		
	},
	
	animateFrameSlide:function(toX){
		
		if(toX<0)toX=0;
		//if(toX>1)toX=1;
		//if(toX<0)toX=0;
		
			Scroller.frameToPos = toX*-1;			
			window.clearInterval(Scroller.animationId);
			//var w=AC.ProductBrowser.offsetContentWidth;
			//var stopPoint=w*toX;								
			//var sliderStopPoint=(Math.round(AC.ProductBrowser.viewportWidth-AC.ProductBrowser.sliderOffset)*toX);
			//Scroller.isSliding=true;						
			
			Scroller.animationId=window.setInterval(function(){
															 
				var framePos = parseInt($(Scroller.scrollerOBJ).style['left'])||0;								
				var x = Scroller.calculateDecel(framePos, Scroller.frameToPos);				
				x =  parseInt(framePos - x);
				
				$(Scroller.scrollerOBJ).style.left =  (x) + 'px';				
				//$(Scroller.scrollerOBJ).scrollLeft;					
				
				if(x == Scroller.frameToPos){
					window.clearInterval(Scroller.animationId);
					Scroller.isSliding=false;
				}
			}, 30);

	},
	
	calculateDecel:function(from,to){
		/*var n=from-Math.floor((from-to)*.4);
		if(Math.abs(from-to)<4)return to;
		else return n;*/
		ix = from - to;	
		
		ax =  Math.ceil( ix / Scroller.speed )
	//	ax = ix*.4
		if(ax == 0 && Math.abs(ix) > 0)
			ax =  ix / Scroller.speed;

		return ax;
	},
	
	//Der Slider springt auf das Element, zurückgegeben wird Element ID!
	moveSilderHandeltoPoint: function(d){
		
				
		objSlider = $("ice-sliderhandle");
		//selber punkt
		if(objSlider.getAttribute('rel') == d.getAttribute('rel')){
			return false;
		}		
		
		//error / keiner id!
		if(d.getAttribute('rel') < 0){
			return false;	
		}			
		
		//berechnung - wohin der Silder		
		//move_to = ((Scroller.first_start_silderh + (Scroller.scroll_element_width * (d.getAttribute('rel')-1))) - (Scroller.silderh_width/2)) + 'px';
		move_to = parseInt( (Scroller.first_start_silderh - (Scroller.silderh_width/2)) + (Scroller.element_lenght * (d.getAttribute('rel')-1))) ;
		if(BrowserDetect.browser == "Explorer" && BrowserDetect.version == 7){
			//move_to = parseInt( (Scroller.first_start_silderh - (Scroller.silderh_width/2)) + (Scroller.element_lenght * (d.getAttribute('rel')-1)) + 7) ;
		}
		//slider bewegen
		objSlider.style.left = parseInt(move_to) + 'px';	
		//on class entfernen		
		removeClass(document.getElementById("ice-element_" + (objSlider.getAttribute('rel')-1)), "ice-go_line_ison");
		//übertragen der id - wo steht er?
		objSlider.setAttribute('rel',d.getAttribute('rel'));
		
		//und hinzufügen des on class
		addClass(d, "ice-go_line_ison");
		
		return d.getAttribute('rel');
				
	},

	animateSlide: function(d){
		//handel to point
		if(Scroller.isSliding == false){
			v = Scroller.moveSilderHandeltoPoint(d);											
			if(v != false){
					Scroller.animateFrameSlide(Scroller.gx(v));
			}
		}
	},
	
	clickArrow: function(s){
		//handel to point
			
			objSlider = $("ice-sliderhandle");
			
		if(s == "r"){
			//nicht größer als max
			if(objSlider.getAttribute('rel') < Scroller.scroll_elements_counts){
				Scroller.animateSlide($('ice-element_' + (parseInt(objSlider.getAttribute('rel')) + 0)));				
				 //alert('ice-element_' + (parseInt(objSlider.getAttribute('rel')) + 0));
			}
		}
		
		if(s == "l"){
			//nicht kleiner 1
			if(objSlider.getAttribute('rel') > 1){
				Scroller.animateSlide($('ice-element_' + (parseInt(objSlider.getAttribute('rel')) - 2)));
				 //alert('ice-element_' + (parseInt(objSlider.getAttribute('rel')) - 1));
			}
		}		
	},
		
	// initializer that adds the renderer to the onload function of the window
	render: function(){
		
		if(!$("ice-sliderrack")){			
			return false;	
		}

		//if ie?	
		Scroller.ie = (document.all && !window.opera) ? true : false;			
		//rack!
		objMain = $("ice-sliderrack");
		
		
		//normal Scroll off / css on	
		//scroll off
		$("team_holder").style.overflow = 'hidden';
		$("team_scroll_frame").style.overflow = 'hidden';
		//css rack on
		$("ice-sliderrack").style.display = 'block';
		$("ice-sliderrack").style.visibility = 'visible';
				
		//number of team elements		
		Scroller.scroll_elements_counts = 0;
		
		//-----------------------------------
		//css lines off
		Adiv = document.getElementsByTagName('div');
		//window.onscroll
	    for (i=0;i<Adiv.length;i++) {
			l = Adiv[i];
			relAttribute = String(l.getAttribute('title'));
			if (relAttribute.toLowerCase().match('teamcon')) {	
				//alert(l.id);
				l.style.border = 'none';
				l.style.width = '474px';	
				Scroller.scroll_elements_counts++;
			}
			
		}	
		//-----------------------------------
		
		//init elements!
		if(Scroller.scroll_elements_counts > 0){
			//div_counts --;
			
						
			//scrollleiste ohne border
			tmp_scroll_width = Scroller.scroll_width - (Scroller.scroll_border * 2) - (Scroller.scroll_element_width/2);
			//länge der zwischenräume
			Scroller.element_lenght = Math.floor(tmp_scroll_width / (Scroller.scroll_elements_counts-1));
			//rest der scrollleiste, /2 ist der startpunkt! 
			//Scroller.start_element = Math.floor((tmp_scroll_width - (Scroller.element_lenght * (Scroller.scroll_elements_counts-0))) / 2);		
			
			//add elements for jump!									
			for (i=0;i<(Scroller.scroll_elements_counts-0);i++) {
				
				var objDiv = document.createElement("div");
				objDiv.setAttribute('id','ice-element_' + i);
				objDiv.setAttribute('rel', i + 1);
				objDiv.setAttribute((Scroller.ie ? 'className' : 'class'), 'ice-go_line');	
				if(BrowserDetect.browser == "Explorer" && BrowserDetect.version < 7){
					objDiv.style.left = ((Scroller.start_element + 0) + (Scroller.element_lenght*i)) + (Scroller.scroll_border/2) + 'px';
				}else{
					objDiv.style.left = ((Scroller.start_element + 0) + (Scroller.element_lenght*i)) + 'px';
				}				
			
				 objDiv.onmouseover = function () { addClass(this, "ice-go_line_hover"); return false; }	
				 objDiv.onmouseout =  function () { removeClass(this, "ice-go_line_hover"); return false; }
				
				 objDiv.onclick = function () { 
				 					Scroller.animateSlide(this);							
									}	
				objMain.appendChild(objDiv);	
			}
		}
		//init elements!
		//--------------------------
				
		Scroller.first_start_silderh = ((Scroller.start_element + 0) + (Scroller.scroll_element_width/2));
		
		//init scrollhandel
		var objDiv = document.createElement("div");
				objDiv.setAttribute('id','ice-sliderhandle');				
				objDiv.setAttribute('rel', 1);
				objDiv.style.left = (Scroller.first_start_silderh - (Scroller.silderh_width/2)) + 'px';			
				objMain.appendChild(objDiv);	
		
		//set first on		
		addClass(document.getElementById("ice-element_0"), "ice-go_line_ison");
		
		
		//init arrows
		
		 $("ice-rightside_arrow").onmouseover = function () { addClass(this, "arrow_on"); return false; }	
		 $("ice-rightside_arrow").onmouseout =  function () { removeClass(this, "arrow_on"); return false; }				 
		$("ice-rightside_arrow").onclick = function () { 
				 					Scroller.clickArrow("r");							
								}	
									
		 $("ice-leftside_arrow").onmouseover = function () { addClass(this, "arrow_on"); return false; }	
		 $("ice-leftside_arrow").onmouseout =  function () { removeClass(this, "arrow_on"); return false; }
		 $("ice-leftside_arrow").onclick = function () { 
				 					Scroller.clickArrow("l");							
								}	
		
	},
	
	
	// initializer that adds the renderer to the onload function of the window
	init: function(){		
		
		Scroller.add(window,'load', Scroller.render);		
		//Scroller.add(window,'load', Scroller.render)
	}
	
}
// invoke the initializer of the scroller
Scroller.init();

/*------------------------------------------------------------
 *						END OF CODE
/*-----------------------------------------------------------*/
