window.addEvent('domready', function() { 
// Countrymenü aufklappbar machen:
var myCountrySlide = new Fx.Slide('countrylist').hide();
$('countrylist').setStyle('visibility','visible');
$('countryselection').addEvents({	
	'mouseenter':function(){myCountrySlide.cancel();myCountrySlide.slideIn();},
	'mouseleave':function(){myCountrySlide.cancel();myCountrySlide.slideOut();}
});
$('countrylist').addEvents({	
	'mouseleave':function(){myCountrySlide.cancel();myCountrySlide.slideOut();}
});

// Shopmenu aufklappbar machen
$('shopmenu').getElements('span.toggler').each(function(item){
	item.setStyle('cursor','pointer');
	if (item.getParent().getElement('ul') && !item.getParent().hasClass('active') ){
	item.getParent().getElement('ul').hide();
	}
	item.addEvent('click',function(){
		item.getParent().getElement('ul').toggle();
		if (item.getParent().hasClass('active')){item.getParent().removeClass('active');}else{item.getParent().addClass('active');}
	});

});
// Tooltis für die Listenansicht:
var myKSTips = new Tips('img.kslistimage',{
	text: function(item){
		return item.getParent('li').getElement('div.description').getProperty('html');
	}

});


// Wenn Detailansicht:
if ($('additional_catwrapper')){
	// Weiterklicken der Bilder in der Detailansicht:	
	new lusan_carousel($('carousel_wrapper'),$('carousel_wrapper').getElement('ul'));
	// Tabs anlegen:
	
	$('indenwarenkorb').addEvent('click',function(){
		var Fehlermeldung = this.getProperty('rel');
		if ($('submit_size_value').getProperty('value')=="none"){
			$('groessefehler').setProperty('text',Fehlermeldung).hide().setStyle('display','block').fade('in').highlight();
		}
		else {
			$('indenwarenkorbform').submit();
		}
	});
	// Detailansicht: Grössenauswahl
	var i = 0;
	var myGroessen = $$('div.detailgroessenliste li');
	myGroessen.each(function(item){
			var mysizeIndex = i;
			item.addEvents({
					'click':function(){
						setSizeItemActiv(item,mysizeIndex);
						
					}
					
			});
			if(!item.hasClass('ausverkauft')){
				i++;
			}
			
	});
	if (myGroessen.length==1){
		setSizeItemActiv(myGroessen[0],0);
	}
} // end if Detailansicht
function setSizeItemActiv(item,index){
	myGroessen.removeClass('active');
	item.addClass('active');
	if(!item.hasClass('ausverkauft')){
				$('submit_size_value').setProperty('value',index);
	}
	
	if(item.hasClass('nichtlagernd')){
		if (item.getElement('span.wiederbeschaffungsdatum')){
			$('verfuegbarkeit').setProperty('text',$('ksshop_ll_lieferdatum').getProperty('text')+' '+item.getElement('span.wiederbeschaffungsdatum').getProperty('text'));
		}
		else {
		$('verfuegbarkeit').setProperty('text',$('ksshop_ll_nichtlagernd').getProperty('text'));
		}
	}
	if(item.hasClass('lagernd')){
		$('verfuegbarkeit').setProperty('text',$('ksshop_ll_lagernd').getProperty('text'));
	}
	if(item.hasClass('ausverkauft')){
		$('verfuegbarkeit').setProperty('text',$('ksshop_ll_ausverkauft').getProperty('text'));
	}
	// Fehlermeldung wegtun:
	$('groessefehler').setStyle('display','none');

}
var ks_aktionspaket = new Class({
    Implements: [Events, Options],
    options: {
		morphduration :1000,
		morphtransition: Fx.Transitions.Sine.easeOut

	},
    
    initialize: function(element, options){
	this.setOptions(options);
	if (!element){alert('element nicht gefunden');return false;}
	this.element = element;
	// Basket setzten:
	this.myBasketElement = element.getParent().getElement('div.ap_basket');
	this.myApElelements = this.element.getElements('li');
	this.numElements = this.myApElelements.length;
	this.activeIndex = 0;
	this.Offset2Class = Array();
	this.Offset2Class[2] = 1;
	this.Offset2Class[1] = 2;
	this.Offset2Class[0] = 3;
	this.Offset2Class[-1] = 4;
	this.Offset2Class[-2] = 5;	
	// Ausgangspositionen setztem:
	var i = 0;
	this.dragFaker = new Element('div',{
		'class':'ap_faker',
		'styles': {
			'position':'absolute',
			'display':'block',
			'z-index':7000,
			'cursor':'move'
		}
	}).inject(this.element.getElement('ul'));
	this.dragFaker.addEvent('mousedown',function(event) {
				// make draggable:
				event.stopPropagation();
				event.stop();
				
				var clone = this.dragFaker.clone().setStyles(this.dragFaker.getCoordinates()).setStyles({ 'position': 'absolute','z-index':10000,'cursor':'move'}).inject(document.body,'top');
				//alert(clone);
				var drag = clone.makeDraggable({
					droppables: this.myBasketElement.getElement('div.ap_basket_mainimage'),
					onDrop: function(element,droppable){
						if (droppable){this.putToBasket();}
						clone.destroy();
					}.bind(this),
					onCancel: function(){
						clone.destroy();
					}
				});
				drag.start(event);
				
			
		}.bind(this));
	
	this.myApElelements.each(function(item,index){
		
		if (i<3){
			var mynewClass='ap_position'+(i+3);
			
		}
		else {
			var mynewClass='ap_position6';
			
		}
		item.set('class',mynewClass);
		i++;
	}.bind(this));
	// Buttons einblenden:
	this.myLeftbutton = new Element('div',{
		'class':'ap_leftbutton',
		'events': {
			click:function(){this.movePrevious();}.bind(this)
		}
	}).inject(this.element.getElement('ul'));
	this.myRightbutton = new Element('div',{
		'class':'ap_rightbutton',
		'events': {
			click:function(){this.moveNext();}.bind(this)
		}
	}).inject(this.element.getElement('ul'));
	this.myBasketButton = new Element('div',{
		'class':'ap_basketbutton',
		'events': {
			click:function(){this.putToBasket();}.bind(this)
		},
		'title':'Click here to add'
	}).inject(this.element);
	// Beschriftung
	this.myTitleElement = new Element('div',{
		'class':'ap_titleelement'
	}).inject(this.element.getElement('ul'));
	// Mouseover einrichten:
	this.element.addEvents({
		'mouseenter': function(){this.element.addClass('hover');}.bind(this),
		'mouseleave': function(){this.element.removeClass('hover');}.bind(this)
	});
	
	// ANfangswerte für Bild / Faker und Titel setzten
	this.dragFaker.setStyle('background-image','url('+this.myApElelements[this.activeIndex].getElement('img').getProperty('src')+')');
	this.myTitleElement.setProperty('text',this.myApElelements[this.activeIndex].getElement('h2').getProperty('text'));
	// Spinner wegtun
	
	element.getElement('ul').setStyle('background-image','none');
	// wenn nur 1 Element -> in den Basket:
	if (this.numElements == 1){this.putToBasket();}
	
	},
	movePrevious: function(){
		if (this.activeIndex+1 < this.numElements){
			this.activeIndex++;
			this.makeMorph();
		}
	},
	moveNext: function(){
		if (this.activeIndex > 0){
			this.activeIndex--;
			this.makeMorph();
		}
	},
	makeMorph:function(){
		this.myApElelements.each(function(item,index){
				var myOffset = this.activeIndex-index;
				if (myOffset > 2){ var myNewClass='ap_position0';}
				else if (myOffset < -2){ var myNewClass='ap_position6';}
				else {
					var myNewClass='ap_position'+this.Offset2Class[myOffset];
				}
				
			item.set('class',myNewClass);
		}.bind(this));
		this.myTitleElement.setProperty('text',this.myApElelements[this.activeIndex].getElement('h2').getProperty('text'));
		this.dragFaker.setStyle('background-image','url('+this.myApElelements[this.activeIndex].getElement('img').getProperty('src')+')');
		
	},
	putToBasket: function(){
		// Infos in den Basket einfügen
		this.myBasketElement.getElement('h4').setProperty('text',this.myApElelements[this.activeIndex].getElement('h2').getProperty('text'));
		this.myBasketElement.getElement('div.ap_additional_images_wrapper').setProperty('html',this.myApElelements[this.activeIndex].getElement('div.ap_images').getProperty('html'));
		// Hauptbild setzten: 
		this.myBasketElement.getElement('div.ap_basket_mainimage img').setProperty('src',this.myBasketElement.getElement('div.ap_additional_images_wrapper a').getProperty('rel'));
		this.myBasketElement.getElement('div.ap_basket_mainimage img').setProperty('title',this.myApElelements[this.activeIndex].getElement('h2').getProperty('text') );
		this.myBasketElement.getElement('div.ap_basket_mainimage img').store('tip:text',this.myApElelements[this.activeIndex].getElement('div.aktionspakete_description').getProperty('html'));
		new Tips(this.myBasketElement.getElement('div.ap_basket_mainimage img'));
		var mainimage = this.myBasketElement.getElement('div.ap_basket_mainimage img');
		this.myBasketElement.getElements('a.miniimagerel').addEvent('click',function(){
			mainimage.setProperty('src',this.getProperty('rel'));
		});
		// Select Options einfügen
		var optionsArray = this.myApElelements[this.activeIndex].getElement('div.aktionspakete_sizes').getProperty('html').split(";");
		var mySelect = this.myBasketElement.getElement('select.ap_size_select').empty();
		optionsArray.each(function(item,index){
			var temp = new Option(item,index,0,0);
			mySelect.options[index] = temp;
		
		});
		// Preis setzten
		this.myBasketElement.getElement('span.ap_listenpreis').setProperty('text',this.myApElelements[this.activeIndex].getElement('div.aktionspakete_price2').getProperty('text'));
		// Uid des Artikels sezten:
		this.myBasketElement.getElement('div.ap_chosen_uid').setProperty('text',this.myApElelements[this.activeIndex].getElement('div.aktionspakete_uid').getProperty('text'));
		// Den Submit Button updaten
		updateSubmitButton();
		enableSubmitButton();
	}
});


// Wenn aktionpaket
if ($('ap_total_submit_button')){
// Submitbutton ausblenden
$('ap_total_submit_button').fade(0.5);
$$('div.ap_leftsidewrapper').each(function(item){
	new ks_aktionspaket(item);
});


} // ende wenn Aktionspaket



var submitIsActive = false;
var weCanSubmit = true;
// Die Funktion um den Submitbutton upzudaten:
function updateSubmitButton(){
	weCanSubmit = true;
	var myFinalSizeObject=Array();
	$$('div.ap_basket').each(function(item,index){
		var apUID = item.getElement('div.ap_chosen_uid').getProperty('text');
		var apSize = item.getElement('select.ap_size_select').getSelected()[0].getProperty('value');
		var apSizeText = item.getElement('select.ap_size_select').getSelected()[0].getProperty('html');
		if (apUID == 0){ weCanSubmit=false;}
		myFinalSizeObject[index] = {'uid':apUID,'size':apSize,'sizeText':apSizeText};
	});
	$('ap_totalsubmit_size').setProperty('value',JSON.encode(myFinalSizeObject));
	
}
// schaut ob der Submit enabled werden kann
function enableSubmitButton(){
	if (weCanSubmit && !submitIsActive) {
		$('ap_total_submit_button').addEvent('click',function(){
			updateSubmitButton();
			$('ap_total_submit_form').submit();
		}).fade(1).setStyle('cursor','pointer');
		submitIsActive = true;
	}
}



});

