
var restarea = 100;
var maxspeed = 10;
var scrollspeed = 0;
var loadedyes = 0;

var movestate = "";
var actualwidth = '';
var mainobjoffset = '';

var menuwidth;
var crossmain;
var cross_scroll;
var ns_scroll;
var lefttime, righttime;

function ietruebody(){
    return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
}


function moveleft() {
    if (loadedyes) {
        movestate = "left";
        if (parseInt(cross_scroll.style.left) > (menuwidth-actualwidth)) {
            cross_scroll.style.left = parseInt(cross_scroll.style.left) - scrollspeed + "px";
        }
    }
    lefttime = setTimeout("moveleft()", 10)
}

function moveright() {
    if (loadedyes) {
        movestate = "right";
        if (parseInt(cross_scroll.style.left) < 0) {
            cross_scroll.style.left = parseInt(cross_scroll.style.left) + scrollspeed + "px";
        }
    }
    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.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;
        if (window.righttime) clearTimeout(righttime);
        if (movestate != "left") moveleft();
    }
    else if (curposy<leftbound){
        scrollspeed=(leftbound-curposy)/((menuwidth-restarea)/2) * maxspeed;
        if (window.lefttime) 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){
    if ((window.event&&!crossmain.contains(event.toElement)) || (e && e.currentTarget && e.currentTarget!= e.relatedTarget && !contains_ns6(e.currentTarget, e.relatedTarget))){
        if (window.lefttime) clearTimeout(lefttime)
        if (window.righttime) clearTimeout(righttime)
        movestate=""
    }
}

function fillup() {

    crossmain = $('motioncontainer');
    menuwidth = parseInt(crossmain.style.width);

    cross_scroll = $('motiongallery');
    actualwidth = cross_scroll.offsetWidth;

    var parentEl = crossmain.offsetParent;
    mainobjoffset = crossmain.offsetLeft;
    while (parentEl != null){
        mainobjoffset += parentEl.offsetLeft;
        parentEl = parentEl.offsetParent;
    }

    if (!loadedyes) {
        
        loadedyes = 1;

        crossmain.onmousemove = function(e) {
            motionengine(e);
        }

        crossmain.onmouseout = function(e) {
            stopmotion(e);
        }
    }
}
