YUI({combine: true, timeout: 10000}).use('node','anim',"io", function(Y) {

	var allready = false;
	var first = true;
	var navAnims = Array();
	var sndUL;
	var bodynode;
	var contloaded = true;

	var imgnodes = Array();
	var imgpos = Array('0', '250', '500');
	var imgPrev = 0;
	var imgindex = 0;
	var imgW = 0;
	var imgZ = 101;

	var veilnode;
	var veilW = 0;
	var veilcounter = 0;
	
	var d;
	var loadURL;
	var curLang = '';
	var quotelang = 0;
	var quotenr = 1;
	
	var initpathset = '';

	/*var curImg = null;
	var imgW = 0;
	var abortIn = false;
	var abortOut = false;
	var outRunning = false;
	var inRunning = false;*/


	//var curImgs = Array();
	//var imgWs = Array();

	var q; //quote node



	var quotetimes = Array(100,30,30,30,50,100,80,80);

	var quotecontarr = Array();
	quotecontarr[0] = Array();
	quotecontarr[0].push( '<h1 id="line">Wenn ich Hundefutter verkaufen will, muss ich erst einmal die Rolle des Hundes übernehmen; denn nur der Hund allein weiss ganz genau, was Hunde wollen.</h1><p>Ernest Dichter (1907 — 91)</p>');
	quotecontarr[0].push( '<h1 id="line">You never get a second chance to make a first impression.</h1><p>Volksmund</p>');
	quotecontarr[0].push( '<h1 id="line">Arbeit an der Sprache ist Arbeit am Gedanken.</h1><p>NZZ</p>');
	quotecontarr[0].push( '<h1 id="line">Das Etikett soll nicht grösser sein als der Sack.</h1><p>Lukian (120 — 180)</p>');

	quotecontarr[0].push( '<h1 id="line">Markenführung ist kein Kampf der Produkte, es ist ein Kampf um die Wahrnehmung.</h1><p>Michael Brandtner</p>');
	quotecontarr[0].push( '<h1 id="line">In einer Fünftelsekunde kannst du eine Botschaft rund um die Welt senden. Aber es kann Jahre dauern, bis sie von der Aussenseite eines Menschenschädels nach innen dringt.</h1><p>Charles F. Kettering</p>');
	quotecontarr[0].push( '<h1 id="line">Ein Markenbildungs&shy;prozess ist mit Arbeit verbunden – und mit Geduld. <br />Marken sind Eichen, keine Pilze</h1><p>Jesse Meyer-Arndt</p>');
	quotecontarr[0].push( '<h1 id="line">Als ich jung war, glaubte ich, Geld sei das Wichtigste im Leben. <br />Jetzt, wo ich alt bin, weiss ich dass es das Wichtigste ist</h1><p>Thomas von Arquin, 1225 — 74</p>');
	

	quotecontarr[1] = Array();
	quotecontarr[1].push( '<h1 id="line">If I want to sell dog food I first have to slip a dog’s skin. Because only dogs know exactly, what dogs want.</h1><p>Ernest Dichter, 1907 — 91</p>');
	quotecontarr[1].push( '<h1 id="line">You never get a second chance to make a first impression.</h1><p>Popular saying</p>');
	quotecontarr[1].push( '<h1 id="line">Working on the wording is working on the idea. </h1><p>Advertising slogan for Neue Zürcher Zeitung</p>');
	quotecontarr[1].push( '<h1 id="line">The Label should not be bigger than the parcel.</h1><p>Lukian 120 – 180 A.D.</p>');

	quotecontarr[1].push( '<h1 id="line">Brand management is not a fight of products, it is the fight for awareness.</h1><p>Michael Brandtner</p>');
	quotecontarr[1].push( '<h1 id="line">You can send a message around the world in a split second, but it can take years for it, to get from the outside of the skull  inside.</h1><p>Charles F. Kettering</p>');
	quotecontarr[1].push( '<h1 id="line">The building of a brand means work - and patience. <br />Brands are oaks not mushrooms.</h1><p>Jesse Meyer-Arndt</p>');
	quotecontarr[1].push( '<h1 id="line">When I was young I thougt money was the most important thing in life. <br />Now, that I am old, I know it is.</h1><p>Thomas from Arquin, 1225 — 74 A.D.</p>');

	//console.log(quotecontarr[1].join('\n') );


	var initnav = function(){

		//Y.all('#mainnav span').each(createAnim);
		
		Y.all('#mainnav ul.snd').each(createAnim);
		Y.one('#mainnav').on('mouseover', navOver);
		Y.one('#mainnav').on('mouseout', navOut);

		Y.one('#mainnav').on('click', handleClick);
		Y.one('#langnav').on('click', handleClick);

		d = document.getElementById('content');
	}



	var createAnim = function(curnode){
		curnode.setStyle('width', '0px');
		var navid = curnode.get('id');
		//console.log('curnode.next(nextAnode) = '+ curnode.next(nextAnode) );
		navAnims[navid] = Array();
		navAnims[navid]['over'] = new Y.Anim({
			node: curnode,
			duration: 0.3,
			easing: Y.Easing.easeIn,
			to: {
				width: 220
			}
		});
		navAnims[navid]['out'] = new Y.Anim({
			node: curnode,
			duration: 0.3,
			easing: Y.Easing.easeOut,
			to: {
				width: 0 
			}
		});
		//console.log('navAnims['+ navid +'] = '+ navAnims[navid]);
	}


	var navOver = function(e){
		var tg = e.target;
		//console.log('over tg='+ tg);
		//if(!tg.hasClass('nav')){
			var tUL = tg.next(nextULnode);

			if( tUL ){
				if(tUL.hasClass('snd') ){
					
					//console.log('NEW sndUL ='+ tUL);
					if(sndUL){
						navAnims[sndUL.get('id') ]['over'].stop();
						navAnims[sndUL.get('id') ]['out'].run();
					}
					sndUL = tUL;
					//sndUL.setStyle('clip', 'rect(0px, '+ 220 +'px, auto, 0px)');
					navAnims[sndUL.get('id')]['out'].stop();
					navAnims[sndUL.get('id')]['over'].run();				

				}
			}

		//}
	}

	var navOut = function(e){
		//console.log('out tg='+ e.relatedTarget);
		if(sndUL ){
			if( e.relatedTarget.get('id') == 'mainnav' || !Y.one('#mainnav').contains(e.relatedTarget) ){
				
				//sndUL.setStyle('clip', 'rect(0px, 0px, auto, 0px)');
				navAnims[sndUL.get('id')]['over'].stop();
				navAnims[sndUL.get('id')]['out'].run();
			}
		}
	}

	var nextULnode = function(node){
		if( node.hasClass('snd') ){
			return true;
		}else{
			return false;
		}
	}

	var parentULnode = function(node){
		if( node.hasClass('snd') ){
			return true;
		}else{
			return false;
		}
	}

	/*

	var createAnim = function(curnode){
		var navid = curnode.next(nextAnode)._yuid;
		//console.log('curnode.next(nextAnode) = '+ curnode.next(nextAnode) );
		navAnims[navid] = Array();
		navAnims[navid]['over'] = new Y.Anim({
			node: curnode,
			duration: 0.3,
			easing: Y.Easing.easeIn,
			to: {
				width: 220
			}
		});
		navAnims[navid]['out'] = new Y.Anim({
			node: curnode,
			duration: 0.3,
			easing: Y.Easing.easeOut,
			to: {
				width: 0 
			}
		});
		//console.log('avAnims['+ navid +'] = '+ navAnims[navid]);
	}

	var nextAnode = function(){
		if( node.hasAttribute('href') ){
			return true;
		}else{
			return false;
		}
	}
	
	var navOver = function(e){
		var tg = e.target;
		//console.log('tg._yuid='+ tg._yuid +'  navAnims[tg._yuid]='+ navAnims[tg._yuid]);

		if(navAnims[tg._yuid]){
			navAnims[tg._yuid]['out'].stop();
			navAnims[tg._yuid]['over'].run();
		}
	}

	var navOut = function(e){
		var tg = e.target;
		
		
		if(navAnims[tg._yuid] && !tg.hasClass('act')){
			navAnims[tg._yuid]['over'].stop();
			navAnims[tg._yuid]['out'].run();
		}
	}
	
	*/







	var initlayout = function(){

		//imgnodes = Y.all('#slideshow img');
		//console.log('imgnodes ('+ imgnodes._nodes.length +')='+ imgnodes);
		
		

		q = Y.one('#quote');

		var r = Math.ceil( Math.random()*4 );
		q.setAttribute('class', 'v'+r);
		
		Y.one('#abstract').setAttribute('class', 'v'+r);

		
		Y.one('#veil').setStyle('display', 'block');
		Y.one('#header').setStyle('visibility', 'hidden');
		Y.one('#content').setStyle('visibility', 'hidden');


		//veilIn();
		Cufon.replace('#abstract');
		Cufon.replace('#line');





		var path = window.location.pathname;
		var hash = window.location.hash;
		//console.log('path: '+ path +'  hash: '+ hash);
		
		
		
		if(hash != ''){
			loadURL = hash.substr(1);
			//getcont();
		}else if(path != '/' && path != '' ){
			loadURL = path.substr(1);
			initpathset = '/';
		}else if(path == '/'){
			loadURL = 'home';
			//getcont();
		}
		
		

		var tlang = loadURL.substr(0,2);
		if(tlang == 'de' || tlang == 'en' || tlang == 'ru' ){
			
			var curl = Y.one('#langnav li.active');
			curl.removeClass('active');

			loadURL = loadURL.substr(3);
						
			curLang = tlang + '/';
			if(initpathset == '/'){
				Y.one('#langnav a[href='+curLang + loadURL +']').ancestor().setAttribute('class','active');
			}else{
				Y.one('#langnav a[href='+curLang +']').ancestor().setAttribute('class','active');
			}

			setQuoteLang(tlang);

			Y.io( curLang + '?type=66' ,navLoaded);
		}
		


		veilnode = Y.one('#veil');

		veilW = 0;
		if(path != '/' && path != ''){
			//console.log(loadURL);
			
			getcont();
		}else{
			Y.later(500, Y, veilIn );
		}
	}

	var setQuoteLang = function(tlang){

		switch(tlang){
			case 'de':
			case 'de/':
				quotelang = 0;
				break;

			case 'en':
			case 'en/':
				quotelang = 1;
				break;

			case 'ru':
			case 'ru/':
				quotelang = 2;
				break;

			default:
				quotelang = 0;
		}
	}

	var navLoaded = {
		on: {
			success: function(id, o, args) {
				document.getElementById('mainnav').innerHTML = o.responseText;

				navAnims = Array();
				Y.all('#mainnav ul.snd').each(createAnim);

			}
		}
	}
	
	var shuffle = function(o){ //v1.0
		for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
		return o;
	}


	var setupslide = function(cur){
		
		
		var r= Math.floor( Math.random()*2.99);
		cur.setStyle('left', imgpos[r]+'px');
		cur.setStyle('zIndex', imgZ);
		imgZ++;

		imgnodes[imgindex] = cur;
		imgindex++;
	}

	var nextslide = function(){
		
		imgindex++;
		if(imgindex >= imgnodes.length){
			imgindex=0;
		}

		var r = imgPrev;
		while(r == imgPrev){
			r= Math.floor( Math.random()*2.99);
		}
		imgnodes[imgindex].setStyle('left', imgpos[r]+'px');
		imgPrev = r;

		//alert('next ['+ imgindex +']:'+ imgnodes[imgindex] );
		imgnodes[imgindex].setStyle('zIndex', imgZ);
		imgZ++;

		imgW = 0;
		anislide();
	}

	var anislide = function(){
		imgW += (500 - imgW)/40 + 3;
		imgnodes[imgindex].setStyle('clip', 'rect(0px, '+ imgW +'px, auto, 0px)');
		if(imgW  < 500){
			Y.later(33, Y, anislide );
		}else {
			Y.later(1500, Y, nextslide );
		}
	}





	
	var veilIn = function(){
		veilW += (970 - veilW)/10 + 5;
		veilnode.setStyle('clip', 'rect(0px, '+ veilW +'px, auto, 0px)');
		if(veilW  < 970){
			Y.later(33, Y, veilIn );
		}else {

			//console.log('end.. wait 1500');
			veilW = 0;
			Y.later(33, Y, veilWait );
			

			if(first){ 
				first= false;
				Y.one('#header').setStyle('visibility', 'visible');
				Y.one('#content').setStyle('visibility', 'visible');

				//q.setStyle('opacity', 0.98);
				//Y.later(1500, Y, veilOut );
			}
			getcont();
			
		}
	}

	var veilOut = function(){
		veilW += (970 - veilW)/10 + 5;
		veilnode.setStyle('clip', 'rect(0px, 970px, auto, '+ veilW +'px)');
		if(veilW  < 970){
			Y.later(33, Y, veilOut );
		}else{
			var r = quotenr;
			while(r == quotenr){
				quotenr = Math.round( Math.random() * quotecontarr[quotelang].length -0.6 );
			}
			q.set('innerHTML', quotecontarr[quotelang][quotenr]);
			
		}
	}

	function veilWait(){
		veilcounter++;
		if(veilcounter > quotetimes[quotenr] && contloaded){
			veilcounter = 0;
			veilOut();
		}else {
			Y.later(33, Y, veilWait );

		}
	}


	function getcont(){
		//alert('pid: '+ pid);
		//loadURL = 'index.php?id='+ pid;

		var tlang = loadURL.substr(0,2);
		if(tlang == 'de' || tlang == 'en' || tlang == 'ru' ){
			loadURL = loadURL.substr(3);
		}
		window.location = '/#'+ curLang + loadURL;
		Y.io( initpathset + curLang + loadURL +'?type=96', gH);
	}
	
	

	
	function handleClick(e){
		var tg = e.target;
		tg.blur();

		//console.log('clicked:'+ tg);
		if(tg.hasAttribute('href') ){
			var cur = Y.one('#mainnav a.act');

			if(e.currentTarget.get('id') == 'langnav' ){
				//console.log('langclick');
				cur = Y.one('#langnav li.active');
				cur.removeClass('active');
				tg.ancestor().setAttribute('class','active')

				var tlang = loadURL.substr(0,2);
				if(tlang == 'de' || tlang == 'en' || tlang == 'ru' ){
					loadURL = loadURL.substr(3);
				}
				curLang = tg.getAttribute('href');
				setQuoteLang(curLang);

				Y.io( curLang + '?type=66' ,navLoaded);
				//loadURL = loadURL;
			}else{
				if(cur){ cur.removeClass('act'); }
				tg.setAttribute('class','act');

				loadURL = tg.getAttribute('href');
			}

			/*if(cur){
				if(navAnims[cur._yuid]){
					navAnims[cur._yuid]['out'].run();
				}
			}*/
			
			
			contloaded = false;

			var r = Math.ceil( Math.random()*4 );
			q.setAttribute('class', 'v'+r);
			veilW = 0;
			veilIn();

			

			// don't follow the real HREF of the link
			e.preventDefault(); 
			return false;
		}
	}

	var imgOver = function(e){
		if(e.currentTarget.ancestor().hasClass('csc-textpic-border') ){
			Y.Event.purgeElement( e.currentTarget );
		}else{
			var tmpani = new Y.Anim({
				node: e.currentTarget,
				duration: 0.5,
				easing: Y.Easing.easeOut,
				to: {
					width: e.target.getAttribute('width'),
					height: e.target.getAttribute('height')
				}
			});
			tmpani.run();
		}
	}
	var imgOut = function(e){
		
		var tmpani = new Y.Anim({
			node: e.currentTarget,
			duration: 0.5,
			easing: Y.Easing.easeOut,
			to: {
				width: '221px',
				height: '80px'
			}
		});
		tmpani.run();
	}




// ### global listener object 
	var gH = {
	on: {
		/* write: function(str, args) {
				 d.innerHTML += "ID: " + str;
				 if (args) {
				 	d.innerHTML += " " + "The arguments are: " + args;
				 }
				 d.innerHTML += "<br>";
			   },
		start: function(id, args) {
				// d.innerHTML = '<img src="/fileadmin/template/loading9.gif" alt="Loading Contents" />';
			   },
		complete: function(id, o, args) {
					this.write(id + ": Global Event Complete.  The status code is: " + o.status + ".", args);
			   }, */
		success: function(id, o, args) {
				d.innerHTML = o.responseText;

				var imglist = Y.all('#slideshow img');
				if(imglist._nodes.length > 3){
					Y.one('#slideshow').setStyle('height', '180px');
					Y.one('#slideshow').setStyle('display', 'block');

					imglist.each(setupslide);
					shuffle(imgnodes);

					Y.later(5000, Y, nextslide );
				}

				Y.all('#cont .csc-textpic-intext-left-nowrap div.csc-textpic-imagewrap').on('mouseover', imgOver);
				Y.all('#cont .csc-textpic-intext-left-nowrap div.csc-textpic-imagewrap').on('mouseout', imgOut);


				var r = Math.ceil( Math.random()*4 );
				Y.one('#abstract').setAttribute('class', 'v'+r);
				
				contloaded = true;

				if (typeof pageTracker != "undefined"){
					pageTracker._trackPageview( loadURL );
				} 
			},
		failure: function(id, o, args) {
				   d.innerHTML = o + ": Global Event Failure.  The status text is: " + o.statusText + "." + args;
			},
		end: function(id, args) {
				// this.write(id + ": Global Event End.", args);
		}
	}
	}
	// ### end global listener object 



	// ###  attach global listeners 
//	Y.on('io:start', gH.start, gH, 'global foo');
//	Y.on('io:complete', gH.complete, gH, 'global bar');
//	Y.on('io:success', gH.success, gH, 'global baz');
//	Y.on('io:failure', gH.failure, gH);
//	Y.on('io:end', gH.end, gH, 'global boo');
	// ###  end global listener binding


	//if(Y.UA.ie != 6){
		Y.on("available", initnav, '#mainnav', Y);
		Y.on("load", initlayout, window, Y);
	//}

});



