﻿function ValidateAll() {
	var textName;
	var allOK = 1;
	
	for (count= 0; count < document.getElementById('formUse').length; count++) {
	    textName = document.getElementById('formUse').elements[count].name;
		
		switch(GetType(textName)) {
		case "EMAIL":
			if (!ValidateFieldEmail(textName, GetMandatory(textName))) { allOK = 0; }
			break;
		case "TEXTLINE":
			if (!ValidateFieldTextLine(textName, GetMandatory(textName))) { allOK = 0; }
			break;
		case "TEXTBOX":
			if (!ValidateFieldTextBox(textName, GetMandatory(textName))) { allOK = 0; }
			break;
		case "NUMERIC":
			if (!ValidateFieldNumeric(textName)) { allOK = 0; }
			break;
		case "DATE":
			if (!ValidateFieldDate(textName, GetMandatory(textName))) { allOK = 0; }
			break;
		case "LISTGROUP":
			if (!ValidateListGroup(textName)) { allOK = 0; }
			break;
		case "LISTBOX":
			if (!ValidateListBox(textName)) { allOK = 0; }
			break;
		case "MEMBERNUMBER":
			if (!ValidateFieldMemberNumber(textName)) { allOK = 0; }
			break;
		case "BOXCUSTOMCONTACT":
			if (!ValidateFieldBoxCustomContact(textName)) { allOK = 0; }
			break;
		case "ZIPCODE":
			if (!ValidateFieldZipCode(textName, GetMandatory(textName))) { allOK = 0; }
			break;			
		case "CITY":
			if (!ValidateFieldCity(textName, GetMandatory(textName))) { allOK = 0; }
			break;
        case "NATIONALNUMBER":
            if (!ValidateFieldNationalNumber(textName)) { allOK = 0; }
            break;						
		default:
			break;
		}
	}

	if (allOK == 0) {
		if (languageID==2) {
			/*French*/
			document.getElementById('lblErrorValidation').innerHTML = "<br>Le formulaire ne peut être sauvegardé. Veuillez vérifier que tous les champs soient remplis correctement.<br>";
		}
		else { 
			/*Dutch*/
			document.getElementById('lblErrorValidation').innerHTML = "<br>Het formulier kan niet bewaard worden. Kijk na of alle velden correct zijn ingevuld.<br>";
		}
		//scroll to the top
		document.location.href = "#top";		
		return false;
	}
	else {
		document.getElementById('lblErrorValidation').innerHTML = "";
	}
	
	return true;
}

function GetID(name) {
	var array = name.split("_");
	return array[0];
}

function GetType(name) {
	var array = name.split("_");
	return array[1];
}

function GetMandatory(name) {
	var array = name.split("_");
	return array[2];
}

function GetMinimumValue(name) {
	var array = name.split("_");
	return array[3];
}

function GetMaximumValue(name) {
	var array = name.split("_");
	return array[4];
}

function GetRootFieldID(name) {
	var array = name.split("_");
	return array[5];
}

function ValidateFieldDate(name, isMandatory) {
	var textID = GetID(name);
	document.getElementById(textID + 'Validator').innerHTML = '';
	
	if (ValidateTextMandatory(name, isMandatory) == true) {
		if (document.getElementById(textID).value != '') {
			if (ValidateTextDate(name) == false) {
				return false;
			}
		}
	} else {
		return false;
	}
	
	return true;
}
			
function ValidateFieldBoxCustomContact(name) {
	var textID = GetID(name);
	document.getElementById(textID + 'Validator').innerHTML = '';
	
	if (document.getElementById(textID).selectedIndex == 0 && GetMandatory(name) == '1') {
		if (languageID == 2) /*French*/
				document.getElementById(textID + 'Validator').innerHTML = 'Faites votre choix.';
			else /*Dutch*/
				document.getElementById(textID + 'Validator').innerHTML = 'Maak een keuze.';
			return false;
	}
	
	return true;
}

function ValidateFieldNumeric(name) {
	var textID = GetID(name);
	document.getElementById(textID + 'Validator').innerHTML = '';
	
	if (ValidateTextMandatory(name, GetMandatory(name)) == true) {
		if (ValidateTextNumeric(name) == true) {
			if (document.getElementById(textID).value != '') {
				if (!ValidateTextMinimumMaximumValue(name, GetMinimumValue(name), GetMaximumValue(name))) {
					return false;
				}
			}
		} else {
			return false;
		}
	} else {
		return false;
	}
					
	return true;
}

function ValidateFieldTextBox(name, isMandatory) {
	var textID = GetID(name);
	document.getElementById(textID + 'Validator').innerHTML = '';		
	return ValidateTextMandatory(name, isMandatory);
}

function ValidateFieldTextLine(name, isMandatory) {
	var textID = GetID(name);
	document.getElementById(textID + 'Validator').innerHTML = '';		
	return ValidateTextMandatory(name, isMandatory);
}

function ValidateFieldEmail(name, isMandatory) {
	var textID = GetID(name);
	document.getElementById(textID + 'Validator').innerHTML = '';		

	if (ValidateTextMandatory(name, isMandatory) == true) {
		if (ValidateTextEmail(name) == false) {
			return false;
		}
	} else {
		return false;
	}
	
	return true;
}
			
function ValidateFieldMemberNumber(name) {
	var textID = GetID(name);
	var mandatory = GetMandatory(name);
	document.getElementById(textID + 'Validator').innerHTML = '';
	
	if ((document.getElementById(textID + '_NALIOR').value == '') &&
			(document.getElementById(textID + '_NALISQ').value == '') &&
			(document.getElementById(textID + '_NALICD').value == '')) {
		if (mandatory == '1') {
			if (languageID == 2) /*French*/
				document.getElementById(textID + 'Validator').innerHTML = 'Ce champ est obligatoire.';
			else /*Dutch*/
				document.getElementById(textID + 'Validator').innerHTML = 'Dit is een verplicht veld.';
			return false;
		} else {
			return true;
		}						
	} else {
		var naliorRegExp = /[0-9]{2}/;
		var nalisqRegExp = /[0-9]{6}/;
		var nalicdRegExp = /[0-9]/;
		
		if (!naliorRegExp.test(document.getElementById(textID + '_NALIOR').value) ||
				!nalisqRegExp.test(document.getElementById(textID + '_NALISQ').value) ||
				!nalicdRegExp.test(document.getElementById(textID + '_NALICD').value)) {
			if (languageID == 2) /*French*/
				document.getElementById(textID + 'Validator').innerHTML = 'Le numéro de membre doit comporter 9 chiffres (xx/xxxxxx/x).';
			else /*Dutch*/
				document.getElementById(textID + 'Validator').innerHTML = 'Het lidnummer moet 9 cijfers bevatten (xx/xxxxxx/x).';
			return false;
		}
	}

	return true;
}

function ValidateFieldNationalNumber(name)
{
    var textID = GetID(name);
    var mandatory = GetMandatory(name);
    var validator = document.getElementById(textID + 'Validator');
    validator.innerHTML = '';

    var birthdateyear = document.getElementById(textID + '_BIRTHDATEYEAR').value;
    var birthdatemonth = document.getElementById(textID + '_BIRTHDATEMONTH').value;
	var birthdateday = document.getElementById(textID + '_BIRTHDATEDAY').value;
    var sequence = document.getElementById(textID + '_SEQUENCE').value;
    var control = document.getElementById(textID + '_CONTROL').value;

	if ((birthdateyear == '') &&
			(birthdatemonth == '') &&
            (birthdateday == '') &&
            (sequence == '') &&
			(control == '')) {
		if (mandatory == '1') {
			if (languageID == 2) /*French*/
			    validator.innerHTML = 'Ce champ est obligatoire.';
			else /*Dutch*/
			    validator.innerHTML = 'Dit is een verplicht veld.';
			return false;
		} else {
			return true;
		}
    } else {
        //check if all input is a digit
        var birthdateyearRegExp = /[0-9]{2}/;
        var birthdatemonthRegExp = /[0-9]{2}/;
        var birthdatedayRegExp = /[0-9]{2}/;
        var sequenceRegExp = /[0-9]{3}/;
        var controlRegExp = /[0-9]{2}/;

        if (!birthdateyearRegExp.test(birthdateyear) ||
				!birthdatemonthRegExp.test(birthdatemonth) ||
				!birthdatedayRegExp.test(birthdateday) ||
				!sequenceRegExp.test(sequence) ||
				!controlRegExp.test(control)) {
            if (languageID == 2) /*French*/
                validator.innerHTML = 'Le numéro national doit comporter 11 chiffres (xx.xx.xx-xxx.xx).';
            else /*Dutch*/
                validator.innerHTML = 'Het rijksregisternummer moet 11 cijfers bevatten (xx.xx.xx-xxx.xx).';
            return false;
        }

        //check the format
        var toCheck = parseFloat('' + birthdateyear + birthdatemonth + birthdateday + sequence);
        var checker = parseInt(control.replace(/^0+/, ''));

        if ((97 - (toCheck % 97)) != checker) {
            toCheck = parseFloat('2' + birthdateyear + birthdatemonth + birthdateday + sequence);
            if ((97 - (toCheck % 97)) != checker) {
                if (languageID == 2) /*French*/
                    validator.innerHTML = 'Numéro national invalable.';
                else /*Dutch*/
                    validator.innerHTML = 'Ongeldig rijksregisternummer.';
                return false;
            }
        }
    }

    return true;
}

function ValidateFieldZipCode(name, isMandatory) {
	var textID = GetID(name);		
	document.getElementById(textID + 'Validator').innerHTML = '';	

	if (ValidateTextMandatory(name, GetMandatory(name)) == true) {			
		if (document.getElementById(textID).value != '')
		{
			return ValidateZipCode(name);
		}
		
		return true;
	} else {
		return false;
	}	

	return true;
}

function ValidateFieldCity(name, isMandatory) {
	var textID = GetID(name);
	document.getElementById(textID + 'Validator').innerHTML = '';
	
	if (ValidateTextMandatory(name, GetMandatory(name)) == true) {
		if (document.getElementById(textID).value != '')
		{
			return ValidateCity(name);
		}		
		return true;
	} else {
		return false;
	}
	
	return true;
}

function ValidateZipCode(name) {
	var zipCodeTextID = GetID(name);
	
	//Get the old and new value
	var newzipcode = document.getElementById(zipCodeTextID).value;
	var oldzipcode = document.getElementById(zipCodeTextID + '_ORIGINAL').value;	

	//Compare the old value and the new value
	if (newzipcode != oldzipcode)
	{
		var rootFieldID =  GetRootFieldID(name);

		//Retrieve the name of the ZipLetter and City fields	
		var zipLetterTextID = FindFieldByTypeAndRoot('ZIPLETTER', rootFieldID);			
		var cityTextID = FindFieldByTypeAndRoot('CITY', rootFieldID);
		
		//Call the ZipCode window to obtain the correct city and zipcode
		var zipCode = window.open("ZipCode.aspx?Code=" + newzipcode + "&zipcode=" + zipCodeTextID + "&zipletter=" + zipLetterTextID + "&city=" + cityTextID, "ZipCode", 'scrollbars=yes,status=yes,width=500,height=510,top='+(screen.height-510)/2+',left='+(screen.width-500)/2);
		zipCode.focus();		

		return false;
	}
	return true;			
}

function ValidateCity(name) {
	var cityTextID = GetID(name);
	
	//Get the old and new value
	var newcity = document.getElementById(cityTextID).value;
	var oldcity = document.getElementById(cityTextID + '_ORIGINAL').value;	
	
	//Compare the old value and the new value
	if (newcity != oldcity)
	{
		var rootFieldID		= GetRootFieldID(name);
		var zipCodeTextID   = FindFieldByTypeAndRoot('ZIPCODE', rootFieldID);
		var zipLetterTextID = FindFieldByTypeAndRoot('ZIPLETTER', rootFieldID);
		var zipcode		    = document.getElementById(zipCodeTextID).value;
					
		//Call the ZipCode window to obtain the correct city and zipcode
		if (zipcode != null && zipcode != '') {
			var zipCode = window.open("ZipCode.aspx?Code=" + zipcode + "&zipcode=" + zipCodeTextID + "&zipletter=" + zipLetterTextID + "&city=" + cityTextID, "ZipCode", 'scrollbars=yes,status=yes,width=500,height=510,top='+(screen.height-510)/2+',left='+(screen.width-500)/2);
			zipCode.focus();
		}
		return false;
	}
	return true;			
}

function ValidateTextDate(name) {
	var textID = GetID(name);

	// DD/MM/YY   DD/MM/YYYY   DD-MM-YY   DD-MM-YYYY
	var dateStr = document.getElementById(textID).value;
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year
	
	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) {
		if (languageID == 2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Le format de la date n\'est pas valide.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'De datum staat niet in een geldig formaat.';		
		return false;
	}
	
	day = matchArray[1]; // parse date into variables
	month = matchArray[3];
	year = matchArray[4];
	
	if (month < 1 || month > 12) { // check month range
		if (languageID == 2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Le mois doit être compris entre 1 et 12.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'De maandwaarde moet tussen 1 en 12 liggen.';		
		return false;
	}
	
	if (day < 1 || day > 31) {
		if (languageID == 2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Le jour doit être compris entre 1 et 31.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'De dagwaarde moet tussen 1 en 31 liggen.';		
		return false;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		if (languageID == 2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Le mois ' + month + ' ne compte pas 31 jours.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'Maand ' + month + ' heeft geen 31 dagen.';		
		return false;
	}
	
	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
			if (languageID == 2) /*French*/
				document.getElementById(textID + 'Validator').innerHTML = 'Février ' + year + ' ne compte pas ' + day + ' jours.';
			else /*Dutch*/
				document.getElementById(textID + 'Validator').innerHTML = 'Februari ' + year + ' heeft geen ' + day + ' dagen.';		
			return false;
		}
	}
	return true;
}

function ValidateTextEmail(name) {
    var textID = GetID(name);
    var text = document.getElementById(textID).value;

    if (text == '') {
        return true;
    } else {
        var regex = /^[a-zA-Z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?:[a-zA-Z]{2,4})\b$/;

        if (regex.test(text)) {
            return true;
        } else {
            if (languageID == 2) /*French*/
                document.getElementById(textID + 'Validator').innerHTML = 'Adresse e-mail non valide.';
            else /*Dutch*/
                document.getElementById(textID + 'Validator').innerHTML = 'Dit is geen geldig emailadres.';
            return false;
        }
    }
}

function ValidateTextMandatory(name, isMandatory) {
	var textID = GetID(name);
	var text = document.getElementById(textID).value;
		
	if (isMandatory == 0)
		return true;
	
	if (text.length == 0) {
		if (languageID==2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Ce champ est obligatoire.';		
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'Dit is een verplicht veld.';		
		return false;
	} else {
		document.getElementById(textID + 'Validator').innerHTML = '';		
	}

	return true;
}

function ValidateTextMinimumMaximumValue(name, minimumValue, maximumValue) {
	var textID = GetID(name);
	var text = document.getElementById(textID).value;
	
	if ((Math.min(minimumValue,text) == text) && (minimumValue != text)) {
		if (languageID==2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Valeur trop petite.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'De waarde is te klein.';
		return false;
	}
	
	if ((Math.max(maximumValue,text) == text) && (maximumValue != text)) {
		if (languageID==2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Valeur trop élevée.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'De waarde is te groot.';
		return false;
	}
	
	return true;
}

function ValidateTextNumeric(name) {
	var textID = GetID(name);
	var text = document.getElementById(textID).value;
	
	if (isNaN(text.replace(",",".")) == true) {
		if (languageID==2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Ceci n\'est pas un nombre.';		
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'Dit is geen getal.';		
		return false;
	}
	
	return true;
}

function ValidateListGroup(name) {
	var textID = GetID(name);
	document.getElementById(textID + 'Validator').innerHTML = '';
	var choices = 0;
	
	var subfields = document.getElementById(textID).value;
	var minchoices = parseInt(GetMinimumValue(name));
	var maxchoices = parseInt(GetMaximumValue(name));
	
	var array = subfields.split(";");
	
	for (i=0; i<array.length-1; i++) {
		if (document.getElementById(array[i]).checked)
			choices++;
	}

	if (choices == 0 && GetMandatory(name) == '1') {
		if (languageID==2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Ce champ est obligatoire.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'Dit is een verplicht veld.';
		return false;
	}
	else if (maxchoices < choices) {
		if (languageID==2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Vous avez choisi trop d\'éléments de la liste.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'Je hebt te veel elementen gekozen in de lijst.';
		return false;
	}
	
	if (minchoices > choices) {
		if (languageID==2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Vous n\'avez pas choisi assez d\'éléments dans la liste.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'Je hebt niet genoeg elementen gekozen in de lijst.';
		return false;
	}

	return true;
}

function ValidateListBox(name) {
	var textID = GetID(name);
	document.getElementById(textID + 'Validator').innerHTML = '';
	var choices = 0;
	
	var minchoices = parseInt(GetMinimumValue(name));
	var maxchoices = parseInt(GetMaximumValue(name));
	
	for (i=0; i<document.getElementById(name).options.length; i++) {
		if (document.getElementById(name).options[i].selected)
			choices++;
	}
	
	if (choices == 0 && GetMandatory(name) == '1') {
		if (languageID==2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Ce champ est obligatoire.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'Dit is een verplicht veld.';
		return false;
	}
	else if (maxchoices < choices) {
		if (languageID==2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Vous avez choisi trop d\'éléments de la liste.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'Je hebt te veel elementen gekozen in de lijst.';
		return false;
	}
	
	if (minchoices > choices) {
		if (languageID==2) /*French*/
			document.getElementById(textID + 'Validator').innerHTML = 'Vous n\'avez pas choisi assez d\'éléments dans la liste.';
		else /*Dutch*/
			document.getElementById(textID + 'Validator').innerHTML = 'Je hebt niet genoeg elementen gekozen in de lijst.';
		return false;
	}

	return true;
}

function CheckTextAreaLength(maxLength, textAreaID) {
	var textID = GetID(textAreaID);
	var text = document.getElementById(textID).value;

	if (text.length > maxLength)
		document.getElementById(textID).value = text.substr(0, maxLength);		
}

function FindFieldByTypeAndRoot(type, rootFieldID) {
	var inputName = '';
	var searchExp = new RegExp('^\\d*_' + type + '_[0|1]_\\d*_\\d*_' + rootFieldID + '$', 'i');
	var inputs = document.getElementsByTagName('input');
	
	for (i = 0; i < inputs.length; i++) {
		inputName = inputs[i].name;	
					
		if (inputName != null && inputName != '' && inputName.match(searchExp))
			return GetID(inputName);			
	}	

	return null;
}

function ComposeDateFromSelect(name) {
	var textID = GetID(name);
	var date;

	date = document.getElementById(textID + 'Day').options[document.getElementById(textID + 'Day').selectedIndex].value;
	date +=  '/' + document.getElementById(textID + 'Month').options[document.getElementById(textID + 'Month').selectedIndex].value;
	date +=  '/' + document.getElementById(textID + 'Year').options[document.getElementById(textID + 'Year').selectedIndex].value;
	document.getElementById(textID).value = date;
}

function ComposeDateFromText(name) {
	var textID = GetID(name);
	var date;

	date = document.getElementById(textID + 'Day').value;
	date +=  '/' + document.getElementById(textID + 'Month').value;
	date +=  '/' + document.getElementById(textID + 'Year').value;
	if (date == '//') 
		date = '';
	document.getElementById(textID).value = date;
}

function ComposeMemberNumber(name) {
	var membernumber;
	var textID = GetID(name);

	membernumber = document.getElementById(textID + '_NALIOR').value;
	membernumber += '/' + document.getElementById(textID + '_NALISQ').value;
	membernumber += '/' + document.getElementById(textID + '_NALICD').value;
	if (membernumber == '//')
		membernumber = '';
	document.getElementById(textID).value = membernumber;		
}

function ComposeNationalNumber(name) {
	var membernumber;
	var textID = GetID(name);

	nationalnumber = document.getElementById(textID + '_BIRTHDATEYEAR').value;
    nationalnumber += '.' + document.getElementById(textID + '_BIRTHDATEMONTH').value;
    nationalnumber += '.' + document.getElementById(textID + '_BIRTHDATEDAY').value;
	nationalnumber += '-' + document.getElementById(textID + '_SEQUENCE').value;
	nationalnumber += '.' + document.getElementById(textID + '_CONTROL').value;
	if (nationalnumber == '..-.')
		nationalnumber = '';
	document.getElementById(textID).value = nationalnumber;
}

function KeyUpMemberNumber(obj, event) {
    //Event
    if (typeof event == "undefined")
        event = window.event; // for IE.

    //Keycode
    var code = 0;
    if (event.keyCode)
        code = event.keyCode;
    else if (event.which)
        code = event.which;

    //Go the next field if possible
    if (obj && event) {
        var textID = GetID(obj.id);

        if ((textID + '_NALIOR') == obj.id) {
            if (obj.value.length >= 2 && code != 37)
                document.getElementById(textID + '_NALISQ').focus();
        } else if ((textID + '_NALISQ') == obj.id) {
            if (obj.value.length >= 6 && code != 37)
                document.getElementById(textID + '_NALICD').focus();
            else if (obj.value.length <= 0 && (code == 8 || code == 37))
                document.getElementById(textID + '_NALIOR').focus();
        } else if ((textID + '_NALICD') == obj.id) {
            if (obj.value.length <= 0 && (code == 8 || code == 37))
                document.getElementById(textID + '_NALISQ').focus();
        }
    }
}

function KeyUpNationalNumber(obj, event) {
    //Event
    if (typeof event == "undefined")
        event = window.event; // for IE.

    //Keycode
    var code = 0;
    if (event.keyCode)
        code = event.keyCode;
    else if (event.which)
        code = event.which;

    //Go the next field if possible
    if (obj && event) {
        var textID = GetID(obj.id);

        if ((textID + '_BIRTHDATEYEAR') == obj.id) {
            if (obj.value.length >= 2 && code != 37)
                document.getElementById(textID + '_BIRTHDATEMONTH').focus();
        } else if ((textID + '_BIRTHDATEMONTH') == obj.id) {
            if(obj.value.length >= 2 && code != 37)
                document.getElementById(textID + '_BIRTHDATEDAY').focus();
            else if (obj.value.length <= 0 && (code == 8 || code == 37))
                document.getElementById(textID + '_BIRTHDATEYEAR').focus();
        } else if ((textID + '_BIRTHDATEDAY') == obj.id) {
            if(obj.value.length >= 2 && code != 37)
                document.getElementById(textID + '_SEQUENCE').focus();
            else if (obj.value.length <= 0 && (code == 8 || code == 37))
                document.getElementById(textID + '_BIRTHDATEMONTH').focus();
        } else if ((textID + '_SEQUENCE') == obj.id) {
            if (obj.value.length >= 3 && code != 37)
                document.getElementById(textID + '_CONTROL').focus();
            else if (obj.value.length <= 0 && (code == 8 || code == 37))
                document.getElementById(textID + '_BIRTHDATEDAY').focus();
        } else if ((textID + '_CONTROL') == obj.id) {
            if (obj.value.length <= 0 && (code == 8 || code == 37))
                document.getElementById(textID + '_SEQUENCE').focus();
        }
    }
}
