function showLang()
{
  if ($('selectLang').style.display == 'none')
    Effect.SlideDown('selectLang', { duration: 0.7 });
  else
    $('selectLang').style.display = 'none';

  return false;
}

function setText(name, text)
{
  if($(name) != undefined)
  {
    $(name).innerHTML = text;
  }
}

function each(collection, iterator)
{
  for(var i=0; i<collection.length; i++)
    iterator(collection[i]);
}


//Alle markieren / Markierungen aufheben
function switchCheckboxes(formname, status)
{
  var x = document.forms[formname].elements
  for (var i=0; i<x.length; i++)
  {
    x[i].checked = status;
  }
}

function countdown(msec, nr)
{
  name = 'c' + nr;

  sec = Math.floor(msec/1000);
  thousand = msec - 1000*sec;
  ten = Math.floor(thousand/100);

  if(sec >= 3600)
    //{time = Math.floor(sec/3600) + " Std : " + Math.floor((sec%3600)/60) + " Min : " + Math.floor(sec%3600)%60 + "," + ten + " Sek";}
	  {time = Math.floor(sec/3600) + "h " + Math.floor((sec%3600)/60) + "m " + Math.floor(sec%3600)%60 + "," + ten + "s";}
  else if(sec >= 60)
	  {time = Math.floor(sec/60) + " Min " + sec%60 + "," + ten + " Sek";}
	else
	  {time = sec + "," + ten + " Sekunden";}

  if (msec>0)
  {
    $(name).firstChild.data = time;
  }
  else
  {
    $(name).firstChild.data = 'bereit';
    $(name).className = 'green';
  }

  if (msec>0)
    setTimeout("countdown(" + (msec-100) + ", " + nr + ")", 100);
}

function calcage(secs, num1, num2) {
  s = ((Math.floor(secs/num1))%num2).toString();
  if (s.length < 2)
    s = "0" + s;
  return s;
}

function formatTime(msec, name)
{
  sec = Math.floor(msec/1000);

  sDay = calcage(sec, 86400, 100000);
  sHour = calcage(sec, 3600, 24);
  sMinute = calcage(sec, 60, 60);
  sSec = calcage(sec, 1, 60);

//  if(sDay != '00') time = sDay+':'+sHour+' //! Tage';
//  else if(sHour != '00') time = sHour+':'+sMinute+' //! Stunden';
//  else time = sMinute+':'+sSec+' //! Minuten';

  if(sDay != '00') time = sDay+'h '+sHour+'h';
  else if(sHour != '00') time = sHour+'h '+sMinute+'m';
  else time = sMinute+'m '+sSec+'s';

  if (msec > 0)
  {
    $(name).innerHTML = time;
  }
  else
  {
    $(name).innerHTML = '-';
    $(name).className = 'green';
  }
}

function countdown2(msec, name)
{
  formatTime(msec, name);
  if (msec>0)
    setTimeout("countdown2(" + (msec-1000) + ", '" + name + "')", 1000);
  else location.reload();
}

function secCountdown(msec, callFunction, name)
{
  if (msec>0)
  {
    setTimeout("secCountdown(" + (msec-1000) + ", '" + callFunction + "', '" + name + "')", 1000);
    $(name).innerHTML = Math.floor(msec/1000) + "";
  }
  else if(callFunction)
  {
    $(name).innerHTML = "0";
    setTimeout(callFunction, 0);
  }
}

//Serverzeit
var servertime = '';
function showClock(actTime)
{
	if (servertime == '') servertime = new Date(actTime);

  if(!document.all && !document.getElementById)
  {
    return;
  }

  var hours = servertime.getHours();
  var minutes = servertime.getMinutes();
  var seconds = servertime.getSeconds();
  servertime.setSeconds(seconds+1);

  if (hours <= 9)
  {
    hours = "0" + hours;
  }

  if(minutes <= 9)
  {
    minutes = "0" + minutes;
  }

  if(seconds <= 9)
  {
    seconds = "0" + seconds;
  }

  sDisplayTime = hours + ":" + minutes; // + ":" + seconds;
  $('clockTime').innerHTML = sDisplayTime;

  setTimeout("showClock()", 1000);
}

function showNotification(sText)
{
  if($('notification') != undefined)
  {
	  $('notification').style.visibility = 'visible';
	  $('notificationText').innerHTML = sText;
	  setTimeout("hideNotification()", 15000);
  }
}

function hideNotification()
{
  if($('notification') != undefined)
  {
    $('notification').style.visibility = 'hidden';
  }
}

function showPopup(file, windowname, features)
{
  mywindow = window.open(file, windowname, features);
  mywindow.focus();
  return false;
}

function startGame()
{
  return showPopup('waiting.php?sid='+sid, 'CuteDISASTER', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=980,height=650,top=0,left=0');
}


function toggleDisplay(name)
{
  var sDisplay = $(name).style.display;
  if(sDisplay == 'none')
  {
    $(name).style.display = 'inline';
  }
  else
  {
    $(name).style.display = 'none';
  }
}

function setDisplay(name, state)
{
  $(name).style.display = state;
}

function toggleVisibility(name)
{
  var sVisibility = $(name).style.visibility;
  if(sVisibility == 'hidden')
  {
    $(name).style.visibility = 'visible';
  }
  else
  {
    $(name).style.visibility = 'hidden';
  }
}


function setVisibility(name, state)
{
  $(name).style.visibility = state;
}

function setTransparency(divName)
{
  $(divName).style.opacity = 0.5;
  $(divName).style.filter = 'alpha(opacity=' + 50 + ')';
}

function resetTransparency(divName)
{
  $(divName).style.opacity = 1.0;
  $(divName).style.filter = 'alpha(opacity=' + 100 + ')';
}

function goTo(site)
{
  location.href = site + "?sid=" + sid;
}

function getConstants()
{
  var params = 'sid='+sid;
  return new Ajax.Request('request/getConstants.rq.php', {
    method: 'get',
    parameters: params,
    onComplete: function(request)
    {
      response = request.responseJSON;
      con = response;
    },
    onFailure: function() { alert('An Error occurred: e801'); },
    on401: function(request) { handle401(); }
  });
}

/**
* prüft, ob sich der Spieler gerade im Kampf befindet
**/
function checkActiveBattle(sMode)
{
  var params = 'sid='+sid;

  return new Ajax.Request('request/checkActiveBattle.rq.php', {
    method: 'get',
    parameters: params,
    onComplete: function(request)
    {
      response = request.responseJSON;
      if(response.isBattle && sMode != 'camp')
      {
        showPopup('waiting.php?sid='+sid+'&type=battle', 'CASEWHITE', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=980,height=650,top=0,left=0');
        clearInterval(iCheckBattleInterval);
      }
      else if(response.isBattle && sMode == 'camp')
      {
        location.href = 'battle.php?sid='+sid+'&type=battle';
        clearInterval(iCheckBattleInterval);
      }
    },
    onFailure: function() { alert('An Error occurred: e802'); },
    on401: function(request) { handle401(); }
  });
}


/**
* was soll bei 401 Fehler passieren?
**/
function handle401()
{
  location.reload(true);
}

function showProfile(sUsername)
{
  new Ajax.Request('request/loadProfile.rq.php', {
    method: 'get',
    parameters: { username: sUsername, sid : sid },
    onComplete: function(request)
    {
      $('userProfile').innerHTML = request.responseText;
      setDisplay('userProfile', 'inline');
    },
    onFailure: function(request) { alert('err'.request.status); },
    on401: function(request) { handle401(); }
  });
}

function foldToggle(id)
{
  if($(id).style.display == 'inline')
  {
    $(id).style.display = 'none';
    $('img_'+id).src = 'img/site/i_open.png';
  }
  else
  {
    $(id).style.display = 'inline';
    $('img_'+id).src = 'img/site/i_close.png';
  }
}