/**
 * Returns the base url path (host and sub path) for ajax requests.
 *
 * @return String Url path (e.g. http://www.test.com/ajax/)
 */
function getBaseURL(){
	//var url = 'http://'+window.location.host+'/mps/fileadmin/mps/';
	var url = 'http://'+window.location.host+'/fileadmin/mps/';
	return url;
}
/**
 * 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>';
	var loadHtml = '<img src="images/loading.gif" alt="Loading..." width="32" height="32" />';
	return loadHtml;
}
function editRecordSetMaxHeight( element, divWidth ){
	var maxHeight = getWindowHeight() - 100;
	Modalbox.show(element.href, {
		title: element.title,
		width: divWidth,
		height: maxHeight,
		overlayDuration: .25, // Default overlay fade in/out duration in seconds
		slideDownDuration: .25
	});	
}
function updateFileSetting( fileId, newValue, fieldName  ){
	var url = getBaseURL() + 'ajax/ajax_controller.php';
	var extension = $F('ext');
	if( $('img_ext') != null ){
		extension = $F('img_ext');
	}
	var pars = 'ajax_handler=file&fileId=' + fileId + '&newValue=' + newValue + '&extension=' + extension  + '&fieldName=' + fieldName;
	new Ajax.Updater( 'file_settings_'+fileId, url, {method: 'post', parameters: pars });
}
/**
 * Shows or hides input fields depending on the person status.
 * This function is called, when the value in the type select
 * field is changed.
 *
 * @return void
 */
function switchFieldsByPersonGroup(typeElement){
	var typeId = $F(typeElement);
	if( typeId == 4 ){//Redakteur
		Element.show('row_editor_regions');
	}
	else{
		Element.hide('row_editor_regions');
	}
}
function resetElementContent( elementId ){
	$(elementId).innerHTML = '';
}
function resetBackgroundColor( elementId, origBGCol ){
	$(elementId).style.backgroundColor = origBGCol;
}
function setVisibility( field ){
	var elt = $('field_vis_'+field);
	var visVal = elt.value;
	var newVal = (visVal + 1) % 3;
	int_setVisibility(field, newVal);
	/*
	elt.value = newVal;
	var classes = new Array( "admins", "intranet", "internet" );
	var rowElt = $('vis_row_'+field);
	if( Element.hasClassName( rowElt, classes[visVal] ) ){
		Element.removeClassName( rowElt, classes[visVal] );
	}
	Element.addClassName( rowElt, classes[newVal] );*/
	//var classNames = Element.ClassNames(rowElt);
	//alert('vis_row_'+field);
	//alert(Element.ClassNames('vis_row_'+field));
	//classNames.set("visibility "+classes[visVal]);
}
function int_setVisibility( field, newVisVal ){
	var elt = $('field_vis_'+field);
	if(!elt){
		//alert(field);
		return;
	}
	var visVal = elt.value;
	elt.value = newVisVal;
	var classes = new Array( "admins", "intranet", "internet" );
	var rowElt = $('vis_row_'+field);
	if( Element.hasClassName( rowElt, classes[visVal] ) ){
		Element.removeClassName( rowElt, classes[visVal] );
	}
	Element.addClassName( rowElt, classes[newVisVal] );
}
function setVisForAll(type){
	var visVal = $F('visibility');
	var visEltList = document.getElementsByTagName('input');
	for(i=0,n=visEltList.length; i<n; i++) {
		var hasClass = visEltList[i].className.match(new RegExp('(\\s|^)'+'vis_field'+'(\\s|$)'));
		if(hasClass ){
			var field = $(visEltList[i]).id.gsub("field_vis_", "");
			int_setVisibility( field, visVal );
		}
	}

	/*Does not work in Safari
	$('edit_form').select('.vis_field').each(function(node) {
		var field = node.id.gsub("field_vis_", "");
		int_setVisibility( field, visVal );
	});*/
}
function checkUrl(elt, infoEltId){
	var url = $F(elt);
	/*
	var regexp = /((ht|f)tp(s?)\:\/\/)?([\w]+:\w+@)?(([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5})))/;//(:[\d]{1,5})?(\/|\/([\w#!:.?+=&%@!\-\/]))
	//var regexp = /((ht|f)tp(s?)\:\/\/|~\/|\/)?([\w]+:\w+@)?(([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5}))(:[\d]{1,5})?)?((\/?\w+\/)+|\/?)(\w+\.[\w]{3,4})?([,]\w+)*((\?\w+=\w+)?(&\w+=\w+)*([,]\w*)*)?/
	var isUrl = regexp.test(url);
	if(!isUrl){
		$(infoEltId).innerHTML = '<div class="warning">Der eingegebene Link &bdquo;'+url+'&ldquo; ist ung&uuml;ltig!</div>';
		elt.value = '';
		//elt.style.border = "1px solid #990000";
	}
	else{*/
		//elt.style.border = "1px solid #A7A6AA";
		//$('ajax_links').innerHTML = '<div class="message">'+getLoadingImage()+' Der Link wird gepr&uuml;ft...</div>';
		var aUrl = getBaseURL() + 'ajax/ajax_controller.php';
		var pars = 'ajax_handler=mps_link_check&checkUrl=' + url;
		
		new Ajax.Request(
			aUrl, 
			{	
				method: 'post',
				parameters: pars,
				onSuccess: function(originalRequest){
					var response = originalRequest.responseText.strip();
					if(response == 0){
						$(infoEltId).innerHTML = '<div class="warning">Der eingegebene Link &bdquo;'+url+'&ldquo; ist ung&uuml;ltig!</div>';
						elt.value = '';
					}
					else{
						$(infoEltId).innerHTML = '';
					}
				}
			}
		);
	//}
}	
