function number_format( number, decimals, dec_point, thousands_sep ) {    // Format a number with grouped thousands
  var i, j, kw, kd, km;
  if( isNaN(decimals = Math.abs(decimals)) ){
      decimals = 2;
  }
  if( dec_point == undefined ){
      dec_point = dec_point || ",";
  }
  if( thousands_sep == undefined ){
      thousands_sep = ".";
  }

  i = parseInt(number = (+number || 0).toFixed(decimals)) + "";

  if( (j = i.length) > 3 ){
      j = j % 3;
  } else{
      j = 0;
  }

  km = (j ? i.substr(0, j) + thousands_sep : "");
  kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
  //kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).slice(2) : "");
  kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");
  return km + kw + kd;
}

function isEmailCorrect(email) {
  var re = /^[a-zA-Z0-9\-_](([a-z0-9\-_\.\+\&]?)+[a-z0-9])?\@((\w([a-zA-Z0-9\-_]+\w)?\.[a-z]{2,4})|(([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5])\.([01]?\d\d |2[0-4]\d|25[0-5])\.([01]?\d\d|2[0-4]\d|25[0-5]))|(localhost))$/i;
  if(re.test(email))
    return true;
  else {
    return false;
  }
}

function clear_script(str){
	var search_str = /javascript:/i;
	while(str.search(search_str)!=-1){
		str = str.replace(search_str,'');
	}
	return str;
}

function urlParse (url){
  var map = {};
  url = url || window.location.href;
  url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { map[key] = value;  });
  return map;
}

function urlMake (url,pars) {
  var vars = '', par;
  for (par in pars) {
    vars += '&'+par.toString() + '=' + pars[par].toString();
  }

  return url + (/\?/.test(url)?'&':'?')+vars.substr(1);
}