YUI().use('node','anim', function(Y) {

	var allready = false;
	var bodynode;

	var navinode;
	var numbernode;
	var contNodes;
	var total;

	var curdiv;
	var curnr;

	var curimg;
	var scrolloff = 0;

	var initbase = function () {
		bodynode = Y.one('body');

		bodynode.addClass('jsenabled');

		if(allready ){
			initlayout();			
		}else{
			allready = true;		
		}

		
	}


	var initlayout = function(){
		if(allready){
			if( bodynode.hasClass('overview') ){

				navinode = Y.one('#pagination');
				numbernode = Y.one('#number');

				Y.one('#prev').on('click', showPrev);
				Y.one('#next').on('click', showNext);

				contNodes = Y.all('#cont div.csc-default');
				contNodes.on('click', toggleSingle);

				var imagenodes = Y.all('div.csc-default img');
				imagenodes.each(scaledown);
			
				total = contNodes.size();
			
				Y.one('#hasjs').set('innerHTML', '');
				Y.one('#hasjs').setStyle('height', '0px');
			}else if( bodynode.hasClass('jshover') ){
				Y.all('#cont div.textpic-cont').on('mouseover', previewOver);
				Y.all('#cont div.textpic-cont').on('mouseout', previewOut);
			}

			Y.all('#cont .text-cont a.download').on('mouseover', fileLinkOver);
			Y.all('#cont .text-cont a.download').on('mouseout', fileLinkOut);
			
		}else{
			allready = true;		
		}
	}

	
	var previewOver = function(e){
		var contdiv = e.target.ancestor(getTextpic);
		if(contdiv){
			contdiv.setStyle('color', '#FC0');
			contdiv.all('img').setStyle('opacity', 0.45);
		}
	}
	var previewOut = function(e){
		var contdiv = e.target.ancestor(getTextpic);
		if(contdiv){
			contdiv.setStyle('color', '#000');
			contdiv.all('img').setStyle('opacity', 1);
		}
	}



	var fileLinkOver = function(e){
		var anode = e.target;
		
		var path = anode.get('href');
		var ext = path.substr(path.length -3);
		
		if(ext == 'jpg' || ext == 'gif' || ext == 'png' || ext == 'JPG' || ext == 'GIF' || ext == 'PNG'){
			anode.on('click', noClick);
			var tX = parseInt( anode.getX() ) - 70;
			var tY = parseInt( anode.getY() ) + 15;
			//console.log(tX +'/'+ tY);
			Y.one('#cont').append('<div id="absoluteImg" style="position:absolute;z-index:5;top:'+ tY +'px;left:'+ tX +'px"><img src="'+ path +'" style="cursor:pointer;"/></div>');
		}
	}
	var fileLinkOut = function(e){
		if( Y.one('#absoluteImg') ){
			Y.one('#absoluteImg').remove();
		}
	}
	var noClick = function(e){
		e.preventDefault();
		if( Y.one('#absoluteImg') ){
			if( Y.one('#dragimg') ){ Y.one('#dragimg').remove() }
			Y.one('#absoluteImg').set('id', 'dragimg');
			Y.one('#dragimg').on('click', function(e){e.target.remove() } );
		}
	}



	var scaledown = function(curnode, curindex){
		curnode.removeAttribute('height');
		curnode.removeAttribute('width');		
/*
		var tmpHeight = parseInt( curnode.getAttribute('height') * ( 1 / curnode.getAttribute('width') * 280) );
		curnode.setStyle('height', tmpHeight +'px');

		curnode.setAttribute('height', tmpHeight);
*/
	}


	
	var toggleSingle = function(e){

		var clickedDiv = e.target.ancestor(getDefault);
		if(!clickedDiv && e.target.hasClass('csc-default')){
			clickedDiv = e.target;
		}

		if(clickedDiv != curdiv){

			scrolloff= parseInt( clickedDiv.get('docScrollY') );
	
			contNodes.setStyle('display', 'none');
		
			//console.log(e.target);
			curdiv = clickedDiv;
		
			curdiv.setStyle('display', 'block');
			curdiv.addClass('big');

			var imagenodes = curdiv.all('img');
			imagenodes.each(scaledown);

			setNumberStr();
			navinode.setStyle('display', 'block');
			
			window.scrollTo(0, 0);
		}else{
			showOverview();
		}
		
	}

	var showOverview = function(e){
		contNodes.setStyle('display', 'block');
		contNodes.removeClass('big');

		navinode.setStyle('display', 'none');

		curdiv = null;

		window.scrollTo(0, scrolloff);
	}

	var showPrev = function(){
		if( curnr > 0 ){
			curnr--;
			switchBig( contNodes.item(curnr) );
		}else{
			showOverview();
		}	
	}

	var showNext = function(){
		//alert(curdiv.next(getDefault).nodeType );
		if( curnr < total -1 ){
			curnr++;
			switchBig( contNodes.item(curnr) );
		}else{
			showOverview();
		}	
	}

	var switchBig = function(newdiv){
		curdiv.setStyle('display', 'none');
		curdiv.removeClass('big');
	
		curdiv = newdiv;
		
		curdiv.setStyle('display', 'block');
		curdiv.addClass('big');

		setNumberStr();
		window.scrollTo(0, 0);
	}

	var setNumberStr = function(){
		curnr = contNodes.indexOf(curdiv);
		var nubmstr = curnr + 1;
		var navstr = nubmstr +'/'+total;
		numbernode.set('text', navstr);
	}

	var getDefault = function(node){
		if( node.hasClass('csc-default') ){
			return true;
		}else{
			return false;
		}
	}

	var getTextpic = function(node){
		if( node.hasClass('csc-textpic') ){
			return true;
		}else{
			return false;
		}
	}

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


