<%+cbi/valueheader%>
<textarea id="amlogic.ophub.clog" class="cbi-input-textarea" style="width: 100%;display:inline" data-update="change" rows="8" cols="60" readonly="readonly" > </textarea>
<fieldset class="cbi-section">
	<table width="100%">
		<tr>
			<td width="25%" align="center"><input type="button" class="cbi-button cbi-button-apply" id="stop_refresh_button" value="<%:Stop Refresh Log%>" onclick=" return stop_refresh() "/></td>
			<td width="25%" align="center"><input type="button" class="cbi-button cbi-button-apply" id="start_refresh_button" value="<%:Start Refresh Log%>" onclick=" return start_refresh() "/></td>
			<td width="25%" align="center"><input type="button" class="cbi-button cbi-button-apply" id="del_log_button" value="<%:Clean Log%>" style=" display:inline;" onclick=" return del_log() " /></td>
			<td width="25%" align="center"><input type="button" class="cbi-button cbi-button-apply" id="down_log_button" value="<%:Download Log%>" style=" display:inline;" onclick=" return download_log() " /></td>
		</tr>
	</table>
</fieldset>

<script type="text/javascript">//<![CDATA[
var r

function stop_refresh() {
	clearTimeout(r);
	return
}

function start_refresh() {
	clearTimeout(r);
	r=setTimeout("poll_log()",1000*2);
	return
}

function createAndDownloadFile(fileName, content) {
	var aTag = document.createElement('a');
	var blob = new Blob([content]);
	aTag.download = fileName;
	aTag.href = URL.createObjectURL(blob);
	aTag.click();
	URL.revokeObjectURL(blob);
}

function download_log(){
	var lv = document.getElementById('amlogic.ophub.clog');
	var dt = new Date();
	var timestamp = dt.getFullYear()+"-"+(dt.getMonth()+1)+"-"+dt.getDate()+"-"+dt.getHours()+"-"+dt.getMinutes()+"-"+dt.getSeconds();
	createAndDownloadFile("Amlogic-"+timestamp+".log",lv.innerHTML)
	return
}

function del_log() {
	XHR.get('<%=luci.dispatcher.build_url("admin", "system", "amlogic", "del_log")%>',null,function(x, data){
		var lv = document.getElementById('amlogic.ophub.clog');
			lv.innerHTML="";
		}
	);
	return
}

function p(s) {
	return s < 10 ? '0' + s: s;
}

function line_tolocal(str){
	var strt=new Array();
	str.trim().split('\n').forEach(function(v, i) {
	var dt = new Date(v.substring(6,26));
	if (dt != "Invalid Date"){
		strt[i]=dt.getFullYear()+"-"+p(dt.getMonth()+1)+"-"+p(dt.getDate())+" "+p(dt.getHours())+":"+p(dt.getMinutes())+":"+p(dt.getSeconds())+v.substring(27);
	}else{
		strt[i]=v;}})
	var old_log_line = sessionStorage.log_line;
	if ( old_log_line != null && strt.length != null ) {
		if (old_log_line - strt.length < 0) {
			sessionStorage.log_line = strt.length;
			return strt.slice('-'+(strt.length-old_log_line))
		}
			else if (old_log_line == strt.length) {
				sessionStorage.log_line = strt.length;
				return
		}
		else if (old_log_line - strt.length > 0) {
			sessionStorage.log_line = strt.length;
			var lv = document.getElementById('amlogic.ophub.clog');
			lv.innerHTML = "";
			return strt
		}
	}
	else if ( strt.length != null ) {
		sessionStorage.log_line = strt.length;
		return strt
	}
	else {
		sessionStorage.log_line = "0";
		return strt
	}
}

function poll_log(){
	XHR.get('<%=luci.dispatcher.build_url("admin", "system", "amlogic", "refresh_log")%>', null,
	function(x, data) {
		if ( x && x.status == 200 ) {
			var lv = document.getElementById('amlogic.ophub.clog');
			if (x.responseText && lv) {
				var lines=line_tolocal(x.responseText);
				if (lines != null) {
					lv.innerHTML = lines.reverse().join('\n')+'\n'+lv.innerHTML;
					//lv.innerHTML = x.responseText.split('\n').reverse().join('\n')+lv.innerHTML;
				}
			}
		}
	}
	);
	r=setTimeout("poll_log()",1000*2);
}

sessionStorage.removeItem("log_line");
poll_log();

//]]>
</script>

<%+cbi/valuefooter%>