﻿function showFormRegion(link, regionName)
{
	var display = trDisplay;
	if (link.className.indexOf("closed") != -1)
	{
		link.className = replace("closed", "", link.className);
		link.className += " open";
	}
	else
	{
		link.className = replace("open", "", link.className);
		link.className += " closed";
		display = "none";
	}

	var i = 1;
	objFormRow = getObj(regionName + "_" + i);
	
	while (objFormRow)
	{
		objFormRow.style.display = display;
		
		i++;		
		objFormRow = getObj(regionName + "_" + i);
	}
}


function isTextBoxEmpty(textFieldId)
{
	return (getObj(textFieldId).value == "");
}

function isSelectBoxEmpty(selectBoxId)
{
    var objSelectBox = getObj(selectBoxId);
	return (objSelectBox.options[objSelectBox.selectedIndex].value == "");
}

function isSelectBoxValueEmpty(selectBoxId) {
    var objSelectBox = getObj(selectBoxId);
    return (objSelectBox.options[objSelectBox.selectedIndex].value == "");
}


function setInputInvalid(inputId)
{
    var input = getObj(inputId);
	
	if (input)
	{
		input.parentNode.className += " error";
	}
}

function setInputValid(inputId)
{
    var input = getObj(inputId);
	input.parentNode.className = replace(" error", "", input.parentNode.className);		
	input.parentNode.className += " okay";
}

function validateSelectBox(inputId, doValidate)
{
    var isValid = true;
	
	if (doValidate)
	{	
		if (isSelectBoxValueEmpty(inputId))
		{
			setInputInvalid(inputId);
			isValid = false;
		}
		else
			setInputValid(inputId);
	}
		
	return isValid;
}

function validateDateBox(inputId, doValidate)
{
    var isValid = true;
	
	if (doValidate)
	{
		if (isTextBoxEmpty(inputId))
		{
			input = getObj(inputId);
			if (input)
				input.parentNode.parentNode.className += " error";
				
			isValid = false;
		}
		else
		{
			input = getObj(inputId);
			input.parentNode.parentNode.className = replace(" error", "", input.parentNode.parentNode.className);
			input.parentNode.parentNode.className += " okay";
		}
	}
		
	return isValid;
}

function validateTextBox(inputId, doValidate) {
    var isValid = true;

    if (doValidate) {
        if (isTextBoxEmpty(inputId)) {
            setInputInvalid(inputId);
            isValid = false;
        }
        else
            setInputValid(inputId);
    }

    return isValid;
}

function validateCheckBox(inputId, doValidate)
{
    var isValid = true;
	
	if (doValidate)
	{	
		if (isTextBoxEmpty(inputId))
		{
			setInputInvalid(inputId);
			isValid = false;
		}
		else
			setInputValid(inputId);
	}
		
	return isValid;
}

function validateEmail(textFieldId, doValidate)
{
	if (doValidate)
	{
	    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	    var address = getObj(textFieldId).value;
	    var isValid = reg.test(address);
		
		if (!isValid)
			setInputInvalid(textFieldId);
		else
			setInputValid(textFieldId);
			
		return isValid;
	}
	
	return true;
}

function validateDate(input)
{
	var validformat=/^\d{2}\.\d{2}\.\d{4}$/ //Basic check for format validity
	var returnval = false;
	if (!validformat.test(input.value))
	{
		if (lng == "DE")
			alert("Bitte ein gültiges Datum (dd.mm.yyyy) angeben!");
		else
			alert("Please provide a valida date (dd.mm.yyyy)!");
	}
	else
	{
		//Detailed check for valid date ranges
		var dayfield = input.value.split(".")[0];
		var monthfield = input.value.split(".")[1];
		var yearfield = input.value.split(".")[2];
		var dayobj = new Date(yearfield, monthfield - 1, dayfield);
		if ((dayobj.getMonth() + 1 != monthfield) ||
			(dayobj.getDate() != dayfield) ||
			(dayobj.getFullYear() != yearfield))
		{
			if (lng == "DE")
				alert("Ungültiges Datum! Bitte korrigieren Sie Ihre Eingabe!")
			else
				alert("Invalid date detected. Please correct!");
		}
		else
		{
			if (dayobj.getFullYear() < 1753)
			{
				if (lng == "DE")
					alert("Die Jahreszahl darf nicht geringer als 1753 sein!");
				else
					alert("Invalida Year detected. Year must be greater than 1752!");
			}
			else
			{
				returnval = true
			}
		}
	}

	if (returnval == false)
	{
		input.select()
		input.value = "";
	}
		
	//return returnval
}

function hidePflichtfeld(inputId)
{
    var input = getObj(inputId);	
	input.parentNode.className += " disabled";
}

function showPflichtfeld(inputId)
{
    var input = getObj(inputId);
	input.parentNode.className = replace(" disabled", "", input.parentNode.className);
}
