/* him_info.js */

function e() {/* cool and alltime needed */
   var element = arguments[0];
   element = document.getElementById(element);
   return element;
   }

/* Konvertiert numerische HTML-Entities in Unicode-Zeichen */
function decodeHtmlEntities(text) {
    return text.replace(/&#(\d+);/g,function(wm,pm) {return String.fromCharCode(+pm);});
    }

function initENTERHandling(){
  allowENTER = false;
  document.onkeydown = function(event){
    currentKC=(event)?event.keyCode:window.event.keyCode;
    if(currentKC == 13 && allowENTER == false) return false;
    else if(allowENTER == true) allowENTER = false;
  }
  if(document.forms[0]) {
      for(var i=0;i<document.forms[0].getElementsByTagName("input").length;i++){
        var currentElement = document.forms[0].getElementsByTagName("input")[i];
        if(currentElement.type == 'button' || currentElement.type == 'submit'){
            currentElement.onkeydown = function(){allowENTER = true;}
          }
      }
      for(i=0;i<document.forms[0].getElementsByTagName("textarea").length;i++){
        document.forms[0].getElementsByTagName("textarea")[i].onkeydown = function(){allowENTER = true;}
      }
  }
}

/* Textauswahl fur das Informationsfeld */
function txtInfo(selID,optionIdx,langIdx){
   /* Text aus Listbox-Option-Text in 'caption'-Feld transferieren */
   e('messageCaption_'+langIdx).value = e(selID).options[optionIdx].value.split('|')[0];

   /* Text aus Listbox-Option-Value in 'Announcement'-Feld transferieren */
   /* Vorher alle <br> durch \n ersetzen */
   messageText = e(selID).options[optionIdx].value.split('|')[1].replace(/<br>/g,"\n");
   e('messageAnnouncement_'+langIdx).value = messageText;
   /* Reset List */
   e(selID).selectedIndex = 0;
   }
function currentDate() {
   var date = new Date();
   day = date.getDate();
   month = (date.getMonth()+1);
   if(month < 10){
      month = "0"+month;
      }
   year = date.getFullYear();
   return day+"."+month+"."+year;
   }

function unselectAllMeansOfTraffic(){
   for(i=0;i<countAllMeansOfTransport;i++){
	   var elem =  eval("e('himproduct_"+i+"\');");
       if (elem){
    	  eval("e('himproduct_"+i+"\').checked = false;");
       	}
      }
   }

function selectAllMeansOfTraffic(){
   for(i=0;i<countAllMeansOfTransport;i++){
      var elem =  eval("e('himproduct_"+i+"\');");
      if (elem){
    	  eval("e('himproduct_"+i+"\').checked = true;");
      	}
      }
   }

function checkExactCon(){
   var trainSelTypeClass = eval("e('trainSelectTypeClass')");
   if (trainSelTypeClass && trainSelTypeClass.checked != true){
      alert (unescape (exactConText));
      unselectAllMeansOfTraffic();
      }
   }

/* enable cus checkbox if online timatable is checked */
function checkOnlineTimetable(){
  var onlineTable = e('onlineTimetable');
  var disableCus  = e('disableCus');
  if (!onlineTable || !disableCus)
    return;

  if(onlineTable.checked == true)
    disableCus.disabled = false;
  else{
    disableCus.disabled = true;
    disableCus.checked  = false;
  }
}

/* Get and Calculate new date */
function changeHimDate(dayVal,dateID){
    var dateString = e(dateID).value;
    var himDate = dateString.split('.');
    var year = 1*himDate[2];
    if (year < 100)
      year = year + 2000;

    var nod = getDaysSince1980(year,1*himDate[1],1*himDate[0]);
    var gDate = gregDate(1*nod+1*dayVal);
    gDate[0] = (gDate[0]<10)? '0'+gDate[0]:gDate[0];
    gDate[1] = (gDate[1]<10)? '0'+gDate[1]:gDate[1];
    e(dateID).value = gDate[0]+'.'+gDate[1]+'.20'+gDate[2]
    }

function toggle_check_all_messages(toggleBoxChecked){

  if(toggleBoxChecked){
    e('check_messages0').checked = true;
    e('check_messages1').checked = true;
  }
  else{
    e('check_messages0').checked = false;
    e('check_messages1').checked = false;
  }

  numberObjects = (numberObjectsValue == '')? 0:(1*numberObjectsValue);

  for (idxObj = 0;idxObj != numberObjects;++idxObj){
    curCheckBox = e('check_objectState_' + idxObj);
    if (curCheckBox){
      curCheckBox.checked = toggleBoxChecked;
    }
  }
}

/* Tab selection for language specific messages */
function selectTab(tabWidget,tab){

   objTabWidget = e(tabWidget);
   tabPages = objTabWidget.childNodes;
   numberPages = tabPages.length;

   for (idxTabPage = 0;idxTabPage != numberPages;++idxTabPage){

      objTabPage = tabPages[idxTabPage];
      objTab = e(objTabPage.id+"_tab");

      /* Not a tab */
      if (objTab == null)
         continue;

      if (objTabPage.id == tab){
         objTabPage.className = 'activeTabPage';
         objTab.className     = 'activeTab';
         }
      else {
         objTabPage.className = 'inactiveTabPage';
         objTab.className     = 'inactiveTab';
         }
      }
   return undefined;
   }

/* DEVELOP HIM preview for messages */
function enablePreview(checked){
   e('usePreview_0').checked = checked;
   e('usePreview_1').checked = checked;
   e('usePreview_2').checked = checked;
   e('usePreview_3').checked = checked;

   var langIdx = new Array('de','en','fr','it');
   for (var n=0;n<langIdx.length;n++)
      {
      if(e('textInput_'+langIdx[n]).className.indexOf('inactiveTabPage')!= -1)
         {
         }
      else
         {
         if (checked == true)
            startPreview(n);
         else
            stopPreview(n);
         }
      }
   }
function startPreview(languagIdx){
   preview = window.setInterval("previewtxtInfo("+languagIdx+")",100);
   }
function stopPreview(languagIdx){
   window.clearInterval(preview);
   }

function previewtxtInfo(languagIdx){
   previewText = e('messageAnnouncement_'+languagIdx).value.replace(/</g,"&lt;");
   previewText = previewText.replace(/>/g,"&gt;");
   previewText = previewText.replace(/\n/g,"<br>");
   if(previewText=='')
      e('preview_'+languagIdx).innerHTML = '<span style="color:#999;">Vorschau leer</span>';
   else
      e('preview_'+languagIdx).innerHTML = previewText;
   }


function checkMessage(){

   /* transfer message validity to publication period */
   /*setMessageValidity();*/

   flag = true
   for (var n=0;n<=3;n++) {

      if(flag == true)
         flag = (e('messageAnnouncement_'+n).value.indexOf(">") != -1 || e('messageCaption_'+n).value.indexOf(">") != -1) ? false : true;
      if(flag == true)
         flag = (e('messageAnnouncement_'+n).value.indexOf("<") != -1 || e('messageCaption_'+n).value.indexOf("<") != -1) ? false : true;

      if(flag == false)
         {
         return confirm(unescape(checkMessageText));
         break;
         }
      }
      return true;
   }

var oldIconId = null;
function checkIcon(id){
   if (id == "messageIcon2")
      {
      e('inMap').checked=true;
      }
   else if (oldIconId == "messageIcon2")
      {
      e('inMap').checked=false;
      }
   oldIconId = id;
}

function setMessageValidity(){
   if (e('togValOn').checked == true)
      {
      e('pubPeriodDate1').value = e('valPeriodDate1').value;
      e('pubPeriodDate2').value = e('valPeriodDate2').value;
      e('pubPeriodTime1').value = e('valPeriodTime1').value;
      e('pubPeriodTime2').value = e('valPeriodTime2').value;
      }
}

// switch free text/ non free text
function enableFreeText(status)
{
	var newStatus = !status;
	macroAreaContainer.enable(newStatus);
	
	// free text on => clear macro areas
	// free text off => clear text area
	if(document.forms[0])
	{
		for (var i=0;i<document.forms[0].getElementsByTagName("input").length;i++)
		{
	        var currentElement = document.forms[0].getElementsByTagName("input")[i];
	        if (currentElement.id.substr(0,14) == "messageCaption")
	        {
	        	e(currentElement.id).readOnly = newStatus;
	        }
	        if (currentElement.id.substr(0,11) == "messageLead")
	        {
	        	e(currentElement.id).readOnly = newStatus;
	        }
	    }
		for (var i=0;i<document.forms[0].getElementsByTagName("textarea").length;i++)
		{
	        var currentElement = document.forms[0].getElementsByTagName("textarea")[i];
	        if (currentElement.id.substr(0,19) == "messageAnnouncement")
	        {
	        	e(currentElement.id).readOnly = newStatus;
	        }
	    }
	}
	
	if (newStatus) macroMessageView.update();
}


function advancedPublication(button, id){
  button.style.display='none';
  e(id).style.display='inline';
  var chanelIdx = 1;
  for(chanelIdx=1;chanelIdx<=15;chanelIdx++){
    if(e('publication'+chanelIdx)){
      if(id == 'showPublication'){
        displayEnableContainer(e('publication'+chanelIdx), 'yes');
        if (e('labelDateBegin'+chanelIdx)) {
          e('labelDateBegin'+chanelIdx).style.display='none';
          e('labelDateEnd'+chanelIdx).style.display='none';
        }
      }
      else{
        displayEnableContainer(e('publication'+chanelIdx), 'no');
        if (e('labelDateBegin'+chanelIdx)) {
          e('labelDateBegin'+chanelIdx).style.display='';
          e('labelDateEnd'+chanelIdx).style.display='';
        }
      }

      e('start_date_'+chanelIdx).value = e('valPeriodDate1').value;
      e('start_time_'+chanelIdx).value = e('valPeriodTime1').value;
      e('end_date_'+chanelIdx).value =  e('valPeriodDate2').value;
      e('end_time_'+chanelIdx).value =  e('valPeriodTime2').value;
    }
  }

  if(id == 'showPublication')
    e('togValOn').value = 1;
  else
    e('togValOn').value = 0;
}

/**
 *  controls display of any container
 *  if container is hidden all input fields are disabled
 *  so they won't be submitted (cag)
 */
function displayEnableContainer(container, flag){
  var curIdx = 0;
  if(flag == "yes") {
    container.style.display = "block";
    for(curIdx=0;curIdx<container.getElementsByTagName("input").length;curIdx++){
      container.getElementsByTagName("input")[curIdx].disabled = false;
    }
    for(curIdx=0;curIdx<container.getElementsByTagName("textarea").length;curIdx++){
      container.getElementsByTagName("textarea")[curIdx].disabled = false;
    }
    for(curIdx=0;curIdx<container.getElementsByTagName("select").length;curIdx++){
      container.getElementsByTagName("select")[curIdx].disabled = false;
    }
  }
  else {
    container.style.display = "none";
    for(curIdx=0;curIdx<container.getElementsByTagName("input").length;curIdx++){
      container.getElementsByTagName("input")[curIdx].disabled = true;
    }
    for(curIdx=0;curIdx<container.getElementsByTagName("textarea").length;curIdx++){
      container.getElementsByTagName("textarea")[curIdx].disabled = true;
    }
    for(curIdx=0;curIdx<container.getElementsByTagName("select").length;curIdx++){
      container.getElementsByTagName("select")[curIdx].disabled = true;
    }
  }
}

