/*
	ä - Unicodemarker
	Project: Berlinfahrtplattform by lumip
*/

/*
		excursions[id]
									["name"] = Name
									["timing"] = Programmpunkte
										[x]
											[0] = Bezeichnung (Programmpunkt1, Programmpunkt2)
											[1] = Tagnummer
											[2] = BeginTime
											[3] = EndTime
											[4] = Reserved Slots
											[5] = Maximale Schülerzahl
									["div"] = Draggable Div
	*/

var overcb= false;

function adm_fix(id,pp) {
	schedule.erase(id+"_"+excursions[id]["timing"][pp][0]+"_0");
	schedule.extend([id+"_"+excursions[id]["timing"][pp][0]+"_1"]);
}

function adm_unfix(id,pp) {
	schedule.erase(id+"_"+excursions[id]["timing"][pp][0]+"_1");
	schedule.extend([id+"_"+excursions[id]["timing"][pp][0]+"_0"]);
}

function adm_makeDraggable(element) {
	element.addClass('scheddrag');
	element.drag = new Drag.Ghost(element,{
		droppables: $$('.dropzone'),
		onStart: function(item) {
			getDropzones(item);
			this.droppables = $$('.available');
		},
		onDrop: function(item,droppable) {
			if (droppable) {
				droppable.removeClass('dropzone');
				droppable.removeClass('available');
				disableDrag(item);
				var id = droppable.get('excid');
				var pp = droppable.get('pp');
				enschedule(id,pp);
				var actppl = excursions[id]["timing"][pp][4];
				var maxppl = excursions[id]["timing"][pp][5];
				var duration = convertTime(excursions[id]["timing"][pp][3])-convertTime(excursions[id]["timing"][pp][2]);				
				var text;
				if (excursions[id]["name"].length>28)
					text = '<font style="font-size: 10px">'+excursions[id]["name"].substr(0,25)+'...</font>';
				else if (excursions[id]["name"].length>22)
					text = '<font style="font-size: 10px">'+excursions[id]["name"]+'</font>';
				else
					text = excursions[id]["name"];
				if (duration<2) {
					droppable.setStyle('line-height',(parseInt(droppable.getStyle('height'))/2-2)+'px');
					//element.set('html','<b>'+excursions[split[0]]["name"]+'</b><br />Unlöschbar ');
					droppable.set('html','<b>'+text+'</b><br />Unlöschbar ');
				} else {
					droppable.set('html','<b>'+text+'</b><br />'+actppl+' / '+maxppl+'<br />Unlöschbar ');
					if (duration<3)
						droppable.setStyle('line-height',(parseInt(element.getStyle('height'))/3-2)+'px');
				}
				/*if (duration<2) {
					droppable.setStyle('line-height',(parseInt(droppable.getStyle('height'))/2-2)+'px');
					droppable.set('html','<b>'+excursions[id]["name"]+'</b><br />Unlöschbar ');
				} else {
					droppable.set('html','<b>'+excursions[id]["name"]+'</b><br />'+actppl+' / '+maxppl+'<br />Unlöschbar ');
					if (duration<3)
						droppable.setStyle('line-height',(parseInt(droppable.getStyle('height'))/3-2)+'px');
				}*/
				var checkbox = document.createElement('input');
				$(checkbox).set('type','checkbox');				
				checkbox.addEvent('click',function() {
					if (this.get('checked')==true)
						adm_fix(id,pp);
					else
						adm_unfix(id,pp);
				});
				checkbox.addEvent('mouseover',function() {
					overcb = true;
				});
				checkbox.addEvent('mouseout',function() {
					overcb = false;
				});
				droppable.appendChild(checkbox);
				droppable.addEvent('click',function() {
					if (!overcb) {
						unschedule(id,pp);
						removeBlock(this);
						enableDrag(excursions[id]['div']);
					}
				});

			}
			$$('.dropzone').destroy();
		},
	});
}

function adm_showScheduled() {
	schedule.each(function (item) {
		var split = item.split("_");
		excursions[split[0]]["timing"].each(function (it,pp) {
			if (it[0]==split[1]) {
				var element = createBlock(split[0],pp);
				var actppl = excursions[split[0]]["timing"][pp][4];
				var maxppl = excursions[split[0]]["timing"][pp][5];
				var duration = convertTime(excursions[split[0]]["timing"][pp][3])-convertTime(excursions[split[0]]["timing"][pp][2]);
				element.set('excid',split[0]);
				element.set('pp',pp);
				disableDrag(excursions[split[0]]["div"]);
				var text;
				if (excursions[split[0]]["name"].length>28)
					text = '<font style="font-size: 10px">'+excursions[split[0]]["name"].substr(0,25)+'...</font>';
				else if (excursions[split[0]]["name"].length>22)
					text = '<font style="font-size: 10px">'+excursions[split[0]]["name"]+'</font>';
				else
					text = excursions[split[0]]["name"];
				if (duration<2) {
					element.setStyle('line-height',(parseInt(element.getStyle('height'))/2-2)+'px');
					//element.set('html','<b>'+excursions[split[0]]["name"]+'</b><br />Unlöschbar ');
					element.set('html','<b>'+text+'</b><br />Unlöschbar ');
				} else {
					element.set('html','<b>'+text+'</b><br />'+actppl+' / '+maxppl+'<br />Unlöschbar ');
					if (duration<3)
						element.setStyle('line-height',(parseInt(element.getStyle('height'))/3-2)+'px');
				}
				
				var checkbox = document.createElement('input');
				$(checkbox).set('type','checkbox');
				if (split[2]=="1")
					checkbox.set('checked',true);
				checkbox.addEvent('click',function() {
					if (this.get('checked')==true)
						adm_fix(split[0],pp);
					else
						adm_unfix(split[0],pp);
				});
				checkbox.addEvent('mouseover',function() {
					overcb = true;
				});
				checkbox.addEvent('mouseout',function() {
					overcb = false;
				});
				element.appendChild(checkbox);
				element.addEvent('click',function() {
					if (!overcb) {
						unschedule(split[0],pp);
						removeBlock(this);
						enableDrag(excursions[split[0]]['div']);
					}
				});
			}
		});
	});
}

function adm_scheduleDomLoaded() {
	var footnode = $('excursioncontainer').getFirst();
	excursions.each (function (item,index) {
		var div = document.createElement('div');
		$(div);
		$('excursioncontainer').insertBefore(div,footnode);
		div.addClass('schedulefield');
		div.addClass('excursion');
		//div.set('html',item["name"]);
		if (item["name"].length>22)
			div.setStyle('font-size','10px');
		if (item["name"].length>28)
			div.set('html',item["name"].substr(0,25)+"...");
		else
			div.set('html',item["name"]);
		div.set('excid',index);
		adm_makeDraggable(div);
		excursions[index]["div"] = div;
	});
	adm_showScheduled();
}
