
function toQueryString(parameters)
{
	var temp = new Array();
	for(key in parameters)
		temp.push(key+"="+encodeURIComponent(parameters[key]));

	return temp.join("&");
}

function countElements(arrayData)
{
	var count = 0;
	for(key in arrayData)
		count++;
		
	return count;
}

function filterNumeric(obj)
{
	obj.value = obj.value.match(/\d+/);
}

function dumpAttributes(obj)
{
	var items = new Array();
	
	for(var item in obj)
		items.push(item);
		
	return items.join(", ");
}

function dump(arr,level) 
{
	var dumped_text = "";
	if(!level) 
		level = 0;
		
	if(level > 3)
		return "...";
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) 
		level_padding += "    ";
	
	if(typeof(arr) == 'object') 
	{ //Array/Hashes/Objects 
		for(var item in arr) 
		{
			var value = arr[item];
			
			if(typeof(value) == 'object') 
			{ //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} 
			else 
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
		}
	} 
	else 
	{ //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}

function getFormElementValue(id)
{
	var obj = document.getElementById(id);
	if(!obj)
	{
		alert("getFormElementValue("+id+"): object not found");
		return;
	}
	switch(obj.type)
	{
		case "undefined":
			alert("getFormElementValue("+id+"): not a form element");
			break;
		case "select-one":
			return obj.options[obj.selectedIndex].value;
			break;
		case "checkbox":
			return obj.checked;
			break;
		case "radio":
			if(obj.checked)
				return obj.value;
			else
				return "";
			break;
		case "text":
		case "textarea":
		case "hidden":
			return obj.value;
			break;
		default:
			alert("getFormElementValue("+id+"): no action for "+obj.type+" defined");
			break;
	}
}

function setFormElementValue(id, value)
{
	var obj = document.getElementById(id);
	if(!obj)
	{
		alert("setFormElementValue("+id+", "+value+"): object not found");
		return;
	}
	if(!value)
		value = "";

	switch(obj.type)
	{
		case "undefined":
			alert("setFormElementValue("+id+", "+value+"): not a form element");
			break;
		case "select-one":
			for(i=0; i < obj.options.length; i++)
				if(obj.options[i].value == value)
				{
					obj.selectedIndex = i;
					break;
				}
			break;
		case "checkbox":
			obj.checked = value;
			break;
		case "radio":
			obj.checked = value;
			break;
		case "text":
		case "textarea":
		case "hidden":
			obj.value = value;
			break;
		default:
			alert("setFormElementValue("+id+", "+value+"): no action for "+obj.type+" defined");
			break;
	}
}

function onEnter(e, callback, parameter)
{
	var keyId = (window.event) ? event.keyCode : e.keyCode;
		if(keyId == 13)
			callback(parameter);
}

function setCalendarLocaleDe(calendar)
{
	calendar.cfg.setProperty("DATE_FIELD_DELIMITER", ".");
	calendar.cfg.setProperty("MDY_DAY_POSITION", 1);
	calendar.cfg.setProperty("MDY_MONTH_POSITION", 2);
	calendar.cfg.setProperty("MDY_YEAR_POSITION", 3);
	calendar.cfg.setProperty("MD_DAY_POSITION", 1);
	calendar.cfg.setProperty("MY_MONTH_POSITION", 2);
	calendar.cfg.setProperty("MONTHS_SHORT",   ["Jan", "Feb", "M\u00E4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]); 
	calendar.cfg.setProperty("MONTHS_LONG",    ["Januar", "Februar", "M\u00E4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]); 
	calendar.cfg.setProperty("WEEKDAYS_1CHAR", ["S", "M", "D", "M", "D", "F", "S"]); 
	calendar.cfg.setProperty("WEEKDAYS_SHORT", ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]);
	calendar.cfg.setProperty("WEEKDAYS_MEDIUM",["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"]);
	calendar.cfg.setProperty("WEEKDAYS_LONG",  ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]);
}
