/*
	ä - Unicodemarker
	Project: Berlinfahrtplattform by lumip
*/

//Taken from http://www.netlobo.com/url_query_string_javascript.html
function gup( name ) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
		return "";
	else
		return results[1];
}

function addadmsub() {
	var regexp = new RegExp("[^A-Za-z0-9]");
	if (regexp.test(document.forms["addadm"].alias.value))
		alert("Der Alias darf nur Buchstaben und Zahlen enthalten.");
	else if (document.forms["addadm"].alias.value=="")
		alert("Der Alias darf nicht leer sein.");
	else
		document.forms["addadm"].submit();
}

function addpplsub(index) {
	if (document.forms["addppl"+index].alias!=null) {
		var regexp = new RegExp("[^A-Za-z0-9]");
		if (regexp.test(document.forms["addppl"+index].alias.value)) {
			alert("Der Alias darf nur Buchstaben und Zahlen enthalten.");
			return;
		}
	}
	if (document.forms["addppl"+index].prename.value=="" || document.forms["addppl"+index].surname.value=="")
		alert("Die Felder für Vor- und Nachname des Schülers müssen ausgefüllt sein.");
	else
		document.forms["addppl"+index].submit();
}

function isleapyear() {
	year = new Date().getYear();
	year = (year >= 2000) ? year : ((year<80) ? year+2000 : year+1900);
	return ((year%4==0) ? true : ((year%100==0) ? false : ((year%400==0) ? true : false)));
}

function timeframesub(nr) {
	var regexp = new RegExp("^((((3?[01])|([0-2]?[0-9]))(?=(\.((0?[13578])|(1[02])))$))|(((30)|([0-2]?[0-9]))(?=(\.((0?[469])|(11)))$))|(([0-2]?[0-9])(?=(\.(0?[2]))$)))");
	var value = document.forms["timeframe"+nr].elements["timeframedate"].value;
	if (regexp.test(value)) {
		if (value.substring(0,value.indexOf('.'))=="29" && (value.substr(value.indexOf('.')+1,1)=="2" || value.substr(value.indexOf('.')+1,2)=="02") && !isleapyear())
			alert("Da dieses Jahr kein Schaltjahr ist, ist der 29te Februar kein gültiges Datum");
		else
			document.forms["timeframe"+nr].submit();
	} else
		alert("Dieses Datum gibt es nicht!");
}

function getExcIdFromElement(element) {
	return $(element.getElementsByTagName("span")[0]).get('html');
}

function preferenceElection() {
	for (i=1; i<=8; i++) {
		var value = getExcIdFromElement(document.getElementById('e'+i));//.lastChild.get('html');
		if (value==0) {
			alert("Es müssen alle Plätze belegt sein.");
				return false;
		}
		document.forms["pref"].elements["elec"+i].value = value;
	}
	document.forms["pref"].submit();
}

window.addEvent('domready', function() {

	if(window.ie6) var heightValue='100%';
	else var heightValue='';

	var site = gup("site");
	if (site == "admin/admins") {	
		//just for admin/admins
		new Accordion($('admins'), 'dt.toggler', 'dd.element', {
			opacity: false,
			show: parseInt(accshow),
			alwaysHide: true,
			onActive: function(toggler, element){
				toggler.setStyle('color', '#41464D');
			},
			onBackground: function(toggler, element){
				toggler.setStyle('color', '#528CE0');
			}
		});
	} else if (site == "admin/ppls" && gup("action")!="import") {
		//just for admin/ppls
		if (gup("action")=="schedule") {
			$('excursioncontainer').setStyle("width",(Math.floor($('excursioncontainer').getWidth()/154))*154);
			adm_scheduleDomLoaded();
		} else {
			var fields = new Array();
			var counter =0;
			var dbfound = 0;
			while (dbfound<dbases) {
				if ($('ppls'+counter)) {
					fields[counter] = dbfound;
					dbfound++;
				}
				counter++;
			}
			fields[-1]=-1;
			new Accordion($('databases'), 'dt.toggler', 'dd.element', {
				opacity: false,
				alwaysHide: true,
				show: fields[dbshow],
				onComplete: function() { 
					var element=$(this.elements[this.previous]);
					if(element && element.offsetHeight>0) element.setStyle('height', heightValue);			
				},
				onActive: function(toggler, element){
					toggler.setStyle('color', '#41464D');
				},
				onBackground: function(toggler, element){
					toggler.setStyle('color', '#528CE0');
				}
			});
			var counter =0;
			var dbfound = 0;
			while (dbfound<dbases) {
				if ($('ppls'+counter)) {
					new Accordion($('ppls'+counter), ('dt.subtoggler'+counter), ('dd.subelement'+counter), {
						opacity: false,
						show: ppshow,
						alwaysHide: true,
						onActive: function(toggler, element){
							toggler.setStyle('color', '#41464D');
						},
						onBackground: function(toggler, element){
							toggler.setStyle('color', '#528CE0');
						}
					});
					dbfound++;
				}
				counter++;
			}
		}
		//just for admin/excs
	} else if (site == "admin/excs" && gup("action")!="import" && gup("action")!="export") {
		var fields = new Array();
		var counter =0;
		var dbfound = 0;
		while (dbfound<dbases) {
			if ($('excs'+counter)) {
				fields[counter] = dbfound;
				dbfound++;
			}
			counter++;
		}
		fields[-1]=-1;
		new Accordion($('databases'), 'dt.toggler', 'dd.element', {
			opacity: false,
			alwaysHide: true,
			show: fields[dbshow],
			onComplete: function() { 
				var element=$(this.elements[this.previous]);
				if(element && element.offsetHeight>0) element.setStyle('height', heightValue);			
			},
			onActive: function(toggler, element){
				toggler.setStyle('color', '#41464D');
			},
			onBackground: function(toggler, element){
				toggler.setStyle('color', '#528CE0');
			}
		});
		var counter =0;
		var dbfound =0;
		while (dbfound<dbases) {
			if ($('excs'+counter)) {
				new Accordion($('excs'+counter), ('dt.subtoggler'+counter), ('dd.subelement'+counter), {
					opacity: false,
					show: exshow,
					alwaysHide: true,
					onActive: function(toggler, element){
						toggler.setStyle('color', '#41464D');
					},
					onBackground: function(toggler, element){
						toggler.setStyle('color', '#528CE0');
					}
				});
				dbfound++;
			}
			counter++;
		}
	//just for admin/elecs
	} else if (site == "admin/elecs" && gup("action")!="export" && gup("action")!="prefres") {
		if (gup("action")=="schedules") {
			$$('.pplslider').each(function (slider) {
				slider.slide = new Fx.Slide(slider);
				slider.slide.hide();
				$$('.slidetoggler').each(function (toggler) {
					if (toggler.get('id') == slider.get('id')) {
						toggler.addEvent('click',function() {
							slider.slide.toggle();
						});
					}
				});
			});
		} else {
			var fields = new Array();
			var counter =0;
			var dbfound = 0;
			while (dbfound<dbases) {
				if ($('el'+counter)) {
					fields[counter] = dbfound;
					dbfound++;
				}
				counter++;
			}
			fields[-1]=-1;
			new Accordion($('databases'), 'dt.toggler', 'dd.element', {
				opacity: false,
				alwaysHide: true,
				show: fields[dbshow],
				onComplete: function() { 
					var element=$(this.elements[this.previous]);
					if(element && element.offsetHeight>0) element.setStyle('height', heightValue);			
				},
				onActive: function(toggler, element){
					toggler.setStyle('color', '#41464D');
				},
				onBackground: function(toggler, element){
					toggler.setStyle('color', '#528CE0');
				}
			});
		//just for admin/documents
		}
	}	else if (site=="admin/documents") {
		$$('#upload').each(function (slider) {
			slider.slide = new Fx.Slide(slider);
			slider.slide.hide();
			$$('#uploadtoggler').each(function (toggler) {
					toggler.addEvent('click',function() {
						slider.slide.toggle();
					});
			});
		});
		//the non-admin sites
		//just for pref
	} else if (site == "pref") {
		if (!permitted && disabled==null)
			return;
		$$('.drag').each(function (item) {
			item.nativeHTML = item.get('html');
			item.nativeItem = item;
			item.item = item;
			if (!item.hasClass('drop') && item.hasClass('disabled'))
				item.removeClass('disabled');
			item.drag = new Drag.Ghost(item,{
				droppables: $$('.drop'),
				onDrop: function(element,droppable) {
					if (droppable && droppable!=element) {
						if (droppable.item != null) {
							droppable.item.drag.attach();
							droppable.item.removeClass('disabled');
						}
						droppable.item = element.item;
						droppable.set('html',element.get('html'));
						element.set('html',element.nativeHTML);
						element.item = element.nativeItem;
						droppable.removeClass('disabled');
						this.element.addClass('disabled');
						this.detach();
						droppable.drag.attach();
					}
				}
			});
		});
		if (disabled!=null) {
			$$('.drag').each(function (item) {
				var value = getExcIdFromElement(item);
				for (i=0; i<disabled.length; i++) {
					if(getExcIdFromElement(item)==disabled[i] && !item.hasClass('drop')) {
						var dropzone = document.getElementById("e"+(i+1));
						dropzone.item = item;
						dropzone.set('html',item.get('html'));
						dropzone.drag.attach();
						dropzone.removeClass('disabled');
						item.addClass('disabled');
						item.drag.detach();
						break;
					}
				}
			});
		} else {
			$$('.drop').each(function (item) {
				item.drag.detach();
				item.item = null;
			});
		}
		if (!permitted) {
			$$('.drag').each(function (item) {
				item.drag.detach();
				if (!item.hasClass('disabled'))
					item.addClass('disabled');
			});
		}
	} else if (site == "exclist") {
		new Accordion($('excs'), 'dt.toggler', 'dd.element', {
			opacity: false,
			alwaysHide: true,
			show: -1,
			onComplete: function() { 
				var element=$(this.elements[this.previous]);
				if(element && element.offsetHeight>0) element.setStyle('height', heightValue);			
			},
			onActive: function(toggler, element){
				toggler.setStyle('color', '#41464D');
			},
			onBackground: function(toggler, element){
				toggler.setStyle('color', '#528CE0');
			}
		});
	} else if (site == "schedule") {
		$$('#log').each(function (slider) {
			slider.slide = new Fx.Slide(slider);
			slider.slide.hide();
			$$('#logtoggler').each(function (toggler) {
					toggler.addEvent('click',function() {
						slider.slide.toggle();
					});
			});
		});
		$('excursioncontainer').setStyle("width",(Math.floor($('excursioncontainer').getWidth()/154))*154);
		scheduleDomLoaded();
	}
});
