var cfg_backend_url = "http://www.acn-werbeagentur.de/";
// var cfg_backend_url = "http://192.168.0.104:8888/acn-werbeagentur/";

var kuerzel = new Array('-','Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So');

var active = {};

var running = false;


// parseWeek
// 
// 
function parseWeek(raw){
	
	var data = eval(raw)[0];

	
	var tageHtml = new Array();
	
	data.tage.each(function(tag){
		tageHtml.push(parseDay(tag));
	});
	
	
	var wocheHtml = new Element('div', {
		id:data.woche+"_"+data.jahr
	});
	
	wocheHtml.addClass('woche');
	
	tageHtml.each(function(tag){
		tag.inject(wocheHtml);
	});
	
	
	return wocheHtml;
	
}


// parseDay
// 
// 
function parseDay(raw){

	// console.log(raw.bild);
	// bildInfo = {};
	var wTag = kuerzel[raw.wtag];
	var mTag = raw.tag;
	var id   = 'tag_'+raw.timestamp;
	var bildInfo   = raw.bild;
	var isToday = eval(raw.isToday);
	var datum_text = raw.datum;
	
	
	var htmlTag = new Element('div',{
		id:id
		
	});
	
	htmlTag.addClass('tag');
	
	var htmlwTag = new Element('div',{
		html:wTag
	});
	htmlwTag.addClass('wTag');
	
	
	if (bildInfo == 'EMPTY') {
		
		// hat kein bild
		var htmlmTag = new Element('div',{
		
			html:mTag,
			title:'',
			events:{
				'click': function(e){
					showImage('blank.gif');
					// showSpruch(':::Auch Werber können nicht in die Zukunft sehen');
					showSpruch(':::');
					
					$$('.highlight').each(function(item){
						item.removeClass('highlight')
					});
					
					e.target.addClass('highlight');
				}
				
			}
		});
		
		htmlmTag.addClass('mTag');
		htmlmTag.addClass('tooltip');

		// var spruch = "Auch Werber können nicht in die Zukunft sehen::";
		var spruch = "::";
		

		
		
		
		
	}
	else if (bildInfo=='ZUKUNFT'){
		
		var htmlmTag = new Element('div',{
			title:':::Auch Werber können nicht in die Zukunft sehen',
			events: {
				'click': function(e){
					showImage('blank.gif');
					showSpruch(':::Auch Werber können nicht in die Zukunft sehen');
					
					$$('.highlight').each(function(item){
						item.removeClass('highlight')
					});
					
					e.target.addClass('highlight');
				}
			},
			html:mTag
		});
		
		htmlmTag.addClass('mTag hasImage');
		
		var spruch = raw.spruch;
		
		
	}
	
	// else if(bildInfo =="WOE"){
	// 		var htmlmTag = new Element('div',{
	// 			title:':::Auch Werber können nicht in die Zukunft sehen',
	// 			events: {
	// 				'click': function(){
	// 					showImage('');
	// 					showSpruch(':::Auch Werber können nicht in die Zukunft sehen');
	// 				}
	// 			},
	// 			html:mTag
	// 		});
	// 
	// 		htmlmTag.addClass('mTag hasImage');
	// 
	// 		var spruch = raw.spruch;	
	// }
	
	else if(bildInfo == "WE"){ // Wochenende

		var htmlmTag = new Element('div',{
			title:'Wochenende',
			events: {
				'click': function(e){
					showImage('1228227299_Grafik_Woende.gif');
					showSpruch(datum_text+':::');
					
					

					$$('.highlight').each(function(item){
						item.removeClass('highlight')
					});

					e.target.addClass('highlight');
				}
			},
			html:mTag
		});
	
		htmlmTag.addClass('mTag hasImage');
	
		var spruch = raw.spruch;
	}
	
	
	
	else{

		// hat ein bild
		var htmlmTag = new Element('div',{
			rel:bildInfo.file,
			alt:raw.timestamp,
			title:'',
			events: {
				'click': function(e){
					
					showImage(e.target.getAttribute('rel'));
					showSpruch(e.target.getAttribute('title'));
					trackMe(e.target.getAttribute('alt'));
					
					$$('.highlight').each(function(item){
						item.removeClass('highlight')
					});
					
					e.target.addClass('highlight');
				}
			},
			html:mTag
		});
		
		if(isToday){
			htmlmTag.addClass('isToday');
		}
		htmlmTag.addClass('mTag hasImage');
		htmlmTag.addClass('tooltip');
		
		var spruch = raw.spruch;
		
	};
	// console.log(raw);
	htmlwTag.inject(htmlTag);
	htmlmTag.inject(htmlTag);

	
	
	htmlwTag.setAttribute('title', raw.datum);
	htmlmTag.setAttribute('title', raw.datum+':::'+spruch);
	
	
	
	return htmlTag;
	
}


function trackMe(timestamp){
	
	var url = 'http://www.acn-werbeagentur.de/BildDesTages/Track/'+timestamp;

	
	$('hiddenTrack').src = url;
	
}


// getWeek
// 
// 
function getWeek(onReady){
	var onReady = onReady || function(){};
	running = true;
	var request = new Request({
		
		url:cfg_backend_url + 'BildDesTages/getWeek',
		method:'POST',
		onSuccess:function(response){
			var data = eval(response)[0];
			active.woche = data.woche;
			active.jahr = data.jahr;
			
			var woche = parseWeek(response);

			addWeek(woche);
			
			running = false;
			
			onReady();
			
			
			
			
			
			
			
			
			
		}
		
		
	});
	
	request.send();
	
}



// getNextWeek
// 
// 
function getNextWeek(sliderFx){
	running = true;
	
	
	var nextWeek = active.woche + 1;
	
	var toCheck = {};
	
	toCheck.woche = nextWeek;
	toCheck.jahr = active.jahr;
	
	if(nextWeek> 52){
		toCheck.woche = 1;
		toCheck.jahr = active.jahr + 1;
	}

	
	
	if(!$defined($(toCheck.woche+'_'+toCheck.jahr))){
		var request = new Request({

			url:cfg_backend_url + 'BildDesTages/getNextWeek',
			method:'POST',
			onSuccess:function(response){
				var data = eval(response)[0];

				active.woche = data.woche;
				active.jahr = data.jahr;

				var woche = parseWeek(response);

				addWeek(woche);

				slideToWeek(data.woche, data.jahr,sliderFx);
			}

			
		});
		
		request.send();
		
	}else{
		slideToWeek(toCheck.woche, toCheck.jahr,sliderFx);
		active = toCheck;
	}
	
	
	

	
	
	
}



// getPreviousWeek
// 
// 
function getPreviousWeek(sliderFx){
	running = true;
	var nextWeek = active.woche -1;
	
	var toCheck = {};
	
	toCheck.woche = nextWeek;
	toCheck.jahr = active.jahr;
	
	if(nextWeek< 1){
		toCheck.woche = 52;
		toCheck.jahr = active.jahr - 1;
	}
	
	
	
	if(!$defined($(toCheck.woche+'_'+toCheck.jahr))){
		
		var request = new Request({

			url:cfg_backend_url + 'BildDesTages/getPreviousWeek',
			method:'POST',
			onSuccess:function(response){
				var data = eval(response)[0];
				active.woche = data.woche;
				active.jahr = data.jahr;


				var woche = parseWeek(response);
				addWeek(woche,'top');

				slideToWeek(data.woche, data.jahr, sliderFx);

			}


		});
		
		request.send();
		
	}else{
		slideToWeek(toCheck.woche, toCheck.jahr, sliderFx);
		active = toCheck;
	}
	
	

	
	
	
}



// addWeek
// 
// position: top; bottom;
// 
function addWeek(woche, position){
	
	var position = position || 'bottom';
	var add = 180;
	
	// breite 
	var breite = $('potd_slider').getSize().x;
	$('potd_slider').setStyle('width', breite + add);

	if(position == 'top'){
		$('potd_slider').setStyle('margin-left',-176);
	}
	
	woche.inject($('potd_slider'),position);
	
}


// slideToWeek
// 
// 
function slideToWeek(woche, jahr, sliderFx){

	var wocheHtml = $(woche+ '_' + jahr);
	var position = wocheHtml.getPosition($('potd_slider'));
	

	sliderFx.start('margin-left',(-1 * position.x));
	
}




function showImage(filename){
	var imgUri = cfg_backend_url+'/r3cms/user_upload/'+filename;
	var imgElement = $('pod');
	// imgElement.setStyle('opacity',0);
	imgElement.src = imgUri;
	// imgElement.tween('opacity', 0, 1);
	// console.log(imgUri);
}


function showSpruch(title){
	// title nach ::: splitten
	title = title.split(':::');
	// console.log(title);
	// ins dom einbauen
	// $('spruch').innerHTML=title[1];
	$('spruch').innerHTML='<strong>'+title[0]+' </strong>'+title[1];
	return true;
}




window.addEvent('domready',function(){

	var sliderFx = new Fx.Tween($('potd_slider'),{
		onComplete:function(){
			running = false;
		}
	});




	getWeek(function(){
		var today = $('slider_container').getElement('.isToday');
		if (today) {
			showSpruch(today.getProperty('title'));
			showImage(today.getProperty('rel'));
			today.addClass('highlight');
		};
	});
	


	$('toggle_right').addEvent('click',function(){
		if(!running){
			getNextWeek(sliderFx);			
		}

	});
	
	
	$('toggle_left').addEvent('click',function(){
		if(!running){
			getPreviousWeek(sliderFx);			
		}

	});
	
	
	
	// zum start den knipser zeigen und erst auf klick den kalender
	
	$('knipser').addEvent('click', function(){
		this.setStyle('display', 'none');
		$('kalender').setStyle('opacity', '0');
		$('kalender').setStyle('display', 'inline');
		$('kalender').tween('opacity', 0, 1);
	})
	
	
	
	
	// var toolies = window.setInterval("setTooltips()", 1000);

	
	
});