
<fieldset class="cbi-section">

	<table>
	  <tr><td width="100%" colspan="4" align="center" id="update_tip"><b> 注意：如更新失败可手动下载并上传，内核路径为：/etc/openclash </b></td></tr>
	  <tr><td width="25%"> 已选择编译版本 </td><td width="25%" align="left" id="CORE_VERSION"><%:Collecting data...%></td><td width="25%"> 上次检查更新时间 </td><td width="25%" align="left" id="CHECKTIME"><%:Collecting data...%></td></tr>
		<tr><td width="25%"> 处理器架构（PROC） </td><td width="25%" align="left" id="CPU_MODEL"><%:Collecting data...%></td><td width="25%"> 处理器架构（OPKG） </td><td width="25%" align="left" id="CPU_MODEL2"><%:Collecting data...%></td></tr>
		<tr><td width="25%"> 当前内核版本 </td><td width="25%" align="left" id="CORE_CV"><%:Collecting data...%></td><td width="25%"> 当前客户端版本 </td><td width="25%" align="left" id="OP_CV"><%:Collecting data...%></td></tr>
		<tr><td width="25%"> 最新内核版本 </td><td width="25%" align="left" id="CORE_LV"><%:Collecting data...%></td><td width="25%"> 最新客户端版本 </td><td width="25%" align="left" id="OP_LV"><%:Collecting data...%></td></tr>
	  <tr><td width="25%"> 更新内核</td><td width="25%" align="left" id="core_up"><%:Collecting data...%></td><td width="25%"> 更新客户端 </td><td width="25%" align="left" id="op_up"><%:Collecting data...%></td></tr>
	  <tr><td width="25%"> 下载最新版本内核</td><td width="25%" align="left" id="ma_core_up"><%:Collecting data...%></td><td width="25%"> 下载最新版本客户端 </td><td width="25%" align="left" id="ma_op_up"><%:Collecting data...%></td></tr>
	</table>

</fieldset>

<script type="text/javascript">//<![CDATA[
  var core_version = document.getElementById('CORE_VERSION');
  var checktime = document.getElementById('CHECKTIME');
	var cpu_model = document.getElementById('CPU_MODEL');
	var cpu_model2 = document.getElementById('CPU_MODEL2');
	var core_cv = document.getElementById('CORE_CV');
	var core_lv = document.getElementById('CORE_LV');
	var op_cv = document.getElementById('OP_CV');
	var op_lv = document.getElementById('OP_LV');
	var core_up = document.getElementById('core_up');
	var op_up = document.getElementById('op_up');
	var update_tip = document.getElementById('update_tip');
	var ma_core_up  = document.getElementById('ma_core_up');
	var ma_op_up  = document.getElementById('ma_op_up');
	XHR.get('<%=luci.dispatcher.build_url("admin", "services", "openclash", "update")%>', null, function(x, status) {
		if ( x && x.status == 200 ) {
		  if ( status.corever != "0\n" && status.corever != "" ) {
		     core_version.innerHTML = "<b><font color=green>"+status.corever+"</font></b>";
		  }
		  else {
		     core_version.innerHTML = "<b><font color=red><%:未选择编译版本，请到全局设置中配置%></font></b>";
		  }
		  if ( status.upchecktime != "1" ) {
		     checktime.innerHTML = "<b><font color=green>"+status.upchecktime+"</font></b>";
		  }
		  else {
		     checktime.innerHTML = "<b><font color=red><%:查询更新失败%></font></b>";
		  }
		  cpu_model.innerHTML = status.coremodel ? "<b><font color=green>"+status.coremodel+"</font></b>" : "<b><font color=red><%:Model Not Found%></font></b>";
      cpu_model2.innerHTML = status.coremodel2 ? "<b><font color=green>"+status.coremodel2+"</font></b>" : "<b><font color=red><%:Model Not Found%></font></b>";
      if ( status.corecv == "0" ) {
         core_cv.innerHTML = "<b><font color=red><%:File Not Exist%></font></b>";
      }
      else if (status.corecv != "") {
         core_cv.innerHTML = "<b><font color=green>"+status.corecv+"</font></b>";
      }
      else {
         core_cv.innerHTML = "<b><font color=red><%:Unknown%></font></b>";
      }
			if ( status.corelv != "" && status.corelv != status.corecv && status.corecv != "" && status.corecv != "0" && status.corelv != "\n" ) {
			   core_lv.innerHTML = "<b><font color=green>"+status.corelv+"<%:<New>%></font></b>";
			}
			else if (status.corelv != "" && status.corelv != "\n" ) {
			   core_lv.innerHTML = "<b><font color=green>"+status.corelv+"</font></b>";
			}
			else {
			   core_lv.innerHTML = "<b><font color=red><%:Unknown%></font></b>";
			}
			op_cv.innerHTML = status.opcv ? "<b><font color=green>"+status.opcv+"</font></b>" : "<b><font color=red><%:Unknown%></font></b>";
			if ( status.oplv != "" && status.oplv != "\n" && "v"+status.oplv != status.opcv && status.opcv != "" ) {
			   op_lv.innerHTML = "<b><font color=green>v"+status.oplv+"<%:<New>%></font></b>";
			}
			else if (status.oplv != "" && status.oplv != "\n") {
			   op_lv.innerHTML = "<b><font color=green>v"+status.oplv+"</font></b>";
			}
			else {
			   op_lv.innerHTML = "<b><font color=red><%:Unknown%></font></b>";
			}
		}
	});
  
	XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "services", "openclash", "update")%>', null, function(x, status) {
		if ( x && x.status == 200 ) {
		  if ( status.corever != "0\n" && status.corever != "" ) {
		     core_version.innerHTML = "<b><font color=green>"+status.corever+"</font></b>";
		  }
		  else {
		     core_version.innerHTML = "<b><font color=red><%:未选择编译版本，请到全局设置中配置%></font></b>";
		  }
		  if ( status.upchecktime != "1" ) {
		     checktime.innerHTML = "<b><font color=green>"+status.upchecktime+"</font></b>";
		  }
		  else {
		     checktime.innerHTML = "<b><font color=red><%:查询更新失败%></font></b>";
		  }
		  cpu_model.innerHTML = status.coremodel ? "<b><font color=green>"+status.coremodel+"</font></b>" : "<b><font color=red><%:Model Not Found%></font></b>";
      cpu_model2.innerHTML = status.coremodel2 ? "<b><font color=green>"+status.coremodel2+"</font></b>" : "<b><font color=red><%:Model Not Found%></font></b>";
      if ( status.corecv == "0" ) {
         core_cv.innerHTML = "<b><font color=red><%:File Not Exist%></font></b>";
      }
      else if (status.corecv != "") {
         core_cv.innerHTML = "<b><font color=green>"+status.corecv+"</font></b>";
      }
      else {
         core_cv.innerHTML = "<b><font color=red><%:Unknown%></font></b>";
      }
			if ( status.corelv != "" && status.corelv != status.corecv && status.corecv != "" && status.corecv != "0" && status.corelv != "\n" ) {
			   core_lv.innerHTML = "<b><font color=green>"+status.corelv+"<%:<New>%></font></b>";
			}
			else if (status.corelv != "" && status.corelv != "\n" ) {
			   core_lv.innerHTML = "<b><font color=green>"+status.corelv+"</font></b>";
			}
			else {
			   core_lv.innerHTML = "<b><font color=red><%:Unknown%></font></b>";
			}
			op_cv.innerHTML = status.opcv ? "<b><font color=green>"+status.opcv+"</font></b>" : "<b><font color=red><%:Unknown%></font></b>";
			if ( status.oplv != "" && status.oplv != "\n" && "v"+status.oplv != status.opcv && status.opcv != "" ) {
			   op_lv.innerHTML = "<b><font color=green>v"+status.oplv+"<%:<New>%></font></b>";
			}
			else if (status.oplv != "" && status.oplv != "\n") {
			   op_lv.innerHTML = "<b><font color=green>v"+status.oplv+"</font></b>";
			}
			else {
			   op_lv.innerHTML = "<b><font color=red><%:Unknown%></font></b>";
			}
		}
	});
	
	core_up.innerHTML = '<input type="button" class="cbi-button cbi-button-reload" value="<%:检查并更新%>" onclick="return core_update(this)"/>';
	op_up.innerHTML = '<input type="button" class="cbi-button cbi-button-reload" value="<%:检查并更新%>" onclick="return op_update(this)"/>';
	ma_core_up.innerHTML = '<input type="button" class="cbi-button cbi-button-reload" value="<%:下载到本地%>" onclick="return ma_core_update(this)"/>';
	ma_op_up.innerHTML = '<input type="button" class="cbi-button cbi-button-reload" value="<%:下载到本地%>" onclick="return ma_op_update(this)"/>';
	
	function core_update(btn)
    {
        btn.disabled = true;
        btn.value    = '<%:运行中...%>';
        XHR.get('<%=luci.dispatcher.build_url("admin", "services", "openclash", "coreupdate")%>', status.coreup, function(x, status) {
        if ( x && x.status == 200 ) {
        btn.value    = '<%:检查并更新%>';
        btn.disabled = false;
        }
        });
        return false; 
    }
	
	function op_update(btn)
    {
        btn.disabled = true;
        btn.value    = '<%:运行中...%>';
        XHR.get('<%=luci.dispatcher.build_url("admin", "services", "openclash", "opupdate")%>', status.opup, function(x, status) {
        if ( x && x.status == 200 ) {
        btn.value    = '<%:检查并更新%>';
        btn.disabled = false;
        }
        });
        return false; 
    }
    
    function ma_core_update(btn)
    {
        btn.value    = '<%:下载到本地%>';
        btn.disabled = false;
        XHR.get('<%=luci.dispatcher.build_url("admin", "services", "openclash", "update_ma")%>', status.corever, function(x, status) {
        if ( x && x.status == 200 ) {
           if ( status.corever != "0\n" ) {
              url1='https://github.com/vernesong/OpenClash/releases/download/Clash/clash-'+status.corever+'.tar.gz';
              window.open(url1);
           }
           else {
              alert('未选择编译版本，请到全局设置中配置！')
           }
        }
        });
        return false; 
    }
    
    function ma_op_update(btn)
    {
        btn.value    = '<%:下载到本地%>';
        btn.disabled = false;
        XHR.get('<%=luci.dispatcher.build_url("admin", "services", "openclash", "update_ma")%>', status.oplv, function(x, status) {
        if ( x && x.status == 200 ) {
           if ( status.oplv != "" && status.oplv != "\n" ) {
              url2='https://github.com/vernesong/OpenClash/releases/download/v'+status.oplv+'/luci-app-openclash_'+status.oplv+'_all.ipk';
              window.open(url2);
           }
           else {
              alert('最新版本获取失败，请稍后再试！')
           }
        }
        });
        return false; 
    }
    
    XHR.poll(7, '<%=luci.dispatcher.build_url("admin", "services", "openclash", "startlog")%>', status.startlog, function(x, status) {
	  if ( x && x.status == 200 ) {
		   if ( status.startlog == "\n" || status.startlog == "" ) {
		      var rdmdl=Math.floor(Math.random()*2)+1;
		      if(rdmdl==1)
          {
             update_tip.innerHTML = '<b><font><%: 注意：如更新失败可手动下载并上传，内核路径为：/etc/openclash %></font></b>';
          }
          if(rdmdl==2)
          {
             update_tip.innerHTML = '<b><font><%: 注意：客户端只支持通过IPK安装的版本进行更新，因为随系统编译的版本更新后不会释放旧版本的闪存空间 %></font></b>';
          }
       }
    }
	});
	
	XHR.poll(2, '<%=luci.dispatcher.build_url("admin", "services", "openclash", "startlog")%>', status.startlog, function(x, status) {
	  if ( x && x.status == 200 ) {
		   if ( status.startlog != "\n" && status.startlog != "" ) {
	     update_tip.innerHTML = '<b><font color="green">'+status.startlog+'</font></b>';
	     }
	  }
	});

//]]></script>
      