// Generated Wed, 17 Oct 2007 14:48:07 +0200

// Validation functions


// Callable: is_base
function is_base(value, context) {
    var f = function(value, context) {return true; };
    if (f(value, context)===true) return true;
    return 'base';
}

// Callable: new AjaxValidator('ajax', )


// Callable: is_date
function is_date(value, context) {
    var f = function(value, context) {    var d = parseInt(value.day);
    if (!d) return true;
    var m = parseInt(value.month)-1;
    var y = parseInt(value.year);
    var dte = new Date(y,m,d);
    return (dte.getDate()==d) && (dte.getMonth()==m) && (dte.getFullYear()==y); };
    if (f(value, context)===true) return true;
    return 'date';
}

// Callable: function(value) { return is_maximumdate( new Date(parseInt(value.year), parseInt(value.month), parseInt(value.day)), , , ); }
function is_maximumdate(thevalue, y,m,d) { if(thevalue > new Date(y,m,d)) return VALIDATION_MESSAGES.date; return true; }

// Callable: function(value) { return is_minimumdate( new Date(parseInt(value.year), parseInt(value.month), parseInt(value.day)), , , ); }
function is_minimumdate(thevalue, y,m,d) { if(thevalue < new Date(y,m,d)) return VALIDATION_MESSAGES.date; return true; }

// Callable: is_validchoice
function is_validchoice(value, context) {
    var f = function(value, context) {return true; };
    if (f(value, context)===true) return true;
    return 'validchoice';
}

// Callable: is_choicerequired
function is_choicerequired(value, context) {
    var f = function(value, context) {return (typeof value=='object' && typeof value['none'] == 'undefined') || (value.length&&value.length>0); };
    if (f(value, context)===true) return true;
    return 'required';
}

// Callable: function(value) { return is_choicevalue(value, ''); }
function is_choicevalue(value, target) { if ( (typeof value=='object' && value[target] != null) || (value.length&&value==target)) return true; return VALIDATION_MESSAGES.choicevalue; }

// Callable: is_multichoicerequired
function is_multichoicerequired(value, context) {
    var f = function(value, context) {if(typeof value=='string')return value.length>0;for(var x in value) { if (typeof value[x] == 'function') continue; if (value[x]===x) return true; } return false; };
    if (f(value, context)===true) return true;
    return 'multichoicerequired';
}

// Callable: is_filev2required
function is_filev2required(value, context) {
    var f = function(value, context) {return value.hasfile==1; };
    if (f(value, context)===true) return true;
    return 'filerequired';
}

// Callable: is_filerequired
function is_filerequired(value, context) {
    var f = function(value, context) {return (!!value)&&(value.length>0); };
    if (f(value, context)===true) return true;
    return 'filerequired';
}

// Callable: 


// Callable: 


// Callable: 


// Callable: 


// Callable: 


// Callable: 


// Callable: 


// Callable: is_mustbetrue
function is_mustbetrue(value, context) {
    var f = function(value, context) {if (typeof value == 'object') for(k in value) { if (typeof value[k] == 'function') continue; value = value[k]; break; }; return parseInt(value)===1; };
    if (f(value, context)===true) return true;
    return 'mustbetrue';
}

// Callable: is_mustbefalse
function is_mustbefalse(value, context) {
    var f = function(value, context) {if (typeof value == 'object') for(k in value) { if (typeof value[k] == 'function') continue; value = value[k]; break; }; return parseInt(value)===0; };
    if (f(value, context)===true) return true;
    return 'mustbefalse';
}

// Callable: new AjaxValidator('unique', )


// Callable: is_geo
function is_geo(value, context) {
    var f = function(value, context) {var r = /^\s*-?\d*([\.]\d+)?\s*$/; if (!value.lat.match(r) || !value.lon.match(r)) return false;if (Math.abs(parseFloat(value.lat)) > 90) return false;if (Math.abs(parseFloat(value.lon)) > 180) return false;return true; };
    if (f(value, context)===true) return true;
    return 'geo';
}

// Callable: function(value){return is_uploadextension(value, ({extensions:[]}));}
function is_uploadextension(value, context) {
    var f = function(value, context) {if (!value.length) return true; var regexp = '\.('+context.extensions.join('|')+')$'; return !!value.match(new RegExp(regexp, 'i')) };
    if (f(value, context)===true) return true;
    return 'fileextension';
}

// Callable: function(value){return is_uploadsize(value, ({min_size:false,max_size:false}));}
function is_uploadsize(value, context) {
    var f = function(value, context) {var s = document.getElementById(window.current_element+'-size').value; if (!s||!s.length)return true; s = parseInt(s); return ( (context.min_size === false || s >= context.min_size) && (context.max_size === false || s <= context.max_size)); };
    if (f(value, context)===true) return true;
    return 'filesize';
}

// Callable: is_textrequired
function is_textrequired(value, context) {
    var f = function(value, context) {return value.length && value.length > 0; };
    if (f(value, context)===true) return true;
    return 'required';
}

// Callable: 


// Callable: is_richtextrequired
function is_richtextrequired(value, context) {
    var f = function(value, context) {value = value.replace(/<.*?>/mg, "").replace(/\s+/mg, ""); return value.length > 0; };
    if (f(value, context)===true) return true;
    return 'required';
}

// Callable: function(value) { return is_regexp(value, ) }
function is_regexp(value, regexp) { if (value.match(regexp)) return true; return VALIDATION_MESSAGES.textregexp; }

// Callable: is_integer
function is_integer(value, context) {
    var f = function(value, context) {return is_regexp(value, /^\d*$/); };
    if (f(value, context)===true) return true;
    return 'integer';
}

// Callable: is_double
function is_double(value, context) {
    var f = function(value, context) {return is_regexp(value, /^\d*[\.,]?\d*$/); };
    if (f(value, context)===true) return true;
    return 'double';
}

// Callable: is_email
function is_email(value, context) {
    var f = function(value, context) {return is_regexp(value, /(^.+@.+\...+$|^\s*$)/); };
    if (f(value, context)===true) return true;
    return 'email';
}

// Callable: is_numberrequired
function is_numberrequired(value, context) {
    var f = function(value, context) {return value.match(/^\d+([\.,]\d*)?$/) != null; };
    if (f(value, context)===true) return true;
    return 'required';
}

// Callable: 
function (value, context) {
    var f = function(value, context) {return true; };
    if (f(value, context)===true) return true;
    return 'minmax';
}

// Callable: 


// Callable: is_zipcode
function is_zipcode(value, context) {
    var f = function(value, context) {return is_regexp(value, /(^\s*[0-9]{4}\s*[a-zA-Z]{2}\s*$)|(^\s*[0-9]{5}(-[0-9]{4})?\s*$)/); };
    if (f(value, context)===true) return true;
    return 'zipcode';
}

// Callable: is_telephone
function is_telephone(value, context) {
    var f = function(value, context) {return is_regexp(value, /((\+|00)[0-9\-]+)?$/); };
    if (f(value, context)===true) return true;
    return 'telephone';
}

// Callable: new AjaxValidator('hostname', )


// Callable: is_password
function is_password(value, context) {
    var f = function(value, context) {    return (value.pw == value.pwconfirm); };
    if (f(value, context)===true) return true;
    return 'password';
}

// Callable: is_emailconfirm
function is_emailconfirm(value, context) {
    var f = function(value, context) {    return (value.email == value.emailconfirm); };
    if (f(value, context)===true) return true;
    return 'emailconfirm';
}

// Callable: is_passwordrequired
function is_passwordrequired(value, context) {
    var f = function(value, context) {return value.pw.length && value.pw.length > 0; };
    if (f(value, context)===true) return true;
    return 'required';
}

// Callable: is_passwordlowstrength
function is_passwordlowstrength(value, context) {
    var f = function(value, context) {return (value.pw.length && value.pw.length >= 4) || value.pw.length == 0 };
    if (f(value, context)===true) return true;
    return 'passwordlowstrength';
}

// Callable: is_passwordmediumstrength
function is_passwordmediumstrength(value, context) {
    var f = function(value, context) {if((value.pw.match(/[A-Z]/) && value.pw.match(/[0-9]/) && value.pw.match(/^.{4,}$/)) || value.pw.length == 0) return true; return false; };
    if (f(value, context)===true) return true;
    return 'passwordmediumstrength';
}

// Callable: is_passwordhighstrength
function is_passwordhighstrength(value, context) {
    var f = function(value, context) {if(value.pw.match(/[A-Z]/) && value.pw.match(/[0-9]/) && value.pw.match(/^.{4,}$/) && value.pw.match(/\W/) || value.pw.length == 0) return true; return false; };
    if (f(value, context)===true) return true;
    return 'passwordhighstrength';
}

// Callable: is_selectionwidgetrequired
function is_selectionwidgetrequired(value, context) {
    var f = function(value, context) {return value.length && value.length > 0; };
    if (f(value, context)===true) return true;
    return 'selectionwidget_required';
}
// Validation messages
var VALIDATION_MESSAGES = new Array();
VALIDATION_MESSAGES['base'] = ({brief:"The base validation failed",extended:"This is an extended message for the base validation"});
VALIDATION_MESSAGES['ajax'] = ({brief:"ajax: Undefined validation messages",extended:"ajax: Undefined validation messages (server-side)"});
VALIDATION_MESSAGES['date'] = ({brief:"%s is not a valid date",extended:"Please make sure that you entered a valid date.<br>For example, February 29 is only a valid date in a leap year."});
VALIDATION_MESSAGES['date'] = ({brief:"%s is not a valid date",extended:"Please make sure that you entered a valid date.<br>For example, February 29 is only a valid date in a leap year."});
VALIDATION_MESSAGES['date'] = ({brief:"%s is not a valid date",extended:"Please make sure that you entered a valid date.<br>For example, February 29 is only a valid date in a leap year."});
VALIDATION_MESSAGES['validchoice'] = ({brief:"Invalid value for %s",extended:"Please make sure you choose a valid value for this field."});
VALIDATION_MESSAGES['required'] = ({brief:"%s is a required field",extended:"Please fill in a value for %s."});
VALIDATION_MESSAGES['choicevalue'] = ({brief:"Choose the right value for %s",extended:"For this field you are required to choose a specific value."});
VALIDATION_MESSAGES['multichoicerequired'] = ({brief:"%s is a required field",extended:"Please select at least one checkbox."});
VALIDATION_MESSAGES['filerequired'] = ({brief:"%s is a required file",extended:"Upload a valid file at '%s' using the browse button."});
VALIDATION_MESSAGES['filerequired'] = ({brief:"%s is a required file",extended:"Upload a valid file at '%s' using the browse button."});
VALIDATION_MESSAGES['fileextension'] = ({brief:"The file for %s has an invalid extension",extended:"Please choose a file with a valid extension"});
VALIDATION_MESSAGES['file'] = ({brief:"file: Undefined validation messages",extended:"file: Undefined validation messages (server-side)"});
VALIDATION_MESSAGES['filesize'] = ({brief:"The file for %s does not meet the size requirements",extended:"Please make sure that your file is not too big and not too small"});
VALIDATION_MESSAGES['imagedimension'] = ({brief:"imagedimension: Undefined validation messages",extended:"imagedimension: Undefined validation messages (server-side)"});
VALIDATION_MESSAGES['imagedimensionmin'] = ({brief:"The image for %s is too small",extended:"Please upload a larger image"});
VALIDATION_MESSAGES['imagedimensionmax'] = ({brief:"The image for %s is too big",extended:"Please upload a smaller image"});
VALIDATION_MESSAGES['imagedimensionexact'] = ({brief:"The image for %s has wrong dimensions",extended:"Please upload an image with the right dimensions"});
VALIDATION_MESSAGES['mustbetrue'] = ({brief:"You have to check %s",extended:"Before continuing, you have to tick the box."});
VALIDATION_MESSAGES['mustbefalse'] = ({brief:"mustbefalse: Undefined validation messages",extended:"mustbefalse: Undefined validation messages (server-side)"});
VALIDATION_MESSAGES['unique'] = ({brief:"%s must be a unique value",extended:"There is already a record with the same value for '%s'. Please enter a different value."});
VALIDATION_MESSAGES['geo'] = ({brief:"%s has to be a valid geographical coordinate",extended:"Please check if the entered coordinate is valid: Latitude ranges from -180 to 180, longitude ranges from -90 to 90."});
VALIDATION_MESSAGES['fileextension'] = ({brief:"The file for %s has an invalid extension",extended:"Please choose a file with a valid extension"});
VALIDATION_MESSAGES['filesize'] = ({brief:"The file for %s does not meet the size requirements",extended:"Please make sure that your file is not too big and not too small"});
VALIDATION_MESSAGES['required'] = ({brief:"%s is a required field",extended:"Please fill in a value for %s."});
VALIDATION_MESSAGES['textmaxlength'] = ({brief:"The value for %s is too long",extended:"Please check the length of the value for %s."});
VALIDATION_MESSAGES['required'] = ({brief:"%s is a required field",extended:"Please fill in a value for %s."});
VALIDATION_MESSAGES['textregexp'] = ({brief:"%s is an invalid format",extended:"Please double-check that the value you have filled in for '%s' is in the right format."});
VALIDATION_MESSAGES['integer'] = ({brief:"%s has to be a number",extended:"Please double-check that the value you have filled in for '%s' is in the right format."});
VALIDATION_MESSAGES['double'] = ({brief:"%s has to be a decimal number",extended:"Please double-check that the value you have filled in for '%s' is in the right format."});
VALIDATION_MESSAGES['email'] = ({brief:"%s is not a valid e-mail address",extended:"Make sure you enter a correct (name@host.domain) e-mail address."});
VALIDATION_MESSAGES['required'] = ({brief:"%s is a required field",extended:"Please fill in a value for %s."});
VALIDATION_MESSAGES['minmax'] = ({brief:"",extended:""});
VALIDATION_MESSAGES['minmax'] = ({brief:"",extended:""});
VALIDATION_MESSAGES['zipcode'] = ({brief:"zipcode: Undefined validation messages",extended:"zipcode: Undefined validation messages (server-side)"});
VALIDATION_MESSAGES['telephone'] = ({brief:"%s is not a valid international phone number",extended:"Start the international phone number with 00 or +, eg. 003120xxxxxxx or +3120xxxxxxx"});
VALIDATION_MESSAGES['hostname'] = ({brief:"%s contains an invalid hostname",extended:"The hostname you entered does not seem to exist, and therefore cannot be used for this field."});
VALIDATION_MESSAGES['password'] = ({brief:"Passwords do not match",extended:"Please make sure both passwords are entered exactly the same."});
VALIDATION_MESSAGES['emailconfirm'] = ({brief:"E-mail addresses do not match",extended:"Please make sure both e-mail addresses are entered exactly the same."});
VALIDATION_MESSAGES['required'] = ({brief:"%s is a required field",extended:"Please fill in a value for %s."});
VALIDATION_MESSAGES['passwordlowstrength'] = ({brief:"Passwords doesn't fit the minimal requirements.",extended:"Please make sure that the password consists of at least 4 characters."});
VALIDATION_MESSAGES['passwordmediumstrength'] = ({brief:"Passwords doesn't fit the minimal requirements.",extended:"Please make sure that the password consists of at least 4 characters, 1\n   uppercase letter and 1 number."});
VALIDATION_MESSAGES['passwordhighstrength'] = ({brief:"Passwords doesn't fit the minimal requirements.",extended:"Please make sure that the password consists of at least 4 characters, 1\n   uppercase letter, 1 number and 1 special character."});
VALIDATION_MESSAGES['selectionwidget_required'] = ({brief:"Please select at least one item from the list to continue.",extended:"Please select at least one item from the list to continue."});
