var start_obj;
var end_obj;
var startEvent;
var endEvent;
var barOn_obj;

var start_dragapproved = false;
var end_dragapproved = false;
var zindex = 100;
var start_obj_onload = 1; // 처음 로딩될때 화살표 두개중 첫번째 (연도시작) 의 위치값.
var end_obj_onload = 5.9; // 처음 로딩될때 화살표 두개중 두번째 (연도 끝) 의 위치값.


window.onload = function(){
    start_obj = document.getElementById('startArrow_id'); // 초기세팅 첫번재 화살표
    end_obj = document.getElementById('endArrow_id'); // 초기세팅 두번째 화살표
    barOn_obj = document.getElementById('history_barOn'); // 주황색 바.

    start_obj.style.left = start_obj_onload * gap ;
    end_obj.style.left = end_obj_onload * gap ;
    barOn_obj.style.left = start_obj_onload * gap ;
    barOn_obj.style.width = (parseInt(end_obj.style.left)) - (parseInt(start_obj.style.left)) ;
    call_history_sendRequest(start_obj_onload , end_obj_onload); // 처음 세팅된 값으로 자료 송신호출
}

function start_drag_move(e){  // 첫번째 화살표 드래그(마우스 무브)
    if(start_dragapproved){
        var willLeft = start_base_x + e.clientX - start_previous_x;

        start_obj.style.left = willLeft;

        if((parseInt(start_obj.style.left)) < gap ) {
            start_obj.style.left = gap;
        }
        if((parseInt(start_obj.style.left)) > varwidth ){
            start_obj.style.left = varwidth;
        }
        barOn_obj.style.left = start_obj.style.left;
        barOn_obj.style.width = (parseInt(end_obj.style.left)) - (parseInt(start_obj.style.left)) ;

        if((parseInt(start_obj.style.left)+gap) > (parseInt(end_obj.style.left))){
            end_obj.style.left = parseInt(start_obj.style.left)+gap ;
        }
        return false;
    }
}
function start_drag(e){ // 첫번째 화살표 클릭( 드래그하기위해..) 
    start_obj.style.zIndex = zindex++;
    start_base_x = parseInt(start_obj.style.left);   // 화살표의 처음 위치 
    start_previous_x =  e.clientX; // 클릭이벤트
    start_dragapproved = true;
    start_obj.onmouseup = start_drag_release;

}
function start_drag_release(){ // 드래그 끝
    start_dragapproved=false;
    call_history_data(parseInt(start_obj.style.left) , parseInt(end_obj.style.left) );
}
function end_drag_move(e){ // 두번째 화살표 드래그 (마우스 무브) 
    if(end_dragapproved){
        var willLeft = end_base_x + e.clientX - end_previous_x;
        end_obj.style.left = willLeft;
        if((parseInt(end_obj.style.left)) < gap *2 ) {  // 너무 왼쪽으로 드래그 방지
            end_obj.style.left = gap*2;
        }
        if((parseInt(end_obj.style.left)) > varwidth+gap ){ // 너무 오른쪽으로 드래그 방지
            end_obj.style.left = varwidth+gap;
        }
        barOn_obj.style.left = start_obj.style.left; // 주황색 바 위치 , 길이 수정
        barOn_obj.style.width = (parseInt(end_obj.style.left)) - (parseInt(start_obj.style.left)) ;

        if(parseInt(start_obj.style.left) > (parseInt(end_obj.style.left)-gap)){ // 화살표 두개가 너무가까워 지지 않도록 거리유지
            start_obj.style.left = parseInt(end_obj.style.left)-gap ;
        }
        return false;
    }
}
function end_drag(e){ //  두번째 화살표 드래그 시작.
    end_obj.style.zIndex = zindex++;
    end_base_x = parseInt(end_obj.style.left);
    end_previous_x =  e.clientX;
    end_dragapproved = true;   
    end_obj.onmouseup = end_drag_release;
}
function end_drag_release(){ // 두번재 화살표 드래그 끝
    end_dragapproved = false;
    call_history_data(parseInt(start_obj.style.left) , parseInt(end_obj.style.left) );
}
function call_history_data(start , end ){  // 마우스 릴리즈 될때 의 두개의 화살표의 위치 값 계산 (px 값을 총 연도의 개수단위로 수정)
    var intgap = gap ;
    start = start/intgap ;
    end = end/intgap;
    start = parseInt(start);
    end = parseInt(end);
    call_history_sendRequest(start , end);  // 자료 요청.

}
function call_history_sendRequest(start , end){ // 자료 요청. common/js/ httpRequest.js 필요
    var Url = "history_data.php?start="+start+"&end="+end;
    sendRequest(Url , null  , history_content_loaded , "GET");
}

function history_content_loaded(){ // 자료 받음 
    if(httpRequest.readyState == 4){
        if(httpRequest.status == 200 ){
            var historyArea = document.getElementById('history');
            historyArea.innerHTML = httpRequest.responseText;
        }else{
            // 자료요청 후 대기 .
           // 뭘.. 특별히 하기엔  너무 짧은시간이라서 그냥 놔둡니다. 
        }
    }
}
