
/*
 * @require mootools js framework
 * @require select class
 */

/*
 * domready
 */

window.addEvent('domready', function () {
	
	/*
	 * login password md5
	 */
	if ($('login') && document.forms['login']) {
		objPass = $('login').getElements('input[name=pass]');
		objUser = $('login').getElements('input[name=user]');

		objUser.set('autocomplete', 'off');
		objPass.set('autocomplete', 'off');

		$('login').addEvent('submit', function() {
			objPass = $('login').getElements('input[name=pass]');
			objUser = $('login').getElements('input[name=user]');
			objChallenge = $('login').getElements('input[name=challenge]');

			if (objPass.get('value') && objUser.get('value')) {
				var password = objPass.get('value')+'';
				strValue = objUser.get('value') + ':' + MD5(password) + ':' + objChallenge.get('value');
				objPass.set('value', MD5(strValue));

				return true;
			} else {
				return false;
			}

		});
	}
	 
	/* References */
	 $$('.intro-expand').addEvent('click', function(e){
		 e = new Event(e);
		 e.stop();
		 el = $(this);
		 var p = el.getParent();
		 p.setStyle('display','none');
		 p.getNext().setStyle('display','block');
	 });
	 
	 $$('.intro-collapse').addEvent('click', function(e){
		 e = new Event(e);
		 e.stop();
		 el = $(this);
		 var p = el.getParent();
		 p.setStyle('display','none');
		 p.getPrevious().setStyle('display','block');
	 });
	 
	 /* References end */
	 

	/*
	 * set start-page-wrapp height auto
	 */
	setStartWrappHeight();
	setStartWrappHeight.delay(500);
	window.addEvent('resize', setStartWrappHeight);

	/*
	 * navigation
	 */
	$$('.level1').each(function (objLink) {

		objParent = objLink.getParent();

		// remove RO JavaScript from Typo3
		objLink.set('onmouseover', '');
		objLink.set('onmouseout', '');

		// add event mouseover
		objParent.addEvent('mouseover', function() {
			objLink = this.getChildren()[0];

			if (!objLink.hasClass('active')) {
				// change background
				objLink.addClass('hover');

				// change image (typo3)
				objImage = objLink.getChildren()[0];
				objImage.set('src', eval(objImage.get('name')+"_h.src"));
			}

			// has sub menu
			if (objSub = objLink.getNext()) {
				objSub.addClass('hover');
			}
		});

		// add event mouseout
		objParent.addEvent('mouseout', function() {
			objLink = this.getChildren()[0];

			if (!objLink.hasClass('active')) {
				// change background
				objLink.removeClass('hover');

				// change image (typo3)
				objImage = objLink.getChildren()[0];
				objImage.set('src', eval(objImage.get('name')+"_n.src"));
			}

			// has sub menu
			if (objSub = objLink.getNext()) {
				objSub.removeClass('hover');
			}
		});
	});

	/*
	 * open print preview
	 */
	$$('.print').each(function (objElement) {
		objElement.addEvent('click', function(objEvent) {
			objEvent.stop();
			print = window.open(this.href, 'print', 'width = 800, height = 640, scrollbars = no');
			print.focus();

		});
	});

	/*
	 * select
	 */
    $$('.select').each(function (objElement) {
        objSelect = new Select(objElement);
    });

	/*
	  * external (target = blank, xhtml strict valid)
	  */
	$$('a.external').each(function (objElement) {
		objElement.addEvent('click', function (objEvent) {
			objEvent.stop();
			window.open(this.href);
		});
	});

	$$('form.external').each(function (objElement) {
		objElement.set('target', '_blank');
	});

	/*
	 * loader
	 */

	if($('loader')) {
		$('loader').addEvent('click',function(){
			NB.Effect.loader(false);
		});
	}

	/*
	 * iframe
	 */

	if ($('iframe_outer')) {

		resizeIframe();

		window.addEvent('resize', function() {
			resizeIframe();
		});
	}

	/*
	 * tab hover
	 */

	$$('.tab').each(function (objTab) {

		objTab.getChildren('.item').each(function (objItem) {
			objItem.addEvent('mouseover', function () { this.addClass('hover'); });
			objItem.addEvent('mouseout',  function () { this.removeClass('hover'); });
		})

	});

});

/*
 * class
 */

NB = new Class({});

NB = new NB();

NB.Effect = new Class({});

NB.Effect.implement({


	loaderIgnore: false,
	fadeInComplete: null,
	fadeOutComplete: null,
	fadeIn: function(element)
	{
		var myFx = new Fx.Elements($(element), {
			duration: 1000,
		    onComplete: function(){
				if (NB.Effect.fadeInComplete) {
					NB.Effect.fadeInComplete();
				}
			}
		}).start({
		    '0': {
		        'opacity': [0,1],
		        'display' : ['none','block']
		    }
		});
	},
	fadeOut: function(element)
	{

		var myFx = new Fx.Elements($(element), {
			duration: 1000,
		    onComplete: function(){
				$(element).setStyle('display', 'none');
				if (NB.Effect.fadeOutComplete) {
					NB.Effect.fadeOutComplete();
				}
			}
		}).start({
		    '0': {
		        'opacity': [1,0]
		    }
		});
	},
	loader: function(show)
	{
		if(NB.Effect.loaderIgnore)
		{
			return false;
		}

		if(show == true)
		{
			$('loader').setStyle('display', 'block');
			$('loader').setStyle('opacity', 0);
			window.scrollTo(0,0);
			$$('.wrapper')[0].setStyle('overflow', 'hidden');
			$$('.wrapper')[0].setStyle('height', document.documentElement.clientHeight);

			var myFx = new Fx.Elements($('loader'), {
				duration: 200
			}).start({

			    '0': {
					'opacity': [0,0.8]
			    }
			})
		}else{
			var hideLoader = new Fx.Elements($('loader'), {
				duration: 200,
			    onComplete: function(){
					$('loader').setStyle('display', 'none');
					$$('.wrapper')[0].setStyle('overflow', 'auto');
					$$('.wrapper')[0].setStyle('height', 'auto');
					return true;
				}
			}).start({
			    '0': {
					'opacity': [0.8,0]
			    }
			});
		}
	},
	smallLoader: function(writeSmallLoader,elementObj)
	{
		if (writeSmallLoader) {
			elementObj.addClass('small-loader');
		} else {
			elementObj.removeClass('small-loader');
		}
	},
	initImages: function()
	{
		var images = [NB.Effect.smallLoaderImagePath];
		var preLoadedImages = new Asset.images(images);
	}
});

NB.Effect = new NB.Effect();

/*
 * functions
 */

function setStartWrappHeight()
{
	if (!$$('.wrapper')[0] || !$$('.page_wrap')[0]) {
		return;
	}

	var contentHeight =  $$('.wrapper')[0].getHeight() + 35;
	var viewHeight    = window.getHeight();
	var footerHeight  = 0;
	
	// view is larger then content: set footer to view bottom
	if (viewHeight > contentHeight) {
		footerHeight = viewHeight;
	} 
	// content is larger then view: set footer to content bottom
	else {
		footerHeight = contentHeight;
	}

	$$('.page_wrap')[0].setStyle('height', footerHeight);
}

function resizeIframe()
{
	// IE
	if (!window.innerHeight) {
		var height = window.getScrollHeight();
	}
	// Firefox
	else {
		var height = window.innerHeight;
	}

	height = height - 370;

	$('iframe_outer')
	$('iframe_outer').setStyle('height', height + 'px');
	$('iframe').set('height', height + 'px');
}



