
function loadJSFile(id, file)
{

	var head = document.getElementsByTagName("head")[0];
	script = document.createElement('script');
	script.id = id;
	script.type = 'text/javascript';
	script.src = file;
	head.appendChild(script);

};

function insertJS(id, text)
{
	checkDeleteId(id);
	
	var head = document.getElementsByTagName("head")[0];
	script = document.createElement('script');
	script.id = id;
	script.type = 'text/javascript';
	script.text = text;
	head.appendChild(script);
};

function checkDeleteId(id)
{
	var head = document.getElementsByTagName("head")[0];
	ele = document.getElementById(id);
	if (ele) 
	{
		head.removeChild(ele);
		delete ele;
	}
};

function loadJSFile(id, file)
{
	checkDeleteId(id);
	
	var head = document.getElementsByTagName("head")[0];
	script = document.createElement('script');
	script.id = id;
	script.type = 'text/javascript';
	script.src = file;
	head.appendChild(script);
};


function loadCSS(id, file)
{
	//<link rel="stylesheet" type="text/css" href="style.css">
	checkDeleteId(id);
	
	var head = document.getElementsByTagName("head")[0];
	link = document.createElement('link');
	link.id = id;
	link.rel = 'stylesheet';
	link.href = file;
	head.appendChild(link);
	
}

function ajax_getJSON(url, parameter, callback)
{
	new Ajax.Request(url,
		{
			method: 'post',
			parameters: parameter,
			encoding: 'ISO-8859-1',
			onSuccess: function Response(answer)
				{
					callback(answer.responseText.evalJSON());
				}
		}
	);
};

function ajax_getPlain(url, parameter, callback)
{
	new Ajax.Request(url,
		{
			method: 'post',
			parameters: parameter,
			encoding: 'ISO-8859-1',
			onSuccess: function Response(answer)
				{
					callback(answer.responseText);
				}
		}
	);
};

var ajaxPeriodicalUpdater = 
{
	init: function (url, parameter, intervall, callback)
	{
		this.pr_callback = callback;
		this.pr_parameter = parameter;
		this.pr_url = url;
		this.pr_intervall = intervall;
		this.pr_running = false;
	},

	start: function ()
	{
		this.pr_running = true;
		window.setTimeout("ajaxPeriodicalUpdater.step()", ajaxPeriodicalUpdater.pr_intervall);
	},
		
	stop: function ()
	{
		this.pr_running = false;
	},
	
	step: function ()
	{
		if (this.pr_running)
		{
			ajax_getPlain(this.pr_url, this.pr_parameter, 
				function Response(answer)
				{
					window.setTimeout("ajaxPeriodicalUpdater.step()", ajaxPeriodicalUpdater.pr_intervall);		
					ajaxPeriodicalUpdater.pr_callback(answer);
				}		
			);
		}
	}
	
}

var lastHash = "";

function updateDummyFrame(hash_id)
{
	window.frames["dummy_frame"].location.href = "dummy.php?id="+hash_id;	
}

function hasHashChanged()
{
	if (lastHash != getHash()) return true;
	else return false;
}

function toggleHashChanged()
{
	lastHash = getHash();
}

function getHash()
{
	return location.hash;
}

function setHash(hash_id)
{
	location.hash = "#"+hash_id;
	updateDummyFrame(hash_id);
}

function setHashNoUpdate(hash_id)
{
	setHash(hash_id);
	lastHash = getHash();
	
}

function getFilename(file)
{
	//backslashes durch slashes ersetzen
	var parsed = file.replace(/\\/g, "/");
	//nun splitten
	var felements = parsed.split('/');
	//letztes element holen :)
	return felements.pop();
}

function delay(prmSec)
{
	prmSec *= 1000;
 
	var eDate = null;
	var eMsec = 0;
 
	var sDate = new Date();
	var sMsec = sDate.getTime();
 
	do 
	{
		eDate = new Date();
		eMsec = eDate.getTime();

	} while ((eMsec-sMsec)<prmSec);
} 

function hideElement(element)
{
	$(element).style.visibility = "hidden";
}

function showElement(element)
{
	//$(element).style.visibility = "visible";
	$(element).style.display = "block";
}

function deleteAll(a_node)
{
	if (a_node.hasChildNodes())
	{
		while (0 != a_node.childNodes.length)
		{
			var child = a_node.childNodes[0];
			a_node.removeChild(child);
			deleteAll(child);
		}
	}
	
	delete a_node;
}

function replaceDivHTML(div_name, html_code)
{
	var node = $(div_name).getElementsByTagName("div")[0];

	if (node)
	{	
		$(div_name).removeChild(node);
		deleteAll(node);
	}

	var a_div = document.createElement('div');
	a_div.id = div_name + "_sub";
	a_div.innerHTML = html_code;
	
	$(div_name).appendChild(a_div);	
}

function ID(the_id)
{
	return document.getElementById(the_id);
}
