
/*
 *  Standardtexte die beim Start der Seite in den Eingabefeldern stehen
 */
var strFrmUsernameStdText = "-Username-",
    strFrmPasswordStdText = "-Passwort-";

var trowMembertmpl = new Template('<span class="user_onlinestatusspan" id="#{sid}">' + 
                                     '#{uname}' +
                                  '</span>'); 

var tsshow = false;

function site_InitPage()
{
  var textFieldUsername,
      textFieldPassword,
      submitButtonLogin;
   
  $('frm_login_username').value   = strFrmUsernameStdText;
  $('frm_login_username').onfocus = site_clearLoginForm;
  $('frm_login_username').onblur  = site_fillLoginForm;
  $('frm_login_password').value   = strFrmPasswordStdText;
  $('frm_login_password').onfocus = site_clearLoginForm;
  $('frm_login_password').onblur  = site_fillLoginForm;
  
  //$('frm_login_submit').onclick = loginValidation;
  Event.observe( 'frm_login_submit', 'click', loginValidation );
  Event.observe( 'frm_logout_submit', 'click', logoutValidation );
  Event.observe( 'frm_register', 'click', function() { loadDynamic( null, 'register', null, null, null, true ); } );
  
  Event.observe( 'menue_ho', 'click', function() { History.unset('history'); loadDynamic( null, 'home', null, null, null, true ) } );
  
  Event.observe( 'menue_ro', 'click', function() { showPageFromDB('members','',true); } );
  Event.observe( 'ro_members', 'click', function() { showPageFromDB('members','',true); } );
  Event.observe( 'ro_squads', 'click', function() { showPageFromDB('squads','',true); } );
  
  Event.observe( 'menue_hi', 'click', function() { showPageFromDB('warhistory','',true); } );
  Event.observe( 'hi_warhistory', 'click', function() { showPageFromDB('warhistory','',true); } );
  Event.observe( 'hi_awards', 'click', function() { showPageFromDB('awards','',true); } );
  
  Event.observe( 'menue_gb', 'click', function() { showPageFromDB('guestbook','',true); } );

  Event.observe( 'menue_po', 'click', function() { showPageFromDB('polls','',true); } );
  
  Event.observe( 'menue_ga', 'click', function() { showPageFromDB('picturegallery','',true); } );
  
  Event.observe( 'menue_ca', 'click', function() { showPageFromDB('challengeus','',true); } );

  Event.observe( 'menue_au', 'click', function() { showPageFromDB('kontakt','',true); } );
  Event.observe( 'au_kontakt', 'click', function() { showPageFromDB('kontakt','',true); } );
  Event.observe( 'au_serverinfo', 'click', function() { showPageFromDB('serverinfo','',true); } );
  
  Event.observe( 'menue_i', 'click', function() { showPageFromDB('forum','',true); } );
  Event.observe( 'i_forum', 'click', function() { showPageFromDB('forum','',true); } );
  Event.observe( 'i_warplaner', 'click', function() { showPageFromDB('warplaner','',true); } );
  Event.observe( 'i_userprofil', 'click', function() { showPageFromDB('userprofil','',true); } );
  Event.observe( 'i_pictures', 'click', function() { showPageFromDB('pictures','',true); } );
  Event.observe( 'i_test', 'click', function() { showPageFromDB('test','',true); } );
  Event.observe( 'i_warhammer', 'click', function() { showPageFromDB('warhammer','',true); } );  
  
  Event.observe( 'menue_ma', 'click', function() { showPageFromDB('userverwaltung','',true); } );
  Event.observe( 'ma_news', 'click', function() { showPageFromDB('newnews','',true); } );
  Event.observe( 'ma_users', 'click', function() { showPageFromDB('userverwaltung','',true); } );
  Event.observe( 'ma_forum', 'click', function() { showPageFromDB('forumverwaltung','',true); } );
  Event.observe( 'ma_site', 'click', function() { showPageFromDB('siteverwaltung','',true); } );
  Event.observe( 'ma_games', 'click', function() { showPageFromDB('gameslist','',true); } );
  Event.observe( 'ma_squads', 'click', function() { showPageFromDB('squadlist','',true); } );

  initTeamspeakDisplay();  
  
  new Ajax.PeriodicalUpdater( 'user_onlinedata', 'kernel/site/getSiteStates.php', {
      parameters: {},
      frequency  : 120,
      decay      : 1,
      onSuccess: function( originalRequest ) { 
        var users, i, u;
        $('user_onlinestatus').descendants().invoke('remove');
        $('user_onlinestatus').update('');
        XHR2 = originalRequest.responseText.evalJSON();
        if( XHR2.status == 'true' ) {
          users = XHR2.users;
          for( i = 0; i < users.length; i++ ) {
            u = users[i];
            $('user_onlinestatus').insert( {bottom: trowMembertmpl.evaluate( { sid:u.sid, uname:u.uname, mname:u.mname }) } ); 
            new Tip( $( u.sid ), ('User: <b>'+u.uname+'</b><br/>online seit: <b>'+u.la+'</b><br/>'+'Modul: <b>'+u.mname+'</b>'), { className:'onlineStatus' } );
          }
        }
        $('span_PHPParseTime').update(XHR2.PHPParseTime); }
     } ); 
}

function initTeamspeakDisplay()
{
  $('user_tsshortinfo').show();
  $('user_tsonlinestatus').childElements().each( function( e ) { e.hide(); });  
  Event.observe('button_minimizets', 'click', function() { tsDisplayObserver(); } );
}
function tsDisplayObserver()
{
  if( tsshow ) {
    tsshow = false;
    $('user_tsonlinestatus').hide();    
    //alert( $('user_tsonlinestatus').childElements().length );
    $('user_tsonlinestatus').childElements().each( function( e ) { e.hide(); });
    $('button_minimizets').src = 'pics/collapse_tcat_collapsed.gif';
    $('user_tsshortinfo').show();
    $('site_googlead').show();
    $('site_googleadhl').show();
  } else {
    tsshow = true;
    //alert( $('user_tsonlinestatus').childElements().length );
    $('user_tsonlinestatus').show();
    $('user_tsonlinestatus').childElements().each( function( e ) { e.show(); });
    $('button_minimizets').src = 'pics/collapse_tcat.gif';  
    $('user_tsshortinfo').hide();
    $('site_googlead').hide();
    $('site_googleadhl').hide();
  }
}

var trowEMPTYtmpl = new Template('<tr>' + 
                                   '<td class="ptr" colspan="#{colspan}" style="height:35px; background-color:transparent; text-align:center;">' + 
                                     '#{empty}' + 
                                   '</td>' + 
                                 '</tr>');

/*
 *  Funktion die beim Laden der Seite die Textfelder mit den Standardtexten fuellt.
 */
function site_fillLoginForm()
{
  if( this.id == 'frm_login_username' )
    $(this).update( strFrmUsernameStdText );
  else if( this.id == 'frm_login_password' )
    $(this).update( strFrmPasswordStdText );
}

/*
 *  Wenn man in das Eingabefeld klickt oder per Tabulator hineinwechselt
 *  dann loescht sich der Inhalt des Textfeldes. Allerdings nur wenn der Standardtext drinnensteht.
 */
function site_clearLoginForm() 
{
  if( (this.id == 'frm_login_username') && (this.value == strFrmUsernameStdText) ) {
    this.value = "";
  } 
  else if( (this.id == 'frm_login_password') && (this.value == strFrmPasswordStdText) ) {
    this.value = "";
  }
}

/*
 *  Wenn man das Eingabefeld verlaesst und keinen Text eingegeben hat, dann wird wieder
 *  der Standardtext eingefuegt. falls ein Text drinnensteht wird nichts gemacht.
 */
function site_fillLoginForm()
{
  if( this.value == "" ) {
    if( this.id == 'frm_login_username' ) {
      this.value = strFrmUsernameStdText;
    }
    else if( this.id == 'frm_login_password' ) {
      this.value = strFrmPasswordStdText;
    }
  }
}


/*
 * Highlight und Unhighlight bei Listen (Tabellen) wie Warplaner, Userverwaltung usw...
 */
function highlightRow() 
{
  var n = 0;
  this.childElements().each( function(col) {
    n++;
    if( 1 == n%2 ) col.addClassName('hlC1').removeClassName('uhlC1');
    else col.addClassName('hlC2').removeClassName('uhlC2'); 
  });
}
function unhighlightRow() 
{
  var n = 0;
  this.childElements().each( function(col) {
    n++;
    if( 1 == n%2 ) col.addClassName('uhlC1').removeClassName('hlC1');
    else col.addClassName('uhlC2').removeClassName('hlC2'); 
  });
}
function highRow() 
{
  var n = 0;
  this.childElements().each( function(col) {
    n++;
    if( 1 == n%2 ) col.addClassName('t_hlc1').removeClassName('t_uhlc1');
    else col.addClassName('t_hlc2').removeClassName('t_uhlc2'); 
  });
}
function unhighRow() 
{
  var n = 0;
  this.childElements().each( function(col) {
    n++;
    if( 1 == n%2 ) col.addClassName('t_uhlc1').removeClassName('t_hlc1');
    else col.addClassName('t_uhlc2').removeClassName('t_hlc2'); 
  });
}

/*
 * SmilieDiv anzeigen oder wegdrücken!
 */
function toggleSmilieDiv( smilieDiv, toggleBtn )
{
  if( $( smilieDiv ).visible() ) {
    $( smilieDiv ).hide();
    $( toggleBtn ).value = 'Smilies anzeigen';
  } else {
    $( smilieDiv ).show();
    $( smilieDiv ).descendants().invoke('show');
    $( toggleBtn ).value = 'Smilies verstecken';
  } 
}

/*
 * Funktion zum suchen eines Elements in einem Array (Nach dem PHP vorbild gebaut)
 */
function in_array( what, where )
{
  var a=false;
  for( var c = 0; c < where.length; c++ )
    if( what == where[c] ) { a=true; break; }
  return a;
}