﻿// Lame attempt at validation.
function validate(elCurrent) {

    var errors = false;
    
    var firstName = $get('firstName');
    var errEl = $get('err_firstName');
    errEl.className = (isNull(firstName.value)) ? 'error' : '';
    errors |= (isNull(firstName.value));
    errEl = $get('validationWarning');
    errEl.className = (errors) ? 'error' : '';
    if(firstName == elCurrent) return errors;

    var lastName = $get('lastName');
    errEl = $get('err_lastName');
    errEl.className = (isNull(lastName.value)) ? 'error' : '';
    errors |= (isNull(lastName.value));
    errEl = $get('validationWarning');
    errEl.className = (errors) ? 'error' : '';
    if(lastName == elCurrent) return errors;    
    
    var companyName = $get('companyName');
    errEl = $get('err_companyName');
    errEl.className = (isNull(companyName.value)) ? 'error' : '';
    errors |= (isNull(companyName.value));
    errEl = $get('validationWarning');
    errEl.className = (errors) ? 'error' : '';
    if (companyName == elCurrent) return errors;

    var countryName = $get('countryName');
    errEl = $get('err_country');
    errEl.className = (isNull(countryName.value)) ? 'error' : '';
    errors |= (isNull(countryName.value));
    errEl = $get('validationWarning');
    errEl.className = (errors) ? 'error' : '';
    if (countryName == elCurrent) return errors;
    
    var phone = $get('phone');
    errEl = $get('err_phone');
    errEl.className = (isNull(phone.value)) ? 'error' : '';
    errors |= (isNull(phone.value));
    errEl = $get('validationWarning');
    errEl.className = (errors) ? 'error' : '';
    if(phone == elCurrent) return errors;

    var emailAddress = $get('emailAddress');
    if (emailAddress != null && typeof (emailAddress) != 'undefined') {
        errEl = $get('err_emailAddress');
        errEl.className = (!isEmail(emailAddress.value)) ? 'error' : '';
        errors |= (!isEmail(emailAddress.value));
        errEl = $get('validationWarning');
        errEl.className = (errors) ? 'error' : '';
        if (emailAddress == elCurrent) return errors;
    }
    var businessEmailAddress = $get('businessEmailAddress');
    if (businessEmailAddress != null && typeof (businessEmailAddress) != 'undefined') {
        errEl = $get('err_businessEmailAddress');
        errEl.className = (!isBusinessEmail(businessEmailAddress.value)) ? 'error' : '';
        errors |= (!isBusinessEmail(businessEmailAddress.value));
        errEl = $get('validationWarning');
        errEl.className = (errors) ? 'error' : '';
        if (businessEmailAddress == elCurrent) return errors;
    }

    return errors;
};

function validateFreeAssetSubmit() {
    var isValid = !validate(null);
    if (isValid) {
        jQuery("#uxInput_Download").css('display', 'none');
        jQuery("#uxImage_ProccessingButton").css('display', 'inline');
        jQuery("#uxImage_Proccessing").css('display', 'inline');
    }
    return isValid;
}

function trim(str) {
    if(!str) return '';
    return str.replace(/^\s+|\s+$/g, '');    
}

function isNull(val) {
    var val = trim(val);
    var regex = /^\s*$/ ; // empty string
    return (regex.test(val));
}

function isEmail(val) {
    if(isNull(val)) return false;
    var val = trim(val); 
    var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return (val.match(regex));
}

function isBusinessEmail(val) {
    if(isNull(val)) return false;
    var val = trim(val);
    
    var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (val.match(regex)) {
        var parts = val.match(/\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);
        var domain = parts[1] + parts[3];
        if (domain.match(/(?:gmail|aim|gmx|yahoo|gawab|inbox|hotmail|bigstring|lavabit|myspace|hotpop|myway|care2|mail)\.com/i)) {
            return false;
        }
        return true;
    }
    else {
        return false;
    }
}

