//toggelt einen div
var win2; //Shoutbox
var win3; //vote
var shoutbox_interval;
/*
 * öffnet die Shoutbox
 */
function openShout()
{
    if (win2 != null)
    {
        win2.hide();
        win2.destroy();
        win2 = null;
        Windows.removeObserver(myObserver);
        $('shoutbox').style.display = "none";
        organizeWindows();
        shout_windowChange('close');
        clearTimeout(shoutbox_interval);
        
    }
    else
    {
        shoutbox_interval = window.setInterval("fetch_timer()", 4000);
        $('shoutbox').style.display = "block";
        win2 = new Window('Abcdf-Box', {wiredDrag: false,className: "darkX", left: getShoutboxPosition(),top: 160,closable: false, width:170, height:415, resizable: false,minimizable: false,maximizable: false,draggable: false})
        win2.setContent('shoutbox',true,true);
        win2.setDestroyOnClose();
        shoutbox_fetch();
        organizeWindows();
        win2.show();
        shout_windowChange('open');
        myObserver = 
        { 
            onDestroy: function(eventName, win) 
            { 
                if (win == win2) 
                { 
                    $('shoutbox').style.display = "none";
                    win2 = null; 
                    organizeWindows();
                    Windows.removeObserver(this); 
                    shout_windowChange('close');
                } 
            
            }
        } 
        Windows.addObserver(myObserver); 
    }
}
/*
 * öffnet das Vote windows
 */
function openVote()
{
    
    if (win3 != null)
    {
        win3.destroy();
        win3 = null;
        Windows.removeObserver(myObserver2);
        $('ajax_vote').style.display = "none";
        $('ajax_vote').style.display = "none";
        organizeWindows();
        vote_windowChange('close');
        
    }
    else
    {
       
        
        win3 = new Window('Abcdf-Vote', {wiredDrag: false,className: "darkX", left: getVotePosition(),top: 160, width:170,closable: false, resizable: false,minimizable: false,maximizable: false,draggable: false})
        win3.setContent('ajax_vote',true,true);
        
      
        vote_fetch();
        win3.show();
        $('ajax_vote').style.display = "block";
        vote_windowChange('open');
        myObserver2 = 
        { 
            onDestroy: function(eventName, win) 
            { 
                if (win == win3) 
                { 
                    $('ajax_vote').style.display = "none";
                    win3 = null; 
                   
                    vote_windowChange('close');
                    organizeWindows(); 
                    Windows.removeObserver(myObserver2);
                } 
            
            } 
        } 
        Windows.addObserver(myObserver2); 
    }
}
    
/*
 * x Position des Shoutbox Windows
 */
function getShoutboxPosition()
{
        var width;
        var shoutwidth = 0;
        
        width = window.innerWidth;
        
        shoutwidth = 0;
        if(!(width > 0))
        {
            width = document.body.clientWidth;
            
            if(width > 800)
            {
                shoutwidth = ((width/2)+400)+10;
            }
            else
            {
                shoutwidth = 810;
            }
        }
        else
        {
            if(width > 800)
            {
                shoutwidth = ((width/2)+400);
            }
            else
            {
                shoutwidth = 810;
            }
        }
        
       
        if(width > 800)
        {
            shoutwidth = ((width/2)+400)+10;
        }
        else
        {
            shoutwidth = 810;
        }
        
        return shoutwidth;
}
/*
 * x pos Vote Window
 */
function getVotePosition()
{
    //angefangen bei 160
    return 130 + $('shoutbox').offsetHeight + 65;
    
}

/*
 * setzt neue Position
 */
function setPositionShoutbox()
{
    win2.setLocation(165, getShoutboxPosition());
}

/*
 * setzt neue Position
 */
function setPositionVote()
{
       if(win2 == null)
       {
            win3.setLocation(165, getShoutboxPosition());
       }
       else
       {
            win3.setLocation(getVotePosition(),getShoutboxPosition());
       }
}
/*
 * überprüft die länge eines Strings
 */
function check_wortlaenge(mystring,laenge)
{
    var woerter = mystring.split(" ");
    for (var i = 0; i < woerter.length; i++)
    {
        if(woerter[i].length > laenge)
        {
            return false;
        }
    }
    return true;
}
/*
 * bei ablauf des timers -> wird diese Funktion aufgerufen
 */
function fetch_timer()
{
    shoutbox_fetch();
    organizeWindows();
}
/*
 * setzt die größe der Windows
 */
function setSizeWindows()
{
    if(win2 != null)
    {
        setSizeShoutboxWindow();
    }
    if(win3 != null)
    {
        setSizeVoteWindow();
    }
}

function setSizeVoteWindow()
{
    win3.setSize($('ajax_vote').offsetWidth,$('ajax_vote').offsetHeight);
}

function setSizeShoutboxWindow()
{
    win2.setSize($('shoutbox').offsetWidth,$('shoutbox').offsetHeight);
}
/*
 * setzt die neue Position der Windows
 */
function setPositionWindows()
{
    if(win2 != null)
    {
        setPositionShoutbox();
    }
    if(win3 != null)
    {
        setPositionVote();       
    }
}
/*
 * organisiert die WIndows (size + position)
 * much to do here !!
 */
function organizeWindows()
{
    setSizeWindows();
    setPositionWindows();
}

/*
 * sendet den eingegeben Text an das Backend und aktualisiert die anzeige gleich mit
 */
function shoutbox_write()
{
  if(check_wortlaenge($('nick_shout').getValue(),10))
  {
      if(check_wortlaenge($('msg_shout').getValue(),15))
      {
          var escaped_nick = $('nick_shout').getValue();
          var escaped_msg = $('msg_shout').getValue();
          new Ajax.Request('/topmenu/backend_shout.php?action=write',
          {
            method:'post',
            parameters: {nick: escaped_nick, msg: escaped_msg},
            onSuccess: function(transport){
              var response = transport.responseText || "fehlerhafte Eingabe ?<br><br>Sie müssen in beide Textfelder etwas eingeben!!!";
              $('shout_body').innerHTML = response;
              organizeWindows();
              $('nick_shout').setValue("")
              $('msg_shout').setValue("")}, 
              onException : function(req,exception){alert(exception.message); },
              onFailure: function(){ alert('Something went wrong...') }
          });
      }
      else
      {
            alert("Die maximale Wortlänge liegt bei 16 Zeichen -> überarbeiten sie ihre Eingabe !!");
      }
  }
  else
  {
        alert("Ihr Nickname darf höchstens 10 Zeichen lang sein !!");
  }

}

/*
 * Holt die Daten für die Shoutbox
 */
function shoutbox_fetch() 
{
   
    new Ajax.Request('/topmenu/backend_shout.php?action=fetch',
  {
    method:'post',
    //ie bringt natürlich nen fehler, wenn keine Parameter angegeben werden ...
    onSuccess: function(transport){
      var response = transport.responseText || "Leider ist noch kein Beitrag hinzugefügt worden.";
      $('shout_body').innerHTML = response;
      organizeWindows();
      
     }, 
      onException : function(req,exception){alert(exception.message); },
      onFailure: function(){ alert('Something went wrong...') }
  });

}

function vote_fetch() 
{
 

   new Ajax.Request('/topmenu/backend_vote.php?action=getActiveVoteOptions',
  {
    method:'post',
    //ie bringt natürlich nen fehler, wenn keine Parameter angegeben werden ...
    onSuccess: function(transport){
      var response = transport.responseText || "Leider ist noch kein Beitrag hinzugefügt worden.";
      if(response == "bereits_abgestimmt")
      {
          vote_statistic();
      }
      else
      {
          $('ajax_vote_form').style.display = "block";
          $('ajax_vote_body').innerHTML =  response;
      }
      organizeWindows();
      
     }, 
      onException : function(req,exception){alert(exception.message); },
      onFailure: function(){ alert('Something went wrong...') }
  });

}

function vote_update() 
{
    var radio = document.getElementsByName('vote_radio')
    var opt = -1;
    for (i = 0; i < radio.length; i++) {
        if(radio[i].checked)
        {
            opt = i;
        }
    }
    if(opt >= 0)
    {
        new Ajax.Request('/topmenu/backend_vote.php?action=updateActiveVote',
        {
            method:'post',
            //ie bringt natürlich nen fehler, wenn keine Parameter angegeben werden ...
            parameters: {option: opt},
            onSuccess: function(transport){
              var response = transport.responseText || "Error";
              $('ajax_vote_body').innerHTML = response;
              $('ajax_vote_form').style.display = "none";
              organizeWindows();
              
             }, 
              onException : function(req,exception){alert(exception.message); },
              onFailure: function(){ alert('Something went wrong...') }
        });
    }
    else
    {
        alert('Bitte wählen sie eine Option aus!');
    }
}

function vote_statistic()
{
  var stat;
  new Ajax.Request('/topmenu/backend_vote.php?action=getActiveVoteStatistic',
  {
    method:'post',
    //ie bringt natürlich nen fehler, wenn keine Parameter angegeben werden ...
    parameters: {nick: 'ie', msg: 'ie'},
    onSuccess: function(transport){
      stat = transport.responseText || "Leider ist noch kein Beitrag hinzugefügt worden.";
      $('ajax_vote_body').innerHTML = stat;
      $('ajax_vote_form').style.display = "none"; 
      organizeWindows();
    }, 
      onException : function(req,exception){alert(exception.message+"lala"); },
      onFailure: function(){ alert('Something went wrong...') }
  });
}
function shout_windowChange(value)
{
   new Ajax.Request('/topmenu/backend_shout.php?action='+value,
  {
    method:'post',
    //ie bringt natürlich nen fehler, wenn keine Parameter angegeben werden ...
    onSuccess: function(transport){
      
     }, 
      onException : function(req,exception){alert(exception.message); },
      onFailure: function(){ alert('Something went wrong...') }
  });
}

function vote_windowChange(value)
{
   new Ajax.Request('/topmenu/backend_vote.php?action='+value,
  {
    method:'post',
    //ie bringt natürlich nen fehler, wenn keine Parameter angegeben werden ...
    onSuccess: function(transport){
      
     }, 
      onException : function(req,exception){alert(exception.message); },
      onFailure: function(){ alert('Something went wrong...') }
  });
}


window.onresize = setPositionWindows;



