function displayAjaxLoader(){
	document.getElementById('ajax-loader').style.display = 'block';	
}

function hideAjaxLoader(){
	document.getElementById('ajax-loader').style.display = 'none';	
}


var confirm_func, id, uid, datum, von, dauer, isAbo;
function confirmDeleteBookedRessource(text, confirm_func, id, uid, datum, von, dauer, isAbo){
	this.confirm_func = confirm_func;
	this.id = id;
	this.uid = uid;
	this.datum = datum;
	this.von = von;
	this.dauer = dauer;
	this.isAbo = isAbo;	
	document.getElementById('confirm_text').innerHTML = text;	
	return showConfirmation();	
}


function checkTime (datum, zeit){
	var now = new Date();		
	var ressource = new Date(datum.substr(0,4),	(datum.substr(5,2)-1), datum.substr(8),
								zeit.substr(0,2), zeit.substr(3,2), 0);
	return now.getTime()<ressource.getTime();
}

function changeView(view){	
	tx_atlspb_pi1changeView(view);
}

function mouseOverRessource(obj, tooltipp_text, datum, zeit, isAdmin, time_name){
	if (checkTime(datum, zeit)){
		if(obj.className.indexOf('belegungsplan_ressource_item_free') >= 0){
			obj.className = obj.className +' belegungsplan_ressource_item_active';
		}	
		if( (obj.className.indexOf('belegungsplan_ressource_item_booked_self') >= 0) ||
		   ((obj.className.indexOf('belegungsplan_ressource_item_booked') >= 0) && isAdmin == '1')){
			obj.className = obj.className +' belegungsplan_ressource_item_delete';
		}		
	}
	
	obj = document.getElementById('timesheet_time_left_' + time_name);
	obj.className = obj.className +' belegungsplan_time_item_active';
	
	obj = document.getElementById('timesheet_time_right_' + time_name);
	obj.className = obj.className +' belegungsplan_time_item_active';
	
	
	Tip(tooltipp_text,BORDERCOLOR,'#000000',BGCOLOR,'#FFFFFF',WIDTH,200);
}

function mouseOutRessource(obj, time_name){
	var time_field = document.getElementsByName('timesheet_time_' + time_name);
	
	if(obj.className.indexOf('belegungsplan_ressource_item_active') >= 0){		
		obj.className = obj.className.substr(0,obj.className.indexOf('belegungsplan_ressource_item_active'));
	}
	if(obj.className.indexOf('belegungsplan_ressource_item_delete') >= 0){		
		obj.className = obj.className.substr(0,obj.className.indexOf('belegungsplan_ressource_item_delete'));
	}
	
	obj = document.getElementById('timesheet_time_left_' + time_name);
	obj.className = obj.className.substr(0,obj.className.indexOf('belegungsplan_time_item_active'));
	
	obj = document.getElementById('timesheet_time_right_' + time_name);
	obj.className = obj.className.substr(0,obj.className.indexOf('belegungsplan_time_item_active'));
	
}

function changeDay(){
	displayAjaxLoader();	
	var date = document.getElementById('belegungsplan_navigation_select_day_value').value;
	tx_atlspb_pi1changeDay(date, getParam('L'));	
}	

function changeRessource(ress){	
	displayAjaxLoader();	
	tx_atlspb_pi1changeRessource(ress);	
}


function checkReserveRessource(id, uid, datum, von, dauer, isAbo){		
	if (checkTime(datum,von)){
		//displayAjaxLoader();
		if(isAbo == '1'){
			var datum_bis = document.getElementById('belegungsplan_navigation_select_day_value_till').value;
			var intervall = document.getElementById('changeAboIntervall').value;			
			var lang = getParam('L');
			tx_atlspb_pi1checkReserveRessourceAbo(id, uid, datum, von, dauer, datum_bis, intervall, lang);
		}else{
			tx_atlspb_pi1checkReserveRessource(id, uid, datum, von, dauer);
		}
	}
}

function checkReservation(){
	tx_atlspb_pi1checkReservation();
}

function showOrder(url){	
	document.location.href = url;	
}

function checkRegistration(lang){	
	var fields = new Array();		
	var input = document.getElementsByTagName('input');
	for (i=0; i<input.length; ++i){	
		
		if (input[i].name.substr(0,13) == 'registrierung'){			
			fields.push(new Array(input[i].name.substr(14,input[i].name.length-15),input[i].value));						
		}
	}	
	//alert(fields);
	tx_atlspb_pi2checkRegistration(fields, lang);
}

function displayChangePassword(){
	document.getElementById('row_password').style.display= 'block';
	document.getElementsByName('registrierung[password]')[0].style.display = 'block';
	document.getElementById('row_password_confirm').style.display= 'block';
	document.getElementsByName('registrierung[password_confirm]')[0].style.display = 'block';
	document.getElementById('buttonChangPassword').style.display= 'none';	
}

function saveUser(lang){	
	var fields = new Array();
	
	input = document.getElementsByTagName('input');
	for (i=0; i<input.length; ++i){		
		if (input[i].style.display != 'none' && input[i].name.substr(0,13) == 'registrierung'){			
			fields.push(new Array(input[i].name.substr(14,input[i].name.length-15),input[i].value));			
		}
	}
	//alert(fields);
	tx_atlspb_pi5saveUser(fields, lang);
}

var prefixId;
function acceptSearch(){
	var user = document.getElementById('user_hidden').value;	
	if(user != ''){		
		if (prefixId == 'tx_atlspb_pi2'){
			tx_atlspb_pi2acceptSearch(user);
		}
		if (prefixId == 'tx_atlspb_pi5'){
			tx_atlspb_pi5acceptSearch(user);
		}
	}
}

function newUser(){
	tx_atlspb_pi2newUser();	
}

function newUserVerwaltung(){
	tx_atlspb_pi5newUser();	
}


var confirm_func, user_id;
function confirmDeleteUser(text, confirm_func, user_id){
	this.confirm_func = confirm_func;
	this.user_id = user_id;
	document.getElementById('confirm_text').innerHTML = text;	
	return showConfirmation();		
}

function deleteUser(id){
	tx_atlspb_pi5deleteUser(id);	
}

function deleteReservierung(id){	
	tx_atlspb_pi3deleteReservierung(id);	
}

var confirm_func, reserve_id;
function confirmDeleteReservierungVerwaltung(text, confirm_func, reserve_id){
	this.confirm_func = confirm_func;
	this.reserve_id = reserve_id;
	document.getElementById('confirm_text').innerHTML = text;	
	return showConfirmation();		
}
function deleteReservierungVerwaltung(id){	
	tx_atlspb_pi6deleteReservierung(id);	
}


var confirm_func, order_id;
function confirmDeleteOrder(text, confirm_func, order_id){
	this.confirm_func = confirm_func;
	this.order_id = order_id;
	document.getElementById('confirm_text').innerHTML = text;	
	return showConfirmation();	
}
function deleteOrder(id){	
	tx_atlspb_pi6deleteOrder(id);	
}

function changeOrderPayment(id, state){
	//alert(state);
	tx_atlspb_pi6changeOrderPayment(id, state);
}




function convertPrice(s){
	if (getParam('L')==0){
		return s.replace('.','').replace(',','.');
	}else{		
		return s.replace(',','');
	}
}

function reconvertPrice(s){
	s = s+'';
	if (getParam('L')==0){					
		return s.replace(',','').replace('.',',');
	}else{
		return s;
	}
}

function bookReserves(cnt){
	var comments = new Array();	
	var preise = new Array();
	var value = new Array();	
	var input = document.getElementsByTagName('input');
	var order_comment = document.getElementById('order_comment').value;
	var pay_stat = 0;
	for (i=0; i<input.length; ++i){			
		if (input[i].id.substr(0,2) == 'c_'){
			var v = new Array();
			v['bemerkung'] = input[i].value;
			comments[input[i].id.substr(2,input[i].id.length)] = v;
		}
		if (input[i].id.substr(0,2) == 'p_'){
			var v = new Array();
			v['preis_ist'] = convertPrice(input[i].value);
			preise[input[i].id.substr(2,input[i].id.length)] = v;
		}
	}
		 
	if (document.getElementById('pay_stat')){
		pay_stat = document.getElementById('pay_stat').value;
	}
	
	tx_atlspb_pi3bookReserves(cnt,comments, preise, order_comment, pay_stat);
}

function changeReserves(){
	var comments = new Array();	
	var preise = new Array();
	var value = new Array();	
	input = document.getElementsByTagName('input');	
	for (i=0; i<input.length; ++i){			
		if (input[i].id.substr(0,2) == 'c_'){
			var v = new Array();
			v['bemerkung'] = input[i].value;
			comments[input[i].id.substr(2,input[i].id.length)] = v;
		}
		if (input[i].id.substr(0,2) == 'p_'){
			var v = new Array();
			v['preis_ist'] = convertPrice(input[i].value);
			preise[input[i].id.substr(2,input[i].id.length)] = v;
		}
	}
	tx_atlspb_pi3changeReserves(comments, preise);
}

function changePreis(id){
	if (id == 'all'){
		var preis_all = convertPrice(document.getElementById('all').value)		
		var preise = new Array();
		
		var input = document.getElementsByTagName('input');	
		for (i=0; i<input.length; ++i){			
			if (input[i].id.substr(0,2) == 'p_'){				
				preise.push(input[i].id);
			}
		}		
		var preis_item = Math.round(preis_all/preise.length*100)/100;
		var tmpPreis = 0;
		for (i=0; i<preise.length; ++i){
			if(i==(preise.length-1)){
				document.getElementById(preise[i]).value = reconvertPrice(preis_all-tmpPreis);
			}else{
				document.getElementById(preise[i]).value = reconvertPrice(preis_item);
				tmpPreis = tmpPreis + preis_item;				
			}			
		}		
		changeReserves();
	}else{
		var preis = convertPrice(document.getElementById('p_'+id).value);		
		tx_atlspb_pi3changePreis(id, preis);
	}
}

function changePreisVerwaltung(id){
	var preis = convertPrice(document.getElementById('p_'+id).value);		
	tx_atlspb_pi6changePreis(id, preis);
}

function showLogin(){	
	window.scrollTo(0,0);
	if (document.getElementById('changeViewSelectBox')){		
		document.getElementById('changeViewSelectBox').style.display = 'none';
	}
	if (document.getElementById('changeAboIntervall')){		
		document.getElementById('changeAboIntervall').style.display = 'none';
	}
	document.getElementsByTagName('body')[0].style.overflow = 'hidden';
	document.getElementById('login_bg').style.display = 'block';
	document.getElementById('login_box').style.display = 'block';
	
	document.getElementById('user').focus();
}


function hideLogin(){
	document.getElementsByTagName('body')[0].style.overflow = 'auto';
	document.getElementById('login_bg').style.display = 'none';
	document.getElementById('login_box').style.display = 'none';
	if (document.getElementById('changeViewSelectBox')){	
		document.getElementById('changeViewSelectBox').style.display = 'block';
	}
	if (document.getElementById('changeAboIntervall')){		
		document.getElementById('changeAboIntervall').style.display = 'block';
	}
}




function showMessage(){	
	window.scrollTo(0,0);
	if (document.getElementById('changeViewSelectBox')){		
		document.getElementById('changeViewSelectBox').style.visibility = 'hidden';
	}
	if (document.getElementById('changeAboIntervall')){		
		document.getElementById('changeAboIntervall').style.visibility = 'hidden';
	}
	document.getElementsByTagName('body')[0].style.overflow = 'hidden';
	document.getElementById('message_bg').style.display = 'block';
	document.getElementById('message_box').style.display = 'block';	
}


function hideMessage(){
	document.getElementsByTagName('body')[0].style.overflow = 'auto';
	document.getElementById('message_bg').style.display = 'none';
	document.getElementById('message_box').style.display = 'none';
	if (document.getElementById('changeViewSelectBox')){	
		document.getElementById('changeViewSelectBox').style.visibility = 'visible';
	}
	if (document.getElementById('changeAboIntervall')){		
		document.getElementById('changeAboIntervall').style.visibility = 'visible';
	}
}

function showConfirmation(){	
	window.scrollTo(0,0);
	if (document.getElementById('changeViewSelectBox')){		
		document.getElementById('changeViewSelectBox').style.display = 'none';
	}
	if (document.getElementById('changeAboIntervall')){		
		document.getElementById('changeAboIntervall').style.display = 'none';
	}
	document.getElementsByTagName('body')[0].style.overflow = 'hidden';
	document.getElementById('confirm_bg').style.display = 'block';
	document.getElementById('confirm_box').style.display = 'block';	
}


function hideConfirmation(){
	document.getElementsByTagName('body')[0].style.overflow = 'auto';
	document.getElementById('confirm_bg').style.display = 'none';
	document.getElementById('confirm_box').style.display = 'none';
	if (document.getElementById('changeViewSelectBox')){	
		document.getElementById('changeViewSelectBox').style.display = 'block';
	}
	if (document.getElementById('changeAboIntervall')){		
		document.getElementById('changeAboIntervall').style.display = 'block';
	}
}



function confirmMessage(){
	hideConfirmation();
	if (this.confirm_func == 'checkReserveRessource'){		
		checkReserveRessource(this.id, this.uid, this.datum, this.von, this.dauer, this.isAbo);
	}
	if (this.confirm_func == 'deleteOrder'){	
		deleteOrder(this.order_id);
	}
	if (this.confirm_func == 'deleteReservierungVerwaltung'){	
		deleteReservierungVerwaltung(this.reserve_id);
	}
	if (this.confirm_func == 'deleteUser'){	
		deleteUser(this.user_id);
	}	
	
}



//--------------------------------
// configure Tree START
//--------------------------------
var ajaxObjects = new Array();

// Use something like this if you want to save data by Ajax.
function saveMyTree()
{
		order = treeObj.getNodeOrders();
		var ajaxIndex = ajaxObjects.length;
		ajaxObjects[ajaxIndex] = new sack();
		var url = 'konfiguration.html?action=saveOrder&order=' + order;
		ajaxObjects[ajaxIndex].requestFile = url;	// Specifying which file to get
		ajaxObjects[ajaxIndex].onCompletion = function() { saveComplete(ajaxIndex); } ;	// Specify function that will be executed after file has been found
		ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function			
	
}
function saveComplete(index)
{
	//alert(ajaxObjects[index].response);			
}


// Call this function if you want to save it by a form.
function saveMyTree_byForm()
{
	document.myForm.elements['saveString'].value = treeObj.getNodeOrders();
	document.myForm.submit();		
}

// Tree
function getParam(param) {
	var querystring = window.location.search;
	if(querystring == '') return 0;
	var wertestring = unescape(querystring);
	wertestring = wertestring.slice(1);
	var paare = wertestring.split("&");	
	for (var i=0; i < paare.length; i++) {		
		var name = paare[i].substring(0, paare[i].indexOf("="));		
		if (name == param)
			return paare[i].substring(paare[i].indexOf("=")+1, paare[i].length);		
	}
	return 0;
}

function initTree(){
	treeObj = new JSDragDropTree();
	treeObj.setTreeId('spb_tree');
	treeObj.setMaximumDepth(7);
	treeObj.setMessageMaximumDepthReached('Maximum depth reached'); // If you want to show a message when maximum depth is reached, i.e. on drop.
	treeObj.setImageFolder('fileadmin/images/drag-drop-folder-tree/');
	treeObj.setFileNameRename('konfiguration.html');
	treeObj.setFileNameDelete('konfiguration.html');
	treeObj.setLanguage(getParam('L'));
	
	treeObj.initTree();
	treeObj.expandAll();
}

//--------------------------------
//configure Tree END
//--------------------------------


//--------------------------------
//Konfiguration edit START
//--------------------------------


function newBereich(parent){		
	tx_atlspb_pi4newBereich(parent);
}

function newRessource(parent){		
	tx_atlspb_pi4newRessource(parent);
}

function editAttribute(id){
	var attribute = new Array();
	attribute['zeiteinheit'] = document.getElementById('zeiteinheit').value;	
	attribute['hour_height'] = document.getElementById('hour_height').value;
	tx_atlspb_pi4editAttribute(id,attribute);
}

function editZeit(id){
	var lang = getParam('L'); 
	var zeit = new Array();
	var tage = new Array();
	for (var i=0;i<7;++i){
		if(document.getElementById('werktag_'+i+'_'+id).checked){
			tage.push(i);
		}				
	}	
	if (document.getElementById('datum_von_value_'+id).value != '')
		zeit['datum_von'] = document.getElementById('datum_von_value_'+id).value;
	if (document.getElementById('datum_bis_value_'+id).value != '')
		zeit['datum_bis'] = document.getElementById('datum_bis_value_'+id).value;	
	zeit['zeit_von'] = document.getElementById('zeit_von_value_'+id).value;	
	zeit['zeit_bis'] = document.getElementById('zeit_bis_value_'+id).value;
	if (document.getElementById('zeit_bis_value_'+id).value == '24:00'){
		zeit['zeit_bis'] = '00:00';
	}
	tx_atlspb_pi4editZeit(id, zeit, tage, lang);
}

function newZeit(attribut){
	tx_atlspb_pi4newZeit(attribut);
}

function deleteZeit(id){
	tx_atlspb_pi4deleteZeit(id);
}

function editPreis(id){
	var lang = getParam('L'); 
	var preis = new Array();
	var tage = new Array();
	for (var i=0;i<7;++i){
		if(document.getElementById('preistag_'+i+'_'+id).checked){
			tage.push(i);
		}				
	}	
	if (document.getElementById('preis_datum_von_value_'+id).value != '')
		preis['datum_von'] = document.getElementById('preis_datum_von_value_'+id).value;
	if (document.getElementById('preis_datum_bis_value_'+id).value != '')
		preis['datum_bis'] = document.getElementById('preis_datum_bis_value_'+id).value;
	preis['zeit_von'] = document.getElementById('preis_zeit_von_value_'+id).value;
	if (document.getElementById('preis_zeit_bis_value_'+id).value == '24:00'){
		preis['zeit_bis'] = '00:00';
	}else{
		preis['zeit_bis'] = document.getElementById('preis_zeit_bis_value_'+id).value;
	}
	preis['value'] = document.getElementById('preis_value_'+id).value;
	preis['anz_einheiten'] = document.getElementById('anz_einheiten_'+id).value;
	
	tx_atlspb_pi4editPreis(id, preis, tage, lang);
}

function newPreis(attribut){
	tx_atlspb_pi4newPreis(attribut);
}

function deletePreis(id){
	tx_atlspb_pi4deletePreis(id);
}

function editBelegung(id){
	var lang = getParam('L'); 
	var belegung = new Array();
	var tage = new Array();
	for (var i=0;i<7;++i){
		if(document.getElementById('belegungstag_'+i+'_'+id).checked){
			tage.push(i);
		}				
	}	
	if (document.getElementById('belegung_datum_von_value_'+id).value != '')
		belegung['datum_von'] = document.getElementById('belegung_datum_von_value_'+id).value;
	if (document.getElementById('belegung_datum_bis_value_'+id).value != '')
		belegung['datum_bis'] = document.getElementById('belegung_datum_bis_value_'+id).value;
	belegung['zeit_von'] = document.getElementById('belegung_zeit_von_value_'+id).value;
	if (document.getElementById('belegung_zeit_bis_value_'+id).value == '24:00'){
		belegung['zeit_bis'] = '00:00';
	}else{
		belegung['zeit_bis'] = document.getElementById('belegung_zeit_bis_value_'+id).value;
	}
	belegung['value'] = document.getElementById('belegung_value_'+id).value;
	
	tx_atlspb_pi4editBelegung(id, belegung, tage, lang);
}

function newBelegung(attribut){
	tx_atlspb_pi4newBelegung(attribut);
}

function deleteBelegung(id){
	tx_atlspb_pi4deleteBelegung(id);
}



//--------------------------------
// Konfiguration edit END
//--------------------------------


function getReservesOfOrder(id){	
	var action = document.getElementById('i'+id).value;	
	if (action == 'init') displayAjaxLoader();
	tx_atlspb_pi6getReservesOfOrderAjax(id, action);
}
