// form validation functions


// form - this.form in submit button
// nam,sur,add,cit,pos,cou,ema,pho,pas,pas2 - names of form fields ids - send only for validation(must be valid and required)
// Required (and validated) form fields MUST have ids, which are submitted to this function.
function parseFormUni(formularz,nam,sur,add,cit,pos,cou,ema,pho,pas,pas2,amt) {
    
    var wasError = false;
    var show = "";

    // Name
    if (nam) {
        if (document.getElementById(nam).value == "") {
            show += "- compulsory field: First Name\n";
            document.getElementById(nam).className='error';
            wasError = true;
        } else {
            document.getElementById(nam).className='';
        }
    }

    // Surname
    if (sur) {
        if (document.getElementById(sur).value == "") {
            show += "- compulsory field: Surname\n";
            document.getElementById(sur).className='error';
            wasError = true;
        } else {
            document.getElementById(sur).className='';
        }
    }

    // Addres
    if (add) {
        if (document.getElementById(add).value == "") {
            show += "- compulsory field: Address\n";
            document.getElementById(add).className='error';
            wasError = true;
        } else {
            document.getElementById(add).className='';
        }
    }

    // City
    if (cit) {
        if (document.getElementById(cit).value == "") {
            show += "- compulsory field: City\n";
            document.getElementById(cit).className='error';
            wasError = true;
        } else {
            document.getElementById(cit).className='';
        }
    }

    // Postcode
    if (pos) {
        if (document.getElementById(pos).value == "") {
            show += "- compulsory field: Postcode\n";
            document.getElementById(pos).className='error';
            wasError = true;
        } else if (ValidatePostcode(document.getElementById(pos).value)==false) {
            show += "- incorrect postcode\n";
            document.getElementById(pos).className='error';
            wasError = true;
        } else {
            document.getElementById(pos).className='';
        }
    }

    // CountryId
    if (cou) {
        if (document.getElementById(cou).value == "") {
            show += "- compulsory field: Country\n";
            document.getElementById(cou).className='error';
            wasError = true;
        } else {
            document.getElementById(cou).className='';
        }
    }

    // Email
    if (ema) {
        if (document.getElementById(ema).value == "") {
            show += "- compulsory field: Email address\n";
            document.getElementById(ema).className='error';
            wasError = true;
        } else if (ValidateEmail(document.getElementById(ema).value)==false) {
            show += "- incorrect email address\n";
            document.getElementById(ema).className='error';
            wasError = true;
        } else {
            document.getElementById(ema).className='';
        }
    }

    // Phone
    if (pho) {
        if (document.getElementById(pho).value == "") {
            show += "- compulsory field: Phone number\n";
            document.getElementById(pho).className='error';
            wasError = true;
        } else if (ValidatePhone(document.getElementById(pho).value)==false) {
            show += "- incorrect phone number\n";
            document.getElementById(pho).className='error';
            wasError = true;
        } else {
            document.getElementById(pho).className='';
        }
    }

    // Password
    if (pas) {
        if (document.getElementById(pas).value == "") {
            show += "- compulsory field: Password\n";
            document.getElementById(pas).className='error';
            wasError = true;
        } else if (document.getElementById(pas).value!=document.getElementById(pas2).value) {
            show += "- passwords fields do not match\n";
            document.getElementById(pas).className='error';
            document.getElementById(pas2).className='error';
            wasError = true;
        } else {
            document.getElementById(pas).className='';
            document.getElementById(pas2).className='';
        }
    }

    // Amount
    if (amt) {
        // amt - input field id
        // correct coma to dot("," to ".") and round
        var defv;
        defv=document.getElementById(amt).value;
        document.getElementById(amt).value=document.getElementById(amt).value.replace(",",".");
        document.getElementById(amt).value=Math.round((document.getElementById(amt).value)*100)/100;
        if ((document.getElementById(amt).value == 0) || (document.getElementById(amt).value == "")) {
            show += "- compulsory field: Amount\n";
            document.getElementById(amt).className='error';
            wasError = true;
            document.getElementById(amt).value="";
        } else if (ValidateAmount(document.getElementById(amt).value)==false) {
            show += "- incorrect amount value\n";
            document.getElementById(amt).className='error';
            wasError = true;
            document.getElementById(amt).value=defv;
        } else {
            document.getElementById(amt).className='';
        }
    }

    if (wasError==false) {
        return true;
    } else {    
        alert ("Please correct following error(s):\n\n" + show);
        return false;
    }
}




// email validation
function ValidateEmail(vemail) { 
    //var email=/^[A-Za-z0-9][\w-.]+[A-Za-z0-9]@[A-Za-z0-9]([\w-.]+[A-Za-z0-9]\.)+([A­Za-z]){2,4}$/i; 
    var email=/^[a-z0-9.\-_]+\@[a-z0-9.\-_]+\.([a-z]){2,4}$/i; 
    if(email.test(vemail)){ 
        return true; 
    } else { 
        // incorrect email
        return false; 
    } 
}

// postcode validation
function ValidatePostcode(postcode) { 
    var code=/^[A-Za-z0-9 \-]{2,8}$/; 
    if(code.test(postcode)){ 
        return true; 
    } else { 
        // incorrect
        return false; 
    } 
}

// Amount validation
function ValidateAmount(amount) { 
    var regx=/^[0-9 \.]{1,12}$/; 
    if(regx.test(amount)){ 
        return true; 
    } else { 
        // incorrect
        return false; 
    } 
}

// phone number validation
function ValidatePhone(phone) { 
    var regx=/^[0-9 \-+\(\)]{4,20}$/; 
    if(regx.test(phone)){ 
        return true; 
    } else { 
        // incorrect
        return false; 
    } 
}
