/************************************************************
 *
 *  FileName : opencity.js
 *  Summary  : Common Script
 *
 ************************************************************/

function toggleItem(id) {
  var disp = document.getElementById(id).style.display;
  if(disp == "block") {
    document.getElementById(id).style.display = "none";
  } else {
    document.getElementById(id).style.display = "block";
  }
  return false;
}

function styleDisplayChange(index) {
  var disp = document.getElementById("item-" + index).style.display;
  if(disp == "block") {
    document.getElementById("item-" + index).style.display = "none";
    document.getElementById("open-" + index).style.display = "inline";
    document.getElementById("closeT-" + index).style.display = "none";
    document.getElementById("closeB-" + index).style.display = "none";
  } else {
    document.getElementById("item-" + index).style.display = "block";
    document.getElementById("open-" + index).style.display = "none";
    document.getElementById("closeT-" + index).style.display = "inline";
    document.getElementById("closeB-" + index).style.display = "inline";
  }
  return false;
}

function overflowChange(id) {
  var overflow = document.getElementById(id).style.overflow;
  if(overflow == "visible") {
    document.getElementById(id).style.overflow = "auto";
    document.getElementById(id).style.height   = "114px";
  } else {
    document.getElementById(id).style.overflow = "visible";
    document.getElementById(id).style.height   = "auto";
  }
  return false;
}

function changeAction(form_obj,url,flag) {
  form_obj.action = url;
  if(flag) {
    form_obj.target = "_blank";
  } else {
    form_obj.target = "";
  }
  return false;
}

function openWindow(url,name,width,height) {
  if( name=="") name = "_blank";
  if( isNaN(width) ) {
    width = "";
  } else {
    width = ',width=' + width;
  }
  if( isNaN(height) ) {
    height = "";
  } else {
    height = ',height=' + height;
  }
  window.open(url,name,"location=no,resizable=yes"+width+height);
}

function openWindowJust(url,name) {
  if( name=="" ) name = "_blank";
  window.open(url,name);
}

function showOpener(url) {
  opener.location.href= url;
}


/*-----------------------------------------------------------
 *  エディター
 *----------------------------------------------------------*/
/* Gecko 対応 */
var Gecko_flag = false;
/* Safari 対応 */
var Safari_flag = false;
if(navigator) {
  if (navigator.userAgent) {
    if (navigator.userAgent.indexOf("Gecko/") != -1) { // [Gecko]string not exists then -1
      Gecko_flag = true;
    }
    if (navigator.userAgent.indexOf("Safari/") != -1) {
      Safari_flag = true;
    }
  }
}

/* Tag 設定 */
function setTag(trg,tag,attr) {
  trg.focus();
  var stag = attr ? tag + " " + attr : tag;
  var val = getSelectedRange(trg);
  setSelectedRange(trg,'<' + stag + '>' + val + '</' + tag + '>');
}

/* リンク設定 */
function setLink(trg) {
  var url = prompt('URL: ','http://');
  if (!(url == '' || url == null || url == 'http://')) {
    var attr = 'href="' + url + '"';
    setTag(trg,'a',attr);
  }
}

/* 文字色設定 */
function setColor(trg,color) {
  var attr = 'style="color:' + color + '"';
  setTag(trg,'span',attr);
}
/*
function setColor(trg,id) {
  var list = document.getElementById(id);
  var attr = 'style="color:' + list.options[list.selectedIndex].value + '"';
  setTag(trg,'span',attr);
}
*/

/* 選択文字列取得 */
function getSelectedRange(trg) {
  var val;
  if (document.selection) {
    val = document.selection.createRange().text;
  } else if (Gecko_flag || Safari_flag) {
    var start = trg.selectionStart;
    var end = trg.selectionEnd;
    val = trg.value.substring(start,end);
  } else {
    val = '';
  }
  return val;
}

/* 選択文字列設定 */
function setSelectedRange(trg,val) {
  if (document.selection) {
    if (getSelectedRange(trg)) {
      document.selection.createRange().text = val;
    } else {
/*      trg.value = trg.value + val;*/
    }
  } else if (Gecko_flag || Safari_flag) {
    var start = trg.selectionStart;
    var end = trg.selectionEnd;
    var len = trg.value.length;
    if ( len > 0 ) {
      var head = trg.value.substring(0,start);
      var foot = trg.value.substring(end,len);
      trg.value = head + val + foot;
    }
  } else {
/*    trg.value = trg.value + val;*/
  }
}

/* 選択カラー表示 */
function viewColor(id_hex,id_prv,color) {
  document.getElementById(id_hex).value = color;
  document.getElementById(id_prv).style.color = color;
}

/* カラーボックス生成 */
function createColorBox(name_trg,id_hex,id_prv) {
  var box = '';
  var cel = '';
  for (i=0; i<16; i+=3) {
    cel = '';
    for (j=0; j<16; j+=3) {
      for (k=0; k<16; k+=3) {
    var h = i.toString(16);
    var m = j.toString(16);
    var f = k.toString(16);
    var color = '#' + h + h + m + m + f + f;
    color = color.toUpperCase();
    cel = cel + '<td style="width:12px; height:10px; background-color:'
      + color + '" onmouseover="viewColor(\'' + id_hex + '\',\'' + id_prv
      + '\',\'' + color + '\')" onmousedown="setColor(document.'
      + name_trg + ',' + '\'' + color + '\');"></td>';
      }
    }
    box = box + '<tr>' + cel + '</tr>';
  }

  document.write('<table class="edit-editor-color"><tr>'
    + '<td><input style="border:solid 1px #919195;width: 4.7em;"'
    + 'id="' + id_hex + '">&nbsp;</td>'
    + '<td><div id="' + id_prv
    + '" style="font-size:0.9em; font-weight:bold;">AaＡａあぁアァ漢字</div></td>'
    + '</tr></table>'
    + '<table class="edit-editor-color-palette">'
    + box + '</table>');
}

