﻿// based on a script from Chris Campbell (www.particletree.com)

//function Validate(elementName, required, sortValidation, resultSpanName)
function Validate(element, required, sortValidation, resultSpan)
{
    var resultSortValidation = "";
    //var element = document.getElementById(elementName);
    //var resultSpan = document.getElementById(resultSpanName);
    var validated = false;

    if(required)
    {
        if(ValidateRequired(element.value))
        {        
            validated = true;
        }
    }
    else
    {
        validated = true;
    }
    
    if(validated)
    {
        switch(sortValidation)
        {
            case "email":
                validated = ValidateEmail(element.value);
                break;
            case "tel":
                validated = ValidateTelephoneNumber(element.value);
                break;
            case "cell":
                validated = ValidateCellPhoneNumber(element.value);
                break;
            case "password":
                validated = ValidatePassword(element.value);
                break;
            case "houseno":
                validated = ValidateHouseNumber(element.value);
                break;
        }
    }
    
    if(validated)
    {
        ShowSuccess(element, resultSpan);
        return true;
    }
    else
    {
        ShowError(element, resultSpan);
        return false;
    }
}

function ShowError(element, resultSpan)
{
    element.className += " invalid";
    resultSpan.className = "activeValidation";
}

function ShowSuccess(element, resultSpan)
{
    if(element.className.indexOf('Small') > -1)
        element.className = "Small";
    else
        element.className = "";
    
    resultSpan.className = "validation";
}

function AreEqual(firstElement, secondElement, resultSpan)
{
    equal = true;

    if(resultSpan.style.display != "inline")
    {
        if(firstElement.value != secondElement.value)
        {
            ShowError(secondElement, resultSpan);
            equal = false;
        }
    }
    
    return equal;
}

function ValidateValueSelected(element, resultSpan)
{
    if(element.selectedIndex > 0)
    {
        ShowSuccess(element, resultSpan);
        return true;
    }
    else
    {
        ShowError(element, resultSpan);
        return false;
    }
}

function ValidateRequired(valueOfRequiredElement)
{
    return valueOfRequiredElement != "";
}

function ValidateEmail(elementValue)
{
     var regex=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
 
	return regex.test(elementValue);
}

function ValidateTelephoneNumber(elementValue)
{
    return IsNumeric(elementValue);
}

function ValidateCellPhoneNumber(elementValue)
{
    var valid = true;

    if(elementValue.length > 0)
    {
        valid = IsNumeric(elementValue);
    }

    return valid;
}

function ValidatePassword(elementValue)
{
    var regex = /^.{6,}$/;
    var valid = true;
    
    if(elementValue.length > 0)
    {    
        valid = regex.test(elementValue);
    }
    
    return valid;
}

function ValidateHouseNumber(elementValue)
{
    var regex = /^\d{1,4}[a-zA-Z]{0,1}$/;
    
    return regex.test(elementValue);
}

function IsNumeric(elementValue)
{
    var regex = /^\d+$/;
    
    return regex.test(elementValue);
}
