/*

CUSTOM FORM ELEMENTS

Created by Ryan Fait
www.ryanfait.com

The only thing you need to change in this file is the following
variables: checkboxHeight, radioHeight and selectWidth.

Replace the first two numbers with the height of the checkbox and
radio button. The actual height of both the checkbox and radio
images should be 4 times the height of these two variables. The
selectWidth value should be the width of your select list image.

You may need to adjust your images a bit if there is a slight
vertical movement during the different stages of the button
activation.

Visit http://ryanfait.com/ for more information.

*/

var checkboxHeight = "26";
var radioHeight = "25";
var selectWidth = "190";

/* No need to change anything after this */

document.write('<style type="text/css">input.styled { display: none; } select.styled { position: relative; width: ' + selectWidth + 'px; opacity: 0; z-index: 5; }</style>');

var Custom = {
	init: function() {
	
	  document.onkeypress=function(e){
    if(window.event) e=window.event;
    var keycode = (e.keyCode) ? e.keyCode:e.which;

    if(keycode==13)
        {
        event.returnValue=false; 
        event.cancel = true;
        }
    }
    
		var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
		for(a = 0; a < inputs.length; a++) {
			if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "styled") {
				span[a] = document.createElement("span");
				span[a].className = inputs[a].type;

				if(inputs[a].checked == true) {
					if(inputs[a].type == "checkbox") {
						position = "0 -" + (checkboxHeight*2) + "px";
						span[a].style.backgroundPosition = position;
					} else {
						position = "0 -" + (radioHeight*2) + "px";
						span[a].style.backgroundPosition = position;
					}
				}
				inputs[a].parentNode.insertBefore(span[a], inputs[a]);
				inputs[a].onchange = Custom.clear;
				span[a].onmousedown = Custom.pushed;
				span[a].onmouseup = Custom.check;
				document.onmouseup = Custom.clear;
			}
		}
		inputs = document.getElementsByTagName("select");
		for(a = 0; a < inputs.length; a++) {
			if(inputs[a].className == "styled") {
				option = inputs[a].getElementsByTagName("option");
				active = option[0].childNodes[0].nodeValue;
				textnode = document.createTextNode(active);
				for(b = 0; b < option.length; b++) {
					if(option[b].selected == true) {
						textnode = document.createTextNode(option[b].childNodes[0].nodeValue);
					}
				}
				span[a] = document.createElement("span");
				span[a].className = "select";
				span[a].id = "select" + inputs[a].name;
				span[a].appendChild(textnode);
				inputs[a].parentNode.insertBefore(span[a], inputs[a]);
				inputs[a].onchange = Custom.choose;
			}
		}
	},
	pushed: function() {
		element = this.nextSibling;
		if(element.checked == true && element.type == "checkbox") {
			this.style.backgroundPosition = "0 -" + checkboxHeight*3 + "px";
		} else if(element.checked == true && element.type == "radio") {
			this.style.backgroundPosition = "0 -" + radioHeight*3 + "px";
		} else if(element.checked != true && element.type == "checkbox") {
			this.style.backgroundPosition = "0 -" + checkboxHeight + "px";
		} else {
			this.style.backgroundPosition = "0 -" + radioHeight + "px";
		}
	},
	check: function() {
		element = this.nextSibling;
		if(element.checked == true && element.type == "checkbox") {
			this.style.backgroundPosition = "0 0";
			element.checked = false;
		} else {
			if(element.type == "checkbox") {
				this.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px";
			} else {
				this.style.backgroundPosition = "0 -" + radioHeight*2 + "px";
				group = this.nextSibling.name;
				inputs = document.getElementsByTagName("input");
				for(a = 0; a < inputs.length; a++) {
					if(inputs[a].name == group && inputs[a] != this.nextSibling) {
						inputs[a].previousSibling.style.backgroundPosition = "0 0";
					}
				}
			}
			element.checked = true;
		}
	},
	clear: function() {
		inputs = document.getElementsByTagName("input");
		for(var b = 0; b < inputs.length; b++) {
			if(inputs[b].type == "checkbox" && inputs[b].checked == true && inputs[b].className == "styled") {
				inputs[b].previousSibling.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px";
			} else if(inputs[b].type == "checkbox" && inputs[b].className == "styled") {
				inputs[b].previousSibling.style.backgroundPosition = "0 0";
			} else if(inputs[b].type == "radio" && inputs[b].checked == true && inputs[b].className == "styled") {
				inputs[b].previousSibling.style.backgroundPosition = "0 -" + radioHeight*2 + "px";
			} else if(inputs[b].type == "radio" && inputs[b].className == "styled") {
				inputs[b].previousSibling.style.backgroundPosition = "0 0";
			}
		}
	},
	choose: function() {
		option = this.getElementsByTagName("option");
		for(d = 0; d < option.length; d++) {
			if(option[d].selected == true) {
				document.getElementById("select" + this.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
			}
		}
	}
	
}
window.onload = Custom.init;

		function DateFormat(vDateName, vDateValue, e, dateCheck, dateType) {
			vDateType = dateType;
			
    		if (vDateValue == "~") {
				alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
				vDateName.value = "";
				vDateName.focus();
				return true;
			}
			
			//var whichCode = (window.Event) ? e.which : e.keyCode;
			var whichCode = e.keyCode;
            
			if (vDateValue.length > 8 && isNav4) {
				if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
					return true;
				}
				//Alle ASCII code verwijderen die niet geldig is
				var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
				if (alphaCheck.indexOf(vDateValue) >= 1) {
					if (isNav4) {
						vDateName.value = "";
						vDateName.focus();
						vDateName.select();
						return false;
					}
					else {
						vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
						return false;
					}
				}
				
				if (whichCode == 8) //Netscape waarde voor backspace negeren. IE heeft geen waarde.
				{
				    return false;
				}
				else {
					var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
					if (strCheck.indexOf(whichCode) != -1) {
						if (isNav4) {
							if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
								alert("Verkeerde datumnotatie\nGebruik dd-mm-jjjj");
								vDateName.value = "";
								vDateName.focus();
								vDateName.select();
								return false;
							}
							if (vDateValue.length == 6 && dateCheck) {
								var mDay = vDateName.value.substr(2,2);
								var mMonth = vDateName.value.substr(0,2);
								var mYear = vDateName.value.substr(4,4)
								if (mYear.length == 2 && vYearType == 4) {
									var mToday = new Date();
									var checkYear = mToday.getFullYear() + 30; 
									var mCheckYear = '20' + mYear;
									if (mCheckYear >= checkYear)
										mYear = '19' + mYear;
									else
										mYear = '20' + mYear;
									}
									var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
									if (!dateValid(vDateValueCheck)) {
										alert("Verkeerde datumnotatie\nGebruik dd-mm-jjjj");
										vDateName.value = "";
										vDateName.focus();
										vDateName.select();
										return false;
									}
									return true;
								}
							else {
								if (vDateValue.length >= 8  && dateCheck) {
									var mMonth = vDateName.value.substr(2,2);
									var mDay = vDateName.value.substr(0,2);
									var mYear = vDateName.value.substr(4,4)
									vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
									var vDateTypeTemp = vDateType;
									vDateType = 1;
									var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
									if (!dateValid(vDateValueCheck)) {
										alert("Verkeerde datumnotatie\nGebruik dd-mm-jjjj");
										vDateType = vDateTypeTemp;
										vDateName.value = "";
										vDateName.focus();
										vDateName.select();
										return false;
									}
									vDateType = vDateTypeTemp;
									return true;
								}
							else {
								if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
									alert("Verkeerde datumnotatie\nGebruik dd-mm-jjjj");
									vDateName.value = "";
									vDateName.focus();
									vDateName.select();
									return false;
								}
							}
						}
					
					}
					else {
					

					if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
						alert("Verkeerde datumnotatie\nGebruik dd-mm-jjjj");
						vDateName.value = "";
						vDateName.focus();
						return true;
					}
					if (vDateValue.length >= 8 && dateCheck) {
						var mDay = vDateName.value.substr(0,2);
						var mMonth = vDateName.value.substr(3,2);
						var mYear = vDateName.value.substr(6,4)
						if (vYearLength == 4) {
							if (mYear.length < 4) {
								alert("Verkeerde datumnotatie\nGebruik dd-mm-jjjj");
								vDateName.value = "";
								vDateName.focus();
								return true;
							}
						}
						var vDateTypeTemp = vDateType;
						vDateType = 1;
						var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
						if (mYear.length == 2 && vYearType == 4 && dateCheck) {
							var mToday = new Date();
							var checkYear = mToday.getFullYear() + 30; 
							var mCheckYear = '20' + mYear;
							if (mCheckYear >= checkYear)
								mYear = '19' + mYear;
							else
								mYear = '20' + mYear;
								vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
								vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
							} 
							if (!dateValid(vDateValueCheck)) {
								alert("Verkeerde datumnotatie\nGebruik dd-mm-jjjj");
								vDateType = vDateTypeTemp;
								vDateName.value = "";
								vDateName.focus();
								return true;
							}
							vDateType = vDateTypeTemp;
							return true;
						}
					else {
						if (vDateValue.length == 2) {
							vDateName.value = vDateValue+strSeperator;
						}
						if (vDateValue.length == 5) {
							vDateName.value = vDateValue+strSeperator;
						}
						return true;
					}
				}
				if (vDateValue.length == 10&& dateCheck) {
					if (!dateValid(vDateName)) {
						alert("Verkeerde datumnotatie\nGebruik dd-mm-jjjj");
						vDateName.focus();
						vDateName.select();
					}
				}

				return false;
			}
			
		else {
			if (isNav4) {
				vDateName.value = "";
				vDateName.focus();
				vDateName.select();
				return false;
			}
		else
			{
			    if(whichCode != null)
			    {
				vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
				return false;
				}
			}
		}
	}
}

		function dateValid(objName) {
			var strDate;
			var strDateArray;
			var	strDay;
			var strMonth;
			var strYear;
			var intday;
			var intMonth;
			var intYear;
			var booFound = false;
			var datefield = objName;
			var strSeparatorArray = new Array("-"," ","/",".");
			var intElementNr;
			var strMonthArray = new Array(12);
			strMonthArray[0] = "Jan";
			strMonthArray[1] = "Feb";
			strMonthArray[2] = "Mar";
			strMonthArray[3] = "Apr";
			strMonthArray[4] = "Mei";
			strMonthArray[5] = "Jun";
			strMonthArray[6] = "Jul";
			strMonthArray[7] = "Aug";
			strMonthArray[8] = "Sep";
			strMonthArray[9] = "Okt";
			strMonthArray[10] = "Nov";
			strMonthArray[11] = "Dec";
			strDate = objName;
			if (strDate.length < 1) {
				return true;
			}
			for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
				if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
					strDateArray = strDate.split(strSeparatorArray[intElementNr]);
					if (strDateArray.length != 3) {
						err = 1;
						return false;
					}
				else {
					strDay = strDateArray[0];
					strMonth = strDateArray[1];
					strYear = strDateArray[2];
				}
				booFound = true;
			}
		}
		if (booFound == false) {
			if (strDate.length>5) {
				strDay = strDate.substr(0, 2);
				strMonth = strDate.substr(2, 2);
				strYear = strDate.substr(4);
			}
		}
		if (strYear.length == 2) {
			strYear = '20' + strYear;
		}
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
		intday = parseInt(strDay, 10);
		if (isNaN(intday)) {
			err = 2;
			return false;
		}
		intMonth = parseInt(strMonth, 10);
		if (isNaN(intMonth)) {
			for (i = 0;i<12;i++) {
				if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
					intMonth = i+1;
					strMonth = strMonthArray[i];
					i = 12;
				}
			}
			if (isNaN(intMonth)) {
			err = 3;
			return false;
		}
	}
	intYear = parseInt(strYear, 10);
	if (isNaN(intYear)) {
		err = 4;
		return false;
	}
	if (intMonth>12 || intMonth<1) {
		err = 5;
		return false;
	}
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6;
		return false;
	}
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
	}
	if (intMonth == 2) {
		if (intday < 1) {
			err = 8;
			return false;
		}
		if (LeapYear(intYear) == true) {
			if (intday > 29) {
				err = 9;
				return false;
		    }
		}
	else {
		if (intday > 28) {
			err = 10;
			return false;
		}
	}
}
return true;
}

		function LeapYear(intYear) {
			if (intYear % 100 == 0) {
				if (intYear % 400 == 0) { return true; }
			}
			else {
				if ((intYear % 4) == 0) { return true; }
			}
			return false;
		}
		
			function numeric_check(p_val)
	{
		var parm1 = p_val;
		for(i=0; i<parm1.length; i++)
		{
			if (parm1.substring(i, i+1)<"0" || parm1.substring(i, i+1)>"9")
			{
				return false;
			}
		}
		return true;
	}
	
	
	
    function showWindow(elemName)
    {
    var _body = $('mainBody');
    var _div = document.createElement('div');
    var _divContent = document.createElement('div');
    var _divSluiten = document.createElement('div');
    
    _div.setAttribute("id","background");
    _div.className = "black_overlay";

    _body.appendChild(_div);    
    
    _divContent.setAttribute("id","contents");
    _divContent.className = "white_content";
    _divContent.innerHTML = $(elemName).innerHTML;

    _body.appendChild(_divContent);
        
    _divSluiten.setAttribute("id","contents_close");
    _divSluiten.className = "balkSluiten";
    _divSluiten.innerHTML = "<a href='javascript:window.print()'>Printen</a> <img src='/SG/print.gif' alt='printen' /> | <a href='javascript:hideWindow()'>Sluiten</a>";
    
    _body.appendChild(_divSluiten);
            
    
    $('background').style.display = 'block';
    $('contents').style.display = 'block';
    $('contents_close').style.display = 'block';
    
    new Effect.ScrollTo('MainPageDiv', {duration: 0.5, offset: 0});    

    }
    
    function hideWindow()
    {
    $('background').style.display = 'none';
    $('contents').style.display = 'none';
    $('contents_close').style.display = 'none';
    }
    	
window.onerror=function(){
 return true;
}    	

function disableEnterKey(e)
{
     var key;

     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox

     if(key == 13)
          return false;
     else
          return true;
}

