/**
 * @author rwelbers
 * Now make MySpass ready for YUI 3 Library
 */

var project = 'schland';

var Y = YUI({
   lang: 'de-DE', // languages in order of preference
   charset: 'utf-8', // specify a charset for inserted nodes, default is utf-8
   loadOptional: true // automatically load optional dependencies, default false
}).add('schland', function(Y) {

	/**
	 * Schland Api
	 * @author rwelbers <rwelbers@brainpool.de>
	 */
    Y.namespace('schland');
	schland = Y.schland;

	

	if(Y.one("#head"))
	{
		Y.one("#head").on("click", function(){ 
			top.location.href = '/schland/';
		});
	}
	/**
	 * Editor
	 */
	
	
	schland.initEditor = function(e)
	{
		var swfVersionStr = "10.0.0";
        var xiSwfUrlStr = "/schland/media/swf/playerProductInstall.swf";
        var flashvars = {};
        var params = {};
        params.quality = "high";
        params.bgcolor = "#000000";
        params.allowscriptaccess = "sameDomain";
        params.allowfullscreen = "true";
        params.wmode = "window";
        flashvars.config = "/schland/media/swf/editor/config.xml";
        var attributes = {};
        attributes.id = "editor";
        attributes.name = "editor";
        attributes.align = "middle";
        swfobject.embedSWF(
            "/schland/media/swf/editor/SchlandMeile.swf", "editor", 
            "951", "392", 
            swfVersionStr, xiSwfUrlStr, 
            flashvars, params, attributes);
	}
	if(Y.one("#editorStart"))
	{
		schland.btnEditor 			= Y.one("#editorStart").on("click", schland.initEditor);
	}
	/**
	 * Meile
	 */
	schland.initSchlandmeile = function(){ 
	        var swfVersionStr = "10.0.0";
	        var xiSwfUrlStr = "/schland/media/swf/playerProductInstall.swf";
	        var flashvars = {};
	        var params = {};
	        params.quality = "high";
	        params.bgcolor = "#000000";
	        params.allowscriptaccess = "sameDomain";
	        params.allowfullscreen = "true";
	        params.wmode = "transparent";
	        if(typeof uId != 'undefined' || schland.GET('id'))
	        {
	        	flashvars.id = (typeof uId != 'undefined' ? uId : schland.GET('id'));
	        }
	        
	        flashvars.config = "/schland/media/swf/viewer/config.xml";
	        var attributes = {};
	        attributes.id = "SchlandMeile";
	        attributes.name = "SchlandMeile";
	        attributes.align = "middle";
	        swfobject.embedSWF(
	            "/schland/media/swf/viewer/SchlandmeileViewer.swf", "schlandmeile", 
	            "951", "330", 
	            swfVersionStr, xiSwfUrlStr, 
	            flashvars, params, attributes);
			swfobject.createCSS("#schlandmeile", "display:block;text-align:left;");
	}
	if(Y.one("#schlandmeile"))
	{
		Y.on("contentready", schland.initSchlandmeile, "#schlandmeile", Y);
	}
	/**
	 * mp3 Player
	 */
	schland.initSchlandsound = function(){ 
	        var swfVersionStr = "10.0.0";
	        var xiSwfUrlStr = "/schland/media/swf/playerProductInstall.swf";
	        var flashvars = {};
	        var params = {};
	        params.quality = "high";
	        params.bgcolor = "#000000";
	        params.allowscriptaccess = "sameDomain";
	        params.allowfullscreen = "true";
	        params.wmode = "transparent";
	        
	        flashvars.soundurl="/schland/media/mp3/PeilomatVsElton_Weltmeister.mp3";
	        flashvars.soundon="/schland/media/images/mute.jpg";
	        flashvars.soundoff="/schland/media/images/unmute.jpg";

	        
	        var attributes = {};
	        attributes.id = "SchlandSound";
	        attributes.name = "SchlandSound";
	        attributes.align = "middle";
	        swfobject.embedSWF(
	            "/schland/media/swf/mp3player/mp3player.swf", "sound", 
	            "50", "50", 
	            swfVersionStr, xiSwfUrlStr, 
	            flashvars, params, attributes);
			swfobject.createCSS("#SchlandSound", "display:block;text-align:left;");
	}
	if(Y.one("#sound"))
	{
		Y.on("contentready", schland.initSchlandsound, "#sound", Y);
	}
	/**
	 * Slider Configs
	 */
	schland.slideDisplayWidth 		= 860;
	schland.slideAnimDiv 			= Y.one("#slideInner");
	schland.slideDuration 			= 0.5;
	
	schland.videoNavLeftTarget 		= Y.one("#pfeilLinks");
	schland.videoNavRightTarget		= Y.one("#pfeilRechts");
	schland.slideItems				= Y.all('#sliding div.slideItem');
	schland.slideContainer			= Y.one('#sliding');
	schland.slideCountItemsPerSlide = 4;
	schland.slideMaxWidth			= 0;
	
	/**
	 * Add Eventlistener
	 */
	function onLoad()
	{
		/*
		 * Dynamically set the Width of the Sliding Div
		 */
		if (schland.slideAnimDiv) {
			var pagesToDisplay = schland.slideItems.get('count').length / schland.slideCountItemsPerSlide;
			var width = Math.round(pagesToDisplay) * schland.slideDisplayWidth;
			schland.slideMaxWidth = width - schland.slideDisplayWidth;
			schland.slideContainer.setStyle('width', width + 'px');
			
			schland.videoNavRightTarget.setStyle('cursor', 'pointer');
			schland.videoNavRightTarget.on('click', schland.startSlider);
			schland.videoNavLeftTarget.setStyle('opacity', '0.5');
			if(schland.slideAnimDiv.get('scrollLeft') > 0)
			{
				schland.videoNavLeftTarget.setStyle('opacity', '1');
				schland.videoNavLeftTarget.setStyle('cursor', 'pointer');
				schland.videoNavLeftTarget.on('click', schland.startSlider);
			}
			if(schland.slideAnimDiv.get('scrollLeft') >= schland.slideMaxWidth)
			{
				schland.videoNavRightTarget.setStyle('opacity', '0.5');
				schland.videoNavRightTarget.setStyle('cursor', '');
				schland.videoNavRightTarget.detach();
			}
		}
	}
	
	
	Y.on("domready", onLoad);
	
	/**
	 * Slider Funcs
	 */
    schland.slider = new Y.Anim({
        node: schland.slideAnimDiv,
        to: {
            scroll: function(node) {
                return [0, schland.slideAnimDiv.get('scrollLeft') + schland.slideAnimDiv.get('offsetWidth')]
            }
        },
		duration: schland.slideDuration,
        easing: Y.Easing.easeOut
    });
 
    schland.startSlider = function(e) {
        var y = schland.slideAnimDiv.get('offsetWidth');
        if (e.currentTarget.hasClass('links')) {
            y = 0 - y;
        }
		var scrollTo = y + schland.slideAnimDiv.get('scrollLeft');
		
		if(scrollTo == schland.slideMaxWidth)
		{
			schland.videoNavRightTarget.setStyle('opacity', '0.5');
			schland.videoNavRightTarget.setStyle('cursor', '');
			schland.videoNavRightTarget.detach();
		}
		else if(scrollTo == 0)
		{
			schland.videoNavLeftTarget.setStyle('opacity', '0.5');
			schland.videoNavLeftTarget.setStyle('cursor', '');
			schland.videoNavLeftTarget.detach();
		}
		else{
			schland.videoNavLeftTarget.setStyle('opacity', '1');
			schland.videoNavLeftTarget.setStyle('cursor', 'pointer');
			schland.videoNavRightTarget.setStyle('cursor', 'pointer');
			schland.videoNavRightTarget.setStyle('opacity', '1');
			schland.videoNavLeftTarget.on('click', schland.startSlider);
			schland.videoNavRightTarget.on('click', schland.startSlider);
		}
		
        schland.slider.set('to', { scroll: [scrollTo, 0] });
        schland.slider.run();
    };
	
	
	/**
	 * Slider MouseOver Funcs
	 */
	schland.sliderHover = function(e)
	{
		fadeOutEl = e.currentTarget.one('div.slideHover div.slideOut');
		if (fadeOutEl.hasClass('out')) {
			schland.sliderHoverAnim(fadeOutEl, 0);
			fadeOutEl.removeClass('out');
		}
		else 
		{
			schland.sliderHoverAnim(fadeOutEl, 35);
			fadeOutEl.addClass('out');
		}
	}
	schland.sliderHoverAnim = function(el, h){
		if (!Y.Lang.isObject(el)) 
			el = Y.one((el.substr(0, 1) != '#' ? '#' : '') + el);
		
		if(Y.Lang.isUndefined(h))
			h = el.get('offsetHeight');
		
		el.setStyle('overflow', 'hidden');
		
		var anim = new Y.Anim({
						node: el,
						to: {
							height: h+'px',
							bottom: 18+h+'px'
						},
						duration: 0.5,
						easing: Y.Easing.elasticBoth
					});
		anim.run();
		
		return anim;
	};
	Y.on("mouseenter", schland.sliderHover, "#sliding div.slideItem");
	Y.on("mouseleave", schland.sliderHover, "#sliding div.slideItem");

	/**
	 * @method GET
	 * @param {String} param
	 * Parse the URL and checks if the Param exists
	 * @return boolean false if not exists
	 * @return String the current Value of Param
	 */
	schland.GET = function(param)
	{
		var _GET = new Object();
		var strGET = document.location.search.substr(1,document.location.search.length);
		if(strGET != '')
		{
			gArr = strGET.split('&');
			for(i=0;i<gArr.length;++i)
			{
				vArr=gArr[i].split('=');
				if(vArr.length>1)
				{
					v=vArr[1];
				}
				_GET[unescape(vArr[0])] = unescape(v);
			}
		}
		if(!_GET[param])
		{
			return false;
		}
		return _GET[param];
	}
	
	/**
	 * @method showEl
	 * @param {Object|String} e
	 * Shows an Element
	 */
	schland.showEl = function(e)
	{
		var el;
		
		if(Y.Lang.isObject(e))
		{
			el = e;
		}
		else
		{
			if(e.substr(0,1) != '#')
				e = '#'+e;
				
		 	el = Y.one(e);
		}
		el.setStyle('display', 'block');
	};
	
	/**
	 * @method hideEl
	 * @param {Object|String} e
	 * Hides an Element
	 */
	schland.hideEl = function(e)
	{
		var el;
		
		if(Y.Lang.isObject(e))
		{
			el = e;
		}
		else
		{
			if(e.substr(0,1) != '#')
				e = '#'+e;
			
		 	el = Y.one(e);
		}
		el.setStyle('display', 'none');
	};
	
	
	
	
	schland.fadeIn = function(el, h){
		if (!Y.Lang.isObject(el)) 
			el = Y.one((el.substr(0, 1) != '#' ? '#' : '') + el);
			
		if(Y.Lang.isUndefined(h))
			h = el.get('offsetHeight');
				
		/*
		 * This is hardcore now...
		 */
		
		var anim = new Y.Anim({
						node: el,
						to: {
							height: h+'px'
						},
						duration: 0.5
					});
		anim.run();
		return anim;
	};
	
	
}, '0.0.1', { requires: ['base', 'node', 'anim', 'event'] });

Y.use('schland', function(Y){});

function showElem(el){
	Y.use('schland', function(Y) {
		schland.showEl(el);
	});
}
function hideElem(el){
	Y.use('schland', function(Y) {
		schland.hideEl(el);
	});
}

function domElem(e)
{
	var el;
	Y.use(['node', 'schland'], function(Y) {
		if(!Y.Lang.isObject(e))
		{
			if(e.substr(0,1) != '#')
				e = '#'+e;
		}
		el = Y.one(e);
	});
	return el;
}

function initSchlandmeile(){ 
        var swfVersionStr = "10.0.0";
        var xiSwfUrlStr = "/schland/media/swf/playerProductInstall.swf";
        var flashvars = {};
        var params = {};
        params.quality = "high";
        params.bgcolor = "#000000";
        params.allowscriptaccess = "sameDomain";
        params.allowfullscreen = "true";
        params.wmode = "transparent";
        flashvars.config = "/schland/media/swf/viewer/config.xml";
        var attributes = {};
        attributes.id = "SchlandMeile";
        attributes.name = "SchlandMeile";
        attributes.align = "middle";
        swfobject.embedSWF(
            "/schland/media/swf/viewer/SchlandmeileViewer.swf", "schlandmeile", 
            "951", "330", 
            swfVersionStr, xiSwfUrlStr, 
            flashvars, params, attributes);
		swfobject.createCSS("#schlandmeile", "display:block;text-align:left;");
}





