var globalWinWidth=0;
var globalWinHeight=0;

var ie4=(navigator.appVersion.indexOf("MSIE")!=-1 && parseFloat(navigator.appVersion)>=4)?true:false;
var nn4=(navigator.appName=="Netscape" && parseFloat(navigator.appVersion)<5)?true:false;
var nn6=(navigator.appName=="Netscape" && parseFloat(navigator.appVersion)>=5)?true:false;


function dump(arr,level) {
var dumped_text = "";
if(!level) level = 0;

//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += "    ";

if(typeof(arr) == 'object') { //Array/Hashes/Objects
 for(var item in arr) {
  var value = arr[item];

  if(typeof(value) == 'object') { //If it is an array,
   dumped_text += level_padding + "'" + item + "' ...<br>";
   dumped_text += dump(value,level+1);
  } else {
   dumped_text += level_padding + "'" + item + "' => \"" + value + "\"<br>";
  }
 }
} else { //Stings/Chars/Numbers etc.
 dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
}

function DumpWindow(text){
        win=window.open('','win','width=600,height=500,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes,scrolling=yes');
        win.document.open();
        win.document.write(text);
}


function _Resize(id,resize){
  var diffw = $(window).width() - globalWinWidth;
  var diffh = $(window).height() - globalWinHeight;

  globalWinWidth = $(window).width();
  globalWinHeight = $(window).height();

  $('#'+id).width((!resize?$('#'+id).parent().width()+diffw:$('#'+id).width()+diffw));
//  $('#'+id).height((!resize?$('#'+id).parent().height()+diffh:$('#'+id).height()+diffh));
  $('#'+id).height($('#'+id).parent().height());
}

function ChangeImage(id,url){
  var img=new Image();
  img.onload=function(){
    document.getElementById(id).src=img.src;
  }
  img.src=url;
}



function newImage(arg) {
        if (document.images) {
                rslt = new Image();
                rslt.src = arg;
                return rslt;
        }
}



function changeImages() {
        if (document.images && (preloadFlag == true)) {
                for (var i=0; i<changeImages.arguments.length; i+=2) {
                        document.getElementById(changeImages.arguments[i]).src = changeImages.arguments[i+1];

                }

        }
}


function deffocus(a){
  if (a.defaultValue==a.value){
    a.value="";
  }
}
function defblur(a) {
  if (a.value=="") {
    a.value=a.defaultValue;
  }
}

function ow(isrc,ititle) {
        win=window.open('','win','width=600,height=500,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=no,scrolling=no');
        win.document.open();
        win.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n'
        +'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">\n'
        +'<head>\n'
        +'<title>'+((ititle=="") ? 'Увеличенная фотография' : ititle+'')+'</title>\n'
        +'<script type=\"text/javascript\">\n'
        +'      var isDOM=document.getElementById?true:false;\n'
        +'      var isOpera=isOpera5=window.opera && isDOM;\n'
        +'      var isMSIE=isIE=document.all && document.all.item && !isOpera;\n'
        +'      function matchSize(obj) {\n'
        +'              if (!isMSIE) {\n'
        +'                      var dw = self.outerWidth - self.innerWidth;\n'
        +'                      var dh = self.outerHeight - self.innerHeight;\n'
        +'              } else {\n'
        +'                      var dw = 12;\n'
        +'                      var dh = 50;\n'
        +'              }\n'
        +'              self.resizeTo(obj.width+dw,obj.height+dh);\n'
        +'              return;\n'
        +'      }'
        +'</script>'
        +'</head>\n'
        +'<body style="overflow: hidden; margin: 0px; padding: 0px;">\n'
        +'<a href="javascript:void(0);" onclick="window.close(); return false;" title="Кликните, чтобы закрыть окно">'
        +'<img src="'+isrc+'" border="0" onload="matchSize(this);" alt="Кликните, чтобы закрыть окно" /></a>\n'
        +'</body>\n'
        +'</html>');
}

function number_format (number, decimals, dec_point, thousands_sep) {
    // Formats a number with grouped thousands
    //
    // version: 906.1806
    // discuss at: http://phpjs.org/functions/number_format
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://getsprink.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +     bugfix by: Howard Yeend
    // +    revised by: Luke Smith (http://lucassmith.name)
    // +     bugfix by: Diogo Resende
    // +     bugfix by: Rival
    // +     input by: Kheang Hok Chin (http://www.distantia.ca/)
    // +     improved by: davook
    // +     improved by: Brett Zamir (http://brett-zamir.me)
    // +     input by: Jay Klehr
    // +     improved by: Brett Zamir (http://brett-zamir.me)
    // +     input by: Amir Habibi (http://www.residence-mixte.com/)
    // +     bugfix by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: number_format(1234.56);
    // *     returns 1: '1,235'
    // *     example 2: number_format(1234.56, 2, ',', ' ');
    // *     returns 2: '1 234,56'
    // *     example 3: number_format(1234.5678, 2, '.', '');
    // *     returns 3: '1234.57'
    // *     example 4: number_format(67, 2, ',', '.');
    // *     returns 4: '67,00'
    // *     example 5: number_format(1000);
    // *     returns 5: '1,000'
    // *     example 6: number_format(67.311, 2);
    // *     returns 6: '67.31'
    // *     example 7: number_format(1000.55, 1);
    // *     returns 7: '1,000.6'
    // *     example 8: number_format(67000, 5, ',', '.');
    // *     returns 8: '67.000,00000'
    // *     example 9: number_format(0.9, 0);
    // *     returns 9: '1'
    // *     example 10: number_format('1.20', 2);
    // *     returns 10: '1.20'
    // *     example 11: number_format('1.20', 4);
    // *     returns 11: '1.2000'
    // *     example 12: number_format('1.2000', 3);
    // *     returns 12: '1.200'
    var n = number, prec = decimals;

    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };

    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;

    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;

    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;

    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;

        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }

    var decPos = s.indexOf(dec);
    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}
