﻿function scrolling(type,container,gallery,area,speed){
 if(type == 'v'){
  if(area){
    restarea = area;// width of the "neutral" area in the center of the gallery in px
    maxspeed = speed;}
  endofgallerymsg="<span style='font-size: 12px;font-weight:bold;color:#414702;'>Конец страницы</span>" //
  vertstart(container,gallery);  }
 if(type == 'h'){
	   if(area){
     restarea = area;// width of the "neutral" area in the center of the gallery in px
     maxspeed = speed;}
	 horstart(container,gallery);}}
//////// Scroll////////////
 function enlargeimage(path, optWidth, optHeight){ //function to enlarge image. Change as desired.
   var actualWidth=typeof optWidth!="undefined" ? optWidth : "600px" //set 600px to default width
   var actualHeight=typeof optHeight!="undefined" ? optHeight : "500px" //set 500px to  default height
   var winattributes="width="+actualWidth+",height="+actualHeight+",resizable=yes"
   window.open(path,"", winattributes) }
   var iedom=document.all||document.getElementById
   var scrollspeed=0;
   var movestate="";
   var actualheight='';
   var cross_scroll;
   var loadedyes=1;
   var maxwidth=10000;
   var startpos=0;
   var ns_scroll;
   var statusdiv;
   var loadedyes=0;
   var lefttime;
   var righttime;
 function ietruebody(){
   return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body}
 function creatediv(){
  statusdiv=document.createElement("div")
  statusdiv.setAttribute("id","statusdiv")
  document.body.appendChild(statusdiv)
  statusdiv=document.getElementById("statusdiv")
  statusdiv.innerHTML=endofgallerymsg}
 function positiondiv(type){
	 if(type =='v'){
  menuwidth=parseInt(crossmain.offsetWidth)
  mainobjoffsetW=getposOffset(crossmain, "left")
  statusdiv.style.left=mainobjoffsetW+(menuwidth/2)-(statusdiv.offsetWidth/2)+"px"
  statusdiv.style.top=menu_height+mainobjoffset+10+"px"}}
  if(type =='h'){
  var mainobjoffset=getposOffset(crossmain, "left"),
  menuheight=parseInt(crossmain.offsetHeight),
  mainobjoffsetH=getposOffset(crossmain, "top");
  statusdiv.style.left=mainobjoffset+(menuwidth/2)-(statusdiv.offsetWidth/2)+"px";
  statusdiv.style.top=menuheight+mainobjoffsetH+"px";}
 function showhidediv(what){
  if (endofgallerymsg!="")
    statusdiv.style.visibility=what}
 function getposOffset(what, offsettype){
  var totaloffset=(offsettype=="left")? what.offsetLeft: what.offsetTop;
  var parentEl=what.offsetParent;
  while (parentEl!=null){
    totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
    parentEl=parentEl.offsetParent;}
  return totaloffset;}
 function moveup(){
  if (loadedyes){
    movestate="up"
    if (iedom&&parseInt(cross_scroll.style.top)>(menu_height-actualheight)){
      cross_scroll.style.top=parseInt(cross_scroll.style.top)-scrollspeed+"px"
      showhidediv("hidden")}
    else
      showhidediv("visible")}
  uptime=setTimeout("moveup()",10)}
 function movedown(){
  if (loadedyes){
    movestate="down"
    if (iedom&&parseInt(cross_scroll.style.top)<0){
       cross_scroll.style.top=parseInt(cross_scroll.style.top)+scrollspeed+"px"
       showhidediv("hidden")}
    else
       showhidediv("visible")}
  downtime=setTimeout("movedown()",10) }
    function moveleft(){
   if (loadedyes){
    movestate="left";
    if (iedom&&parseInt(cross_scroll.style.left)>(menuwidth-actualwidth)){
     cross_scroll.style.left=parseInt(cross_scroll.style.left)-scrollspeed+"px";
     showhidediv("hidden");}
    else
     showhidediv("visible");}
     lefttime=setTimeout("moveleft()",10);}
  function moveright(){
   if (loadedyes){
    movestate="right";
     if (iedom&&parseInt(cross_scroll.style.left)<0){
      cross_scroll.style.left=parseInt(cross_scroll.style.left)+scrollspeed+"px";
      showhidediv("hidden");}
     else
       showhidediv("visible");}
       righttime=setTimeout("moveright()",10); }
 function motionengine(e){
  var dsocx=(window.pageXOffset)? pageXOffset: ietruebody().scrollLeft;
  var dsocy=(window.pageYOffset)? pageYOffset : ietruebody().scrollTop;
  var curposy=window.event? event.clientY : e.clientY? e.clientY: ""
   curposy-=mainobjoffset-dsocy
  var leftbound=(menu_height-restarea)/2
  var rightbound=(menu_height+restarea)/2
    if (curposy>rightbound){
      scrollspeed=(curposy-rightbound)/((menu_height-restarea)/2) * maxspeed
	      if (window.downtime) clearTimeout(downtime)
      if (movestate!="up") moveup()}
      else if (curposy<leftbound){
         scrollspeed=(leftbound-curposy)/((menu_height-restarea)/2) * maxspeed
      if (window.uptime) clearTimeout(uptime)
      if (movestate!="down") movedown()}
      else scrollspeed=0}
    function motionengineh(e){
  var mainobjoffset=getposOffset(crossmain, "left"),
  dsocx=(window.pageXOffset)? pageXOffset: ietruebody().scrollLeft,
  dsocy=(window.pageYOffset)? pageYOffset : ietruebody().scrollTop,
  curposy=window.event? event.clientX : e.clientX? e.clientX: "";
  curposy-=mainobjoffset-dsocx;
  var leftbound=(menuwidth-restarea)/2;
  var rightbound=(menuwidth+restarea)/2;
  if (curposy>rightbound){
   scrollspeed=(curposy-rightbound)/((menuwidth-restarea)/2) * maxspeed;
   clearTimeout(righttime);
    if (movestate!="left") moveleft(); }
  else if (curposy<leftbound){
   scrollspeed=(leftbound-curposy)/((menuwidth-restarea)/2) * maxspeed;
   clearTimeout(lefttime);
    if (movestate!="right") moveright();  }
  else
   scrollspeed=0; }
 function contains_ns6(a, b) {
    while (b.parentNode)
      if ((b = b.parentNode) == a)
      return true;
      return false;}
 function stopmotion(e,t){
   if ((window.event&&!crossmain.contains(event.toElement)) || (e && e.currentTarget && e.currentTarget!= e.relatedTarget && !contains_ns6(e.currentTarget, e.relatedTarget))){
    if (window.downtime) clearTimeout(downtime)
    if (window.uptime) clearTimeout(uptime)
   movestate=""}}
  function stopmotions(e){
    if (!window.opera||(window.opera&&e.relatedTarget!==null))
    if ((window.event&&!crossmain.contains(event.toElement)) || (e && e.currentTarget && e.currentTarget!= e.relatedTarget && !contains_ns6(e.currentTarget, e.relatedTarget))){
   clearTimeout(lefttime);
   clearTimeout(righttime);
   movestate="";}}
  function vertstart(container,gallery){
   if (iedom){
    crossmain=document.getElementById? document.getElementById(container) : document.all.motioncontainer
    menu_height=parseInt(crossmain.style.height)
    mainobjoffset=getposOffset(crossmain, "top")
    cross_scroll=document.getElementById? document.getElementById(gallery) : document.all.motiongallery
    actualheight=cross_scroll.offsetHeight
    crossmain.onmousemove=function(e){motionengine(e)}
    crossmain.onmouseout=function(e){stopmotion(e)
     showhidediv("hidden")}}
     loadedyes=1
  if (endofgallerymsg!=""){creatediv()
    positiondiv('v')}}
function horstart(idcont,idmotion){
 if (iedom){
  crossmain=document.getElementById? document.getElementById(idcont) : document.all.container;
  if(typeof crossmain.style.maxWidth!=='undefined')
   crossmain.style.maxWidth=maxwidth+'px';
   menuwidth=crossmain.offsetWidth;
   cross_scroll=document.getElementById? document.getElementById(idmotion) : document.all.motiongallery;
   actualwidth=cross_scroll.offsetWidth;
   if (startpos)
    cross_scroll.style.left=(menuwidth-actualwidth)/startpos+'px';
    crossmain.onmousemove=function(e){motionengineh(e);}
crossmain.onmouseout=function(e){stopmotions(e);showhidediv("hidden");}}
loadedyes=1
if (endofgallerymsg!=""){creatediv();positiondiv('h');}
if (document.body.filters)
onresize()}
onresize=function(){
if (typeof container!=='undefined'&&container.filters){
container.style.width="0";
container.style.width="";
container.style.width=Math.min(container.offsetWidth, maxwidth)+'px';}
menuwidth=crossmain.offsetWidth;
cross_scroll.style.left=startpos? (menuwidth-actualwidth)/startpos+'px' : 0;}
