/**
 * fuMan - developped by fugu GmbH, Bern, Switzerland, www.fugu.ch
 * Please see licence.txt in the root directory for further information.
 *
 * $Id: loadfile.js,v 1.15 2009-03-04 15:07:30 higi Exp $
 * $Date: 2009-03-04 15:07:30 $
 * $Revision: 1.15 $
 *
 * Dynamically loads javascript or css file
 *
 * Load javascript file 
 * Add this to your js-file for callback (will fix opera prob)
 *
 * name: id of the tag
 *       if it exists it replaces the url, if not, the tag gets created
 * url:  url of the script to be loaded (automatically adds a magic number 'mn')
 *       if url is null the url of the existing file will be reloaded with a magic number appended
 */
function loadJS (name, url) { loadFile (name, url, null, 'js'); }

/** Loads css file "*/
function loadCSS (name, url, media) { loadFile (name, url, media, 'css'); }

/** Loads a file */
function loadFile (name, url, media, type) {
	//alert (name + ': ' + url);
	if (name == null || (type != 'js' && type != 'css')) return;
	var heads = document.getElementsByTagName ('head');
	if (heads == null) {
		alert ("Document head not found");
		return;
	}
	var oldf = AJS.getElement (name);
	if (oldf == null && url == null) return;
	if (url == null) url = oldf.src;
	var mn = new Date ().getTime ()
	if (url.indexOf ("mn=") == -1) url += (url.indexOf ('?') > -1 ? '&' : '?') + 'mn=' + mn;
	else {
		var re = new RegExp ('mn=.*&');
		url = url.replace (re, '');
	}
	// Create registry
	var f = null;
	if (type == 'css') {
		f = document.createElement ('link');
		if (media != null) {
			f.media = media;
		}
		f.rel = 'stylesheet';
		f.type = 'text/css';
		f.href = url;
	}
	else {
		f = document.createElement ('script');
		f.type = 'text/javascript';
		f.src = url;
	}
	f.id = name;
	if (oldf == null) {
		heads[0].appendChild (f);
	}
	else {
		heads[0].replaceChild (f, oldf);
	}
}

function ajaxCall (url, node, method) {
	if (!method) {
		method = 'GET';
	}
	if (!node) {
		node = null;
	}
	//alert (url);
	var r = AJS.getRequest (url, node, method);
	r.addCallback (function (data, req) { /* alert (data); */ eval (data); });
	r.addErrback (function () { });
	r.sendReq ();
}

