/**
 * Shows a loading image when content is loaded via AJAX.
 * The image is shwon as a block (using a div). If HTML returned
 * from AJAX call should be displayed inline, use getLoadingImage instead.
 *
 * @return void
 */
function getLoadingHtml(){
	var loadHtml = '<div class="loading">&nbsp;</div>';
	return loadHtml;
}
/**
 * Shows a loading image when content is loaded via AJAX.
 * The image is displayed inline (just the image tag).
 *
 * @return void
 */
function getLoadingImage(){
	var loadHtml = '<div class="loading inline">&nbsp;</div>';
	return loadHtml;
}
function loadTownForZipCode(){
	var town = $F('town');
	if( town.length == 0 ){
		$('town_load').innerHTML = getLoadingImage();
		var url = getBaseURL() + 'ajax/ajax_controller.php';
		var zipcode = $F( 'zipcode' );
		var pars = 'ajax_handler=zipcode&zipcode=' + zipcode;
		new Ajax.Updater( 'town_load', url, {method: 'post', parameters: pars });
	}
}
function mb_update(elementId, params){
	var url = getBaseURL() + 'ajax/ajax_controller.php';
	new Ajax.Updater( elementId, url, {method: 'post', parameters: params });	
}
function checkTownReset(selElt){
	var selVal = $F(selElt);
	if(selVal == 'reset'){
		var townEltId = selElt.id;
		var eltId = townEltId+'_load';
		$(eltId).innerHTML = getLoadingImage();
		var pars = 'ajax_handler=zipcode&resetTownField=' + townEltId;
		mb_update(eltId, pars);
	}
}

function reloadContent( elt ){
	var elementId = 'cnt';
	var params = 'ajax_handler=content&origURL=' + encodeURIComponent(elt.href);
	requestWithFadeEffect( elementId, params );
	return false;
}
function loadList( elt ){
	var elementId = 'overview';
	var params = 'ajax_handler=content&reloadRecords=1&origURL=' + encodeURIComponent(elt.href);
	requestWithFadeEffect( elementId, params );
	return false;
}
function requestWithFadeEffect( elementId, params ){
//	$(elementId).innerHTML = getLoadingHtml();
	//Effect.toggle(elementId, 'blind', { duration: 0.3 } );
	new Effect.Opacity(elementId, {duration:0.5, from:1.0, to:0.2});
	var url = getBaseURL() + 'ajax/ajax_controller.php';
	new Ajax.Request(
		url, 
		{	
			method: 'post',
			parameters: params,
			onSuccess: function(originalRequest){
//				Element.hide(elementId);
				var response = originalRequest.responseText.strip();
				Element.update(elementId, response);
				//Effect.BlindDown(elementId, { duration: 0.3 });
				//Effect.toggle(elementId, 'blind', { duration: 0.3 } );
				new Effect.Opacity(elementId, {duration:0.5, from:0.2, to:1});
			}
		}
	);
}
function updateElement( params, elementId ){
	$(elementId).innerHTML = getLoadingHtml();
	params += '&ajax_handler=content';
	mb_update(elementId, params);
}
function saveForm(){
	Modalbox.hide();
	var params = Form.serialize("edit_form");
	updateElement(params, 'cnt');
}
function mb_delete( delId, ext ){
	var isConfirmed = confirm("Wollen Sie den Datensatz wirklich loeschen?");
	if (isConfirmed == true) {
		var params = "edit=1&confirm=1&delId=" + delId + "&ext=" + ext;
		var url = getBaseURL() + 'ajax/ajax_controller.php';
		new Ajax.Request( url, { method: 'post', parameters: params } );
		var rowEltId = 'lr_'+delId;
		new Effect.Opacity(rowEltId, {duration:0.5, from:1, to:0, afterFinish: function(){ $(rowEltId).remove(); }});
	}
	return false;
}
function deleteRecord( delId, ext ){
	var isConfirmed = confirm("Wollen Sie den Datensatz wirklich loeschen?");
	if (isConfirmed == true) {
		var params = "edit=1&confirm=1&delId=" + delId + "&ext=" + ext;
		updateElement(params, 'cnt');
	}
}
function editRecord( element, divWidth ){
	Modalbox.show(element.href, {
		title: element.title,
		overlayClose: false, // Close modal box by clicking on overlay
		width: divWidth,
		overlayDuration: .0, // Default overlay fade in/out duration in seconds
		slideDownDuration: .0
	});
}
/**
 * Deletes the given file
 *
 * @param String file	A file name (absolute path)
 * @param String eltId	A HTML element id. The element content will be replaced
 *						with the delete result message.
 *
 * @return void
 */
function deleteFile( file, eltId ){
	Check = confirm("Wollen Sie die Datei "+file+" wirklich loeschen?");
	if (Check == true) {
		var pars = 'ajax_handler=file&file=' + file;
		mb_update(eltId, pars);
		//reloadFileTable();
	}
}
/**
 * Renames the given file to the value stored in the element
 *
 * @param String file		A file name (absolute path)
 * @param Object element	A HTML element which contains the new file name.
 *
 * @return void
 */
function renameFile( file, element ){
	Check = confirm("Wollen Sie die Datei "+file+" wirklich umbenennen?");
	if (Check == true) {
		var newFileName = $F(element);
		var url = getBaseURL() + 'ajax/ajax_controller.php';
		var pars = 'ajax_handler=file&file=' + file + '&newFileName=' + newFileName;
		if($('updId') != null) pars += '&recordId=' + $F('updId');
		new Ajax.Request(
			url, 
			{	
				method: 'post',
				parameters: pars,
				onSuccess: function(originalRequest){
					var response = originalRequest.responseText.strip();
					$('ajax_file_info').innerHTML = response;
					reloadFileTable();
				}
			}
		);
	}
}
/**
 * Reloads the table with the uploaded files
 *
 * @return void
 */
function reloadFileTable(){
	var extension = '';
	//var fileExtName = $('img_ext') != null ? 'img_ext' : 'ext';
	//var extension = $F(fileExtName);
	if( $('ext') != null ) extension = $F('ext');
	if( $('img_ext') != null ) extension = $F('img_ext');
	if(extension.length > 0){
		var eltId = extension+'_file_table';
		$(eltId).innerHTML = getLoadingHtml();
	}
		
	var pars = 'ajax_handler=file&reload=1&extension=' + extension;

	if( $('load_ext') != null ) pars += '&load_ext=' + $F('load_ext');
	if( $('updId') != null) pars += '&recordId=' + $F('updId');
	if ($('upload_dir') != null) pars += '&upload_dir=' + $F('upload_dir');

	mb_update(eltId, pars);
	Element.show('row_uploaded_files');
}
function saveComment( element, fileId ){
	var extension = $F('ext');
	var pars = 'ajax_handler=file&fileId=' + fileId + '&comment=' + element.value + '&extension=' + extension;
	mb_update('ajax_file_info', pars);
	element.style.backgroundColor = "#FEFCC9";
}
function addSublistRow( type ){
	addSubListRowWithValueSet( type, '' );
}
function addSubListRowWithValueSet( type, setValue ){
	//Get number of last existing row
	var lastRowNr = 2;
	var lastElt = $('row_'+type+'_'+(lastRowNr));
	while(lastElt != null){
		++lastRowNr;
		lastElt = $('row_'+type+'_'+(lastRowNr))
	}
	--lastRowNr;
	var url = getBaseURL() + 'ajax/ajax_controller.php';
	var pars = 'ajax_handler=sublists&rowNr=' + lastRowNr + '&type=' + type + '&setValue=' + setValue;
	new Ajax.Updater(
		'row_'+type+'_'+lastRowNr,
		url,
		{
			method: 'post',
			parameters: pars,
			insertion: Insertion.After
		}
	);
}
function addTimesSublistRow( type ){
	//Get number of last existing row
	var lastRowNr = 2;
	var lastElt = $('row_'+type+'_'+(lastRowNr));
	while(lastElt != null){
		++lastRowNr;
		lastElt = $('row_'+type+'_'+(lastRowNr))
	}
	--lastRowNr;
	var url = getBaseURL() + 'ajax/ajax_controller.php';
	var pars = 'ajax_handler=sublists&rowNr=' + lastRowNr + '&type=' + type;
	
	new Ajax.Request(
		url, 
		{	
			method: 'post',
			parameters: pars,
			onSuccess: function(originalRequest){
				var response = originalRequest.responseText.strip();
				$('row_'+type+'_'+lastRowNr).insert( { after : response } );
				// Call the create method to create and associate a new date-picker widgit with the new input
				datePickerController.create();
			}
		}
	);
}
function delSublistRow( currentRowNr, type, eltId, rowId, subListType ){
	Element.hide(rowId);
	if(type == 'select'){
		$resetElt = $(eltId);
		$resetElt.selectedIndex = 0;
	}
	else{
		$(eltId).value = '';		
	}
}
function setBackgroundColor( elementId, origBGCol ){
	$(elementId).style.backgroundColor = origBGCol;
}
function toggleSubMenu(linkElt, subMenuName){
	var subMenuElt = $(subMenuName);
	var isVisible = subMenuElt.visible();
	Effect.toggle(subMenuElt, 'blind', { duration: 0.3 } );
	if(isVisible){
		$(linkElt).removeClassName('active');
	}
	else{
		$(linkElt).addClassName('active');
	}
}
function toggleMainMenu(){
	var menuElt = $('MainMenu');
	var isVisible = menuElt.visible();
	var cntElt = $('cnt');
	var cntMarginLeft = 0;
	var linkElt = $('link_toggle_menu');
	if(isVisible){
		if(linkElt != null){
			linkElt.innerHTML = 'Men&uuml; anzeigen';			
		}
		else{
			var showLinkHTML = '<div id="show_main_menu"><a class="ajax_link" onclick="toggleMainMenu();" id="link_toggle_menu">Men&uuml; anzeigen</a></div>';
			$('container').insert( { top: showLinkHTML} );			
		}
		menuElt.hide();
	}
	else{
		if(linkElt != null) linkElt.innerHTML = 'Men&uuml; ausblenden';
		//var showElt = $('show_main_menu');
		//if(showElt != null) showElt.remove();
		cntMarginLeft = 200;
		menuElt.show();
	} 
	//if(cntElt != null) cntElt.style.marginLeft = cntMarginLeft+"px";
}

