/*
 * gc javascript
 *
 * Copyright (c) 2010 Getcover & Co Ltd
 *
 * $Date: 2010-01-01 08:00:00 0000 $
 * $Rev: ???? $
 */


function GCValidatorValidateDisplayNone(valObj) {

    if (typeof (ValidatorValidate) == "function") {
        var holdDisplayVal = valObj.display;
        valObj.display = "None";
        ValidatorValidate(valObj);
        valObj.display = holdDisplayVal;
    }
}

function GCCompareValidatorValueOffsetJS(source, args) {

    var ret = true;
    try{
        var ctrlToVal = ValidatorGetValue(source.ControlToValidate);
        // empty value not validated here
        if (ctrlToVal == "") { args.IsValid = ret; return ret; }
        var splits = String(ctrlToVal).split("/",3);
        // invalid date string not validated here
        if (splits.length != 3) { args.IsValid = ret; return ret; }
        var dateToVal = new Date(parseInt(splits[2], 10), parseInt(splits[1], 10)-1, parseInt(splits[0], 10));
        
        var ctrlToComp = ValidatorGetValue(source.ControlToCompare);
        splits = String(ctrlToComp).split("/",3);
        // invalid date string not validated here
        if (splits.length != 3) { args.IsValid = ret; return ret; }
        var dateToComp = new Date(parseInt(splits[2], 10), parseInt(splits[1], 10)-1, parseInt(splits[0], 10));
        
        var op = ValidatorTrim(source.Operator);
        var yearsOff = ValidatorTrim(source.YearsOffset);

        var dateToCompOff = dateToComp;
        dateToCompOff.setYear( dateToComp.getFullYear() + parseInt(yearsOff, 10) ); 
        switch(op)
        {    
            case "Equal":
                ret = (dateToVal == dateToCompOff);
                break;
            case "GreaterThan":
                ret = (dateToVal > dateToCompOff);
                break;
            case "GreaterThanEqual":
                ret = (dateToVal >= dateToCompOff);
                break;
            case "LessThan":
                ret = (dateToVal < dateToCompOff);
                break;
            case "LessThanEqual":
                ret = (dateToVal <= dateToCompOff);
                break;
            case "NotEqual":
                ret = (dateToVal != dateToCompOff);
                break;
            default:
                ret = true;
                break;
        }    
    
    } catch(e) {
        ret = true;
    }
    args.IsValid = ret;
    return ret;    
}

