﻿/** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 ************************************************************************************************
 *
 *	Copyright (c) 2010, Arno Dudek (http://www.adgrafik.at, office@adgrafik.at)
 *
 *	@copyright	Copyright (c) 2010, Arno Dudek
 *
 ************************************************************************************************
 ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */


var AdaptColumns = new Class({
	initialize: function(options){
		var obj = this, height = 0, tmpElements = [];
		options.elements.each(function(element, index){
			tmpElements.push(element);
			height = element.getHeight()> height ? element.getHeight() : height;
			if (index % options.count === 0){
				element.setStyle('clear', 'both');
			}
			else if (((index + 1) % options.count === 0) || ((index + 1) === options.elements.length)){
				element.setStyle('margin-right', 0);
				tmpElements.each(function(element, index){
					element.setStyle('height', height);
				});
				height = 0; tmpElements = [];
			}
		});
	}
});

var SubnavigationRollOver = new Class({
	initialize: function(selector){
		var container = $$(selector.container);
		var target = $$(selector.target)[0];
		if (container != ''){
			var targetProperties = target.getProperties('id', 'title', 'alt');
			var currentImage = new Asset.image(target.get('src'), targetProperties);
			container.getElements('a')[0].each(function(element, index){
				var image = new Asset.image(element.get('rel'), targetProperties);
				element.addEvents({
					'mouseover': function(){
						target = image.replaces(target);
					},
					'mouseout': function(){
						target = currentImage.replaces(target);
					}
				});
			});
		}
	}
});

  // decrypt helper function
function decryptCharcode(n,start,end,offset) {
	n = n + offset;
	if (offset > 0 && n > end)	{
		n = start + (n - end - 1);
	} else if (offset < 0 && n < start)	{
		n = end - (start - n - 1);
	}
	return String.fromCharCode(n);
}

  // decrypt string
function decryptString(enc,offset) {
	var dec = "";
	var len = enc.length;
	for(var i=0; i < len; i++)	{
		var n = enc.charCodeAt(i);
		if (n >= 0x2B && n <= 0x3A)	{
			dec += decryptCharcode(n,0x2B,0x3A,offset);	// 0-9 . , - + / :
		} else if (n >= 0x40 && n <= 0x5A)	{
			dec += decryptCharcode(n,0x40,0x5A,offset);	// A-Z @
		} else if (n >= 0x61 && n <= 0x7A)	{
			dec += decryptCharcode(n,0x61,0x7A,offset);	// a-z
		} else {
			dec += enc.charAt(i);
		}
	}
	return dec;
}

  // decrypt spam-protected emails
function linkTo_UnCryptMailto(s)	{
	location.href = decryptString(s,-1);
}

window.addEvent('domready', function(){
	$$('a[rel=external]').each(function(element, index){ element.target = '_blank' });

	new AdaptColumns({ elements: $$('.Screenshot li'), count: 4 });
	new AdaptColumns({ elements: $$('.InfoBox'), count: 3 });

	new SubnavigationRollOver({ container: '.Header .Subnavigation', target: '.Header img' });
});
