// trim functionality
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}

function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

function isMobile (frm, obj, val) {
	var matching = val.match(/^06[1-9]{1}[0-9]{7}$/)
	
	//alert('value: ' + val + '\nrequired: ' + required + '\nlength: ' + valuelength + '\nmatching: ' + matching)
	if (trim(val).length > 0) {
		if (matching){
			return true
		}
		else {
			return false
		}
	}
	else {
		return true
	}
}

function isZip(frm, obj, val) {
	var matching = val.match(/^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/)
	
	//alert('value: ' + val + '\nrequired: ' + required + '\nlength: ' + valuelength + '\nmatching: ' + matching)
	
	if (trim(val).length > 0) {
		if (matching){
			return true
		}
		else {
			return false
		}
	}
	else {
		return true
	}
}

function isPhone(frm, obj, val) {
	var matching = val.match(/^[0-9]{10}$/)
	
	//alert('value: ' + val + '\nrequired: ' + required + '\nlength: ' + valuelength + '\nmatching: ' + matching)
	
	if (trim(val).length > 0) {
		if (matching){
			return true
		}
		else {
			return false
		}
	}
	else {
		return true
	}
}

function euroDate(frm, obj, val) {
	// check euro date in the format of 'dd/mm/yyyy'
	
	if (obj.value.length > 0) {						
		// the pattern to match
		pattern =  /^(((((0[1-9])|(1\d)|(2[0-8]))-((0[1-9])|(1[0-2])))|((31-((0[13578])|(1[02])))|((29|30)-((0[1,3-9])|(1[0-2])))))-((20[0-9][0-9]))|(29-02-[0-9][0-9](([02468][048])|([13579][26]))))$/
		pattern2 = /^(((((0[1-9])|(1\d)|(2[0-8]))\/((0[1-9])|(1[0-2])))|((31\/((0[13578])|(1[02])))|((29|30)\/((0[1,3-9])|(1[0-2])))))\/(([0-9][0-9][0-9][0-9]))|(29\/02\/[0-9][0-9](([02468][048])|([13579][26]))))$/
		pattern3 = /^(((((0[1-9])|(1\d)|(2[0-8]))((0[1-9])|(1[0-2])))|((31((0[13578])|(1[02])))|((29|30)((0[1,3-9])|(1[0-2])))))((20[0-9][0-9]))|(2902[0-9][0-9](([02468][048])|([13579][26]))))$/

		// the actually matching
		if (obj.value.search(pattern) == -1 && obj.value.search(pattern2) == -1 && obj.value.search(pattern3) == -1) {
			return false
		}
		else {
			return true
		}
	}
	else {
		return false
	}
}

function checkboxValue(frm, fld) {
	var cbGroup = eval('frm.' + fld)
	var retVal = ''
	for (var i=0; i<cbGroup.length; i++) {
		//alert('i: ' + i + '\nchecked: ' + cbGroup[i].checked + '\nvalue: ' + cbGroup[i].value)
		if (cbGroup[i].checked == true) {
			retVal = cbGroup[i].value
			break
		}
	}
	return retVal
}

function setFormFocus(frmName) {
	// set focus on first form input field
	focusSet = false
	if (document.forms[frmName]) {
		for (elix=0; elix < document.forms[frmName].elements.length && !focusSet; elix++) {
			FormField = document.forms[frmName].elements[elix]
			if (FormField.disabled == false && ((FormField.tagName == "INPUT") && (FormField.type == "text")) || ((FormField.tagName == "TEXTAREA") && (FormField.type == "textarea") && (FormField.id != "dhtmleditor")))	{
				FormField.focus()
				focusSet = true
			}
		}
	}
}

function openPopup(url, width, height) {
	width = !isNaN(width) ? width : 640
	height = !isNaN(height) ? height : 480
	myDate = new Date()
	newWin = window.open(url, 'HBDpopup' + myDate.getHours() + myDate.getMinutes() + myDate.getSeconds(), "width=" + width + ",height=" + height + ",location=no,menubar=no,resizable=no,scrollbars=yes,status=no,titlebar=no,toolbar=no", true)
	newWin.focus()
}

function checkFilterDates() {
	frm = document.forms["filterResultsForm"]
	if (frm.startmonth.selectedIndex == 0 && frm.endmonth.selectedIndex == 0) {
		alert("Kies een 'van' en een 't/m' datum.")
		return false
	}
	else if (frm.startmonth.selectedIndex > 0 && frm.endmonth.selectedIndex == 0) {
		alert("Kies een 't/m' datum.")
		return false
	} 
	else if (frm.startmonth.selectedIndex == 0 && frm.endmonth.selectedIndex > 0) {
		alert("Kies een 'van' datum.")
		return false
	}
	/*
	else if (frm.startmonth.selectedIndex > 0 && frm.endmonth.selectedIndex > 0 && frm.startmonth.selectedIndex == frm.endmonth.selectedIndex) {
		alert("Datum 'van' en datum 't/m' mogen niet gelijk zijn.")
		return false
	}
	*/
	else if (frm.startmonth.selectedIndex > 0 && frm.endmonth.selectedIndex > 0 && frm.startmonth.selectedIndex > frm.endmonth.selectedIndex) {
		alert("Datum 'van' mag niet hoger dan datum 't/m' zijn.")
		return false
	}
	else {
		return true
	}
}