Shadowbox.init({
	language:   "de-DE",
	handleOversize:     "resize",
	handleUnsupported:  "remove",
	players: ["iframe", "html"],
	autoplayMovies:     false
});

var MultipleSelect = new Class({
	options: {
		className: 'multiple_select'
	},
	initialize: function(el, options) {
		this.oldSelect = $(el);
		var pos = el.getCoordinates();
		this.oldSelect.setStyle('display', 'none');
		this.toggle  = new Element('div', {id: 'toggle_'+el.id}).injectBefore(this.oldSelect);
		this.toggle.setProperty('class', 'toggle');
		var slider  = new Element('div', {id: 'slider_'+el.id}).injectAfter(this.toggle);
		slider.setProperty('class', 'slider');
		slider.setProperty('rel', 'in');
		slider.setStyle('display', 'none');	
		
		this.toggle.addEvent('click', function(e){
				if (slider.getProperty('rel')=='in'){
					$$('.slider').each(function(el){
						el.setStyles({display: 'none'});
						el.setProperty('rel','in');	
					});
					slider.setStyles({display: 'block'});
					slider.setProperty('rel','out');
				}
			});
		slider.addEvent('mouseleave', function(e){
				if (this.getProperty('rel')=='out'){
					this.setStyles({display: 'none'});
					this.setProperty('rel','in');					
				}
			});
			
			
		this.selectList = new Element('ul', {
		  'class': this.options.className + '_list', 'id': el.getAttribute('class')+'_choices'
		}).setStyles({
		  width: pos.width +'px', height: pos.height+'px'
		}).injectInside(slider);
		this.build(el);
		countSelected(this.oldSelect,this.toggle);
	},
	build: function(el) {
		for(i = 0; i < el.length; i++) {
			var el2 = new Element('li', {'id': el.name+'_'+i}).set('html',el.options[i].text);
			if (this.oldSelect.options[i].selected)
			el2.addClass('choice_selected');		  
			this.addChoiceEvents(el2);
			el2.injectInside(this.selectList);
		};
	},
	choiceSelect: function(el) {
		el.toggleClass('choice_selected');
		var id = el.id.substring(el.id.lastIndexOf('_')+1).toInt();
		this.oldSelect.options[id].selected ? this.oldSelect.options[id].selected = '' : this.oldSelect.options[id].selected = 'selected';
		countSelected(this.oldSelect,this.toggle);
		el.fireEvent('change');
	},
	addChoiceEvents: function(el) {
		return el.addEvents({
			mouseover: function() { el.addClass('choice_hover'); },
			mouseout: function() { el.removeClass('choice_hover'); },
			mousedown: this.choiceSelect.bind(this, [el])
		});
	}
});
MultipleSelect.implement(new Events, new Options);

function countSelected(select,toggle){
	var counter=0;
	var text;
	for (var i = 0; i < select.options.length; i++){
		if (select.options[i].selected) counter=counter+1;
	}
	if (counter > 0){
		text = counter+' ausgewählt';
	} else {
		text = select.title;
	}
	toggle.set('html',text);
}

window.addEvent('domready', function() {
	$$('select[class^=multipleselect]').each(function(el){
		new MultipleSelect(el);
	});
	$$('.multiple_select_extended').each(function(el){
		new MultipleSelectExtended(el, {
			elementIsValid: function(val, txt) {
				if (txt.toLowerCase().contains('a'))
					return true;
				else return false;
			}
		});
	});
});

function showSingle(type, id, summary, backlink){
	var url = "http://urlaubswerkstatt.ostfriesland.de/ajax";
	var req = new Request({
		method: "post", 
		url: url,
		data: 'function=showsingle&type='+type+'&uid='+id+'&summary='+summary+'&backlink='+backlink,
		onSuccess: function showResponse(response, responseXML){
			var data = responseXML.getElementsByTagName("data");
			var header = data[0].getElementsByTagName("header")[0].firstChild.nodeValue;
			var content = data[0].getElementsByTagName("content")[0].firstChild.nodeValue;
			Shadowbox.open({
				content:    content,
				player:     "html",
				title:      header,
				width:      585,
				height:		600
			});
		}
	});			
	req.send();
}

function list(type,newshadowbox){
	var url = "http://urlaubswerkstatt.ostfriesland.de/ajax";
	var req = new Request({
		method: "post", 
		url: url,
		data: 'function=list&type='+type,
		evalScripts: true,
		onComplete: function showResponse(response, responseXML){
			var data = responseXML.getElementsByTagName("data");
			var content = data[0].getElementsByTagName("content")[0].firstChild.nodeValue;
			var count = data[0].getElementsByTagName("count")[0].firstChild.nodeValue;
			if (count > 0){
				if (newshadowbox){
					Shadowbox.open({
						content:    content,
						player:     "html",
						title:      '',
						width:      450,
						height:		400
					});
				} else {
					$('sb-body-inner').innerHTML = content;
				}
			} else {
				Shadowbox.close();
			}
		}
	});			
	req.send();
}

function removeFromList(type, id){
	$('sb-body-inner').innerHTML = '';
	$('sb-loading').setStyle('display','block');
	addItem(type, id, 'listitem'+id, 0, 0,1);
}

function sendComments(){
	comments = $('summary').getElements('textarea[name^=comment]');
	data='';
	comments.each(function(el){
		data = data.concat('&'+el.name+'='+encodeURIComponent(el.value));
	});
	var req = new Request({
		method: "post", 
		url: "http://urlaubswerkstatt.ostfriesland.de/ajax",
		noCache: true,
		data: 'function=savecomments'+data,
		onSuccess: function showResponse(response, responseXML){
		}
	});
	req.send();
}

function generatePDF(){
	showWaiting();
	comments = $('summary').getElements('textarea[name^=comment]');
	data='';
	comments.each(function(el){
		data = data.concat('&'+el.name+'='+encodeURIComponent(el.value));
	});
	var req = new Request({
		method: "post", 
		url: "http://urlaubswerkstatt.ostfriesland.de/ajax",
		noCache: true,
		data: 'function=savecomments'+data,
		onSuccess: function showResponse(response, responseXML){
			window.setTimeout("hideWaiting(); $('generatepdf').submit();",2000);
		}
	});
	req.send();
	return false;
}

function saveFormData(){
	var req = new Request({
		method: 'get',
		encoding : 'iso-8859-1',
		urlEncoded : true,
		url: 'http://urlaubswerkstatt.ostfriesland.de/ajax/?function=saveformdata',
		data: $('anfrage'),
		onComplete: function showResponse(response, responseXML){
		}
	});
	req.send();
}

function saveAccommodationFormData(){
	var req = new Request({
		method: 'get',
		encoding : 'iso-8859-1',
		urlEncoded : true,
		url: 'http://urlaubswerkstatt.ostfriesland.de/ajax/?function=saveAccommodationFormData',
		data: $('accommodationform'),
		onSuccess: function showResponse(response, responseXML){
		}
	});
	req.send();
}

function showWaiting(){
	var  waiting = new Element ( 'div' , { 'class'  : 'waiting' , 'id' : 'waiting' }) ;
	waiting.injectInside(document.body);
}

function hideWaiting(){
	$('waiting').destroy();
}

function getSummary(){
	var req = new Request({
		method: "post", 
		url: "http://urlaubswerkstatt.ostfriesland.de/ajax",
		data: 'function=getsummary',
		evalScripts: true,
		onComplete: function showResponse(response, responseXML){
			var data = responseXML.getElementsByTagName("data");
			var content = data[0].getElementsByTagName("content")[0].firstChild.nodeValue;
			$('test').set('html',content);
		}
	});
	req.send();
}

function addItem(type, id, div, single, summary, listitems){
	div = $(div);
	var url = "http://urlaubswerkstatt.ostfriesland.de/ajax";
	var req = new Request({
		method: "post", 
		url: url,
		data: 'function=additem&type='+type+'&uid='+id+'&summary='+summary,
		evalScripts: true,
		onRequest: function() {
				showWaiting();
		},
		onComplete: function showResponse(response, responseXML){
			var data = responseXML.getElementsByTagName("data");
			var action = data[0].getElementsByTagName("action")[0].firstChild.nodeValue;
			var packagecount = data[0].getElementsByTagName("packagecount")[0].firstChild.nodeValue;
			//var accommodationcount = data[0].getElementsByTagName("accommodationcount")[0].firstChild.nodeValue;
			if (summary == 0){
				$('packagecount').innerHTML = packagecount;
				//$('accommodationcount').innerHTML = accommodationcount;
				if (div) div.set('class',action);
				listdiv = $("listitem"+id);
				if (listdiv) listdiv.set('class',action);
				if (action == 'add'){
					if (div) div.innerHTML = 'Hinzufügen';
					if (listdiv) listdiv.innerHTML = 'Hinzufügen';
				} else {
					if (div) div.innerHTML = 'Entfernen';
					if (listdiv) listdiv.innerHTML = 'Entfernen';
				}
				if (listitems){
					list(type,0);
					$('sb-loading').setStyle('display','none');
				}
			} else {
				sendComments();
				getSummary();
				if (single) Shadowbox.close();
			}
			hideWaiting();
			if (single) {
				Shadowbox.close();
			}
		}
	});			
	req.send();
}

function submitForm(form){
	var url = "http://urlaubswerkstatt.ostfriesland.de/ajax/?function=formvalidate&form="+form;
	var req = new Request({
		method: "post", 
		url: url,
		data: $(form),
		onRequest: function() {
				showWaiting();
		},
		onComplete: function showResponse(response, responseXML){
			var data = responseXML.getElementsByTagName("data");
			var status = data[0].getElementsByTagName("status")[0].firstChild.nodeValue;
			var content = data[0].getElementsByTagName("content")[0].firstChild.nodeValue;
			if (status == 'true') {
				$(form).submit();
			} else {
				Shadowbox.open({
					content:    content,
					player:     "html",
					title:      '',
					width:      300,
					height:		300
				});
			}
			hideWaiting();
		}
	});			
	req.send();
	return false;
}

function recommend(){
	var url = "http://urlaubswerkstatt.ostfriesland.de/ajax/?function=recommend";
	var req = new Request({
		method: "post", 
		url: url,
		data: $('recommend'),
		onRequest: function() {
				showWaiting();
		},
		onComplete: function showResponse(response, responseXML){
			var data = responseXML.getElementsByTagName("data");
			var status = data[0].getElementsByTagName("status")[0].firstChild.nodeValue;
			var content = data[0].getElementsByTagName("content")[0].firstChild.nodeValue;	
			
			if (status == 'true') {
				$('recommend').reset();
			}
			Shadowbox.open({
				content:    content,
				player:     "html",
				title:      '',
				width:      300,
				height:		300
			});			
			hideWaiting();
		}
	});			
	req.send();
	return false;
}

window.addEvent('domready', function() {
	var myTips = new Tips('.tooltip',{
		className: 'tooltips',
		fixed: true,
		hideDelay: 50,
		showDelay: 50
	});
	myTips.addEvent('show', function(tip, el){
		tip.fade('in');
	});
	myTips.addEvent('hide', function(tip, el){
		tip.fade('out');
	});	
});

window.addEvent('domready', function() {
	var myTips1 = new Tips('.tooltip1',{
		className: 'tooltips1',
		fixed: true,
		hideDelay: 50,
		showDelay: 50,
		offset: {'x': 258, 'y': 5}
	});
	myTips1.addEvent('show', function(tip, el){
		tip.fade('in');
	});
	myTips1.addEvent('hide', function(tip, el){
		tip.fade('out');
	});	
});

window.addEvent('domready', function(){
	var drop = $('packagecounttext');
	$$('div.dragable').each(function(item){
		
		var clone = item.clone()
			.setStyles({'opacity': 0.7, 'position': 'absolute', 'left' : '0px' , 'top' : '0px'})
			.injectAfter(item);
		
		var myDrag = new Drag.Move(clone, {
			droppables: '.packagecounttext',
			
			onDrop: function(element, droppable, event){
					if (!droppable) {
						var myFx = new Fx.Morph(element, {duration: '300', transition: Fx.Transitions.Sine.easeOut});
						myFx.start({
							'top': '0px',
							'left': '0px'
						});
					}
					else {
						id = item.getAttribute('id');
						data = id.split('-');
						addItem(data[0],data[1],'listitem'+data[1],0,0);
						element.setStyles({'left' : '0px' , 'top' : '0px'})
					}
			},
			onEnter: function(element, droppable){
			},
		 	onLeave: function(element, droppable){
			}

		});
	
	});
});
