/*
30.01.2007 
designed by Maxim Popov ecto.ru
Javascript navigation 
save for search engine
*/

function navigation(id,all,by,now)
{
var obj=document.getElementById(id);

this.all=all;
this.now=now;
this.by=by;

if(now<by/2)
startPos=1;
else
{
if(now>=all-by/2)
startPos=Math.floor(all-by+1);
else
startPos=Math.floor(now-by/2+0.5);
}






this.list=document.createElement('DIV');
this.list.className="list";
this.list.innerHTML=obj.innerHTML;
obj.innerHTML='';

this.line=document.createElement('DIV');
this.line.className="line";
this.toch=document.createElement('DIV');
this.toch.className="toch";


var toch_in=document.createElement('DIV');
toch_in.className="toch_in";





this.toch.appendChild(toch_in);

this.line.appendChild(this.toch);
obj.appendChild(this.list);
obj.appendChild(this.line);



var _self=this;
var moveoffset=-1;
var save_handlers=new Array();
this.toch.onmousedown=function(){
	save_handlers['onmouseup']=document.onmouseup;
	save_handlers['onmousemove']=document.onmousemove;
	document.body.onmouseup=this.onmouseup;
	document.body.onmousemove=this.onmousemove;
	moveoffset=xMousePos-this.offsetLeft;};

this.toch.onmouseup=function(){
	moveoffset=-1;
	document.onmouseup=save_handlers['onmouseup'];
	document.onmousemove=save_handlers['onmousemove'];
	};

this.toch.onmousemove=function(){
	if(moveoffset!=-1)
	{
	_self.toch.style.left=xMousePos-moveoffset;
	if(xMousePos-moveoffset<0)
	_self.toch.style.left=0;
	if(xMousePos-moveoffset+_self.toch.offsetWidth>_self.line.offsetWidth)
	_self.toch.style.left=_self.line.offsetWidth-_self.toch.offsetWidth;
	_self.renderList(_self.getPos());
	}




};








_self.renderList(startPos);

width=this.list.firstChild.offsetWidth - (this.list.firstChild.firstChild.firstChild.firstChild.offsetWidth*2);
this.line.style.width=width
this.toch.style.width=this.by*width/all;
this.setPos(startPos);

}

navigation.prototype.setPos=function (now)
{
this.toch.style.left=(this.line.offsetWidth-this.toch.offsetWidth)*(now-1)/(this.all-this.by);
this.pos=now;
};



navigation.prototype.getPos=function ()
{
return Math.floor((this.toch.offsetLeft*(this.all-this.by)/(this.line.offsetWidth-this.toch.offsetWidth)))+1;
}

navigation.prototype.renderList=function (startPos)
{

var rez='<table border="0" cellpadding="0" cellspacing="0"><tr>';
if(startPos>1)
rez+="<td><a href='#'>...</a></td>";
else
rez+="<td> </td>";

for(i=startPos;i<startPos+this.by;i++)
if(i==this.now)
rez+="<td><span>"+i+"</span></td>";
else
rez+="<td><a href='#'>"+i+"</a></td>";

if(i<=this.all)
rez+="<td><a href='#'>...</a></td>";
else
rez+="<td> </td>";
rez+="</tr></table>";
this.list.innerHTML=rez;


};


//---------------------------------------
var IE = document.all?true:false


if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;

var xMousePos = 0
var yMousePos = 0

// Main function to retrieve mouse x-y pos.s

function getMouseXY(e) {
  if (IE && !window.opera) {
//    xMousePos = event.offsetX + document.body.scrollLeft
//    yMousePos = event.offsetY + document.body.scrollTop
    xMousePos = event.clientX + document.body.scrollLeft
    yMousePos = event.clientY + document.body.scrollTop

  } else {
    xMousePos = e.pageX
    yMousePos = e.pageY
  }

  if (xMousePos < 0){xMousePos = 0}
  if (yMousePos < 0){yMousePos = 0}

  return true
}

