// JavaScript Document

function CMS_AddOnloadEvent(addToOnload) {
	document.observe('dom:loaded',function() {addToOnload();});
}

function CMS_FormSubmit(form) {
	var url = site_dir + $(form).readAttribute('action');
	new Ajax.Request(url,{
		evalJS: true,
		parameters: $(form).serialize() + "&form_id="+$(form).readAttribute('id'),
		onComplete: function (transport) {
			transport.responseText.evalScripts();
		}
	});
}

function CMS_WindowReload() {window.location.reload();}
function CMS_WindowRedirect(url) {window.location = url;}
function CMS_Alert(message) {window.alert(message);}

// Funktionen henter en standard-popup
function CMS_PopupLoad(url,parameters) {
	CMS_PopupRemove();
	
	$(document.body).insert('<div id="popup_div"></div>');
	CMS_AjaxRequest(url,parameters,'popup_div');
}
function CMS_PopupRemove()
{
	if ($('popup_div'))		$('popup_div').remove();
}

// Funktion som behandler alle AJAX-forbindelser til serveren
function CMS_AjaxRequest(url,parameters,target,loading_gif){
// Parametre, som gælder for alle typer forbindelser
	var ajaxOptions = {
		method: 'post',
		parameters: parameters,
		onFailure : function (response) {CMS_Alert("Der opstod en fejl!\n\r\n\rPrøv venligst igen...");}
	};

// Forbindelser som ikke skal returnere data til et felt
	if (typeof target == 'undefined' || target == '')
	{
		ajaxOptions['onSuccess'] = function (response) {response.responseText.evalScripts();};
		new Ajax.Request(url,ajaxOptions);
	}
// Forbindelser som skal returnere data til et input-felt
	else if ($(target).tagName.toLowerCase() == 'input' || $(target).tagName.toLowerCase() == 'textarea')
	{
		ajaxOptions['onSuccess'] = function (response) {$(target).value = response.responseText;};
		new Ajax.Request(url,ajaxOptions);
	}
// Forbindelser som skal returnere data til et hvilket som helst andet felt
	else
	{
		ajaxOptions['evalScripts'] = true;
		
		if (typeof loading_gif != 'undefined' && loading_gif)
		{
			ajaxOptions['onCreate'] = function(response) {
				$(target).setOpacity(0.3);
				$(document.body).insert('<div id="loading_box_'+target+'" class="loading_box" style="display:none; border: none;"><br /><br /><img src="pics/ajax-loader.gif" width="32" height="32" /></div>',{position: 'top'});
				$('loading_box_'+target).clonePosition(target, {setHeight: false});
				$('loading_box_'+target).show();
			};
			ajaxOptions['onComplete'] = function(response) {
				$('loading_box_'+target).remove();
				$(target).setOpacity(1.0);
			};
		}
		
		new Ajax.Updater(target,url,ajaxOptions);
	}
}

