var ArtikelMerkliste = {

	active: false,

	isActive: function() {
		return ArtikelMerkliste.active;
	},

	elm: {
		'merklisteContainer': new ElementActivation('merklisteContainer'),
		'merklisteProdukt': new ElementActivation('merklisteProdukt'),
		'loginForm': new ElementActivation('loginForm')
	},

	init: function(){

		ArtikelMerkliste.active = true;

		MerklisteLoadingIcon.deactivate();

		ArtikelMerkliste.elm['merklisteContainer'].activate();

		if( AjaxLogin.isActive() ) {
			AjaxLogin.checkFor(ArtikelMerkliste.hasLogin);
		} else {
			ArtikelMerkliste.hasLogin();
		}

		$$('a.schliessenButton').each(function(pe) {
			Event.observe(pe, 'click', ArtikelMerkliste.shutdown);
		});

	},

	hasLogin: function() {

		// Artikel zur Merkliste und Link zum Merkzettel überwachen
		ArtikelMerkliste.putToMerkliste();
		Event.observe($('merkzettel_oeffnen'),'click',ArtikelMerklistePopup.init);

		ArtikelMerkliste.elm['loginForm'].deactivate();
		ArtikelMerkliste.elm['merklisteProdukt'].activate();
		ArtikelMerkliste.active = true;

	},

	putToMerkliste: function() {
		var addToMzLink = $('zur_merkliste_link').getAttribute('href')+'&ajax=true';

		new Ajax.Request(
			addToMzLink,
			{
				onComplete: function(transport) {
				var CurrentEan = addToMzLink.match(/ean=([0-9]+)/)[1];
				
				
				$('von_merkliste_link').style.display = 'block';
				$('zur_merkliste_link').style.display = 'none';

				new Ajax.Request('/?view=produkt_merkliste',{
					method:'get',
					parameters:{
						s:rahmenGlobal.SID,
						ean:CurrentEan
					},
					onSuccess: function(transport){
						$('merklisteContainer').style.display = "block";
						$('merklisteContainer').innerHTML = transport.responseText;

						$$('.merkzettelOeffnenLink').each(function(pe){
							Event.observe(pe,'click',ArtikelMerklistePopup.activate);
						});

						$$('a.schliessenButton').each(function(pe) {
							Event.observe(pe, 'click', function(evt){
								$('merklisteContainer').style.display = 'none';
								evt.stop();
							});
						});
					}
				});

				}
			}
		);

		/*
		// Ajax-Request um den Artikel zur Merkliste hinzuzufügen
		new Ajax.Request(
			'/?action=zur_merkliste&'+rahmenGlobal.SID,
			{
				//asynchronous: false,
				parameters: {
					artikelid:produktGlobal.artikelid,
					farbnummer:produktGlobal.farbnummer,
					groesse:produktGlobal.groesse,
					ajax:'true'
				},
				onComplete: function() {
					EntferneVonMerklisteButton.button.activate();
				}
			}
		);
		*/
	},

	deactivate: function() {
		ArtikelMerkliste.shutdown(null);
	},

	shutdown: function(evt) {

		// Container entfernen und Eventhandler von "schliessen"-Button nehmen
		ArtikelMerkliste.elm['merklisteContainer'].deactivate();

		$$('a.schliessenButton').each(function(pe) {
			Event.stopObserving(pe, 'click');
		});

		if( AjaxLogin.isActive() ) {
			AjaxLogin.shutdown();
		}

		if( ZurMerklisteButton.button.isActive() == false && EntferneVonMerklisteButton.button.isActive() == false ) {
			ZurMerklisteButton.button.activate();
		}

		if( evt != null ) {
			Event.stop(evt);
		}


		if( ArtikelMerkliste.elm['merklisteContainer'].isAvailable() ) {
			ArtikelMerkliste.elm['merklisteContainer'].getElement().hide();
		}

		ArtikelMerkliste.active = false;
		return false;

	}

}

var ZurMerklisteButton = {

	button: new ElementActivation('zur_merkliste_link'),

	init: function() {

		if( ZurMerklisteButton.button.isAvailable() ) {

			$('zur_merkliste_link').observe('click',function(evt) {

				if( ArtikelMerkliste.isActive() == false && ZurMerklisteButton.button.isActive() ) {

					ZurMerklisteButton.button.deactivate();
					MerklisteLoadingIcon.activate();

					new Ajax.Updater(
						'merklisteContainer',
						'/?view=produkt_merkliste&' + rahmenGlobal.SID,
						{
							parameters:
							{
								ean: produktGlobal.currentEAN
							},
							onComplete: function() {
								ArtikelMerkliste.init();
							}
						}
					);

					evt.stop();

				}
			});
		}

	},

	shutdown: function() {

		if( ZurMerklisteButton.button.isAvailable() ) {
			Event.stopObserving($('zur_merkliste_link'));
		}

	}

}

var EntferneVonMerklisteButton = {

	button: new ElementActivation('von_merkliste_link'),

	init: function() {

		if( EntferneVonMerklisteButton.button.isAvailable() ) {

			$('von_merkliste_link').observe('click',function(evt) {

				if( ArtikelMerkliste.isActive() ) {
					ArtikelMerkliste.deactivate();
				}

				if( EntferneVonMerklisteButton.button.isActive() ) {

					EntferneVonMerklisteButton.button.deactivate();
					MerklisteLoadingIcon.activate();

					new Ajax.Request(
						'/?action=entferne_von_merkliste&'+rahmenGlobal.SID,
						{
							//asynchronous: false,
							parameters: {
								artikelid:produktGlobal.artikelid,
								farbnummer:produktGlobal.farbnummer,
								groesse:produktGlobal.groesse,
								ajax:'true'
							},
							onComplete: function() {
								MerklisteLoadingIcon.deactivate();
								ZurMerklisteButton.button.activate();
							}
						}
					);

					evt.stop();

				}
			});
		}

	},

	shutdown: function() {

		if( EntferneVonMerklisteButton.button.isAvailable() ) {
			Event.stopObserving($('von_merkliste_link'));
		}

	}

}

Event.observe(window,'load',function() {

	MerklisteLoadingIcon = new ElementActivation('merkliste_loading_marker');

	ZurMerklisteButton.init();
	EntferneVonMerklisteButton.init();

});

