//======= global function ===================
  var $$, $id, $name;
  $$ = window.document;
  $id = function(strID) { return $$.getElementById(strID); };
  $name = function(strName) { return $$.getElementsByName(strName); };
  (function() {
     var leng = arguments.length, scr, par = $$.getElementsByTagName("script")[0].parentNode;
     for(var i=0; i<leng; i++) {
       scr = $$.createElement("script");
       scr.setAttribute("language", "javascript");
       scr.setAttribute("src", arguments[i]);
       par.appendChild(scr);
     }
   })("lang/lang.js", "common/class.js");
//======= tools function ====================
  function $trim(str) {
    if(!str) return "";
    return str.replace(/(^[\s\n\t\r]*)|([\s\n\r\t]*$)/g, "").replace(/\r/g, "");
  }

  function $lengthW(str) {
    if(!str) return 0;
    var tLen = 0, strLen = str.length, charCode;
    for(var i=0; i<strLen; i++) {
      charCode = str.charCodeAt(i);
      if(charCode<0 || charCode>255) tLen += 2; else tLen++;
    }
    return tLen;
  }

  function $checkUsername(str) {
    if(typeof(str)!="string") return false;
    str = $trim(str);
    if($lengthW(str)<3 || str.length>24) return false;
    if(/[^\w\u3400-\u4DBF\u4E00-\u9FAF]/g.test(str)) return false;
    return str;
  }

  function $checkPassword(str) {
    if(!str) return false;
    str = $trim(str);
    if(str.length<6 || str.length>16) return false;
    if(/[^\x20-\x7e]/g.test(str)) return false;
    return str;
  }
//========== check form & show message by ajax ========
  function checkGuestForm(objThis) {
    var err = [], tmp;
    tmp = $checkUsername(objThis["name"].value); if(tmp==false) err.push($lang["username_fail"]);
    tmp = $trim(objThis["content"].value); if(tmp.length<1) err.push($lang["content_fail"]);
    tmp = objThis["password"].value;
      if(tmp.length>0) {
      tmp = $checkPassword(tmp);
      if(tmp==false) err.push($lang["password_fail"]);
    }
    if(err.length>0) { alert("* " + err.join("\n* ")); return false; }
	  ajax.query(objThis.action, null, objThis);
	  return false;
  }

  function checkLittleForm(objThis) {
    var err = "", tmp;
    tmp = objThis["content"];
    if(tmp) { tmp = $trim(tmp.value); if(tmp.length<1) err = $lang["content_fail"]; }
    tmp = objThis["password"];
    if(tmp) { tmp = $checkPassword(tmp.value); if(tmp==false) err = $lang["password_fail"]; }
    if(err.length>0) { alert("* " + err); return false; }
	  ajax.query(objThis.action, null, objThis);
	  return false;
  }

  function checkSearchForm(objThis) {
    var err = [], tmp;
    tmp = $trim(objThis["search"].value);
    if(!tmp || $lengthW(tmp)<3) err.push($lang["search_keyword_fail"]);
    tmp = $trim(objThis["type"].value);
    if(!tmp) err.push($lang["search_type_fail"]);
    if(err.length>0) { alert("* " + err.join("\n* ")); return false; }
    return true;
  }
//======= ajax request ====================
  function showArticleContent(objThis, intLogID) {
    var strID = "article" + intLogID + "content";
    var obj = $id(strID);
    if(!obj) return;
    ajax.query("?ajax=art&id=" + intLogID, obj);
    if(objThis) objThis.innerHTML = "";
  }

  function showTrackback(intLogID) {
  	var strID = "article" + intLogID + "trackback";
  	var obj = $id(strID);
  	if(!obj) return;
  	if(!obj.innerHTML) ajax.query("?ajax=tb&id=" + intLogID, obj);
  	else obj.innerHTML = "";
  }

  function showComment(intLogID, boolShow) {
  	var strID = "article" + intLogID + "comment";
  	var obj = $id(strID);
  	if(!obj) return;
  	if(!obj.innerHTML || boolShow==true) ajax.query("?ajax=comm&id=" + intLogID, obj);
  	else obj.innerHTML = "";
  }

  function showCommentContent(intLogID, intCommID) {
    var strID = "comment" + intCommID + "content";
    var obj = $id(strID);
    if(!obj) return;
    ajax.query("comment.asp?ajax=con&comm=" + intCommID + "&id=" + intLogID, obj);
  }

  function showCommentForm(intLogID, intGuestID, bReply) {
    var strID = "comment", questURL = "comment.asp?ajax=";
    if(bReply==true) {
      strID += + intLogID + "form", questURL += "reply";
    } else {
    	strID += intGuestID + "content", questURL += "edit";
    }
    var obj = $id(strID);
    if(!obj) return;
    questURL += "&comm=" + intGuestID + "&id=" + intLogID;
    ajax.query(questURL, obj, null, true);
  }

  function showGbookForm(intGuestID) {
    var strID = "gbook" + intGuestID + "content";
    strID = $id(strID);
    if(!strID) return;
    ajax.query("gbook.asp?ajax=edit&gb=" + intGuestID, strID, null, true);
  }

  function showGbookContent(intGbID) {
    var strID = "gbook" + intGbID + "content";
    var obj = $id(strID);
    if(!obj) return;
    ajax.query("gbook.asp?ajax=con&gb=" + intGbID, obj);
  }