/**
 * @autor:Bernhard Zürn
 * Ironshark Entertainment
 */


var Lightbox = Class.create();
Lightbox.prototype = {
    initialize: function()
    {
	//catch all div's with the class 'lightbox', which contain the produktimages
	var lightboxes = $$('.lightbox');
	//walk over all 'lightbox-DIVs'
	$A( lightboxes ).each( function(item)
	{
	    if(!item)
	    {
		return;
	    }
	    //Regulären Ausdruck formulieren für Produktgalerielinks
	    var regexp = /shop\/prod\/gallery\/([0-9]*)\/img\/([a-zA-Z0-9\-\=]*)\/source\/([a-zA-Z0-9\-\=]*)/;

	    //Links für Galerieansicht per Regex auslesen
	    //index[1] - Product-ID
	    //index[2] - image source
	    //index[3] - href source
	    var index = regexp.exec(item.href);

	    //decode base64-values
	    //index[2]=Base64.decode(index[2]);
	    index[3]=Base64.decode(index[3]);

	    if(!index)
	    {
		return;
	    }
	    //Linkadresse (für Betrieb ohne JS) entfernen
	    item.writeAttribute("href",null);
	    item.addClassName("pointer");

	    //Attribute setzen
	    $(item).setAttribute('prod',index[1]);
	    $(item).setAttribute('img',index[2]);
	    $(item).setAttribute('source',index[3]);

	    //Add JS-Listener to every single lightbox elem
	    $(item).observe('click', function(event) {
		//point to the actual object
		var self = this;

		//ste cursor for this object
		$(item).setStyle({cursor:'pointer'});

		//-------------------------------------------------------------------------------------------
		//Workaround IE6 (Selectboxen müssen versteckt werden damit sie nicht durch overlay scheinen)
		$A( $$("select") ).each( function(item)
		{
			(item).hide();
		});
		//Workaround IE6 ENDE
		//-------------------------------------------------------------------------------------------

		$("ajaxLoader").hide();
                //$$("div.overlay")[0].show();

		

		Effect.Appear( $("galleryDummy"), {duration: 0.3} );
		//fadeSite(true);
		//Ajax-Loader initialisieren
		new Ajax.Updater(
			$("ajaxLoader"),
			Core.url(
				"shop/prodGallery/show/"
				+this.getAttribute("prod")
				+"/"+this.getAttribute("img")),
				{method:'get', onComplete:function()
					{
						prodGallery.init();
						fadeSite(true);
					}
				}
		);

		//Loadergrafikzeigen für die Dauer des ladens
		new PeriodicalExecuter(function(pe)
		{
			if ( prodGallery.ready )
			{
				prodGallery.ready = false;
				$("galleryDummy").hide();
				$("ajaxLoader").show();
			pe.stop();
			}
		}, 0.3);

	    });
	});
    }
};

//Produktgallerie
 var ProdGallery = Class.create();
 ProdGallery.prototype = {

 	ready:false,

 	initialize:function(){

 	},

 	init:function() {

 		this.ready = true;

 		$("bigloaderImage").hide();
 		$("bigImage").show();
                $$("div.overlay")[0].style.width = $("bigImage").offsetWidth;

 		var item = $("galleryClose");
 		if(item) {
 			item.writeAttribute("href",null);
 			item.addClassName("pointer");
	 		$(item).observe('click', function(event) {
	 			Effect.Fade($("ajaxLoader"), {duration: 0.3});
	 			//Effect.Fade($$("div.overlay")[0], {duration: 0.4});

				fadeSite(false);

	 			//Workaround IE 6 (selectboxen wieder anzeigen wenn overlay geschlossen wird)
	 			$A( $$("select") ).each( function(item)
	 		 	{
					if (item.getAttribute('dontShow') != 'dontShow')
					{
		 		 		(item).show();
					}
	 		 	});
	 	 		//Workaround IE 6 Ende
	 		});
 		}
                //Thumbnailimages at the bottom line of the product gallery
 		$A( $$("a.thumbs") ).each( function(item) {
                     // console.log(item);
                        var regexp = /shop\/prod\/gallery\/([0-9]*)\/img\/([a-zA-Z0-9\-\=]*)\/source\/([a-zA-Z0-9\-\=]*)/;
			var index = regexp.exec(item.href);

			//regexp recyclen für bilddateiname
			regexp=/([\w\/\:\.]+)_[0-9]*x[0-9]*(\.jpg|\.gif|\.png)/;
			parsedimg= regexp.exec(Base64.decode(index[2]));
			index[2]=Base64.encode(parsedimg[1]+parsedimg[2]);
                        item.writeAttribute("href",null);
			item.addClassName("pointer");
                        
                        $(item).setAttribute('prod',index[1]);
			$(item).setAttribute('img',index[2]);
			$(item).setAttribute('source',index[3]);
	 		$(item).observe('click', function(event) {
	 			$("bigImage").hide();$("bigloaderImage").show();
	 			new Ajax.Request(
	 				Core.url("shop/getProdImage/base64/"+this.getAttribute("prod")+"/"+this.getAttribute("img")+"/"+this.getAttribute("source")),
	 						{method:'get', onSuccess:function(trans){
	 							$("bigImage").setAttribute("src",trans.responseText);
	 							$("bigloaderImage").hide();
	 							$("bigImage").show();
	 							//Effect.Appear( $("bigImage"), { duration: 0.3 } );
	 						}});
	 		});
 		});
 	}
 }

Event.observe(window,'load',function()
{
	var lightbox = new Lightbox();
	prodGallery = new ProdGallery();

	// Am ende noch einen DIV Container anhängen für AJAXausgabe
	newDiv = document.createElement('div');
	newDiv.id = "ajaxLoader";
	document.body.appendChild(newDiv);

	newDiv = document.createElement('div');
	newDiv.id = "galleryDummy";
	document.body.appendChild(newDiv);

	newDiv = document.createElement('div');
	newDiv.id = "detailDummy";
	document.body.appendChild(newDiv);

	$("ajaxLoader").hide();

	$("galleryDummy").hide();
	$("detailDummy").hide();
});
