

function init2(){
  fillTagList();
  //fillOthInfoList();
/*
  if(postData.length != 0){
    fillData();
  }
*/
}

function tagDiv_list(tag_text , cmmtTagList ,cmmtTagDiv) {
	
  basicTagDivTitle = document.createElement("div");
  basicTagDivTitle.className = "tag_list_title";
  cmmtTagDiv.appendChild(basicTagDivTitle);
  listText  = document.createTextNode(tag_text);
  basicTagDivTitle.appendChild(listText);

  
  basicTagDiv = document.createElement("div");
  basicTagDiv.className = "tagselect_new";
  cmmtTagDiv.appendChild(basicTagDiv);
  
  for(i=0; i<cmmtTagList.length; i++){
    listLabel = document.createElement("label");
    listText  = document.createTextNode(cmmtTagList[i]);
    listLabel.className = "tagClass";
    listLabel.appendChild(listText);
    basicTagDiv.appendChild(listLabel);

    addTagMouseInEvent(listLabel);
    addTagMouseOutEvent(listLabel);
    addCtgTagClickEvent(listLabel);
    addCtgInputScanEvent(listLabel);
  }
	
}


 
/*******************************
 * Initializing Function Group *
 *******************************/
 
 function fillTagList_packet(){
  var listLabel, listText , cmmlist = '1';
  //[ initializing category tag list
  
  var cmmtTagDiv  = document.getElementById("ctgTagList");
  var ctgTagInput = document.getElementById("ctgTagInput");
  
  cmmtTagList = cmmtTagList.split(",");
  
  if(cmmtTagList.length == 0) cmmlist = '0';
  if(cmmlist != 0) tagDiv_list("現有分類：" , cmmtTagList ,cmmtTagDiv);

  addCtgInputScanEvent(ctgTagInput);
  procInputScanEvent(ctgTagInput, cmmtTagDiv.getElementsByTagName("label"));

  //[ initializing menu tag list
  
  var menuTagDiv   = document.getElementById("menuTagList");
  var menuTagInput = document.getElementById("menuTagInput");
  
  menuTagList = menuTagList.split(",");
  for(i=0; i<menuTagList.length; i++){
    listLabel = document.createElement("label");
    listText  = document.createTextNode(menuTagList[i]);
    listLabel.className = "tagClass";
    listLabel.appendChild(listText);
    menuTagDiv.appendChild(listLabel);

    addTagMouseInEvent(listLabel);
    addTagMouseOutEvent(listLabel);
    addMenuTagClickEvent(listLabel);
  }

  addMenuInputScanEvent(menuTagInput);
  procInputScanEvent(menuTagInput, menuTagDiv.getElementsByTagName("label"));
}

 
function fillTagList(){
  var listLabel, listText;
  //[ initializing category tag list
  var cmmtTagDiv  = document.getElementById("ctgTagList");
  var ctgTagInput = document.getElementById("ctgTagInput");
  var tagLabels = cmmtTagDiv.getElementsByTagName('label');
  for( i = 0; i < tagLabels.length; i++ ) {
    addTagMouseInEvent(tagLabels[i]);
    addTagMouseOutEvent(tagLabels[i]);
    addCtgTagClickEvent(tagLabels[i]);
    addCtgInputScanEvent(tagLabels[i]);
  }
  addCtgInputScanEvent(ctgTagInput);
  procInputScanEvent(ctgTagInput, cmmtTagDiv.getElementsByTagName("label"));

  var menuTagDiv   = document.getElementById("menuTagList");
  var menuTagInput = document.getElementById("menuTagInput");
  var tagLabels = menuTagDiv.getElementsByTagName('label');
  for( i = 0; i < tagLabels.length; i++ ) {
    addTagMouseInEvent(tagLabels[i]);
    addTagMouseOutEvent(tagLabels[i]);
    addMenuTagClickEvent(tagLabels[i]);
  }
  addMenuInputScanEvent(menuTagInput);
  procInputScanEvent(menuTagInput, menuTagDiv.getElementsByTagName("label"));
}

function fillTagList2(){
  var listLabel, listText;
  //[ initializing category tag list
  if(cmmtTagList2.length == 0) return;
  var cmmtTagDiv  = document.getElementById("ctgTagList2");
  var ctgTagInput = document.getElementById("ctgTagInput2");

  cmmtTagList = cmmtTagList2.split(",");
  for(i=0; i<cmmtTagList.length; i++){
    listLabel = document.createElement("label");
    listText  = document.createTextNode(cmmtTagList[i]);
    listLabel.className = "tagClass";
    listLabel.appendChild(listText);
    cmmtTagDiv.appendChild(listLabel);

    addTagMouseInEvent(listLabel);
    addTagMouseOutEvent(listLabel);
    addCtgTagClickEvent2(listLabel);
    addCtgInputScanEvent(listLabel);
  }

  addCtgInputScanEvent(ctgTagInput);
  procInputScanEvent(ctgTagInput, cmmtTagDiv.getElementsByTagName("label"));

  //[ initializing menu tag list
  if(menuTagList.length == 0) return;
  var menuTagDiv   = document.getElementById("menuTagList");
  var menuTagInput = document.getElementById("menuTagInput");

  menuTagList = menuTagList.split(",");
  for(i=0; i<menuTagList.length; i++){
    listLabel = document.createElement("label");
    listText  = document.createTextNode(menuTagList[i]);
    listLabel.className = "tagClass";
    listLabel.appendChild(listText);
    menuTagDiv.appendChild(listLabel);

    addTagMouseInEvent(listLabel);
    addTagMouseOutEvent(listLabel);
    addMenuTagClickEvent(listLabel);
  }

  addMenuInputScanEvent(menuTagInput);
  procInputScanEvent(menuTagInput, menuTagDiv.getElementsByTagName("label"));
}

/*
function fillOthInfoList(){
  var listBox, listLabel, listText;

  if(othInfoList.length == 0) return;
  var othInfoDiv   = document.getElementById("othInfoList");
  var numOtherInfo = document.getElementById("numOtherInfo");
  
  othInfoList = othInfoList.split(",");
  for(i=0; i<othInfoList.length; i++){
    otherInfo = othInfoList[i].split(":");
    listBox   = document.createElement("input");
    listLabel = document.createElement("label");
    listText  = document.createTextNode(otherInfo[1]);
    listBox.type  = "checkbox";
    listBox.value = otherInfo[0] + ":" + otherInfo[1];
    listBox.className = "checkInfo";
    listBox.id    = "otherInfo[" + (i+1) +"]";
    listBox.name  = "otherInfo[" + (i+1) +"]";
    listLabel.htmlFor = listBox.id;
    listLabel.className = "OtherInfo";
    listLabel.appendChild(listText);
    othInfoDiv.appendChild(listBox);
    othInfoDiv.appendChild(listLabel);

    if(i == othInfoList.length-1)
      addMrtEvent(listBox);
  }

  numOtherInfo.value = othInfoList.length;
}
*/
function fillData(){
  postData = postData.split(",");

  for(i=0; i< postData.length; i++){
    data = postData[i].split(":");
    targetElement = document.getElementById(data[0]);

    if(targetElement == null){
      continue;
    }else{
      if(targetElement.tagName == "select"){
        innerElements = targetElement.getElementsByTagName("option");
        for(j=0; j < innerElements.length; j++){
          if(innerElements[j].value == data[1]){
            innerElements[j].selected = true;
            break;
          }
        }
      }
  
      if(targetElement.tagName == "input"){
        if(targetElement.type = "text"){
          targetElement.value = data[1];
        }
 
        if(targetElement.type = "checkbox"){
          targetElement.checked = true;
        }
      }
  
      if(targetElement.tagName == "textarea"){
        targetElement.value = data[1];
      }  

    }

  } // end of for loop
}

/************************
 * Event Function Group *
 ************************/

// Tag Related Event Functions *************************************************

function compareColor(srcColor, dstColor){

  if(srcColor.indexOf("#") != -1){
    srcColor = srcColor.substr(srcColor.indexOf("#")+1).toLowerCase();
    dstColor = dstColor.substr(dstColor.indexOf("#")+1).toLowerCase();

    return (srcColor == dstColor);

  }else if(srcColor.indexOf("rgb") != -1){
    dstColor   = dstColor.substr(dstColor.indexOf("#")+1).toLowerCase();
    var rColor = dstColor.substr(0,2);
    var gColor = dstColor.substr(2,2);
    var bColor = dstColor.substr(4,2);

    rgbColor = "rgb(" + parseInt(rColor, 16) + ", " + parseInt(gColor, 16) + ", " + parseInt(bColor, 16) + ")";

    return (srcColor == rgbColor);
  }

  return false;
}

function addTagMouseInEvent(obj){
  if(obj.addEventListener)
    obj.addEventListener("mouseover", tagMouseInEvent, true);
  else
    obj.attachEvent("onmouseover", tagMouseInEvent);
}

function tagMouseInEvent(e){
  if(!e) e = window.Event;

  var tagLabel;
  if(e.srcElement)
    tagLabel = e.srcElement;
  else
    tagLabel = e.currentTarget;

  if(compareColor(tagLabel.style.backgroundColor, clickColor))
    return;

  tagLabel.style.backgroundColor = inColor;
}

function addTagMouseOutEvent(obj){
  if(obj.addEventListener)
    obj.addEventListener("mouseout", tagMouseOutEvent, true);
  else
    obj.attachEvent("onmouseout", tagMouseOutEvent);
}

function tagMouseOutEvent(e){
  if(!e) e = window.Event;

  var tagLabel;
  if(e.srcElement)
    tagLabel = e.srcElement;
  else
    tagLabel = e.currentTarget;

  if(compareColor(tagLabel.style.backgroundColor, clickColor))
    return;

  tagLabel.style.backgroundColor = outColor;
}

function addCtgTagClickEvent(obj){
  if(obj.addEventListener)
    obj.addEventListener("click", ctgTagClickEvent, true);
  else
    obj.attachEvent("onclick", ctgTagClickEvent);
}

function addCtgTagClickEvent2(obj){
  if(obj.addEventListener)
    obj.addEventListener("click", ctgTagClickEvent2, true);
  else
    obj.attachEvent("onclick", ctgTagClickEvent2);
}

function addMenuTagClickEvent(obj){
  if(obj.addEventListener)
    obj.addEventListener("click", menuTagClickEvent, true);
  else
    obj.attachEvent("onclick", menuTagClickEvent);
}

function ctgTagClickEvent(e){
  if(!e) e = window.Event;

  var srcObj;
  if(e.currentTarget){
    srcObj = e.currentTarget;
  }else if(e.srcElement){
    srcObj = e.srcElement;
  }else{
    return false;
  }
  
  var dstObj = document.getElementById("ctgTagInput");

  procClickEvent(srcObj, dstObj);
    var cmmtTagDiv  = document.getElementById("ctgTagList");
  var ctgTagInput = document.getElementById("ctgTagInput");
  procInputScanEvent(ctgTagInput, cmmtTagDiv.getElementsByTagName("label"));
}

function ctgTagClickEvent2(e){
  if(!e) e = window.Event;

  var srcObj;
  if(e.currentTarget){
    srcObj = e.currentTarget;
  }else if(e.srcElement){
    srcObj = e.srcElement;
  }else{
    return false;
  }

  var dstObj = document.getElementById("ctgTagInput2");

  procClickEvent(srcObj, dstObj);
}

function menuTagClickEvent(e){
  if(!e) e = window.Event;

  var srcObj;
  if(e.currentTarget){
    srcObj = e.currentTarget;
  }else if(e.srcElement){
    srcObj = e.srcElement;
  }else{
    return false;
  }

  var dstObj = document.getElementById("menuTagInput");

  procClickEvent(srcObj, dstObj);
}

function procClickEvent(srcObj, dstObj){

  var chosenTag = srcObj.innerHTML;
  var insertTag = dstObj.value;

  if(insertTag.length == 0){
    dstObj.value = chosenTag;
    srcObj.style.backgroundColor = clickColor;

    return true;
  }

  insertTag = insertTag.split(" ");
  var i=0, isExist=0;
  if(compareColor(srcObj.style.backgroundColor, clickColor)){
    for(i=0, isExist=0; i<insertTag.length; i++){
      if(insertTag[i] == chosenTag){
        isExist = 1;
        break;
      }
    }

    if(isExist){
      insertTag.splice(i, 1);
      dstObj.value = insertTag.join(" ");
      srcObj.style.backgroundColor = outColor;
    }else{
      return;
    }
  }else{
    for(i=0, isExist=0; i<insertTag.length; i++){
      if(insertTag[i] == chosenTag){
        isExist = 1;
        break;
      }
    }

    if(!isExist){
      dstObj.value = insertTag.join(" ") + " " + chosenTag;
      srcObj.style.backgroundColor = clickColor;
    }else{
      return;
    }
  }

  return true;
}


function addCtgInputScanEvent(obj){
  if(obj.addEventListener)
    obj.addEventListener("keyup", ctgInputScanEvent, true);
  else
    obj.attachEvent("onkeyup", ctgInputScanEvent);
}

function ctgInputScanEvent(e){
  if(!e) e = window.Event;

  var srcObj;
  if(e.currentTarget){
    srcObj = e.currentTarget;
  }else if(e.srcElement){
    srcObj = e.srcElement;
  }else{
    return false;
  }

  var tagDiv   = document.getElementById("ctgTagList");
  var labelGrp = tagDiv.getElementsByTagName("label");

  procInputScanEvent(srcObj, labelGrp);

  return true;
}

function addMenuInputScanEvent(obj){
  if(obj.addEventListener)
    obj.addEventListener("keyup", menuInputScanEvent, true);
  else
    obj.attachEvent("onkeyup", menuInputScanEvent);
}

function menuInputScanEvent(e){
  if(!e) e = window.Event;

  var srcObj;
  if(e.currentTarget){
    srcObj = e.currentTarget;
  }else if(e.srcElement){
    srcObj = e.srcElement;
  }else{
    return false;
  }

  var tagDiv = document.getElementById("menuTagList");
  var labelGrp = tagDiv.getElementsByTagName("label");

  procInputScanEvent(srcObj, labelGrp);

  return true;
}

function procInputScanEvent(srcObj, labelGrp){
  var insertTag;
  if(srcObj.value.indexOf(" ") == -1){
    insertTag = new Array(srcObj.value);
  }else{
    insertTag = srcObj.value.split(" ");
  }

  var numLabelGrp = labelGrp.length;

  var listObj = new Array(numLabelGrp);
  var listTag = new Array(numLabelGrp);
  for(i=0; i<numLabelGrp; i++){
    listObj[i] = labelGrp[i];
    listTag[i] = labelGrp[i].innerHTML;
  }

  for(i=0; i<insertTag.length; i++){
    for(j=0; j<numLabelGrp; j++){

      if(insertTag[i] == listTag[j] &&
         !compareColor(listObj[j].style.backgroundColor, clickColor)){

        listObj[j].style.backgroundColor = clickColor;
        break;
      }
    }
  }

  var isExist = 0;
  for(i=0; i<numLabelGrp; i++){
    for(j=0, isExist=0; j<insertTag.length; j++){
      if(listTag[i] == insertTag[j]){
        isExist = 1;
        break;
      }
    }

    if(!isExist &&
       compareColor(listObj[i].style.backgroundColor, clickColor)){

      listObj[i].style.backgroundColor = outColor;
    }
  }
}

// *****************************************************************************

// MRT Related Event Functions *************************************************

function addMrtEvent(obj){
  if(obj.addEventListener)
    obj.addEventListener("click", mrtClickEvent, true);
  else
    obj.attachEvent("onclick", mrtClickEvent);
}

//function mrtClickEvent(e){
function mrtClickEvent(box,city){
/*
  if(!e) e = window.Event;

  var box;
  if(e.srcElement)
    box = e.srcElement;
  else
    box = e.currentTarget;
*/
  if(box.checked){
    addMrtCtgList(city);
  }else{
    var othInfoDiv  = document.getElementById("othInfoList");
    var ctgList     = document.getElementById("mrtCtg");
    var stationList = document.getElementById("stationList");
		if (ctgList)
			othInfoDiv.removeChild(ctgList);
    if(stationList != null)
      othInfoDiv.removeChild(stationList);
  }
}

function addMrtListEvent(obj){
  if(obj.addEventListener)
    obj.addEventListener("change", mrtSelectEvent, true);
  else
    obj.attachEvent("onchange", mrtSelectEvent);
}

function mrtSelectEvent(e){
  if(!e) e = window.Event;

  var list;
  if(e.srcElement)
    list = e.srcElement;
  else
    list = e.currentTarget;

  var othInfoDiv  = document.getElementById("othInfoList");
  var stationList = document.getElementById("stationList");
  if(stationList != null)
    othInfoDiv.removeChild(stationList);

  addMrtStatList(list.value);

}

function addMrtCtgList(city){
	var catg_id='';
	var mrtCtgList = new Array();
	mrtCtgList = get_mrt_data(city);
	mrtCtgList = mrtCtgList.toArray();
	var othInfoDiv = document.getElementById("othInfoList");
	var ctgList;

	if ( document.getElementById("mrtCtg") )
	{
		ctgList = document.getElementById("mrtCtg");
		ctgList.focus();
	}else
	{
	  ctgList    = document.createElement("select");
	  var ctgOption, opList;

	  ctgOption = document.createElement("option");
	  ctgOption.value = -1;
	  ctgOption.className = "opList";
	  ctgOption.appendChild(document.createTextNode(infoCtg));
	  ctgList.appendChild(ctgOption);

	  for (catg_id in mrtCtgList)
	  {
			if (typeof(mrtCtgList[catg_id])=="object")
			{
				ctgOption = document.createElement("option");
	    	ctgOption.value = catg_id;
	    	ctgOption.className = "opList";
	    	ctgOption.appendChild(document.createTextNode(mrtCtgList[catg_id]["line_title"]));
	    	ctgList.appendChild(ctgOption);
	    }
	  }


	  ctgList.id   = "mrtCtg";
	  ctgList.name = "mrtCtg";
	  othInfoDiv.appendChild(ctgList);
		addMrtListEvent(ctgList);
	}
}

function addMrtStatList(ctgId){
	var stat_id='';
  if(ctgId == "-1") return;

  var tempList = get_mrt_data(ctgId);
	tempList = tempList['stations'];

  var othInfoDiv  = document.getElementById("othInfoList");
  var stationList = document.createElement("select");
  var statOption, opList;

  statOption = document.createElement("option");
  statOption.value = -1;
  statOption.className = "opList";
  statOption.appendChild(document.createTextNode(infoMrt));
  stationList.appendChild(statOption);

	for (stat_id in tempList){
    opList = stat_id;
    statOption = document.createElement("option");
    statOption.value = stat_id;
    statOption.className = "opList";
    statOption.appendChild(document.createTextNode(tempList[stat_id]));
    stationList.appendChild(statOption);
  }
  stationList.id   = "stationList";
  stationList.name = "stationList";
  othInfoDiv.appendChild(stationList);
}

// *****************************************************************************

// Image Upload Related Functions **********************************************

function funcMouseOver(e){
  if(!e) e = window.Event;
  
  var funcLabel;
  if(e.srcElement)
    funcLabel = e.srcElement;
  else
    funcLabel = e.currentTarget;

  funcLabel.style.backgroundColor = funcInColor;
}

function funcMouseOut(e){
  if(!e) e = window.Event;

  var funcLabel;
  if(e.srcElement)
    funcLabel = e.srcElement;
  else
    funcLabel = e.currentTarget;

  funcLabel.style.backgroundColor = funcOutColor;
}

function imageAdd(){

  var openWindow = window.open("imageUpload.php?act=0&com=0&u_id=" + u_id + "&s_id=" + s_id, "ImageUpload", "width=280,height=100,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no", true); 
  openWindow.focus();

}

function imageChange(e){
  if(!e) e = window.Event;

  var imageId;
  if(e.srcElement)
    imageId = e.srcElement.id.substr(e.srcElement.id.indexOf("_") + 1);
  else
    imageId = e.currentTarget.id.substr(e.currentTarget.id.indexOf("_") + 1);

  var openWindow = window.open("imageUpload.php?id=" + imageId + "&act=1&com=0&u_id=" + u_id + "&s_id=" + s_id, "ImageUpload", "width=280,height=100,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no", true); 
  openWindow.focus();

}

function imageDelete(e){
  // one rcmmdImageBlk has three "div" tags
  var unitDivTag = 3;

  if(!confirm(rcmmdWarnMsg)) return;

  var imageId;
  if(e.srcElement)
    imageId = e.srcElement.id.substr(e.srcElement.id.indexOf("_") + 1);
  else
    imageId = e.currentTarget.id.substr(e.currentTarget.id.indexOf("_") + 1);

  var rcmmdImageGrp = document.getElementById("rcmmdImageGrp");
  var rcmmdImageBlk = rcmmdImageGrp.getElementsByTagName("div");

  var numImages     = rcmmdImageGrp.getElementsByTagName("div").length;
  if(numImages == unitDivTag)
    rcmmdImageGrp.removeChild(rcmmdImageBlk[0]);
  else{
    rcmmdImageGrp.removeChild(rcmmdImageBlk[imageId * unitDivTag]);

    var numImageBlk = rcmmdImageGrp.getElementsByTagName("fieldset").length;
    var rcmmdBorder = rcmmdImageGrp.getElementsByTagName("fieldset");

    var rcmmdBtDiv;
    var rcmmdModify;
    var rcmmdDelete;
    for(i=0; i < numImageBlk; i++){
      rcmmdBtDiv  = rcmmdBorder[i].getElementsByTagName("div")[1];
      rcmmdModify = rcmmdBtDiv.getElementsByTagName("input")[0];
      rcmmdDelete = rcmmdBtDiv.getElementsByTagName("input")[1];

      rcmmdModify.id = "rcmmdModify" + "_" + i;
      rcmmdDelete.id = "rcmmdDelete" + "_" + i;    
    }
  }
  
}

// *****************************************************************************


