// $Revision: 4307 $

// resault page: returns array of page selector  {... 1 2 3 ...}


function TSelectorArr()
{
	this.Arr = new Array();
	this.SForwBackw = "...";
	this.Min = 0;
	this.MinPg = 0;
	this.MaxPg = 0;

	this.Get = function(cPg, nmPgs, nmOpts)
	{
		this.Arr.splice(0, this.Arr.length);
		
		var minPg = cPg - nmOpts/2;
		if(minPg < 0) minPg = 0;
		var maxPg = minPg + nmOpts;
		var lastPg = nmPgs - 1;
		if(maxPg > lastPg) maxPg = lastPg;
		
		this.Min = minPg;
		this.MaxPg = nmPgs - 1;
		
		
		if(minPg > 0) this.Arr[0] = this.SForwBackw;
		else
		{
			this.Arr[0] = String(minPg);
		}
		
		for(var i = minPg + 1, j = 1; i < maxPg; i++, j++)
		{
			this.Arr[j] = String(i);
		}
		
		if(maxPg < lastPg) 
			this.Arr[nmOpts-1] = this.SForwBackw;
		else
			this.Arr[nmOpts-1] = String(maxPg);
		
		for(i in this.Arr)
		{
			if(!isNaN(parseInt(this.Arr[i])))
			  this.Arr[i] = String(parseInt(this.Arr[i])+1);
			
			//alert("arri="+this.Arr[i]);
		}
		
		return this.Arr;
	};
}

var USelector = new TSelectorArr(); 

Date.prototype.GetRusStr = function(s)
{
	var m2 = s.match(/[0-9]{2}/g);
	var m4 = s.match(/[0-9]{4}/g);
	
	var d = m2[3];
	var m = m2[2];
	var y = m4[0];
	var hh = m2[4];
	var mm = m2[5];
	var ss = m2[6];
	
	var p = ".";
	var c = ":";
	
	return d + p + m + p + y + " " + hh + c + mm + c + ss;
};

var Context = {
		BError: false,
		SetError: function(bVal)
		{
			this.BError = bVal;
		},
		IsError: function()
		{
			return this.BError;
		}
};


var _specMath = {
rand: function(min, max)
{

  var val = Math.floor(Math.random() * (max - min + 1)) + min;
  
  if(val < min) val = min;
  else
  if(val > max) val = max;

  return val;
}
};

/* Do not use this prototype because for(.. in arr) gives extra element
Array.prototype.rand = function()
{
	return this[_specMath.rand(0, this.length-1)];
};
*/

String.prototype.repeat = function(nRepeat)
{
	var s = "";
	
	for(var i = 0; i < nRepeat; i++)
		s += this.toString();

	return s;
};

String.prototype.removeDirtyChars = function()
{
  var s = this.toString();
  
  for(var i = 0; i < s.length  &&
  (s.charAt(i) == " " || s.charAt(i) == "\n" || s.charAt(i) == "\t" || s.charAt(i) == "\r"); 
  i++); 
  
  s = s.substring(i, s.length);
  
  var posHellip = s.lastIndexOf("…");
  
  for(var j = posHellip; s.charAt(j) != '\n' && j > 0; j--);
  
  return s.substring(0, j+1);
  
}


var tester =
{
  assert: function(o)
  {
		if(o == undefined) throw String(o) + " not specified";
		return o;
	}
};