function isEmailAddr(email)
{
var result = false;
var theStr = new String(email);
var index = theStr.indexOf("@");
if (index > 0)
{
        var pindex = theStr.indexOf(".",index);
        if ((pindex > index+1) && (theStr.length > pindex+1))
        result = true;
}
return result;
}

function validRequired(formField,fieldLabel)
{
        var result = true;

        if (formField.value == "")
        {
                alert('Je potrebné vyplniť položku "' + fieldLabel +'".');
                formField.focus();
                result = false;
        }

        return result;
}

function allDigits(str)
{
        return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
        var result = true;

        // Note: doesn't use regular expressions to avoid early Mac browser bugs
        for (var i=0;i<str.length;i++)
        if (charset.indexOf(str.substr(i,1))<0)
        {
                result = false;
                break;
        }

        return result;
}

function validEmail(formField,fieldLabel,required)
{
        var result = true;

        if (required && !validRequired(formField,fieldLabel))
        result = false;

        if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) ) {
                alert("Prosím zadajte korektnú emailovú adresu: napr. vasemeno@vasadomena.sk");
                formField.focus();
                result = false;
        }

        return result;

}

function validNum(formField,fieldLabel,required) {
        var result = true;

        if (required && !validRequired(formField,fieldLabel))
        result = false;

        if (result)
        {
                if (!allDigits(formField.value))
                {
                        alert('Prosím zadajte korektnú číselnú hodnotu pre pole "' + fieldLabel +'"');
                        formField.focus();
                        result = false;
                }
        }

        return result;
}


function validInt(formField,fieldLabel,required)
{
        var result = true;

        if (required && !validRequired(formField,fieldLabel))
        result = false;

        if (result)
        {
                var num = parseInt(formField.value);
                if (isNaN(num))
                {
                        alert('Prosím zadajte korektnú celočíselnú hodnotu pre pole "' + fieldLabel +'"');
                        formField.focus();
                        result = false;
                }
        }

        return result;
}


function validDate(formField,fieldLabel,required) {
        var result = true;

        if (required && !validRequired(formField,fieldLabel)) {
            result = false;
        }

        if (result && formField.value) {
                var elems = formField.value.split(".");

                result = (elems.length == 3); // should be three components


                if (result) {
                        var month = elems[1];
                        var day = elems[0];
                        var year = parseInt(elems[2]);


                        result = allDigits(elems[1]) && (month > 0) && (month < 13) &&
                        allDigits(elems[0]) && (day > 0) && (day < 32) &&
                        allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
                }

                if (!result) {
                        alert('Prosim zadajte datum vo formate DD.MM.RRRR pre "' + fieldLabel +'" !');
                        formField.focus();
                }
        }

        return result;
}

function validShortDate(formField,fieldLabel,required)
{
        var result = true;

        if (required && !validRequired(formField,fieldLabel))
        result = false;

        if (result)
        {
                var elems = formField.value.split("/");
                result = (elems.length == 2); // should be three components

                if (result)
                {
                        var month = elems[0];
                        var year = elems[1];
                        result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
                        allDigits(elems[1]) &&  (elems[1].length == 4);
		}

                if (!result)
                {
                        alert('Dátum musí byt vo formáte MM/RRRR pre pole ' + fieldLabel);
                        formField.focus();
                }
        }

        return result;
}


function validHighDate(formField,formFielda,fieldLabel,fieldLabela)
{
        var result = true;
	var resulta = true;
	
        if (result)
        {
		var elems = formField.value.split("/");
                result = (elems.length == 2); // should be two components

                var elemsa = formFielda.value.split("/");
                resulta = (elemsa.length == 2); // should be two components

                if (result && resulta)
                {
                        var month = elems[0];
                        var year = elems[1];
			var montha = elemsa[0];
			var yeara = elemsa[1];
                        result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
                        allDigits(elems[1]) &&  (elems[1].length == 4);
                        resulta = allDigits(elemsa[0]) && (montha > 0) && (montha < 13) &&
                        allDigits(elemsa[1]) &&  (elemsa[1].length == 4);
		}
		
		

                if (!result)
                {
                        alert('Dátum musí byt vo formáte MM/RRRR pre pole ' + fieldLabel);
                        formField.focus();
			return false;
                }
                if (!resulta)
                {
                        alert('Dátum musí byt vo formáte MM/RRRR pre pole ' + fieldLabela);
                        formFielda.focus();
			return false;
                }
		
		
		if ( year > yeara ) {
		    return true;
		}
		
		if ( yeara == year) {
		    if ( month > montha ) {
			return true;

		    }
		    else {
			alert("Datum " + fieldLabel + " musi byt vyssi ako " + fieldLabela + " !");
			result = false;
		    }
		    
		}
		
		if ( year < yeara ){
		    alert("Datum " + fieldLabel + " musi byt vyssi ako " + fieldLabela + " !");
		    result = false;
		}
		
		
        }

        return result;
}

function validTime(formField,fieldLabel,required) {
        var result = true;

        if (required && !validRequired(formField,fieldLabel))
        result = false;

        if (result)
        {
                var elems = formField.value.split(":");

                result = (elems.length == 2); // should be three components

                if (result)
                {
                        var hour = parseInt(elems[0]);
                        var min = parseInt(elems[1]);
                        result = allDigits(elems[0]) && (hour >= 0) && (hour < 24) &&
                        allDigits(elems[1]) && (min >= 0) && (min < 60);
                }

                if (!result)
                {
                        alert('Prosim zadajte čas vo formate HH:MM pre "' + fieldLabel +'" !');
                        formField.focus();
                }
        }

        return result;
}






function xxx_validateForm(theForm)
{
        // Customize these calls for your form

        // Start ------->
        if (!validRequired(theForm.fullname,"Name"))
        return false;

        if (!validEmail(theForm.email,"Email Address",true))
        return false;

        if (!validDate(theForm.available,"Date Available",true))
        return false;

        if (!validNum(theForm.yearsexperience,"Years Experience",true))
        return false;
        // <--------- End

        return true;
}

