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 PasswordCheck(formField1,formField2,text) {
    var result = true;
    
    if (!((formField1.value=="") && (formField2.value==""))) {
        if (formField1.value==formField2.value=="") {
            alert(text);
            formField1.focus();
            result = false;
        }
    }
    return result;
}

function validRequired(formField,fieldLabel) {
    var result = true;
    
    if (formField.value == "") {
        alert('Zadajte hodnotu pre pole "' + fieldLabel +'".');
        if (formField.type!="hidden") {
            formField.focus();
        }
        result = false;
    }
    return result;
}

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

function allDigitsPoint(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 || formField.value) {
        if (!validRequired(formField,fieldLabel))
            result = false;
        if ((formField.value.length < 3) || !isEmailAddr(formField.value)) {
            alert("Prosím zadajte validnú emailovú adresu v tvare napr.: vasemeno@vasadomena.sk");
            formField.focus();
            result = false;
        }
    }
    return result;
}

function validNum(formField,fieldLabel,required) {
    var result = true;
    
    if (required) 
        if (!validRequired(formField,fieldLabel))
            result = false;
    
    if (result && formField.value) {
        if (!allDigitsPoint(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) 
        if (!validRequired(formField,fieldLabel))
            result = false;
    
    if (result && formField.value) {
        var num = parseInt(formField.value);
        if (isNaN(num)) {
            alert('Prosím zadajte korektnú číselnú hodnotu pre pole "' + fieldLabel +'"');
            formField.focus();
            result = false;
        }
    }
    
    return result;
}


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

    if (required || formField.value) {
        if (!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('Prosím zadajte dátum vo formáte DD.MM.RRRR pre "' + fieldLabel +'" !');
                formField.focus();
            }
        }
    }
    return result;
}

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

    if (required || formField.value) {
        if (!validRequired(formField,fieldLabel))
            result = false;

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

            var datum = elems[0];
            var cas = elems[1];
            if (result) {

                var elems = datum.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));

                    var elems = cas.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('Prosím zadajte dátum a čas vo formáte DD.MM.RRRR HH:MM 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('Prosím zadajte dátum 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('Prosím zadajte čas vo formáte 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;
}

