function doDeleteMarkedConfirm(theForm,theIdListFieldName,theArray,theTheEnding,theSingular,thePlural) {
	var message;
	switch (theArray.length) {
		case 0:
			message='';
		break;
		case 1:
			message='Vill du verkligen ta bort de'+theTheEnding+' markerade '+theSingular+'?';
		break;
		case 2:
			message='Vill du verkligen ta bort de båda markerade '+thePlural+'?';
		break;
		default:
			message='Vill du verkligen ta bort alla '+clickedArray.length+' '+thePlural+'?';
	}
	if (message.length != 0) {
		if (confirm(message)) {
			eval('theForm.'+theIdListFieldName+'.value=theArray.toString();');
			theForm.submit();
		}
	}
}
function get_object(o) {
	if (document.getElementById && document.getElementById(o) != null)
		return document.getElementById(o);
	else if (document.layers && document.layers[object] != null)
		return document.layers[o];
	else if (document.all)
		return document.all[o];
}
function addOption(theSelect,theValue,theText) {
	var theOption=new Option(theText, theValue, false, false)
	var selectLength=theSelect.options.length;
	theSelect.options[selectLength]=theOption;
}
function emailValidation(theEmail) {
	emailLength = theEmail.length;
	indexOfAlpha = theEmail.indexOf('@');
	lenBetweenAlphaAndNextDot = theEmail.indexOf('.',indexOfAlpha) - indexOfAlpha - 1;
	lenDomain = emailLength - theEmail.lastIndexOf('.') - 1;
	//the email address lenght must be at least 8 characters (ab@cd.ef)
	if (emailLength < 8) {
		return false;
	//the @ can occur at index 2 as earliest, -1 is returned if it don't exist at all
	} else if (indexOfAlpha < 2) {
		return false;
	//the first . after @ must occur at least 2 indexes later
	} else if (lenBetweenAlphaAndNextDot < 2) {
		return false;
	//the domain name must be at least 2 characters
	} else if (lenDomain < 2) {
		return false;
	} else {
		return true;
	}
}
function idExist(theID) {
	if (document.all) {
		if (document.all[theID])
			return true;
		else
			return false;
	} else if (document.getElementById) {
		if (document.getElementById(theID))
			return true;
		else
			return false;
	} else {
		return false;
	}
}
function isInt(theValue) {
	if (isNaN(theValue) || theValue.indexOf(',') > 0 || theValue.indexOf('.') > 0)
		return false;
	else
		return true;
}
function replaceBadMSWordCharacter(theField) {
	theField.value=theField.value.replace(/\u201A/g,"'");//baseline single quote
	theField.value=theField.value.replace(/\u0192/g,'<i>f</i>');//florin (small letter f with hook)
	theField.value=theField.value.replace(/\u201E/g,'"');//baseline double quote
	theField.value=theField.value.replace(/\u2026/g,'...');//ellipsis (3 horisontal ellipsis)
	theField.value=theField.value.replace(/\u2020/g,'&sup1');//dagger (cross)
	theField.value=theField.value.replace(/\u2021/g,'&sup2');//double dagger (cross with two horisontal lines)
	theField.value=theField.value.replace(/\u02C6/g,'^');//circumflex accent
	theField.value=theField.value.replace(/\u2030/g,'o/oo');//permile (as procent sign, but with double zeros)
	theField.value=theField.value.replace(/\u0160/g,'Sh');//S Hacek
	theField.value=theField.value.replace(/\u2039/g,'"');//left single guillemet (single left-pointing angle quotation mark)
	theField.value=theField.value.replace(/\u0152/g,'OE');//OE ligature
	theField.value=theField.value.replace(/\u2018/g,"'");//left single quote
	theField.value=theField.value.replace(/\u2019/g,"'");//right single quote
	theField.value=theField.value.replace(/\u201C/g,'"');//left double quotation mark
	theField.value=theField.value.replace(/\u201D/g,'"');//right double quotation mark
	theField.value=theField.value.replace(/\u2022/g,"*");//bullet
	theField.value=theField.value.replace(/\u2013/g,"-");//endash
	theField.value=theField.value.replace(/\u2014/g,"--");//emdash
	theField.value=theField.value.replace(/\u02DC/g,'~');//tilde accent
	theField.value=theField.value.replace(/\u2122/g,'<sup>TM</sup>');//trademark ligature
	theField.value=theField.value.replace(/\u0161/g,'sh');//s Hacek
	theField.value=theField.value.replace(/\u203A/g,'"');//right single guillement  (single right-pointing angle quotation mark)
	theField.value=theField.value.replace(/\u0153/g,'oe');//oe ligature
	theField.value=theField.value.replace(/\u0178/g,'Y');//Y Dieresis
}
Array.prototype.inArray=function (value,caseSensitive) {
	var i;
	for (i=0;i<this.length;i++) {
		if (caseSensitive) {
			if (this[i].toLowerCase() == value.toLowerCase())
				return true;
		} else {
			if (this[i] == value)
				return true;
		}
	}
	return false;
}
Array.prototype.arrayIndexOf=function (value,caseSensitive) {
	var i;
	for (i=0;i<this.length;i++) {
		if (caseSensitive) {
			if (this[i].toLowerCase() == value.toLowerCase())
				return i;
		} else {
			if (this[i] == value)
				return i;
		}
	}
	return -1;
}
Array.prototype.removeItems=function(itemsToRemove) {
	if (!/Array/.test(itemsToRemove.constructor))
		itemsToRemove=[itemsToRemove];
	var j;
	for (var i=0;i<itemsToRemove.length;i++) {
		j=0;
		while (j < this.length) {
			if (this[j] == itemsToRemove[i])
				this.splice(j,1);
			else
				j++;
		}
	}
}
// Removes leading whitespaces
function LTrim(value) {
	var re=/\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}

// Removes ending whitespaces
function RTrim(value) {
	var re=/((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}

// Removes leading and ending whitespaces
function trim(value) {
	return LTrim(RTrim(value));
}





