/*
* This script handles common tasks such as - validating numbers, e-mail, username.
* Mix error messages and some other common task. It must be included everywhere.
* E.g. in all (or near all) html pages.
*
* Copyright BGPrognozi.com (c) 2009
*/


function mixMessage(msg, values) {
var re = "";
for (var i = 0; i < values.length; i++) {
re = new RegExp("%" + (i + 1));
msg = msg.replace(re, values[i]);
}
return msg;
}

function isValidEmail(email) {
var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
return regex.test(email);
}

function isValidUsername(username) {
var regex = /^[a-z][a-z0-9\._]{0,29}$/i;
return regex.test(username);
}

function hasXMLChars(name) {
var regex = /[<>&'"]/;
return name.search(regex);
}

function isValidDate(year, month, date) {
var d = new Date(year, month, date);
return ((d.getFullYear() == year) && (d.getMonth() == month) && (d.getDate() == date));
}

function isInteger(value) {
var regex = /^-?\d+$/;
return regex.test(value);
}

function isPositiveInteger(value) {
return (isInteger(value) && (value > 0));
}

function isNonNegativeInteger(value) {
return (isInteger(value) && (value >= 0));
}

function isNumber(value) {
var regex = /(^-?\d+\.?\d*$)|(^-?\.\d+$)/;
return regex.test(value);
}

function isTime(value) {
var regex = /^([01][0-9]|2[0-3])[\.:][0-5][0-9]$/;
return regex.test(value);
}

function isTimestamp(value) {
var regex = /^(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[0-2])\.20[0-9]{2} ([01][0-9]|2[0-3])[\.:][0-5][0-9]$/;
return regex.test(value);
}

function isDate(value) {
var regex = /^(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[0-2])\.20[0-9]{2}$/;
return regex.test(value);
}

function isMonthYear(value) {
var regex = /^(0[1-9]|1[0-2])\.20[0-9]{2}$/;
return regex.test(value);
}

function isPositiveNumber(value) {
return (isNumber(value) && (value > 0));
}

function isNonNegativeNumber(value) {
return (isNumber(value) && (value >= 0));
}

function isPrice(value) {
return isNonNegativeNumber(value);
}

function generateRandomInt(maxNumber) {
return Math.floor(Math.random()*(maxNumber + 1));
}

function trim(s) {
if (typeof s == 'string') {
return s.replace(/^\s+|\s+$/g,"");
} else {
return s;
}
}

