function Go(link) {
    document.location=link;
	return true;
}

function CGo(link, mesg) {
    if (confirm(mesg))
	{
		document.location=link;
		return true;
	}
}

function _v(id) {
    return document.getElementById(id);
}

function SHBl( id ) {
    _v( id ).style.display = ('none' == _v( id ).style.display) ? 'block' : 'none';
}


function implode( glue, pieces ) {
	return ( ( pieces instanceof Array ) ? pieces.join ( glue ) : pieces );
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function mktime() { // Get Unix timestamp for a date

    var i = 0, d = new Date(), argv = arguments, argc = argv.length;

    var dateManip = {
        0: function(tt){ return d.setHours(tt); },
        1: function(tt){ return d.setMinutes(tt); },
        2: function(tt){ return d.setSeconds(tt); },
        3: function(tt){ return d.setMonth(parseInt(tt)-1); },
        4: function(tt){ return d.setDate(tt); },
        5: function(tt){ return d.setYear(tt); }
    };

    for( i = 0; i < argc; i++ ){
        if(argv[i] && isNaN(argv[i])){
            return false;
        } else if(argv[i]){
            // arg is number, let's manipulate date object
            if(!dateManip[i](argv[i])){
                // failed
                return false;
            }
        }
    }

   return Math.floor(d.getTime()/1000);
}

jQuery.preloadImages = function () {
    var images = (typeof arguments[0] == 'object') ? arguments[0] : arguments;
    for (var i = 0; i < images.length; i++) {
        jQuery("<img>").attr("src", images[i]);
    }
}


  function isNotMax(e){
         e = e || window.event;
         var target = e.target || e.srcElement;
         var code=e.keyCode?e.keyCode:(e.which?e.which:e.charCode)
  
         switch (code){
                 case 13:
                 case 8:
                 case 9:
                 case 46:
                 case 37:
                 case 38:
                 case 39:
                 case 40:
                         return true;
         }
         return target.value.length <= target.getAttribute('maxlength');
   }
  
  
  function number_format(number, decimals, dec_point, thousands_sep) {

	    var n = !isFinite(+number) ? 0 : +number, 
	        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
	        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
	        s = '',
	        toFixedFix = function (n, prec) {
	            var k = Math.pow(10, prec);
	            return '' + Math.round(n * k) / k;        };
	    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
	    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
	    if (s[0].length > 3) {
	        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);    }
	    if ((s[1] || '').length < prec) {
	        s[1] = s[1] || '';
	        s[1] += new Array(prec - s[1].length + 1).join('0');
	    }    return s.join(dec);
	}
  

	function rusnum(n, wh)
	{
		var f,s,m;
		switch (wh) 
		{
			default:
			case 1:
				f = 'месяц';		// 1 
			    s = 'месяца'; 		// 2
			    m = 'месяцев';		// 5	
			break;
			
			case 2:
				f = 'рублю';		// 1
			    s = 'рубля'; 		// 2
			    m = 'рублей';		// 5	
			break;
		}

		if (((n>4)&&(n<21))||((n%10)>4)||((n%10)==0)) 
		    return m; 
		if ((n%10)==1) 
		    return f;   
		return s; 
	}

