/**
 * @author Mousebomb
 */
var curScrolltop = 0;
var baseTop = 0;//应该是取main的y坐标
var sidebarYMin = 0;
var sidebarYMax = 0;
confListener();
function confListener(){
    window.onscroll = onScrollH;
}
//取得元素x坐标 
function pageX(elem) { 
    return elem.offsetParent?(elem.offsetLeft+pageX(elem.offsetParent)):elem.offsetLeft; 
} 
//取得元素y坐标 
function pageY(elem) { 
    return elem.offsetParent?(elem.offsetTop+pageY(elem.offsetParent)):elem.offsetTop; 
}  
function onScrollH(){
    var divMain = document.getElementById("main");
    var divSidebar = document.getElementById("allsidebars");
    baseTop = pageY(divMain);//window.scrollTop总是>sidebar的top这么多
    sidebarYMin = 0;
    sidebarYMax = divMain.clientHeight - divSidebar.clientHeight - 15;//15是main的paddingbottom;
    //获取总高度,chrome和ie/ff正好相反，一个值是0，一个有值
    var newScrolltop = document.documentElement.scrollTop + document.body.scrollTop;
    if (newScrolltop > curScrolltop) {
        //向下滚动了
		//看是否 sidebar最底端 < 屏幕最底端
        if (divSidebar.clientHeight + pageY(divSidebar) < newScrolltop + document.documentElement.clientHeight) {
			var toY = newScrolltop + document.documentElement.clientHeight - divSidebar.clientHeight - baseTop;
            if (toY<sidebarYMax) {
				setSideBarY(toY);
			}else{
				setSideBarY(sidebarYMax);
			}
        }
    }
    if (newScrolltop < curScrolltop) {
        //上滚动
		//看是否sidebar最顶端 > 屏幕最顶端
        if (pageY(divSidebar) > newScrolltop) {
            if (newScrolltop - baseTop < sidebarYMin) {
                setSideBarY(0);
            }
            else {
                setSideBarY(newScrolltop - baseTop);
            }
        }
    }
    curScrolltop = newScrolltop;
}

function setSideBarY(y){
    document.getElementById("allsidebars").style.marginTop = y + 'px';
}

