// Action type = smaller or bigger.
var boxCours = true;
var boxDocument = true;
var boxDetail = true;
var list = new Array();
list['boxCours'] = true;
list['boxDocument'] = true;
list['boxDetail'] = true;

function textCounter(field,displayBoxId,maxlimit)
{
  if (field.value.length > maxlimit)
  {
    field.value = field.value.substring(0, maxlimit);
  }
  try
  {
    document.getElementById(displayBoxId).innerHTML = maxlimit - field.value.length;
  }
  catch(e){}
}

function switchImg()
  {
    if (document.images)
    {
      for (var ctr=0; ctr<switchImg.arguments.length; ctr+=2)
      {
        document[switchImg.arguments[ctr]].src = eval (switchImg.arguments[ctr+1] + ".src");
      }
    }
  }

function switchImgByURL()
{
  if (document.images)
  {
    for (var ctr=0; ctr<switchImgByURL.arguments.length; ctr+=2)
    {
        img = document.getElementById(switchImgByURL.arguments[ctr]);
        if(img && img.src)
        {
            img.src = switchImgByURL.arguments[ctr+1];
        }
    }
  }
}

function hideImage(id)
{
    temp = document.getElementById(id)
    if(temp && temp.style)
    {
        temp.style.display = "none";
        temp.style.height = "0px";
    }
}

function showImage(id)
{
    temp = document.getElementById(id);
    if(temp && temp.style)
    {
        temp.style.display = "block";
        temp.style.height = "";
    }
}

function showHideElement(id, forceDisplay)
{
  try
  {
    var elm = document.getElementById(id);
    if(elm.style.display == 'none' || forceDisplay)
    {
      elm.style.display = "block";
      return true;
    }
    else
    {
      elm.style.display = "none";
      return false;
    }
  }
  catch(e){}
}

function doAction(id, collapseSrc, expandSrc, defaultValue)
{
  if(list[id] == null || list[id] == "undefined")
  {
    list[id] = defaultValue;
  }
  var state = list[id];
  if(state)
  {
    list[id] = false;
    hideImage(id);
    switchImgByURL("img" + id, expandSrc);
  }
  else
  {
    list[id] = true;
    showImage(id);
    switchImgByURL("img" + id, collapseSrc);
  }
}

function openWebdavBrowser(url)
{
  var params;
  params = "width=" + 600 + ",height=" + 500 + ",resizable=yes,scrollbars=no,status=no";
  var name = "webdavBrowser" + Math.round(Math.random() * 10000);

  myEngineWin = window.open( url, name, params );
  return myEngineWin;
}

function openWindowPopup(url, width, height)
{
  var params;
  params = "width=" + width + ",height=" + height + ",resizable=yes,scrollbars=yes,status=no";
  var name = "theWindow" + Math.round(Math.random() * 10000);

  myEngineWin = window.open( url, name, params );
  return myEngineWin;
}

function startsWith(value, search)
{
  if(value && search && value.length > search.length)
  {
    var start = value.substr(0, search.length);
    if(start == search)
    {
       return true;
    }
  }
  return false;
}

function contains(arr, search)
{
  if(arr && arr.length > 0)
  {
    for(var i = 0; i < arr.length; i++)
    {
      if(arr[i] == search)
      {
        return true;
      }
    }
  }
  return false;
}

function showContextHelp(key)
{
  var url = document.location.href;
  url = url.substring(0, url.indexOf('/', 9));
  url = url.replace('https://', 'http://');
  url = url + '/profil/ContextHelp.view?key=' + key;
  var win = openWindowPopup(url, 670, 500);
  /*var pageUrl = "http://doc.intellogix.com/sgc/profil/" + key + "/cache/bypass/?contentOnly=1";

  var win = new Window("test", {className: "fieldProperties",title:contextHelpPageTitle,url:pageUrl,width:670,height:400,hideEffect:Element.hide,showEffect:Element.show,zIndex:100,resizable:true,draggable:true});
  win.showCenter();*/
}

function dateChangedForm(cal, fieldId)
{
  if (cal.dateClicked)
  {
    var fieldYear = eval("document.forms[0]." + fieldId + "Year");
    var fieldMonth = eval("document.forms[0]." + fieldId + "Month");
    var fieldDay = eval("document.forms[0]." + fieldId + "Day");

    setDateToFields(cal, fieldYear, fieldMonth, fieldDay);
  }
}

function dateChanged(cal, fieldId)
{
  if (cal.dateClicked)
  {
    var fieldYear = eval("document.forms[0].field_" + fieldId + "_year");
    var fieldMonth = eval("document.forms[0].field_" + fieldId + "_month");
    var fieldDay = eval("document.forms[0].field_" + fieldId + "_day");

    setDateToFields(cal, fieldYear, fieldMonth, fieldDay);
  }
}

function setDateToFields(cal, fieldYear, fieldMonth, fieldDay)
{
  // OK, a date was clicked, redirect to /yyyy/mm/dd/index.php
  var y = cal.date.getFullYear();
  var m = cal.date.getMonth();     // integer, 0..11
  var d = cal.date.getDate();      // integer, 1..31

  m++;
  if(m < 10)
    m = "0" + m;

  if(d < 10)
    d = "0" + d;

  if(fieldYear)
  {
    if(fieldYear.tagName.toLowerCase() == 'select')
    {
      for(var i = 0; i < fieldYear.options.length; i++)
      {
        var curOpt = fieldYear.options[i];

        if(curOpt.value == y)
        {
          fieldYear.selectedIndex = i;
          break;
        }
      }
    }
    else if(fieldYear.tagName.toLowerCase() == 'input')
    {
      fieldYear.value = y;
    }
  }
  if(fieldMonth)
  {
    if(fieldMonth.tagName.toLowerCase() == 'select')
    {

      for(var i = 0; i < fieldMonth.options.length; i++)
      {
        var curOpt = fieldMonth.options[i];
        if(curOpt.value == m)
        {
          fieldMonth.selectedIndex = i;
          break;
        }
      }
    }
    else if(fieldMonth.tagName.toLowerCase() == 'input')
    {
      fieldMonth.value = m;
    }
  }
  if(fieldDay)
  {
    if(fieldDay.tagName.toLowerCase() == 'select')
    {
      for(var i = 0; i < fieldDay.options.length; i++)
      {
        var curOpt = fieldDay.options[i];
        if(curOpt.value == d)
        {
          fieldDay.selectedIndex = i;
          break;
        }
      }
    }
    else if(fieldDay.tagName.toLowerCase() == 'input')
    {
      fieldDay.value = d;
    }
  }

  var p = cal.params;
  var update = (cal.dateClicked || p.electric);
  if (update && p.inputField) {
    p.inputField.value = cal.date.print(p.ifFormat);
    if (typeof p.inputField.onchange == "function")
      p.inputField.onchange();
  }
  if (update && p.displayArea)
    p.displayArea.innerHTML = cal.date.print(p.daFormat);
  if (update && typeof p.onUpdate == "function")
    p.onUpdate(cal);
  if (update && p.flat) {
    if (typeof p.flatCallback == "function")
      p.flatCallback(cal);
  }
  if (update && p.singleClick && cal.dateClicked)
    cal.callCloseHandler();
}

function markMessageHasRead(id)
{
  SystemInterface.markMessageHasRead(id, {callback:hideMessage,errorHandler:errorHandler});
}

function hideMessage(id)
{
  try
  {
    var msgBox = document.getElementById('systemMessages');
    if(msgBox)
    {
      var msg = document.getElementById('systemMessage' + id);
      if(msg)
      {
        msgBox.removeChild(msg);
        var hasChilds = false;
        for(var i = 0; i < msgBox.childNodes.length; i++)
        {
          if(msgBox.childNodes[i].nodeName.toUpperCase() == 'LI')
          {
            hasChilds = true;
          }
        }
        if(!hasChilds)
        {
          document.getElementById('systemMessagesBox').style.display = 'none';
        }
      }
    }
  }
  catch(e){};
}

function errorHandler(message, reverse)
{
  if (reverse && reverse.rootException) {
    if (reverse.rootException == 'org.acegisecurity.BadCredentialsException') {
      document.location.reload();
    }
  }
  showDebug();
  clearDebug();
  debug("Error : " + message, reverse);
}

function showModulesMenu(subId)
{
  try
  {
    document.getElementById(subId).style.display = "block";
  }
  catch(e){}
}
function hideModulesMenu(subId)
{
  try
  {
    document.getElementById(subId).style.display = "none";
  }
  catch(e){}
}
