// -------------- FUNCTIONS ----------------------
function getcookie(c_name)
{
	if (document.cookie.length > 0) {
  		c_start = document.cookie.indexOf(c_name + "=");
  		if (c_start != -1) { 
    		c_start = c_start + c_name.length + 1; 
			c_end = document.cookie.indexOf(";", c_start);
			if (c_end == -1) c_end = document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
    	} 
  	}
	return "";
}

function setcookie(c_name, value, expiredays) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}

function strip_whitespace(input) {
	return input.replace(/^\s+|\s+$/g, '');
}

function str_pad_left(input, pad_length, pad_string) {
	parsed_input = input;
	for (var i = pad_length - input.length; i > 0; i--)
		parsed_input = pad_string + parsed_input;	
	return parsed_input;
}

function str_pad_right(input, pad_length, pad_string) {
	parsed_input = input;
	for (var i = pad_length - input.length; i > 0; i--)
		parsed_input = parsed_input + pad_string;
	return parsed_input;
}

function remove_str_pad_left(input, pad_char) {
	var index = 0;
	for (var i = 0; i < input.length; i++)  {
		if (input.charAt(i) == pad_char) index++;
		else break;
	}
	return input.substr(index);
}

function number_format(number, decimals, dec_point, thousands_sep) {
    var n = parseFloat(number), c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "." : dec_point;
    var t = thousands_sep == undefined ? "," : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}

function str_remove_currency_token(input) {
	return input.toString().replace(/[\$\s,]/g, '');	
}

function float_to_currency(value) {
	var value = parseFloat(value);
	
	if (isNaN(value)) return value;  // return NaN value
		
	if (value <= -0.01)
		return '- $ ' + number_format(Math.abs(value), 2);
	if (value >= 0.01)	
		return '$ ' + number_format(value, 2);
		
	return '$ 0.00';	
}

function currency_to_float(value) {
	return parseFloat(str_remove_currency_token(value));	
}

function str_remove_percent_token(input) {
	return input.toString().replace(/[\%\s]/g, '');	
}

function string_to_percent(value) {
	return float_to_percent(str_remove_percent_token(value));	
}

function float_to_percent(value) {
	var value = parseFloat(value);
	
	if (isNaN(value)) return value;  // return NaN value
		
	if (value <= -0.1 || value >= 0.1)	
		return number_format(value, 2) + ' %';
		
	return '0.00 %';	
}

function percent_to_float(value) {
	return parseFloat(str_remove_percent_token(value));	
}
