/* $Header: /home/cvs/DC5/dc5_ringier/www/js/dc_app_select.js,v 1.2 2006/04/25 14:46:06 tim Exp $ */

// Name des Cookie
var dcAppSelectCookie = "dcAppSelectCookie";

// Id des div-Tags, in welchem die Anzahl
// der Ids dargestellt wird
var dcAppSelectDisplayId = "dcAppSelectedDisplay";

// Flag, ob Cookie gelöscht werden soll - NICHT ANPASSEN
var dcAppRefreshCookie   = false;


function initSelectCookie()
{
  if (! document.cookie)
    setSelectCookie("");

  selectIdsByCookie();
  displayValue(countIds(getDataFromString(document.cookie)));
}

function setSelectCookie(value)
{
  if (typeof value == "string")
  {
    var expires = "";

    if (! document.cookie)
    {
      var today = new Date();
      today.setDate(today.getDate() + 10);

      expires = " expires=" + today.toGMTString() + ";";
    }

    document.cookie = dcAppSelectCookie + "=" + value + "; path=" + DC_WWW + "; " + expires;
    displayValue(countIds(getDataFromString(document.cookie)));
  }
  else
    alert("kein string");
}

function getSelectCookie()
{
  var strTemp = "";

  var myobj = getDataFromString(document.cookie);

  alert(myobj);
}

function displayValue(strVal)
{
  if (! document.getElementById(dcAppSelectDisplayId)) return;
  if (! document.getElementById(dcAppSelectDisplayId).firstChild) return;

  document.getElementById(dcAppSelectDisplayId).firstChild.nodeValue = strVal;
}

function getDataFromString(strCookies)
{
  var res = "";

  if (strCookies.length > 0)
  {
    var arrCookies = strCookies.split(";");

    for (var intKey in arrCookies)
    {
      var strCookie = arrCookies[ intKey ];

      if (strCookie.search('^'+dcAppSelectCookie+'=') >= 0)
      {
        var arrParts = strCookie.split("=");
        if (arrParts[1].length > 0)
        {
          res = arrParts[1];
        }
      }
    }
  }

  return res;
}

function addIdToSelectCookie(id)
{
  if (! document.cookie) return;

  var act = getDataFromString(document.cookie);

  if (act.search(id) < 0)
  {
    if (act.length > 0)
      act += "-";

    setSelectCookie(act + id)
  }

  displayValue(countIds(getDataFromString(document.cookie)));
}

function countIds(str)
{
  var res = "0";
  if (str.length > 0)
  {
    ids = str.split("-");
    res = ids.length;
  }

  return res;
}

function removeIdFromSelectCookie(id)
{
  if (! document.cookie) return;

  var act = getDataFromString(document.cookie);

  if (act.search(id) >= 0)
  {
    var actnew = "";

    if (act.search('-'+id) >= 0)
      actnew = act.replace('-'+id, '');
    else
    if (act.search(id+'-') >= 0)
      actnew = act.replace(id+'-', '');
    else
      actnew = act.replace(id, '');

    if (actnew != act)
      setSelectCookie(actnew);
  }

  displayValue(countIds(getDataFromString(document.cookie)));
}

function selectIdsByCookie()
{
  if (! document.cookie) return;
  if (! document.forms) return;
  if (! document.forms[ "result_block" ]) return;
  if (! document.forms[ 'result_block' ].elements) return;
  if (! document.forms[ 'result_block' ].elements[ "selobj[]" ]) return;

  // Add ids from cookie to selection

  var cookieSel = getDataFromString(document.cookie);

  if (cookieSel.length > 0)
  {
    var cookieIds = cookieSel.split("-");

    var cObj = new Object;

    for (var i in cookieIds)
    {
      cObj[ cookieIds[i] ] = cookieIds[i];
    }

    if (document.forms[ 'result_block' ].elements['selobj[]'].length)
    {
      for (i = 0; i < document.forms[ 'result_block' ].elements['selobj[]'].length; i++)
 	    {
 	      sel_id = document.forms[ 'result_block' ].elements[ 'selobj[]' ][ i ].value;
        postfix = '[' + sel_id + ']';

        if (document.forms[ 'result_block' ].elements[ 'objid' + postfix ])
        {
          var key = document.forms[ 'result_block' ].elements[ 'objid' + postfix ].value;

          if (typeof cObj[ key ] == "string")
            document.forms[ 'result_block' ].elements['selobj[]'][i].checked = true;
        }
      }
    }
    else
    {
      sel_id = document.forms[ 'result_block' ].elements[ 'selobj[]' ].value;
		  postfix = '[' + sel_id + ']';

		  if (document.forms[ 'result_block' ].elements[ 'objid' + postfix ])
			{
          var key = document.forms[ 'result_block' ].elements[ 'objid' + postfix ].value;

          if (typeof cObj[ key ] == "string")
            document.forms[ 'result_block' ].elements['selobj[]'].checked = true;
      }
    }
  }
}

function checkBox(box, id)
{
  if (document.cookie)
  {
    if (box.checked == true)
      addIdToSelectCookie(id);
    else
      removeIdFromSelectCookie(id);
  }
}
