//*****************************************************************************
// InputRegionModifier
//
// initParam()
// getRgnStart()
// getRgnEnd()
// shiftRgn(start, end, dr) 
// expandRgn(start, end, prcnt)
//
// Copyright(c) 2008 by DYNACOM Co.,Ltd. All rights reserved.
//*****************************************************************************

var InputRegionModifier = function (){
	//**********************************************************
	// constructor
	//**********************************************************
	var rgn_start = -1;
	var rgn_end = -1;
	var rgn_max_len = -1;
	
	//**********************************************************
	// init
	//**********************************************************
	this.initParam = function(){
		this.rgn_start = -1;
		this.rgn_end = -1;
		this.rgn_max_len = -1;
		
		return 1;
	};
	//**********************************************************
	//
	//**********************************************************
	this.getRgnStart = function(){
		return this.rgn_start;
	};
	//**********************************************************
	//
	//**********************************************************
	this.getRgnEnd = function(){
		return this.rgn_end;
	};	
};
//*****************************************************************************
//
// dr : shift direction and move ratio
//*****************************************************************************
InputRegionModifier.prototype.shiftRgn = function (start, end, dr){
	this.initParam();
	
	var rgnLen = eval(end) - eval(start) + 1;
	
	this.rgn_start = eval(start) + eval(rgnLen * dr);
	this.rgn_end = eval(end) + eval(rgnLen * dr);
	
	return 1;
};
//*****************************************************************************
//
// prcnt : 
// (200, 400) / 50%  = (100, 500)
// (200, 400) / 200% = (250, 350)
//*****************************************************************************
InputRegionModifier.prototype.expandRgn = function(start, end, prcnt){
	this.initParam();
	
	var center = Math.round((eval(start) + eval(end)) / 2);
	var hRange = Math.round((eval(end) - eval(start)) / 2);

	if(hRange == 0)
		hRange = 1;
	
	var t_start = Math.round(center - (hRange / (prcnt / 100)));
	var t_end = Math.round(center + (hRange / (prcnt / 100)));

	if(t_start < 1){
		t_end = eval(t_end) - eval(t_start);
		t_start = 1;
	}

	this.rgn_start = t_start;
	this.rgn_end = t_end;
	
	return 1;
};
//*****************************************************************************
//
//*****************************************************************************


