var clickForIframe = 0;
var disableAt = 3;
/* ObjectScroller */
var ObjectScrollerMethods = {
	pixelBase: '',
	contentElement: null,
	buttonUp: null,
	buttonDown: null,
	imageEvent: new Object(),
	ScrollPx:0,
	imageCount:0,
	clearNoDisplay:false,
	delta:0,
	hiddenImagesCount:0,
	doScrollOnclick: true,
	disableScrollfuntion: function(listElement, listItem) {
		if(listElement == null || typeof listElement == 'undefined') {
			return false;
		}
		//alert(listElement.id)
		try {
			var listChilds = listElement.childElements();
		} catch(e) { var listChilds = listElement.childNodes; }
		var displayLength = parseInt((listChilds.length - ObjectScrollerMethods.hiddenImagesCount) /2);
		if((displayLength == disableAt)) {
		//	alert(displayLength)
			ObjectScrollerMethods.buttonUp.style.visibility = 'hidden';
			if(Prototype.Browser.Gecko) { ObjectScrollerMethods.contentElement.stopObserving('DOMMouseScroll', this.mouseWheel); } else { ObjectScrollerMethods.contentElement.stopObserving('mousewheel', this.mouseWheel);}
			if(Prototype.Browser.Gecko) { ObjectScrollerMethods.contentElement.stopObserving('DOMMouseScroll', this.stopEvent); } else { ObjectScrollerMethods.contentElement.stopObserving('mousewheel', this.stopEvent);}		
			ObjectScrollerMethods.buttonDown.style.visibility = 'hidden';
			ObjectScrollerMethods.doScrollOnclick = false;
			for(var i=0; i < listChilds.length; ++i) {
				if((listChilds[i].id.indexOf('_clone') != -1) && (listChilds[i].visible())) {
					listChilds[i].hide();
				}
			}
		} else if((displayLength < disableAt)) {
			for(var i=0; i < listChilds.length; ++i) {
				if((listChilds[i].id.indexOf('_clone') != -1) && (listChilds[i].visible())) {
					listChilds[i].hide();
				}
			}				
		}
		//Ausgeblendete Bilder löschen
		for(var i= 0; i < listElement.length; ++i) {
			if(!listElement[i].visible()) {
				listElement[i].remove();
			}
		}
		// Zentrieren
		var alternativlist = $(listElement.id).childElements();
		var showPics=0;
		var visibleHeight = 0;
		for(var i=0; i < alternativlist.length; ++i) {
			if(alternativlist[i].visible()) {
				showPics++;
				visibleHeight = parseInt(visibleHeight) + alternativlist[i].getDimensions().height;
			}
		}
		if(showPics <= 3) {
			$(listElement.id).setStyle('top:'+( parseInt((visibleHeight)/(2 * showPics)) - 27 )+'px;');
		}		
  },
	clearMouseWheel : function(deltaWert)	{ if(deltaWert < 0) { delta = -1 * (deltaWert  / deltaWert); } else { delta = deltaWert  / deltaWert; } if(Prototype.Browser.Gecko) { delta = -1 * delta;	 }	return delta; }			
};

var ObjectScroller = Class.create(ObjectScrollerMethods, {
  initialize: function(contentElement, toScrollElement, buttonUp, buttonDown, defaultStepweite, pixelBaseStr) {
  	ObjectScrollerMethods.pixelBase = pixelBaseStr;
  	ObjectScrollerMethods.contentElement = contentElement;
  	ObjectScrollerMethods.toScrollElement = toScrollElement;
  	ObjectScrollerMethods.buttonUp = buttonUp;
  	ObjectScrollerMethods.buttonDown = buttonDown;
  	ObjectScrollerMethods.ScrollPx = 0;
  	ObjectScrollerMethods.clearNoDisplay = false;
  	ObjectScrollerMethods.buttonUp.observe('click', this.moveUp);
  	ObjectScrollerMethods.contentElementSize = ObjectScrollerMethods.contentElement.getDimensions(); 
  	ObjectScrollerMethods.toScrollElementSize = ObjectScrollerMethods.toScrollElement.getDimensions();
		ObjectScrollerMethods.aktivScrollMethod = ObjectScrollerMethods.initScroll;
  	ObjectScrollerMethods.schrittweite = defaultStepweite;
		if(Prototype.Browser.Gecko) { ObjectScrollerMethods.contentElement.observe('DOMMouseScroll', this.mouseWheel); } else { ObjectScrollerMethods.contentElement.observe('mousewheel', this.mouseWheel); }
		if(Prototype.Browser.Gecko) { ObjectScrollerMethods.contentElement.observe('DOMMouseScroll', this.stopEvent); } else { ObjectScrollerMethods.contentElement.observe('mousewheel', this.stopEvent); }			
  	ObjectScrollerMethods.buttonDown.observe('click', this.moveDown);
  	ObjectScrollerMethods.contentElement.observe('mousewheel', this.stopEvent);
  },
  addImage : function(imageConfigObj, isClone) {
		if(imageConfigObj['displayOn']) {  	
	  	var imageObj = new Image();
	  	imageObj.src = imageConfigObj['thumbImg'];
	  	imageObj.border = 0;
	  	imageObj.width 	= imageConfigObj['thumbImgSize'][0];
	  	imageObj.height = imageConfigObj['thumbImgSize'][1];
	  	imageObj.alt = '';
	  	imageObj.title = '';
	  	imageObj.className = 'alternativeImg';
	  	imageObj.id = imageConfigObj['id'];
	  	imageObj.onerror = function() {
	  		this.parentNode.style.display = 'none';	
	  		ObjectScrollerMethods.hiddenImagesCount++;
	  		ObjectScrollerMethods.disableScrollfuntion(this.parentNode.parentNode, this.parentNode);
	  		this.onerror = '';
	  	}
	  	ObjectScrollerMethods.imageEvent[imageConfigObj['id']] = imageConfigObj['event'];	  	
	  	var imageListElement = new Element('div', {'id': 'li_' + imageConfigObj['id']});
	  	if(isClone) {
	  		imageListElement.id = imageListElement.id + '_clone';
	  	}
	  	//Movie Background
	  	if(imageConfigObj['background'] != undefined) {
	  		imageListElement.style.backgroundImage = 'url("'+imageConfigObj['background']+'")';
	  		imageListElement.setStyle('background-repeat: no-repeat');
	  		imageListElement.setStyle('background-position: 24px 24px');
	  		imageListElement.setStyle('overflow: hidden');
	  		imageListElement.style.height = '114px';
	  		imageListElement.setStyle('margin-bottom: 4px');
	  	}
	  	if(imageConfigObj['thumbTopImg'] != null) {
	  		imageListElement.style.backgroundImage = 'url("'+imageConfigObj['thumbImg']+'")';
	  		imageListElement.setStyle('background-repeat: no-repeat');
	  		imageListElement.setStyle('background-position: 20px 10px');
	  		var ImgAddInfo;
	  		if((imageConfigObj['thumbTopImg'].indexOf('.png') != -1) && document.all && navigator.userAgent.indexOf("MSIE 6") >= 0) {
					ImgAddInfo = new Element('img', { 'src':imageConfigObj['thumbTopImg'].replace('.png', '.gif') });
					ImgAddInfo.setOpacity(0.7);
	  		} else {
	  			ImgAddInfo = new Element('img', { 'src':imageConfigObj['thumbTopImg'] });
	  		}

	  		ImgAddInfo.setStyle({margin: imageConfigObj['thumbTopImgMargin']});
	  		imageListElement.appendChild(ImgAddInfo);
	  		imageObj.style.display = 'none';
	  		imageListElement.style.height = '114px';
	  	}	
	  	if(imageConfigObj['id'].indexOf('360') != -1) {
	  		ImgAddInfo.setStyle('margin-top: 70px');
	  		imageListElement.setStyle('background-position: 20px -20px');
	  	}	  	
	  	imageListElement.setStyle('cursor: pointer; width: 116px');
	  	imageListElement.appendChild(imageObj);
	  	imageListElement.observe('click', this.onImageClick);
	  	$('alternativeLinks').appendChild(imageListElement);	
	  	//Alternative -- ICON - Start
	  	if(imageConfigObj['id'].indexOf('PicThumbListAlternative') != -1 && CheckStyle['tapete'] != true) {
	  		var zoomListButton = new Element('img', { 'src':'../../Img/Product/'+strLng+'/zoom_button.gif' }).setStyle('position: relative; top:-23px; cursor: pointer;');
	  		zoomListButton.observe('click', function() {
	  			detailImageClicked();
	  		});	  		
	  		imageObj.parentNode.appendChild(zoomListButton);
	  	}
	  	//Alternetive -- ICON - Ende	  	  	
		}
  },
  stopEvent : function(e) {
		if(!e) var e = window.event;
		//e.cancelBubble is supported by IE - this will kill the bubbling process.
		e.cancelBubble = true;
		e.returnValue = false;
		//e.stopPropagation works only in Firefox.
		if (e.stopPropagation) {
			e.stopPropagation();
			e.preventDefault();
		}
		return false;
	},  
  onImageClick : function(event) {
  	SlideStop();
		indexArray =  this.id.replace('_clone', '').split('_');
		clickForIframe = this.id.replace('_clone', '').split('_')[2];
		if(indexArray[1].indexOf('PicThumbListAlternative') != -1 && CheckStyle['tapete'] != true) {
			$('vergroessern').src = '../../Img/Product/'+strLng+'/zoom_button.gif';
		} else {
			$('vergroessern').src = '../../Img/Product/'+strLng+'/StandartV2/bottom-middle.gif';
		}		
		if(CheckStyle['outfitV2']) {
			if(window.location.toString().toLowerCase().indexOf('iframe') == -1) {
				CrossStyleAnzeigen('id='+ID+'&color='+ColorNumber+'&alternativeId='+clickForIframe+'&ThumbListClick=true', '_Outfit_iFrame');
			}
		}		
  	eval(ObjectScrollerMethods.imageEvent[this.id.replace('li_', '').replace('_clone', '')]+'("'+indexArray[(indexArray.length - 1)]+'");');
  	if(ObjectScrollerMethods.ScrollPx == $('alternativeLinks').positionedOffset()[1] && ObjectScrollerMethods.doScrollOnclick) {
  		alternativeElementToScroll.scrollDown();
  	}  	  	
  },     
  moveUp : function() {
  	if(ObjectScrollerMethods.ScrollPx == $('alternativeLinks').positionedOffset()[1]) {
  		alternativeElementToScroll.scrollUp();
  		wtClickPixel('.ansicht.PicThumbList.scrollup');
  	}
  },
  reRender: function(configArray) {
  	ObjectScrollerMethods.hiddenImagesCount = 0;
  	if(!ObjectScrollerMethods.doScrollOnclick) {
			ObjectScrollerMethods.buttonUp.style.visibility = '';
			if(Prototype.Browser.Gecko) { ObjectScrollerMethods.contentElement.observe('DOMMouseScroll', this.mouseWheel); } else { ObjectScrollerMethods.contentElement.observe('mousewheel', this.mouseWheel);}
			if(Prototype.Browser.Gecko) { ObjectScrollerMethods.contentElement.observe('DOMMouseScroll', this.stopEvent); } else { ObjectScrollerMethods.contentElement.observe('mousewheel', this.stopEvent);}		
			ObjectScrollerMethods.doScrollOnclick = true;
			ObjectScrollerMethods.buttonDown.style.visibility = '';
 		}
		$('alternativeLinks').innerHTML = '';		
		$('alternativeLinks').style.top = 0;
		ObjectScrollerMethods.ScrollPx = 0;
		ObjectScrollerMethods.imageCount = 0;
  	for(var i=0; i < configArray.length; ++i) { 
			this.addImage(configArray[i], false);
  	}
  	for(var i=0; i < configArray.length; ++i) { 
			this.addImage(configArray[i], true);
  	}  
  },  
  mouseWheel : function(event) {
  	delta = 0;
  	if(event.detail == 0 || event.detail == undefined || Prototype.Browser.Opera) { delta =  ObjectScrollerMethods.clearMouseWheel(event.wheelDelta); } else { delta = ObjectScrollerMethods.clearMouseWheel(event.detail); }
  	if(ObjectScrollerMethods.ScrollPx == $('alternativeLinks').positionedOffset()[1]) {
			if(delta == -1) {
				alternativeElementToScroll.scrollDown();
			} else if(delta == 1) {
				alternativeElementToScroll.scrollUp();
			}	
			wtClickPixel('.ansicht.PicThumbList.mousewheel');
		}	
  },
  scrollUp : function() {
  	alternativeElementToScroll.clearNoneDisplay();
		if($('alternativeLinks').positionedOffset()[1] == 0) {
			$('alternativeLinks').insertBefore($('alternativeLinks').childElements()[($('alternativeLinks').childElements().length-1)], $('alternativeLinks').childElements()[0]);
			$('alternativeLinks').setStyle('top: '+($('alternativeLinks').childElements()[0].getHeight() *-1 )+'px');
		}
		ObjectScrollerMethods.ScrollPx = $('alternativeLinks').positionedOffset()[1] + $('alternativeLinks').childElements()[0].getHeight();
		alternativeElementToScroll.scrollen(ObjectScrollerMethods.ScrollPx);  	
	},
	scrollDown : function() {
		alternativeElementToScroll.clearNoneDisplay();
		if($('alternativeLinks').positionedOffset()[1] < 0) {
			$('alternativeLinks').appendChild($('alternativeLinks').childElements()[0]);
			$('alternativeLinks').setStyle('top: 0px');
		}			
		alternativeElementToScroll.scrollen(($('alternativeLinks').childElements()[0].getHeight() * -1));
		ObjectScrollerMethods.ScrollPx = $('alternativeLinks').childElements()[0].getHeight() * -1;		
	},
	scrollen : function(topY) {		
		new Effect.Morph($('alternativeLinks'), {
		  style: 'top:'+topY+'px;',
		  duration: 0.4
		});
	},
	clearNoneDisplay : function() {
		for(var i=0; i < $('alternativeLinks').childElements().length; ++i) {
			if($('alternativeLinks').childElements()[i].style.display == 'none') {
				$($('alternativeLinks').childElements()[i].id).remove();
			}
		}	
	},
  moveDown : function() {
		if(ObjectScrollerMethods.ScrollPx == $('alternativeLinks').positionedOffset()[1]) {
			alternativeElementToScroll.scrollDown();
			wtClickPixel('.ansicht.PicThumbList.scrolldown', 'click');
		}
  }
 });