/** 
 * $Id: validation.js,v 1.5 2008/09/26 14:55:20 kmj Exp $
 */
/*jslint browser: true */
/*extern cws, utils */

var Validation = {
    dateMask: 'dd/mm/yyyy',
    
    validate: function(form){
        var errors = "";
        var startDate = this.dateString2date(form.startDate.value);
        var endDate = this.dateString2date(form.endDate.value);
        
        if (form.assetCode && utils.isEmpty(form.assetCode.value)) {
            errors += '* You need a valid asset code\n';
        }
        if (endDate < startDate) {
            errors += '* The end date must be after the start date\n';
        }
        if (utils.isEmpty(form.startDate.value) ||
        form.startDate.value == this.dateMask ||
        isNaN(startDate.valueOf())) {
            errors += '* You need a valid start date (' + this.dateMask + ')\n';
        }
        if (utils.isEmpty(form.endDate.value) ||
        form.endDate.value == this.dateMask ||
        isNaN(endDate.valueOf())) {
            errors += '* You need a valid end date (' + this.dateMask + ')\n';
        }
        if (form.companyLogo && utils.isEmpty(form.companyLogo.value) &&
                form.submit.value.match(/^Add/)) {
            errors += '* You need a company logo\n';
        }
        if (errors) {
            var errorMsg = "There's a problem with your data:\n\n";
            errorMsg += errors + "\nPlease correct it and try again";
            alert(errorMsg);
            return false;
        }
        else {
            return true;
        }
    },
    
    /**
     * Sets the value of the field to empty string, if it doesn't equal
     * the initial value
     * @param {Object} field
     * @param {Object} initValue
     */
    clearField: function(field, initValue){
        if (field.value == initValue) {
            field.value = '';
        }
    },
    
    /**
     * Converts a date string (dd-mm-yyyy or dd/mm/yyyy) into a date object
     * @param {Object} dateString
     */
    dateString2date: function(dateString){
        var re = new RegExp(/-/g);
        dateString = dateString.replace(re, "/");
        var dateArray = dateString.split("/");
        var dateObj = new Date(dateArray[2], dateArray[1], dateArray[0], 0, 0, 0, 0);
        return dateObj;
    }
};

