//******************************************************************************
//
// parse genome position string of UCSC Genome Browser or Ensembl Genome Browser
//
//
// pstr : position info. string
// e.g.)
//-------------------------------------
// chrX:57,795,963-57,815,592
//-------------------------------------
//
//-------------------------------------
// Chromosome X
// 78,840,994 - 78,940,995
//-------------------------------------
//
// Copyright(c) 2008 by DYNACOM Co.,Ltd. All rights reserved.
//******************************************************************************
var ParseGenomeRgnStr = function() {
	//
	// constructor
	// set private value
	//
	var string_type = "unknown";
	var chr_str = -1;
	var chr_start = -1;
	var chr_end = -1;
	var valid_data_flg = false;
	//
	// public methods
	//
	this.initParam = function (){
		this.string_type = "unknown";
		this.chr_str = -1;
		this.chr_start = -1;
		this.chr_end = -1;
		this.valid_data_flg = false;
	};
	this.getStrType = function () {
		return this.string_type;
	};
	this.getChrStr = function() {
		return this.chr_str;
	};
	this.getChrStart = function() {
		return this.chr_start;
	};
	this.getChrEnd = function() {
		return this.chr_end;
	};
	this.getValidDataFlg = function() {
		return this.valid_data_flg;
	};
};
//*****************************************************************************
//
//*****************************************************************************
ParseGenomeRgnStr.prototype.parseUCSCRgnString = function(_pstr) {

	var pstr = _pstr;
	var ucscDataFlg = false;
	pstr = pstr.replace(/\s/g, "");   // \s : space, tab, return
	
	if(pstr.match(/chr(\d{1,2}|X|Y):([\d,]+)-([\d,]+)/)){

		this.string_type = "UCSC";
		this.chr_str = RegExp.$1;
		this.chr_start = RegExp.$2;
		this.chr_end = RegExp.$3;
		ucscDataFlg = true;
	}
	return ucscDataFlg;
};
//*****************************************************************************
//
//*****************************************************************************
ParseGenomeRgnStr.prototype.parseEnsemblRgnString = function(_pstr) {

	var pstr = _pstr;

	var ensDataFlg = false;
	pstr = pstr.replace(/\s+/g, " ");   // \s : space, tab, return
//alert(pstr);
	if(pstr.match(/Chromosome\s?(\d{1,2}|X|Y)\s([\d,]+)\s?-\s?([\d,]+)/)){

		this.string_type = "Ensembl";
		this.chr_str = RegExp.$1;
		this.chr_start = RegExp.$2;
		this.chr_end = RegExp.$3;
		ensDataFlg = true;
	}
	return ensDataFlg;
};
//*****************************************************************************
//
//*****************************************************************************
ParseGenomeRgnStr.prototype.parseRgnString = function(pstr) {

	this.valid_data_flg = false;
	
	if(this.parseUCSCRgnString(pstr) == true){
		this.valid_data_flg = true;
	}
	else if(this.parseEnsemblRgnString(pstr) == true){
		this.valid_data_flg = true;
	}
	
	return this.valid_data_flg;
};
//*****************************************************************************
//
//*****************************************************************************
