/*Script for calculation of shadows and the image Metadata at home */
/*extending mootools with pseudo selector visible*/
$extend(Selectors.Pseudo, {
    visible: function() {
        if (this.getStyle('visibility') != 'hidden' && this.isVisible() && this.isDisplayed()) {
            return this;
        }
    }
});


var ImageInfos = new Array();

var timer;
var timer_is_on = 0;

/* start timer, 1st call to get metadata, when succeeded calculation of shadow will
be every second, and tween between new widths*/
function doTimer()
{
	if(!timer_is_on)
	{
		timer_is_on = 1;
		SetupImageMetaData();
	}
}

/*init Shadow*/
function initShadow()
{
	// init different styles from slideshow
	//.mask element
	$$('.ce_imageslider > div').setStyle('overflow', 'visible');	// shadow has overflow
	var h = $$('.ce_imageslider > div').getStyle('height');	// get slideshow height
	//#elements element ;)
	$$('.ce_imageslider > div > div').setStyle('height', h);
	$$('.ce_imageslider > div > div').setStyle('position', 'relative');

	// create and init shadow
	var shadow = new Element('img', 
		{
		    src: "./tl_files/shadow.png",
			class: "shadowElement",
			styles: {
			   border: 0,
			   position: 'relative',
		    }
		});
	shadow.setStyle('z-index', 0);

	//insert into .mask5, .mask6 ... (depends on page) div
	var slider = $$('.ce_imageslider > div');
	slider.grab(shadow);
}

/* resizes shadow when smaller image gets visible */
function resizeShadow()
{
	var visImages = $$('.ce_imageslider > div > div > img:visible');
	if(visImages.length > 1)
	{
	   $$('#elements5 > img').each(function(el) {

		if(el.getStyle('display') == 'block' && el.getStyle('z-index') == '2')
		{
		var src=el.get("src").split("/");
    var imgsrc=src[src.length-1];
		for(var i=0;i<ImageInfos.length;i++)
		{
		if(ImageInfos[i].Name == imgsrc)
		{
				$$('#imgTitle').set('text', ImageInfos[i].Title);
						
				$$('#imgText').set('text', ImageInfos[i].Description);
		}
    }      
    }    
    });   
    timer = setTimeout("resizeShadow()", 200);
		return;
	}
	else
	{
		// new shadow width
		
		
		var shadowEl = $$('.shadowElement')[0];
		shadowEl.setStyle('width', visImages[0].getStyle('width'));
		
		// calculate new shadow position
		var divH = $$('.ce_imageslider > div > div')[0].getStyle('height').toFloat();
		var imgH = visImages[0].getStyle('height').toFloat();
		var offsetY = divH - imgH;		// offset between div and image in pixels
		var shadowH = shadowEl.getStyle('height').toFloat();
		var bottom = (shadowH / 2 ) + offsetY;
		
		shadowEl.setStyle('bottom', bottom);
		//console.log("H: " + imgH + " || bottom: " + bottom + "|| Offset: " + offsetY);
		
		timer = setTimeout("resizeShadow()", 300);
	}
}

/* Reads image informations (title, description) and saves it in ImageInfos*/
function SetupImageMetaData()
{
	var req = new Request(
		{ url: './tlfiles/kovzet/Startseite/metade.txt', method: 'get',
			onSuccess: function(file)
			{
				//split file
				var fileLines = file.split("\n");
				var visImages = $$('.ce_imageslider > div > div > img:visible');
				var src=visImages[visImages.length-1].get("src").split("/");
		    var imgsrc=src[src.length-1];
				for(var i = 0; i < fileLines.length; i++)
				{
					var splits = fileLines[i].split(" | ");
					var nameAndTitle = splits[0].split(" = ");
					var imgName = nameAndTitle[0];
					var imgTitle = nameAndTitle[1];

					//setup image infos
					var imgInfo = {
						"Name"        :    imgName,
						"Title"       :    imgTitle,
						"Description" :    splits[2],
						"Link"        :    splits[1],
						"Optional"    :    splits[3]
					};

				 // save images in global var to retrieve in image changing event
					ImageInfos[i] = imgInfo;
					if(ImageInfos[i].Name == imgsrc)
		      {
				  $$('#imgTitle').set('text', ImageInfos[i].Title);
					$$('#imgText').set('text', ImageInfos[i].Description);
		      }

				}
				initShadow();
				resizeShadow();
			}
		}
	).send();
}
    
