﻿// JScript 文件
var _url = "http://" + location.hostname + "/";

var GetDomain = function(){
  if(location.hostname == "localhost"){
    _url = "http://" + location.hostname + ":" + location.port + "/kagetu/";
  }
  else{
    _url = "http://" + location.hostname + "/";
  }
}

function $(objId){	
 if(typeof(objId)!="object")
   return document.getElementById(objId);
 else
   return objId;
}

//取url中参数
function GetQueryString(name){   
  var reg = new RegExp("(^|&)"+   name   +"=([^&]*)(&|$)");   
  var r = window.location.search.substr(1).match(reg);   
  if (r!=null){
    return unescape(r[2]); 
  }       
  return null;   
} 

//隐藏或显示div元素
function HideOrDisplayDiv(elementId){
  var elDiv = document.getElementById(elementId);
  
  if(elDiv.style.display == 'none'){
    elDiv.style.display = 'block';
  }
  else{
    elDiv.style.display = 'none';
  }
}

//取得当前打开的网页文件名称并转换为小写，大写用toUpperCase()
function GetCurrentPageName(){
  var strUrl = window.location.href;
  strUrl = strUrl.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
  
  return strUrl.toLowerCase();
}

//得到YY-MM-DD格式日期
function GetDate(){   
  var dtNow=new Date();
  var y = dtNow.getFullYear();
  var m = dtNow.getMonth()+1;
  var d = dtNow.getDate();
  m = m < 10 ? "0"+m : m;
  d = d < 10 ? "0"+d : d;
  return y + "-" + m + "-" + d;
}

//处理firefox不支持xml里的html标签
var replyNumber = 0;
function processFirefox(elID){      
  var pel = document.getElementById(elID);
  var el;
  el = pel.getElementsByTagName("p")[replyNumber];
  if(el != null){
    el.innerHTML = el.firstChild.data;      
    replyNumber = replyNumber + 1; 
  }   
  else{
    replyNumber = 0;
  }  
}

//动态加载js或者css文件，似乎在加载过程中不支持调用加载文件中的函数
function LoadJsOrCssFile(filename, filetype){
  if (filetype=="js"){ //如果是.js文件
    var fileref=document.createElement('script');
    fileref.setAttribute("type","text/javascript");
    fileref.setAttribute("src",filename);
  }
  else if (filetype=="css"){ //如果是.css文件
    var fileref=document.createElement("link");
    fileref.setAttribute("rel", "stylesheet");
    fileref.setAttribute("type", "text/css");
    fileref.setAttribute("href",filename);
  }
  if (typeof fileref != "undefined")
    document.getElementsByTagName("head")[0].appendChild(fileref);
}

//避免重复加载js或者css，与LoadJsOrCssFile()配套使用
var filesadded = ""; //保存已经加载的文件列表的变量 
function CheckLoadJsOrCssFile(filename, filetype){
  if (filesadded.indexOf("["+filename+"]")==-1){ //查询已加载文件列表，不存在即加载
    LoadJsOrCssFile(filename, filetype);
    filesadded += "["+filename+"]"; //在变量中添加加载的文件列表
  }
} 

//初始化页面函数
function InitializationPage(){
  //动态载入css或js文件
  //CheckLoadJsOrCssFile("Css/default.css", "css");

  GetDomain();
    
  var strPageName = GetCurrentPageName();
  
  var strPageNameArray=new Array();  
  strPageNameArray = strPageName.split("_");
  
  var intPNALength = strPageNameArray.length;

  switch(strPageNameArray[0]){    
    case "code":
      if(intPNALength == 4){        
        ProcessCodeDocument(strPageNameArray[1], strPageNameArray[2], strPageNameArray[3]);
      }
      else{
        InitCodeDocument();
      }
      break;
    case "animation":
      if(intPNALength == 4){        
        ProcessAnimation(strPageNameArray[1], strPageNameArray[2], strPageNameArray[3]);
      }
      else{
        GetRandomTopAnimation();
      }
      break;
    case "article":
      break;
    case "createarticle":
      InitArticleWebManage();
      break;
    case "createanimation":
      InitAnimationWebManage();
      break;
    case "kageturegistry":
      break;
    case "forums":
      window.location.href = "forums/kagetu.xml";
      break;
    case "kagetu":
      break;
    default:
      InitDefault();
      break;
  }    
  
  //检查是否登录
  CheckLog();
  //搜索框初始化
  InitPageSuggest();
  //获得在线人数的同时防止挂机掉线，吐血……
  UpdateOnlineList();
  setInterval(UpdateOnlineList,12 * 60 * 1000);
}

var InitDefault = function(){
  var urlXML = _url + "AjaxProcess/kagetuAPHome.aspx";
  var strParams = "p=kagetu";

  document.getElementById("div_home_main_content").innerHTML = "<img src='" + _url + "images/loading.gif' alt='' />";
  
  var urlXSLT = _url + "Xslt/xsltHome.xsl?seed=" + (new Date()).valueOf();
      
  LoadXMLXSLTDoc(urlXML, urlXSLT, "div_home_main_content", strParams);
}

//初始化处理添加动画页面
var InitAnimationWebManage = function(){
  var strP = GetQueryString("p");
  var strC = GetQueryString("c");
  var strSL = GetQueryString("sl");
  var strAction = GetQueryString("action");
  
  var strUrl = _url + "AjaxProcess/kagetuAPManageAnimation.aspx";
  var strParams = "p=" + encodeURIComponent(strP) + "&c=" + encodeURIComponent(strC) + "&sl=" + 
    encodeURIComponent(strSL) + "&action=init";
  new kagetuAjaxRequest(strUrl, InitAnimationWebManageOnload, InitAnimationWebManageOnready, null, "POST", strParams); 
}
var InitAnimationWebManageOnload = function(){
  $("div_no_permission").innerHTML = "<img src='" + _url + "images/loading.gif' alt='' />";
}
var InitAnimationWebManageOnready = function(){
  var strAction = GetQueryString("action");
  var resResult = this.req.responseXML; 
   
  var boolResult = resResult.getElementsByTagName("passed")[0].firstChild.data;  
  if( boolResult == "true"){    
    if(strAction == "edit"){
      $("txtAnimationName").value = resResult.getElementsByTagName("name")[0].firstChild.data;  
      $("txtAbstruct").value = resResult.getElementsByTagName("abstruct")[0].firstChild.data; 
      $("txtInitial").value = resResult.getElementsByTagName("initial")[0].firstChild.data; 
      var strSeriesOrEnd = resResult.getElementsByTagName("classId")[0].firstChild.data; 
      if(strSeriesOrEnd == "10301"){
        $("radSeries").checked = true;
        $("radEnd").checked = false;
      }
      else{
        $("radSeries").checked = false;
        $("radEnd").checked = true;
      }        
    }  
    $("div_create_animation_content").style.display = "block";    
    $("div_no_permission").style.display = "none";    
  }
  else{  
    $("div_no_permission").style.display = "block";
    $("div_no_permission").innerHTML = resResult.getElementsByTagName("description")[0].firstChild.data;
    $("div_create_animation_content").style.display = "none"; 
  }  
}
//选择连载还是完结
var SeriesOrEnd = function(val){
  if(val == "series"){
    $("radSeries").checked = true;
    $("radEnd").checked = false;
  }
  if(val == "end"){
    $("radSeries").checked = false;
    $("radEnd").checked = true;
  }
}
var CreateAnimation = function(){
  var strP = GetQueryString("p");
  var strOc = GetQueryString("c");
  var strC = $("radSeries").checked ? "10301" : "10300";
  var strSL = GetQueryString("sl");
  var strAction = GetQueryString("action");
  var strName = $("txtAnimationName").value;
  var strAbstruct = $("txtAbstruct").value;
  var strInitial = $("txtInitial").value;
  
  var strUrl = _url + "AjaxProcess/kagetuAPManageAnimation.aspx";
  var strParams = "p=" + encodeURIComponent(strP) + "&c=" + encodeURIComponent(strC) + "&sl=" + encodeURIComponent(strSL) + "&action=" + encodeURIComponent(strAction) +
    "&name=" + encodeURIComponent(strName) + "&abstruct=" + encodeURIComponent(strAbstruct) + "&initial=" + encodeURIComponent(strInitial) +
    "&oc=" + encodeURIComponent(strOc);
  new kagetuAjaxRequest(strUrl, CreateAnimationOnload, CreateAnimationOnready, null, "POST", strParams); 
}
var CreateAnimationOnload = function(){
  $("div_submit_animation").style.display = "none";
  $("span_tip").innerHTML = "提交中，请稍等……";
}
var CreateAnimationOnready = function(){
  var resResult = this.req.responseXML;  
  var boolResult = resResult.getElementsByTagName("passed")[0].firstChild.data;
  
  if( boolResult == "true"){    
    location.href = _url + resResult.getElementsByTagName("description")[0].firstChild.data;    
  }
  else{
    $("div_submit_animation").style.display = "block";
    $("span_tip").innerHTML = resResult.getElementsByTagName("description")[0].firstChild.data;  
  }
}

//初始化处理添加文章的页面
var InitArticleWebManage = function(){
  var strP = GetQueryString("p");
  var strC = GetQueryString("c");
  var strSL = GetQueryString("sl");
  var strA = GetQueryString("a");
  var strAction = GetQueryString("action");
  
  var strUrl = _url + "AjaxProcess/kagetuAPManageArticle.aspx";
  var strParams = "p=" + encodeURIComponent(strP) + "&c=" + encodeURIComponent(strC) + "&sl=" + 
    encodeURIComponent(strSL) + "&a=" + encodeURIComponent(strA) + "&action=init";
  new kagetuAjaxRequest(strUrl, InitArticleWebManageOnload, InitArticleWebManageOnready, null, "POST", strParams);  
}
var InitArticleWebManageOnload = function(){
  $("div_no_permission").innerHTML = "<img src='" + _url + "images/loading.gif' alt='' />";
}
var InitArticleWebManageOnready = function(){
  var strAction = GetQueryString("action");
  var resResult = this.req.responseXML; 
   
  var boolResult = resResult.getElementsByTagName("passed")[0].firstChild.data;  
  if( boolResult == "true"){    
    if(strAction == "create"){     
    }
    else if(strAction == "edit"){
      $("txtTitle").value = resResult.getElementsByTagName("title")[0].firstChild.data;  
      $("txtContent").value = resResult.getElementsByTagName("content")[0].firstChild.data; 
      $("div_delete_article").style.display = "block";
    }  
    $("div_create_article_content").style.display = "block";    
    $("div_no_permission").style.display = "none";    
  }
  else{
    $("div_no_permission").style.display = "block";
    $("div_no_permission").innerHTML = resResult.getElementsByTagName("description")[0].firstChild.data;
    $("div_create_article_content").style.display = "none";    
  }  
}

var CreateArticle = function(){
  var strP = GetQueryString("p");
  var strC = GetQueryString("c");
  var strSL = GetQueryString("sl");
  var strA = GetQueryString("a");
  var strAction = GetQueryString("action");
  var strTitle = $("txtTitle").value;
  var strContent = $("txtContent").value;
  
  var strUrl = _url + "AjaxProcess/kagetuAPManageArticle.aspx";
  var strParams = "p=" + encodeURIComponent(strP) + "&c=" + encodeURIComponent(strC) + "&sl=" + encodeURIComponent(strSL) + "&action=" + encodeURIComponent(strAction) +
    "&title=" + encodeURIComponent(strTitle) + "&content=" + encodeURIComponent(strContent) + "&a=" + encodeURIComponent(strA);
  new kagetuAjaxRequest(strUrl, CreateArticleOnload, CreateArticleOnready, null, "POST", strParams); 
}
var CreateArticleOnload = function(){
  $("div_submit_article").style.display = "none";
  $("span_tip").innerHTML = "提交中，请稍等……";
}
var CreateArticleOnready = function(){
  var resResult = this.req.responseXML;  
  var boolResult = resResult.getElementsByTagName("passed")[0].firstChild.data;
  
  if( boolResult == "true"){    
    location.href = _url + resResult.getElementsByTagName("description")[0].firstChild.data;    
  }
  else{
    $("div_submit_article").style.display = "block";
    $("span_tip").innerHTML = resResult.getElementsByTagName("description")[0].firstChild.data;  
  }
}

var DeleteArticle = function(){
  var strP = GetQueryString("p");
  var strC = GetQueryString("c");
  var strSL = GetQueryString("sl");
  var strA = GetQueryString("a");
  var strAction = GetQueryString("action");
  
  var strUrl = _url + "AjaxProcess/kagetuAPManageArticle.aspx";
  var strParams = "p=" + encodeURIComponent(strP) + "&c=" + encodeURIComponent(strC) + "&sl=" + encodeURIComponent(strSL) + "&action=delete" +
    "&a=" + encodeURIComponent(strA);
  new kagetuAjaxRequest(strUrl, DeleteArticleOnload, DeleteArticleOnready, null, "POST", strParams); 
}
var DeleteArticleOnload = function(){
  $("div_submit_article").style.display = "none";
  $("div_delete_article").style.display = "none";
  $("span_tip").innerHTML = "提交中，请稍等……";
}
var DeleteArticleOnready = function(){
  var resResult = this.req.responseXML;  
  var boolResult = resResult.getElementsByTagName("passed")[0].firstChild.data;
  
  if( boolResult == "true"){    
    $("span_tip").innerHTML = "删除成功！";
  }
  else{
    $("div_submit_article").style.display = "block";
    $("div_delete_article").style.display = "block";
    $("span_tip").innerHTML = resResult.getElementsByTagName("description")[0].firstChild.data;  
  }
}


//处理文件页面左边内容
function ProcessArticle(){
  var urlXml = _url + "Xml/xmlGoogleAdsense.xml";
  var urlXslt = _url + "Xslt/xsltGoogleAdsense.xsl";
  
  ClientLoadXmlXslt(urlXml, urlXslt, "div_google_adsense"); 
  var strTemp = $("div_google_adsense_detail").innerHTML;
  alert(strTemp);
  $("div_google_adsense_detail").innerHTML = strTemp;
}

//得到随机推荐和热门动画
function GetRandomTopAnimation(){
  var urlXML = _url + "AjaxProcess/kagetuAPAnimation.aspx";
  var strParams = "action=rt";

  document.getElementById("div_animation_left_content").innerHTML = "数据加载中……";
  
  var urlXSLT = _url + "Xslt/xsltRandomTopAnimation.xsl";
      
  LoadXMLXSLTDoc(urlXML, urlXSLT, "div_animation_left_content", strParams);
}
//显示动画集数列表
function ProcessAnimation(strP, strC, strSl){
  var urlXML = _url + "AjaxProcess/kagetuAPAnimation.aspx";
  var strParams = "p=" + encodeURIComponent(strP) + "&c=" + encodeURIComponent(strC) + "&sl=" + encodeURIComponent(strSl) + "&action=detail";

  document.getElementById("div_class_main_content").innerHTML = "<img src='" + _url + "images/loading.gif' alt='' />";
  
  var urlXSLT = _url + "Xslt/xsltDetailAnimation.xsl";
      
  LoadXMLXSLTDoc(urlXML, urlXSLT, "div_class_main_content", strParams);
}


//初始化"程序文档"
function InitCodeDocument(){
  var urlXML = _url + "AjaxProcess/kagetuAPCodeDocument.aspx";
  var strParams = "action=init";

  document.getElementById("div_class_main_content").innerHTML = "<img src='" + _url + "images/loading.gif' alt='' />";
  
  var urlXSLT = _url + "Xslt/xsltDefaultCodeDocument.xsl";
      
  LoadXMLXSLTDoc(urlXML, urlXSLT, "div_class_main_content", strParams);
}
//处理"程序文档"区的子版块数据
function ProcessCodeDocument(strP, strC, strPn){
  var urlXML = _url + "AjaxProcess/kagetuAPCodeDocument.aspx";
  var strParams = "p=" + encodeURIComponent(strP) + "&c=" + encodeURIComponent(strC) + "&pn=" + encodeURIComponent(strPn) + "&action=detail";

  document.getElementById("div_class_main_content").innerHTML = "<img src='" + _url + "images/loading.gif' alt='' />";
  
  var urlXSLT = _url + "Xslt/xsltDetailCodeDocument.xsl";
      
  LoadXMLXSLTDoc(urlXML, urlXSLT, "div_class_main_content", strParams);
}

//初始化登录框
function LoginDialog(){
  var title = "登录框";
  var content = "<br />代号：<input id='txtName' type='text' class='input_account_text' /><span id='spanUserNameTips'></span><br /><br />";
  content += "密码：<input id='txtPassword' type='password' class='input_account_text' /><br /><br /><input type='checkbox' id='chkPersist' />永久登录<br />";
  content += "<div id='btnLogin' class='div_button'><a href='javascript:void(0);' onclick='kagetuLogin()'>登录</a></div>";
  content += "<span id='spanLoginTips' class='warning_font'></span>";
    
  msg.Message(title, content, '32%', '32%','360px');
  msg.kagetuDialog = msg.CreateDialog('div_login', true);
}

//检查是否登录
function CheckLog(){
  var strUrl = _url + "AjaxProcess/kagetuAPLogin.aspx";
  var strParams = "action=cl";
  new kagetuAjaxRequest(strUrl, CheckLogOnload, CheckLogOnready, null, "POST", strParams);
}
function CheckLogOnload(){}
function CheckLogOnready(){ 
  var resResult = this.req.responseXML;
  var boolResult = resResult.getElementsByTagName("passed")[0].firstChild.data;  
  if( boolResult == "true"){   
    var elLogin = document.getElementById("hypLogin");
    var elRegistry = document.getElementById("hypRegistry");
    
    elLogin.href = _url + "Account/Default.aspx";
    elLogin.innerHTML = resResult.getElementsByTagName("description")[0].firstChild.data;
    elRegistry.href = "javascript:kagetuLogout();";
    elRegistry.innerHTML = "注销";
  }
  else{
    var elLogin = document.getElementById("hypLogin");
    var elRegistry = document.getElementById("hypRegistry");
    
    elLogin.href = "javascript:LoginDialog();";
    elLogin.innerHTML = "登录";
    elRegistry.href = _url + "kagetuRegistry.aspx";
    elRegistry.innerHTML = "注册";
  }
}

//登录事件
function kagetuLogin(){
  var strName = document.getElementById("txtName").value;
  var strPassword = document.getElementById("txtPassword").value;
  var boolPersistCookie = document.getElementById("chkPersist").checked;
  
  var strUrl = _url + "AjaxProcess/kagetuAPLogin.aspx";
  var strParams = "un=" + encodeURIComponent(strName) + "&pw=" + encodeURIComponent(strPassword) + "&pc=" + encodeURIComponent(boolPersistCookie) + "&action=li";
  new kagetuAjaxRequest(strUrl, LoginOnload, LoginOnready, null, "POST", strParams);  
}
function LoginOnload(){
  var elResult = document.getElementById("spanLoginTips");
  document.getElementById("btnLogin").style.display = "none";
  elResult.innerHTML = "登录中，请稍候……"; 
}
function LoginOnready(){
  var resResult = this.req.responseXML;
  var elResult = document.getElementById("spanLoginTips");
  
  var boolResult = resResult.getElementsByTagName("passed")[0].firstChild.data;
  
  if( boolResult == "true")
  {    
    msg.hideDialog();
     
    var elLogin = document.getElementById("hypLogin");
    var elRegistry = document.getElementById("hypRegistry");
    
    elLogin.href = _url + "Account/Default.aspx";
    elLogin.innerHTML = resResult.getElementsByTagName("description")[0].firstChild.data;
    elRegistry.href = "javascript:kagetuLogout();";
    elRegistry.innerHTML = "注销"; 
  }
  else
  {
    document.getElementById("btnLogin").style.display = "block";
    elResult.innerHTML = resResult.getElementsByTagName("description")[0].firstChild.data;
  }
}

//注销事件
function kagetuLogout(){
  var strUrl = _url + "AjaxProcess/kagetuAPLogin.aspx";
  var strParams = "action=lo";
  new kagetuAjaxRequest(strUrl, LogoutOnload, LogoutOnready, null, "POST", strParams); 
}
function LogoutOnload(){}
function LogoutOnready(){ 
  var resResult = this.req.responseXML;
  var boolResult = resResult.getElementsByTagName("passed")[0].firstChild.data;  
  if( boolResult == "true"){    
    var elLogin = document.getElementById("hypLogin");
    var elRegistry = document.getElementById("hypRegistry");
    
    elLogin.href = "javascript:LoginDialog();";
    elLogin.innerHTML = "登录";
    elRegistry.href = _url + "kagetuRegistry.aspx";
    elRegistry.innerHTML = "注册";
  }
}

//更新和取得在线用户人数
function UpdateOnlineList(){
  var strUrl = _url + "AjaxProcess/xyzlAPOlineList.aspx"; 
  var strParams = "seed=" + (new Date()).valueOf();
  new kagetuAjaxRequest(strUrl, uolOnload, uolOnReady, null, "POST", strParams);      
}
function uolOnload(){}
function uolOnReady(){
  var elResult = $("span_online");
  if(elResult != null)  {
    elResult.innerHTML = this.req.responseText;
  }
}


