//**************************************************
//初期設定
//**************************************************
var strBackTextareaBGColor = '#ffffff';
var appVersionLower = navigator.appVersion.toLowerCase();
var iePos = appVersionLower.indexOf('msie');
if( iePos != -1 ) {
  versionMinor = parseFloat( appVersionLower.substring(iePos+5, appVersionLower.indexOf(';',iePos)) );
  versionMajor = parseInt( versionMinor );
} else {
  versionMajor = parseInt( navigator.appVersion );
  versionMinor = parseFloat( navigator.appVersion );
}
var uagtIsIe     = (appVersionLower.indexOf("msie") != -1);
var uagtIsOpera  = (appVersionLower.indexOf("opera") != -1);
var uagtIsSafari = (appVersionLower.indexOf("Safari") != -1);
var NS       = (navigator.appName == "Netscape") ? (true) : (false);
var NS4      = (NS && (versionMajor >= 4)) ? (true) : (false);
var IE       = (navigator.appName == "Microsoft Internet Explorer") ? (true) : (false);
var IE4      = (IE && (versionMajor >= 4)) ? (true) : (false);
var IE5      = (document.all && document.getElementById) ? true : false;
var IE55     = (IE && versionMinor >= 5.5);
var MAC      = navigator.appVersion.indexOf("Macintosh") != -1;
var Safari   = navigator.userAgent.indexOf('Safari') >= 0;
var objNFrame = null;
var objNArea  = null;
var boolWYSIWYG = true;
if ((uagtIsOpera == true) || (uagtIsSafari == true)){
  boolWYSIWYG = false;
}
var egover = false;
var tgover = false;
var timeout;
//**************************************************
//#N1 Windowオープン
//**************************************************
function windowopen(url,name,left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  toolbar_str = toolbar ? 'yes' : 'no';
  menubar_str = menubar ? 'yes' : 'no';
  statusbar_str = statusbar ? 'yes' : 'no';
  scrollbar_str = scrollbar ? 'yes' : 'no';
  resizable_str = resizable ? 'yes' : 'no';
  window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
}
//**************************************************
//**************************************************
function funcTreeMenu(tName)
{
  if ( document.getElementById ) {
    if (! document.getElementById(tName)) return;
    tMenu = document.getElementById(tName).style;
    if (tMenu.display == 'none' || tMenu.display == '') tMenu.display = "block"; else   tMenu.display = "none";
  }else{
    if ( document.all ) {
      tMenu = document.all[tName].style;
      if (tMenu.display == 'none') tMenu.display = "block"; else   tMenu.display = "none";
    }
  }
}
//**************************************************
//**************************************************
function funcTreeMenuClose(tName)
{
  if ( document.getElementById ) {
    tMenu = document.getElementById(tName).style;
    if (tMenu.display == 'block') tMenu.display = "none";
  }else{
    if ( document.all ) {
      tMenu = document.all[tName].style;
      if (tMenu.display == 'block') tMenu.display = "none";
    }
  }
}
//**************************************************
//**************************************************
function funcTreeMenu_Select(tName,bFlg)
{
  if (! document.getElementById(tName)) return;
  if ( bFlg == "True" ){ 
    if ( document.getElementById ) {
      tMenu = document.getElementById(tName).style;
      if (tMenu.display == 'none') { tMenu.display = "block";  }
    }
    else {
      if ( document.all ) {
        tMenu = document.all[tName].style;
        if (tMenu.display == 'none') { tMenu.display = "block";  }
      }
    }
  }  else { 
    if ( document.getElementById ) {
      tMenu = document.getElementById(tName).style;
      if (tMenu.display == 'block') {  tMenu.display = "none";  }
    }
    else {
      if ( document.all ) {
        tMenu = document.all[tName].style;
        if (tMenu.display == 'block') { tMenu.display = "none";  }
      }
    }
  }
}
//**************************************************
//#N1 XMLHttpRequestオブジェクト生成
//**************************************************
function createHttpRequest()
{
  if(window.ActiveXObject){ //Win ie用
    try {
      return new ActiveXObject("Msxml2.XMLHTTP"); //MSXML2以降用
    } catch (e) {
      try {
        return new ActiveXObject("Microsoft.XMLHTTP"); //旧MSXML用
      } catch (e2) {
        return null;
      }
    }
  }else{
    if(window.XMLHttpRequest){
      return new XMLHttpRequest(); //Win ie以外のXMLHttpRequestオブジェクト実装ブラウザ用
    } else {
      return null
    }
  }
}
//**************************************************
//#N1 ファイルにアクセスし受信内容を確認します
//**************************************************
function callHttpRequest( strData , strMethod , strURL , boolAsync )
{
  var objHTTP = createHttpRequest(); //XMLHttpRequestオブジェクト生成
  if (objHTTP!=null){
    if (objHTTP.readyState == 0){
      objHTTP.open( strMethod , strURL , boolAsync ); //open メソッド
      objHTTP.onreadystatechange = function(){ //受信時に起動するイベント
        if (objHTTP.readyState==4){  //readyState値は4で受信完了
          getHttpRequest(objHTTP,strData); //コールバック
        }
      }
      objHTTP.send( strData ); //send メソッド
    }
  }
}
//**************************************************
//**************************************************
function parseXml(xmlText)
{
  if (window.ActiveXObject) {
    var domDoc = new ActiveXObject('Microsoft.XMLDOM');
    domDoc.async = false;
    domDoc.loadXML(xmlText);
    return domDoc;
  } else if(window.DOMParser) {
    var domParser = new DOMParser();
    return domParser.parseFromString(xmlText, "application/xml");
  } else {
    return null;
  }
}
//**************************************************
//**************************************************
function dispBlock(strID)
{
  objTarget = document.getElementById(strID).style;
  if (objTarget.display == 'block') objTarget.display = 'none'; else objTarget.display = 'block';
}
//**************************************************
//**************************************************
function changeImage(strID,strImageSrc)
{
  document.getElementById(strID).src = strImageSrc;
}
//**************************************************
//**************************************************
function ChangeICon(CtrlID)
{
  if (document.getElementById(CtrlID)) {
    var imgCtrl   = document.getElementById(CtrlID);
    var strSource = imgCtrl.src;
    if ( strSource.indexOf('icn_close_on.gif',0) > -1 ){
      imgCtrl.src = 'images/icn_opne_on.gif';
    }else{
      imgCtrl.src = 'images/icn_close_on.gif';
    }
  }
}
//**************************************************
//**************************************************
function changeImageTreePvM(strID)
{
  dispBlock(strID);
  var objImage   = document.getElementById(strID+'img');
  var strSource = objImage.src;
  if ( strSource.indexOf('plus',0) > -1 )
  {
    objImage.src = strUserRoot + 'images/icn_minus.gif';
  }else{
    objImage.src = strUserRoot + 'images/icn_plus.gif';
  }
}
//**************************************************
//**************************************************
function changeImageTree1v2(strID)
{
  dispBlock(strID);
  var objImage   = document.getElementById(strID+'img');
  var strSource = objImage.src;
  if ( strSource.indexOf('plus1',0) > -1 )
  {
    objImage.src = strUserRoot + 'images/icn_plus2.gif';
  }else{
    objImage.src = strUserRoot + 'images/icn_plus1.gif';
  }
}
function WrapInit(strTarget)
{
  var tgField = document.getElementById(strTarget);
}
//**************************************************
//#N1
//#D1
//#A1
//#R1
//**************************************************
function StoreText(strTarget)
{
  var tgField = document.getElementById(strTarget);
  if (tgField.createTextRange)
    tgField.varTargetText = document.selection.createRange().duplicate();
  return true;
}
//**************************************************
//#N1
//#D1
//#A1
//#R1
//**************************************************
function InsertTag(strTarget,strLeft,strRight)
{
  if (!NS) {
    strLeft = unescape(strLeft);
    strRight = unescape(strRight);
  }
  if(IE){
    if ( document.getElementById ) {
      var tgField = document.getElementById(strTarget);
    }else{
      var tgField = document.all[strTarget];
    }
    if (tgField.createTextRange && tgField.varTargetText){
      var varTargetText = tgField.varTargetText; 
      varTargetText.text = strLeft + varTargetText.text + strRight;
    }else{
      if (tgField != undefined){
        if(tgField.selectionStart) {
          var intStart = tgField.selectionStart;
          var intEnd = tgField.selectionEnd;
          var intLen = tgField.textLength;
          var strBody = tgField.value.substring(intStart, intEnd);
          var strHead = tgField.value.substring(0, intStart);
          var strFoot = tgField.value.substring(intEnd, intLen);
          tgField.value = strHead + strLeft + strBody + strRight + strFoot;
        }else{
          tgField.value = tgField.value + strLeft + strRight;
        }
      }
    }
  }else{
    WrapInsertMoz(strTarget,strLeft, strRight);
  }
}
function WrapInsertMoz(strTarget,strLeft, strRight) 
{
  var tgField = document.getElementById(strTarget);
  if (Safari || (MAC&&NS)){
    tgField.value = tgField.value + strLeft + strRight;
  }else{
    var selLength = tgField.textLength;
    var selStart = tgField.selectionStart;
    var selEnd = tgField.selectionEnd;
    if (selEnd==1 || selEnd==2) selEnd=selLength;
    var s1 = (tgField.value).substring(0,selStart);
    var s2 = (tgField.value).substring(selStart, selEnd)
    var s3 = (tgField.value).substring(selEnd, selLength);
    tgField.value = s1 + strLeft + s2 + strRight + s3;
  }

}

//**************************************************
//#N1
//#D1
//#A1
//#R1
//**************************************************
function InsertTagB(strTarget){ InsertTag(strTarget,'<b>','</b>');}
function InsertTagI(strTarget){ InsertTag(strTarget,'<i>','</i>');}
function InsertTagU(strTarget){ InsertTag(strTarget,'<u>','</u>');}
function InsertTagS(strTarget){ InsertTag(strTarget,'<s>','</s>');}
function InsertTagBQ(strTarget){ InsertTag(strTarget,'<blockquote>','</blockquote>');}
function InsertTagColor(strTarget,strColor){ InsertTag(strTarget,'<font color='+strColor+'>','</font>');}
function InsertTagFace(strTarget,strNo){ InsertTag(strTarget,'','[@F|'+strNo+']');}
function InsertTagFontSize(strTarget,strNo){ InsertTag(strTarget,'[@Z|'+strNo+'|',']');}
function InsertTagW(strTarget)
{
  if (boolWYSIWYG==true){
  }else{
    InsertTag(strTarget,'[@W|',']');
  }
}
function InsertTagLink(strTarget) 
{
  var varLink = prompt("リンク先URL","http://");
  if (varLink != null) 
  {
    strLeft='<a href=\"' + varLink + '" target=\"_blank\">';
    strRight="</a>";
    InsertTag(strTarget,strLeft, strRight);
  }
}
//**************************************************
//#N1
//#D1
//#A1
//#R1
//**************************************************
//**************************************************
//**************************************************
function dateClick(sdate){ location.reload(true); }
//**************************************************
//**************************************************
function setInputFieldColor(strId,boolMode)
{
  try{
    var objStyleField = undefined;
    var strBGColor = '#ffffff';
    var objInputField = document.getElementById(strId);
    if (boolMode==true){
      strBackTextareaBGColor = objInputField.style.backgroundColor;
      strBGColor = '#ffffd0';
    }else{
      if (strBackTextareaBGColor == ''){
        strBGColor = strBackTextareaBGColor;
      }else{
        strBGColor = '#ffffff';
      }
    }
    objInputField.style.backgroundColor = strBGColor;
  }catch(e){
  }
}
//**************************************************
//**************************************************
function seltab(bpref, hpref, id_max, selected)
{
  try{
    if (! document.getElementById) return;
    for (i = 0; i <= id_max; i++) {
      if (! document.getElementById(bpref + i)) continue;
      if (i == selected) {
        document.getElementById(bpref + i).style.visibility = 'visible';
        document.getElementById(bpref + i).style.position   = '';
        document.getElementById(hpref + i).className        = 'open';
      } else {
        document.getElementById(bpref + i).style.visibility = 'hidden';
        document.getElementById(bpref + i).style.position   = 'absolute';
        document.getElementById(hpref + i).className        = 'close';
      }
    }
  }catch(e){
  }
}
//**************************************************
//**************************************************
function initEditor(strId)
{
  try{
  	var date = new Date();
    if ((uagtIsOpera == false) && (uagtIsSafari == false)){
      if (strId){
        var objTextArea = document.getElementById(strId);
        objNFrame   = document.getElementById("nanoEdit");
        objNFrame.top  = objTextArea.top;
        objNFrame.left = objTextArea.left;
        objNFrame.style.width  = objTextArea.offsetWidth;
        objNFrame.style.height = objTextArea.offsetHeight;
        objNFrame.style.display   = 'block';
        if (uagtIsIe){
//          objNFrame.contentWindow.document.writeln('<style type="text/css">@import "/wysiwyg.css?'+ date.toString() +'";</style>');
        }
        objNArea = objNFrame.contentWindow.document;
        objNArea.designMode = "on";
        if (uagtIsIe == false){
          onDispHtml(strId);
        }
        objTextArea.style.display = 'none';
        if (uagtIsIe == false){
          objNArea.body.createStyleSheet('/wisiwyg.css');
//          objNArea.writeln('@import url("/wisiwyg.css");');
//          objNArea.writeln('<style type="text/css"><!-- @import url("/wisiwyg.css"); --></style>');
        }
        var strMode = document.cookie;
        var arMode  = strMode.split(';');
        document.getElementById('editmode_preview').innerHTML = '<b>プレビューモード</b>';
        document.getElementById('editmode_html').innerHTML    = '<a href="javascript:onChangeArea(\'' + strId + '\');">HTML(TEXT)モード</a>';
        for (i in arMode) {
          if (arMode[i].indexOf('sysentryMode=0')>0){
            objTextArea.style.display = 'block';
            objNFrame.style.display   = 'none';
            document.getElementById('editmode_preview').innerHTML = '<a href="javascript:onChangeArea(\'' + strId + '\');">プレビューモード</a>';
            document.getElementById('editmode_html').innerHTML    = '<b>HTML(TEXT)モード</b>';
            document.getElementById('tbar_palettebg').style.display = 'none';
            document.getElementById('tbar_justifyLeft').style.display = 'none';
            document.getElementById('tbar_justifyCenter').style.display = 'none';
            document.getElementById('tbar_justifyRight').style.display = 'none';
            document.getElementById('tbar_unlink').style.display = 'none';
            document.getElementById('tbar_facemark').style.display = 'none';
            document.getElementById('tbar_wiki').style.display = 'inline';
             //onChangeArea(strId);break;
            boolWYSIWYG = false;
          }
        }
      }
    }
  }catch(e){
  }
}
//**************************************************
//**************************************************
function onInitDispHtml(strId)
{
//  try{
    if (uagtIsIe == true){
      onDispHtml(strId);
    }
//  }catch(e){
//  }
}
//**************************************************
//**************************************************
function onDispHtml(strId)
{
//  try{
    if (objNArea != null){
      objNArea.body.innerHTML = document.form1.elements[strId].value;
      if (uagtIsIe){
        var head = objNArea.getElementsByTagName("head")[0];
        var link = objNArea.createElement("link");
        link.type = "text/css";
        link.href = '/wysiwyg.css';
        link.rel = "stylesheet";
        head.appendChild(link);
      }
    }
//  }catch(e){
//  }
}
//**************************************************
//**************************************************
function onCommand(command,value,strTarget)
{
  try{
    if (boolWYSIWYG==true){
      if (command == 'backcolor'){
        if (uagtIsIe == true){
          objNArea.execCommand(command, false, value);
        }else{
          objNArea.execCommand('hilitecolor', false, value);
        }
      }else{
        objNArea.execCommand(command, false, value);
      }
    }else{
      switch(command){
        case 'bold':
          InsertTagB(strTarget);
          break;
        case 'italic':
          InsertTagI(strTarget);
          break;
        case 'underline':
          InsertTagU(strTarget);
          break;
        case 'strikeThrough':
          InsertTagS(strTarget);
          break;
        case 'fontsize':
          InsertTagFontSize(strTarget,value);
          break;
        case 'foreColor':
          InsertTagColor(strTarget,value);
          break;
      }
    }
  }catch(e){
  }
}
//**************************************************
//**************************************************
function onCommand_Link(strHref,strTitle,strTarget,strClassName,strInner)
{
  try{
    var atag = objNArea.createElement('a');
    atag.href      = strHref;
    atag.target    = strTarget;
    atag.innerHTML = strInner;
    atag.className = strClassName
    atag.title     = strTitle;
    objNArea.body.appendChild(atag);
  }catch(e){
  }
}
//**************************************************
//**************************************************
function onCommand_Tag(value)
{
  try{
    var otag = objNArea.createElement('div');
//    otag.setAttribute('class','icn_movie');
//    otag.style = 'border:1px solid #cccccc;width:10px;';
    otag.innerHTML = value;
    objNArea.body.appendChild(otag);
  }catch(e){
  }
}
//**************************************************
//**************************************************
function onLink(strTarget)
{
  try{
    if (boolWYSIWYG==true){
      var varLink = prompt("リンク先URL","http://");
      if (varLink != null) 
      {
        onCommand('createlink',varLink);
      }
    }else{
      InsertTagLink(strTarget);
    }
  }catch(e){
  }
}
//**************************************************
//**************************************************
function submitform(strId)
{
  try{
    if ( boolWYSIWYG ){
        document.form1.elements[strId].value = objNArea.body.innerHTML;
    }
  }catch(e){
  }
  document.form1.submit();
}
//**************************************************
//**************************************************
function onChangeArea(strId)
{
  var exp = new Date();
  var strVal = 1;
  exp.setDate('365');
  try{
    if ((uagtIsOpera == false) && (uagtIsSafari == false)){
      objTextArea = document.getElementById(strId);
      if (objTextArea.style.display == 'none'){
        strVal = 0;

        var arTextArea = objNArea.body.innerHTML.split('\n');
        for(var intlpc=0;intlpc<arTextArea.length;intlpc++){
          arTextArea[intlpc] = arTextArea[intlpc].replace(RegExp('&nbsp;',"gi")," ");
          if (uagtIsIe == true){
            arTextArea[intlpc] = arTextArea[intlpc].replace(RegExp('<p>',"gi"),"");
            arTextArea[intlpc] = arTextArea[intlpc].replace(RegExp('</p>',"gi"),"<br>");
//            var strLastString = arTextArea[intlpc].toLowerCase();
//            if(strLastString.indexOf('</p>\n') == -1){
//              arTextArea[intlpc] = arTextArea[intlpc].replace(RegExp('<br>',"gi"),"\n");
//            }else{
//              arTextArea[intlpc] = arTextArea[intlpc].replace(RegExp('</p>\n',"gi"),"</p>");
//            }
          }else{
            arTextArea[intlpc] = arTextArea[intlpc].replace(RegExp('<br>',"gi"),"\n");
          }
        }
        var strTextArea = arTextArea.join('\n');
        objNArea.body.innerHTML = arTextArea.join('\n');

        var strTextArea = objNArea.body.innerHTML.replace(RegExp('<br>',"gi"),"\n");
        document.form1.elements[strId].value = strTextArea;
        objTextArea.style.display = 'block';
        objNFrame.style.display   = 'none';
        document.getElementById('editmode_preview').innerHTML = '<a href="javascript:onChangeArea(\'' + strId + '\');">プレビューモード</a>';
        document.getElementById('editmode_html').innerHTML    = '<b>HTML(TEXT)モード</b>';
        document.getElementById('tbar_palettebg').style.display = 'none';
        document.getElementById('tbar_justifyLeft').style.display = 'none';
        document.getElementById('tbar_justifyCenter').style.display = 'none';
        document.getElementById('tbar_justifyRight').style.display = 'none';
        document.getElementById('tbar_unlink').style.display = 'none';
        document.getElementById('tbar_facemark').style.display = 'none';
        document.getElementById('tbar_wiki').style.display = 'inline';
        boolWYSIWYG = false;
      }else{
        strVal = 1;

        var arTextArea = document.form1.elements[strId].value.split('\n');
        for(var intlpc=0;intlpc<arTextArea.length;intlpc++){
          arTextArea[intlpc] = arTextArea[intlpc].replace(RegExp('&nbsp;',"gi")," ");
          if (uagtIsIe == true){
            arTextArea[intlpc] = arTextArea[intlpc].replace(RegExp('<p>',"gi"),"");
            arTextArea[intlpc] = arTextArea[intlpc].replace(RegExp('</p>',"gi"),"\n");
          }else{
            arTextArea[intlpc] = arTextArea[intlpc].replace(RegExp('\n',"gi"),"<br>\n\n");
          }
        }
        var strTextArea = arTextArea.join('\n');

        var strTextArea = document.form1.elements[strId].value.replace(RegExp('\n',"gi"),"<br>");
        objNArea.body.innerHTML = strTextArea;
        objTextArea.style.display = 'none';
        objNFrame.style.display   = 'block';
        document.getElementById('editmode_preview').innerHTML = '<b>プレビューモード</b>';
        document.getElementById('editmode_html').innerHTML    = '<a href="javascript:onChangeArea(\'' + strId + '\');">HTML(TEXT)モード</a>';
        document.getElementById('tbar_palettebg').style.display = 'inline';
        document.getElementById('tbar_justifyLeft').style.display = 'inline';
        document.getElementById('tbar_justifyCenter').style.display = 'inline';
        document.getElementById('tbar_justifyRight').style.display = 'inline';
        document.getElementById('tbar_unlink').style.display = 'inline';
        document.getElementById('tbar_facemark').style.display = 'inline';
        document.getElementById('tbar_wiki').style.display = 'none';
        boolWYSIWYG = true;
      }
      document.cookie = 'sysentryMode='+strVal+';domain=.nanoty.jp;path=/;expires='+exp.toGMTString() +';';
    }
  }catch(e){
  }
}
//**************************************************
//**************************************************
function TagFaceEx(strURL,strCode,strMId)
{
  try{
    onCommand('insertimage',strURL+'/images/facemark/'+strCode+'.gif');
    funcTreeMenu(strMId+'_face');
  }catch(e){
  }
}
//**************************************************
//**************************************************

