// variable declarations
var reFloat = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/;
var reNumLetter = /^\d+$/;
//var reUrl = /(\w+):\/\/([^\/:]+)(:\d*)?([^# ]*)/;
var reUrl = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/; 
//var reProfile = /^(.*?)\.(doc|pdf)$/;
//var reLogo = /^(.*?)\.(((G|g)(I|i)(F|f))|((J|j)(P|p)(G|g)))$/;

// update window status
function showStatus(sMsg) {
    window.status = sMsg ;
    return true ;
}

// check email's format
function checkEmailFormat(str) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)+$/.test(str)) {
		return (true);
	}
	return (false);
}

// check URL's format
function checkValidUrl(strUrl) {
	if (reUrl.test(strUrl)) {
		return true;
	}
	return false;
}

function isNumLetter(s) {
	return reNumLetter.test(s);
}

function isFloat(s) {
    return reFloat.test(s);
}

function isValidDate(str) {
	var day;
	var month;
	var year;
	var leap = 0;
	
	year = str.substring(0, str.indexOf("/"));
	month = str.substring(str.indexOf("/") + 1, str.lastIndexOf("/"));
	day = str.substring(str.lastIndexOf("/") + 1, str.length);
	
	if (year == 0) return false;
	if ((month < 1) || (month > 12)) return false;
	if (day < 1 || day > 31) return false;
	/* Validation leap-year / february / day */
   	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      		leap = 1;
   	}
   	if ((month == 2) && (leap == 1) && (day > 29)) return false;
   	if ((month == 2) && (leap != 1) && (day > 28)) return false;
   	/* Validation of other months */
   	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      		return false;
   	}
   	if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      		return false;
   	}
	return true;
}

function compareDate(from, to) {
	return (Date.parse(from) <= Date.parse(to));
}

function LTrim(str) {
	var whitespace = new String(" \t\n\ru@");
	var s = new String(str);

	if (whitespace.indexOf(s.charAt(0)) != -1) {
		var j=0, i = s.length;
		while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
			j++;
		s = s.substring(j, i);
	}

	return s;
}

function RTrim(str) {
	var whitespace = new String(" \t\n\ru@");
	var s = new String(str);

	if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
		var i = s.length - 1;
		while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
			i--;
		s = s.substring(0, i+1);
	}

	return s;
}

function Trim(s) {
	return RTrim(LTrim(s));
}

function checkNumber(myfield, evt) {
	var key;
	var keychar;
	
	if (window.event) {
	   	key = window.event.keyCode;
	} else if (evt) {
	   	key = evt.which;
	} else {
	   	return true;
	}
	keychar = String.fromCharCode(key);
	
	// control keys
	if ((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 13) || (key == 27)) {
		return true;
		
	// numbers
	} else if ((("0123456789").indexOf(keychar) > -1)) {
		return true;
	}
	return false;
}

function addComma(value) {
	var i;
    for(i = 0; i < value.length/3; i++){
        value = value.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2");
    }
    return value;
}

function removeComma(value) {
	return value.split(",").join("");
}

