//Measure Line Class

function measureLine(divLine) {
	var m_divLine = divLine;
	var m_bInProgress = false;

	var m_iStartX = null;
	var m_iStartY = null;
	var m_iEndX = null;
	var m_iEndY = null;
	var m_polyX = new Array();
	var m_polyY = new Array();
	
	this.isInProgress = isInProgress;

	this.getStartX = getStartX;
	this.getStartY = getStartY;
	this.getEndX = getEndX;
	this.getEndY = getEndY;
	
	this.start = start;
	this.update = update;
	this.stop = stop;
	this.clear = clear;
	
	this.show = show;
	this.hide = hide;
	
	this.len = len;
	this.polylen = polylen;
	this.drawPoly = drawPoly;

  // ***********************************************
	// *************** Methods ***********************
	// ***********************************************
	

	function start(x, y) {
		
		jg.clear();
		m_iStartX = x;
		m_iStartY = y;
		m_iEndX = x;
		m_iEndY = y;
		m_bInProgress = true;		
	}

	function update(x, y) {

		// This method should not be called unless
		// the zoomBox is in progress.  

		if (!(m_bInProgress)) {
			return false;
		}

		m_iEndX = x;
		m_iEndY = y;

		//call wz_jsgraphics to draw line
		jg.clear();
		jg.setStroke(2)
		jg.drawLine(m_iStartX,m_iStartY,m_iEndX,m_iEndY)
		jg.paint()

	}

	function stop() {
		m_bInProgress = false;
	}

	function clear() {
		jg.clear();
		dl.clear();
	}

	function show() {
		m_divLine.style.visibility = 'visible';		
	}

	function hide() {
		m_divLine.style.visibility = 'hidden';
	}
	
	function drawPoly(x, y, s){
	
		dl.clear();
		dl.setStroke(2)
		dl.drawPolyline(x, y, s)
		dl.paint()
		m_polyX = x;
		m_polyY = y;
	}
  // ***********************************************
	// *********** Accessor Methods ******************
	// ***********************************************


	function getStartX() {
		return m_iStartX;
	}

	function getStartY() {
		return m_iStartY;
	}

	function getEndX() {
		return m_iEndX;
	}

	function getEndY() {
		return m_iEndY;
	}

	function len() {
		m_len = Math.sqrt((m_iEndX - m_iStartX)*(m_iEndX - m_iStartX) + (m_iEndY - m_iStartY)*(m_iEndY - m_iStartY))
		return m_len;
	}
	
	function polylen() {
		var m_plen = 0;
		for (idx=0; idx<m_polyX.length-1; idx++) {
			m_plen += Math.sqrt((m_polyX[idx+1] - m_polyX[idx])*(m_polyX[idx+1] - m_polyX[idx]) + (m_polyY[idx+1] - m_polyY[idx])*(m_polyY[idx+1] - m_polyY[idx]))
		}
		return m_plen;
	}

	function isInProgress() {
		return m_bInProgress;
	}

}
