function initMouseMover(theId,Step,Speed,Direction,NoMoveSize){
if (document.getElementById){
var tck = document.getElementById(theId);
if (tck==null) return;
if (window.name.indexOf("__jeniaTemplate")>0) return null;
if (tck.direction!=null ) return;
if (tck.childNodes.length>0){
tck.step=Step;
tck.speed=Speed;
tck.x=0;
tck.y=0;
tck.noMoveSize=NoMoveSize;
tck.direction=Direction;
for (i=0; i<tck.childNodes.length;i++) {
if(tck.childNodes[i].tagName=='TABLE'){
for (j=0; j<tck.childNodes[i].childNodes[0].childNodes.length;j++) {
if(tck.childNodes[i].childNodes[0].childNodes[j].id==(theId+'row')){
for (k=0; k<tck.childNodes[i].childNodes[0].childNodes[j].childNodes.length;k++) {
if(tck.childNodes[i].childNodes[0].childNodes[j].childNodes[k].id==(theId+'col')){
for (w=0; w<tck.childNodes[i].childNodes[0].childNodes[j].childNodes[k].childNodes.length;w++) {
if(tck.childNodes[i].childNodes[0].childNodes[j].childNodes[k].childNodes[w].tagName=='TABLE'){
tck.scrollArea=tck.childNodes[i].childNodes[0].childNodes[j].childNodes[k].childNodes[w];
}}}}}}}}
tck.scrollArea.style.left="0px";
tck.scrollArea.style.top="0px";
addMouseMoveEvent(tck, "mouseover", rollMouseMoverEvent);
addMouseMoveEvent(tck, "mouseout", stopMouseMoverEvent);}}}
function rollMouseMover(theId) {
var tck = document.getElementById(theId);
if (tck==null) return;
var x=tck.x;
var y=tck.y;
if (tck.direction=='horizontal' || tck.direction=='both') {
if (x>((tck.clientWidth/2) + (tck.noMoveSize/2)) && parseInt(tck.scrollArea.style.left)>=(tck.clientWidth-tck.scrollArea.clientWidth)) {
if (x>(tck.clientWidth/2 + ((tck.clientWidth - tck.noMoveSize)/2))){
if (tck.scrollArea.offsetLeft-(tck.step*2)>=(tck.clientWidth-tck.scrollArea.clientWidth))
tck.scrollArea.style.left=(tck.scrollArea.offsetLeft-(tck.step*2))+"px";
else 
tck.scrollArea.style.left=tck.clientWidth-tck.scrollArea.clientWidth+"px";
}else{
if (tck.scrollArea.offsetLeft-tck.step>=(tck.clientWidth-tck.scrollArea.clientWidth))
tck.scrollArea.style.left=(tck.scrollArea.offsetLeft-tck.step)+"px";
else
tck.scrollArea.style.left=tck.clientWidth-tck.scrollArea.clientWidth+"px";
}} else if (x<((tck.clientWidth/2) - (tck.noMoveSize/2)) && parseInt(tck.scrollArea.style.left)<0) {
if (x<(tck.clientWidth/2 - ((tck.clientWidth - tck.noMoveSize)/2))){
if (tck.scrollArea.offsetLeft+(tck.step*2)<=0)
tck.scrollArea.style.left=(tck.scrollArea.offsetLeft+(tck.step*2))+"px";
else
tck.scrollArea.style.left="0px";
}else{
if (tck.scrollArea.offsetLeft+tck.step<=0)
tck.scrollArea.style.left=(tck.scrollArea.offsetLeft+tck.step)+"px";
else 
tck.scrollArea.style.left="0px";}}}
if (tck.direction=='vertical' || tck.direction=='both') {
if (y>((tck.clientHeight/2) + (tck.noMoveSize/2)) && parseInt(tck.scrollArea.style.top)>=(tck.clientHeight-tck.scrollArea.clientHeight)) {
if (y>(tck.clientHeight/2 + ((tck.clientHeight - tck.noMoveSize)/2))){
if (tck.scrollArea.offsetTop-(tck.step*2)>=(tck.clientHeight-tck.scrollArea.clientHeight))
tck.scrollArea.style.top=(tck.scrollArea.offsetTop-(tck.step*2))+"px";
else
tck.scrollArea.style.top=(tck.clientHeight-tck.scrollArea.clientHeight)+"px";
}else{
if (tck.scrollArea.offsetTop-tck.step>=(tck.clientHeight-tck.scrollArea.clientHeight))
tck.scrollArea.style.top=(tck.scrollArea.offsetTop-tck.step)+"px";
else
tck.scrollArea.style.top=(tck.clientHeight-tck.scrollArea.clientHeight)+"px";
}} else if (y<((tck.clientHeight/2) - (tck.noMoveSize/2)) && parseInt(tck.scrollArea.style.top)<0) {
if (y<(tck.clientHeight/2 - ((tck.clientHeight - tck.noMoveSize)/2))){
if (tck.scrollArea.offsetTop+(tck.step*2)<=0)
tck.scrollArea.style.top=(tck.scrollArea.offsetTop+(tck.step*2))+"px";
else 
tck.scrollArea.style.top="0px";
}else{
if (tck.scrollArea.offsetTop+tck.step<=0)
tck.scrollArea.style.top=(tck.scrollArea.offsetTop+tck.step)+"px";
else 
tck.scrollArea.style.top="0px";}}}
tck.tick = setTimeout("rollMouseMover('"+theId+"',"+x+","+y+")",tck.speed);}
function getMouseMover(TheEvent){
if(navigator.userAgent.indexOf("Gecko")>-1){
var rel=TheEvent.target;
}else{
var rel=TheEvent.srcElement;}
var orig=rel;
while(rel){
if(rel.scrollArea!=null) break;
else { 
if (rel!=rel.parentNode) { rel=rel.parentNode;
} else {
removeMouseMoveEvent(orig, "mousemove", mouseMoveEvent);
return null;
}}}
return rel;}
function stopMouseMoverEvent(TheEvent){
var tck=getMouseMover(TheEvent);
if (tck==null) return;
clearTimeout(tck.tick);
removeMouseMoveEvent(tck, "mousemove", mouseMoveEvent);}
function rollMouseMoverEvent(TheEvent){
var tck=getMouseMover(TheEvent);
if (tck==null) return;
var x, y;
if(navigator.userAgent.indexOf('Gecko')>-1 || navigator.userAgent.indexOf('Opera')>-1){
x=TheEvent.clientX-tck.offsetLeft;
y=TheEvent.clientY-tck.offsetTop;
}else{
x=TheEvent.x;
y=TheEvent.y;}
tck.x=x;
tck.y=y;
rollMouseMover(tck.id);
addMouseMoveEvent(tck, "mousemove", mouseMoveEvent);}
function mouseMoveEvent(TheEvent){
var tck=getMouseMover(TheEvent);
if (tck==null) return;
var x, y;
if(navigator.userAgent.indexOf('Gecko')>-1 || navigator.userAgent.indexOf('Opera')>-1){
x=TheEvent.clientX-tck.offsetLeft;
y=TheEvent.clientY-tck.offsetTop;
}else{
x=TheEvent.x;
y=TheEvent.y;}
tck.x=x;
tck.y=y;}
function addMouseMoveEvent(obj,evType,fn){
if (obj.addEventListener){
obj.addEventListener(evType, fn,true);
return true;
}else if (obj.attachEvent){
var r = obj.attachEvent("on"+evType,fn);
return r;
}else{
return false;}}
function removeMouseMoveEvent(obj,evType,fn){
if (obj.removeEventListener){
obj.removeEventListener(evType,fn,true);
return true;
}else if (obj.detachEvent){
var r=obj.detachEvent("on"+evType,fn);
return r;
}else{
return false;}}
