var read_flg = false;
var threadNum, threadObj;

function getNumberOfTextNode(elm){
	var str = elm.innerHTML;
	str = toHankaku(str);
	str = str.replace("&gt;&gt;","");
	str = str.replace("&gt;","");
	str = str.replace(">>","");
	str = str.replace(">","");
	return str;
}
function toHankaku(motoText){
	if(!motoText){
		return;
	}
	var han = "0123456789.,-+>";
	var zen = "０１２３４５６７８９．，－＋＞";
	var str = "";
	for(i=0; i<motoText.length; i++){
		c = motoText.charAt(i);
		n = zen.indexOf(c,0);
		if (n >= 0){c = han.charAt(n);}
		str += c;
	}
	return str;
}


function getEventHigh(e){
 var y;

  var mainTop = document.getElementById('content_base').offsetTop;

 if(window.event != null){
  if(document.all && window.XMLHttpRequest && !window.opera){
   //IE7
   y = window.event.clientY + document.body.scrollTop - mainTop;
  }else{
   //Opera and Chrome
   y = window.event.y + document.body.scrollTop - mainTop;
  }
 }else{
  //FF
  y = e.pageY - mainTop;
 }
  return y;
}



function viewNextThread(event, elm){
	if(!event){
		event = window.event;
	}
	var high = getEventHigh(event);
	if(read_flg == false){
		joinOnThreadMethod(elm, high);
	}else{
		var nextRow = getNumberOfTextNode(elm);
		executeView(nextRow, high);
	}
}

function joinOnThreadMethod(elm, high){
	var scriptNode = document.createElement('script');
	scriptNode.setAttribute("type", "text/javascript");
	scriptNode.setAttribute("src", "/js/read_new_thread.js");
	elm.parentNode.appendChild(scriptNode);
	var nextRow = getNumberOfTextNode(elm);
	setViser("read_flg != false", "executeView('" + nextRow + "', " + high + ")" , 150 );
}

function executeView(nextRow, high){
	if(!threadObj){
		threadNum = new ThreadNumber(window.location.pathname);
		threadObj = new ReadNewThread(threadNum);
	}else{
		if(threadObj.getThreadNum() != threadNum.getNumber()){
			threadObj.closeWindow();
			threadNum = null;
			threadObj = null;
			threadNum = new ThreadNumber(window.location.pathname);
			threadObj = new ReadNewThread(threadNum);
		}
	}
	threadObj.viewThreadRow(nextRow, high);
}

var g_IdViser = new Array();
var g_NumViser = 0;
var g_i = 0;
function setViser( cond , funcCall , timeVise){
    strFunc = "" +
          "if(" + cond +"){ " + 
          "clearInterval(g_IdViser[" + g_NumViser + "]);" 
          + funcCall + ";" + 
          "}";
    g_IdViser[g_NumViser] = setInterval( strFunc , timeVise);
    g_NumViser++;
}

