/*************************************************************/
/*
/* Declare some vars
/*
/*
/*************************************************************/
var oldwidth            = null;
var lastvisible         = null;
var lastMessageVisible  = null;
var oldInhalt           = null;
var Zwischenspeicher    = new Object();        //Objekt: Container zum Zwischenspeichern von irgendwelchen Zuständen
var AnimSpeed           = 0.12;                 //Zeit in Sekunden für alle Animationen
var IconPath            = 'fileadmin/img/icons/';
var loadingImage        = 'greenload.gif';
var MinUsersearchLength = 1;



function PollVote(ID) {
  if(ID) {
    $('VoteCaptcha').show();
  }
}

function showVoteResponse(pollid, lang, nAnswers) {
  var nX = 0;
  while(nX<nAnswers) {
    if(document.pollvote.tx_jkpoll_pi1[nX].checked == true ) {
      var Voted = nX+'';
    }
    nX++;
  }
  
  if(Voted) {
    showVoteSubmitCreate();
    
    var pars = $H({
        answer:       Voted,
        pollsubmit:   "Abstimmen"
    });
     
    var url = "http://www.schwules-rostock.de/?id=144&tx_jkpoll_pi1[go]=savevote&tx_jkpoll_pi1[uid]="+pollid+"&type=2805";
     
    var myrequest = new Ajax.Request(
      url,
      {
        method:           "post",
        parameters:       pars,
        onComplete:       function(transport) {
          var IN       = $('VoteContent');
          IN.innerHTML = transport.responseText;
        }
      });
  }
}

function showVoteSubmitCreate() {
  var LoadImage = '<img src="'+IconPath+loadingImage+'" /><br />';  //Bild bauen
  var IN        = $('PollStatus');
  IN.innerHTML  = LoadImage+" deine Stimme wird gez&auml;hlt, bitte warten"; // Text anzeigen
  $('VoteSubmit').hide();
}

/*************************************************************/
/*
/* runUserSearch, führt Usersuche aus
/*
/*
/*************************************************************/

function runUserSearch() {
  if(document.tx_indexedsearch.indexsearchtext.value.length < MinUsersearchLength){
    return UserSearchInputError(document.tx_indexedsearch.indexsearchtext.value);
  }
  
  var suchString        = encodeURIComponent(document.tx_indexedsearch.indexsearchtext.value);
  var pars              = 'search='+suchString+'&type='+document.tx_indexedsearch.pageTypeNum.value+'&modus='+document.tx_indexedsearch.modus.value;
  var url               = document.tx_indexedsearch.suchscript.value;
  
  showUserSearchCreate(suchString);
  
  var myAjax            = new Ajax.Request(
    url, 
    {
      method:           'get',
      parameters:       pars,
      onComplete:       showUserSearchResponse, // Diese Funktion wird ausgeführt wenn Abfrage beendet ist
      onFailure:        reportUserSearchError
    });
}



/*************************************************************/
/*
/* showUserSearchCreate, zeigt Wartegrafik an
/*
/*
/*************************************************************/

function showUserSearchCreate(suchString) {
  var LoadImage = '<img src="'+IconPath+loadingImage+'" /><br />';  //Bild bauen
  var IN        = $('suchinfo');
  IN.innerHTML  = LoadImage+"&quot;"+decodeURI(suchString)+"&quot; wird gesucht, bitte warten"; // Text anzeigen
  IN.show();
  var EL        = $('suchergebnis');
  if(EL.visible()) {  //Wenn gerade ein Suchergebnis angezeigt wurde..
    EL.hide();        // ...wieder ausblenden
  }
}



/*************************************************************/
/*
/* showUserSearchResponse, zeigt Ergebnis der Usersuche an
/*
/*
/*************************************************************/

function showUserSearchResponse(originalRequest) {
  var IN       = $('suchinfo');
  var EL       = $('suchergebnis');
  if($('commteaser')) $('commteaser').hide();
  if(IN.visible()) IN.hide();                   //Infolayer löschen, wenn Suchergebnis vorliegt
  EL.innerHTML = originalRequest.responseText;  //Suchergebnisse in HTML schreiben
  EL.show();                                    //Suchergebnis einblenden
}



/*************************************************************/
/*
/* reportUserSearchError, zeigt Fehlermeldungen in Ajaxsuche
/*
/*
/*************************************************************/

function reportUserSearchError(originalRequest) {
  var IN       = $('suchinfo');
  IN.show();
  IN.innerHTML = "Fehler: "+originalRequest.responseText;
}



/*************************************************************/
/*
/* closeProfileUpdateMessage, zeigt Fehlermeldungen in Ajaxsuche
/*
/*
/*************************************************************/
function closeProfileUpdateMessage(theElement) {
  var EL       = $(theElement);
  EL.hide();
}



/*************************************************************/
/*
/* UserSearchInputError, zeigt Fehlermeldungen wenn User einen
/* Fehler bei der Eingabe gemacht hat
/*
/*************************************************************/

function UserSearchInputError(Input) {
  var IN       = $('suchinfo');
  var EL       = $('suchergebnis');
  IN.hide();
  EL.hide();
  IN.innerHTML = 'Fehler bei der Eingabe. Dein Suchbegriff muss l&auml;nger als '+MinUsersearchLength+' Zeichen sein!';
  IN.show();
}



/*************************************************************/
/*
/* closeTheSmallSearch, 
/*
/*
/*************************************************************/

function closeTheSmallSearch(modus) {
  if(modus.length>2) {
    var HL       = $('commteaser');
    HL.show();
  }
  
  var IN       = $('suchinfo');
  var EL       = $('suchergebnis');
  IN.hide();
  EL.hide();

}



/*************************************************************/
/*
/* setMessageFilter, gesendete Messages nach Usern filtern
/*
/*
/*************************************************************/

function setMessageFilter() {
  alert("Filter gesetzt!");
}



/*************************************************************/
/*
/* CheckUserBirthDate, korrigiert das eingegebene Datum
/*
/*
/*************************************************************/

function CheckUserBirthDate(formvalue) {
  var debug = false;
  if(formvalue.length>1) { // Wenn Daten eingegeben sind:
    var Fehlermeldung = "Achtung, Fehler im Format deines Geburtsdatums, bitte korrigieren nach dem Schema: 17.04.1987!";
    var Fehlermarker  = false;
    var FT            = "."; // Zeichen-Trennzeichen
    var today         = new Date();
    var currentyear   = today.getFullYear();
    var minmalalter   = 14;
    var joungsters    = currentyear-minmalalter;
    
    
    var Datenteile    = []; 
    formvalue.scan(/\w+/, function(teilchen){ Datenteile.push(teilchen[0]); });  // Array erstellen
    
    
    var DebugString = ""; // Debugausgabe vorbereiten, Bestandteile erstellen
    var nX = 0;
    while(nX<Datenteile.length) {
      DebugString = DebugString+"Nummer "+nX+": "+Datenteile[nX]+'<br />';
      nX++;
    }
    
    var ZuJung = (currentyear-Datenteile[2]);
    if(ZuJung<minmalalter) {
      Fehlermarker = true;
      var Fehlermeldung = "Du bist leider zu jung um dich bei uns anzumelden!";
    }
    
    //erster Check
    if ((Datenteile[0]>31) || (Datenteile[0].length>2) || (Datenteile[1].length>2) || (Datenteile[1]>12) || ((Datenteile[2].length>4)||(Datenteile[2].length<4))){
      Fehlermarker = true;
    }
    
    //ein-einhalbter check -> ist überhaupt mehr als ein string eingegeben worden?
    if(!Datenteile[2]) {
      Fehlermarker = true;
    } else {
      //zweiter Check
      if (Datenteile[0].length<2){
        Datenteile[0] = "0"+Datenteile[0];
      }
      if (Datenteile[1].length<2){
        Datenteile[1] = "0"+Datenteile[1];
      } 
      if(debug) $("debug").innerHTML = DebugString;
      
      
      //Korrigierten String bauen
      var DatumString = "";
      var nZ = 0;
      while(nZ<Datenteile.length) {
        if(nZ<(Datenteile.length-1)) {
          DatumString = DatumString+Datenteile[nZ]+FT;
        } else {
          DatumString = DatumString+Datenteile[nZ];
        }
        nZ++;
      }
      
      $("UserBirthdateInput").value = DatumString; 
    }
  } else if (formvalue.length>10) { // Wenn Datum mehr als 10 Zeichen hat
    Fehlermarker = true;
  } else  {
    if(debug) $("debug").innerHTML = ""; // Debuglayer leeren
  }
  if(Fehlermarker) {
    $("profilsubmit").disabled = true;
    alert(Fehlermeldung);
    
    // jetzt noch Absenden verhindern
  } else {
    $("profilsubmit").disabled = false;
    // dann absenden erlauben
  }
}



/*************************************************************/
/*
/* switchUserList, Blendet Layer ein und aus 
/*
/*
/*************************************************************/

function ShowLogin(thelayer) {
  var LayerToShow = $(thelayer);              // Welcher Layer soll eingeblendet werden?
  if(LayerToShow.visible()) {                 // Wenn der Layer schon angezeigt wird
    LayerToShow.hide();                       // Layer ausblenden
    $('lostpwlink').hide();                   // sollte der Link für Lost-PW angezeigt werden ->verstecken
    $('loginswitch').setStyle({               // Breite zurücksetzen
      'width': oldwidth+'px'
    });
  } else {                                    // Wenn noch nicht geklickt wurde
    if($('loginmessage')) {                   // Wenn eine Loginmessage angezeigt wird...
      $('loginmessage').hide();               // ...ausblenden
    }
    oldwidth = $('loginswitch').getWidth();   // Alte Breite des Schalterlayers ermitteln und merken
    $('loginswitch').setStyle({               // Breite des Schalters dann anpassen
      'width': oldwidth+120+'px'
    });
    LayerToShow.show();                       // Layer einblenden
    $('lostpwlink').show();                   // Lost-Password-Link einblenden
  }
}



/*************************************************************/
/*
/* replaceCommunityLogin, ersetzt das Login-Formular
/* durch ein Lost-Password-Formular
/*
/*************************************************************/

function replaceCommunityLogin() {
  oldInhalt      = $('communityscreen').innerHTML;
  var suchmuster = ".de/";                                      // Was werden wir im Heuhaufen suchen?
  var stack      = window.location.href;                        // aktuelle URL: "http://typo3.schwules-rostock.de/irgendwas.html";
  var position   = stack.indexOf(suchmuster)+suchmuster.length; // Positon von "suchmuster" innerhalb von "stack" ermitteln;
  if(position) {
    var formtarget = stack.substr(position);                    // ab Ende des gefundenen Suchmusters, String als Formulartarget definieren
  } else {
    var formtarget = '';
  }
  var ContentLostPW = '<div class="tx-newloginbox-pi1">  <form action="'+formtarget+'?tx_newloginbox_pi1%5Bforgot%5D=1" method="post" id="headeremailform">  	<label for="tx_newloginbox_pi1[DATA][forgot_email]" class="invis">deine E-Mail:</label>	  <input type="text" id="lostemail" name="tx_newloginbox_pi1[DATA][forgot_email]" value="E-Mail-Adresse" onfocus="if(this.value==\'E-Mail-Adresse\')this.value=\'\';" onblur="if(this.value==\'\')this.value=\'E-Mail-Adresse\';" title="Gib hier deine E-Mail-Adresse an" />     <input type="submit" name="submit" id="submit" value="" />  </form>  <div id="loginmessage">    Bitte gib die E-Mail Adresse ein, mit der du dich registiert hast.<a href="JavaScript:restoreCommunityLogin()" title="zur&uuml;ck"><img src="fileadmin/img/icons/cross.gif" height="10" width="15" border="0" /></a></div></div>';
  
  $('communityscreen').innerHTML = ContentLostPW;               // HTML ersetzen
}



/*************************************************************/
/*
/* restoreCommunityLogin, setzt das Login-Forumlar zurück
/*
/*
/*************************************************************/

function restoreCommunityLogin() {
  if(oldInhalt) {
    $('communityscreen').innerHTML = oldInhalt;
  }
}



/*************************************************************/
/*
/* switchUserList, Blendet Layer ein und aus 
/*
/*
/*************************************************************/

function switchUserList(theID) {
  var layer = $(theID);//$("subentryid"+theID);
  if(layer.visible()) {
    Effect.SlideUp(layer, {duration:0.2});
  } else {
    Effect.SlideDown(layer, {duration:0.2});
  }
  lastvisible = theID;
}



/*************************************************************/
/*
/* openMessage, Blendet Layer ein und aus 
/*
/*
/*************************************************************/

function openMessage(theID, theURL, theHOST) {
  var layer   = $(theID);
  var link    = $("link"+theID);
  var icon    = $("icon"+theID);
  var message = $("message"+theID);
  
  if(layer.visible()) {
    layer.hide();
    link.removeClassName("messageopen");
    link.addClassName("message");
  } else {
    layer.show();
    link.removeClassName("message");
    link.addClassName("messageopen");
    if(theURL!=='none') {
      message.removeClassName("unreadmessage");
      icon.innerHTML ='<img src="fileadmin/img/icons/email_read.png" width="16" height="16" border="0" alt="Schon gelesen..." title="Schon gelesen..." />';
      
      //some AJAX here
      var url = theHOST + theURL;
      var ajax = new Ajax.Updater({
        success: 'zipResult'
      },
      url,{
        method: 'get', onFailure: reportError
      });
    }
  }
  lastMessageVisible = theID;
}



/*************************************************************/
/*
/* KATeaserClick, Blendet Layer ein und aus 
/*
/*
/*************************************************************/

function KATeaserClick(TheRow) {
  var LTS = $('rubrik'+TheRow);
  if(LTS.visible()){
    LTS.hide();
  } else {
    LTS.show();
  }
  
  /*if(Zwischenspeicher.aktiv!==TheRow) {      // Wenn eine Detail-Zeile geöffnet ist, wieder schließen
    //Effect.SlideUp($('rubrik'+Zwischenspeicher.aktiv), {duration:AnimSpeed});
    $('rubrik'+Zwischenspeicher.aktiv).hide();
  }
  if(LTS.visible()){
    Zwischenspeicher.aktiv = TheRow; // nach schließen der Detailzeile Zwischenspeicher löschen
  } else {
    //Effect.SlideDown(LTS, {duration:AnimSpeed});
    LTS.show();
    Zwischenspeicher.aktiv = TheRow;// nach öffnen der Detailzeile Zwischenspeicher setzen
  }*/
}



/************************************************************************
* reportError: Falls die Nachricht nicht markiert werden kann: Info!
*
*************************************************************************/

function reportError(request) {
  alert("Nachricht konnte nicht als gelesen markiert werden!");
}



/*************************************************************/
/*
/* userfilter, filtert die useransicht
/*
/*
/*************************************************************/

function buttonStateHandler(button, enabled) {
 if (button == "prev-arrow") 
   $('prev-arrow').src = enabled ? "images/left3-enabled.gif" : "images/left3-disabled.gif"
 else 
   $('next-arrow').src = enabled ? "images/right3-enabled.gif" : "images/right3-disabled.gif"
}

function animHandler(carouselID, status, direction) {
  var region = $(carouselID).down(".carousel-clip-region")
  if (status == "before") {
    Effect.Fade(region, {to: 0.3, queue: { position:'end', scope: "carousel" }, duration: 0.2})
  }
  if (status == "after") {
    Effect.Fade(region, {to: 1, queue: { position:'end', scope: "carousel" }, duration: 0.2})
  }
}



/************************************************************************
* Diese Funktion hebt eventuelle Fehlermeldungen beim Login hervor
*
*************************************************************************/
function showLoginMessage() {
  if($('loginmessage')) {
    var s = $('loginmessage');
    if(s.innerHTML.length>3) {
      new Effect.Highlight($('communityscreen'), {startcolor:'#d50808', endcolor:'#295B70', restorecolor:'#295B70', duration:1.0})
    }
  }
}



function resetRegForm() {
  var felder = document.getElementsByClassName('LV_validation_message');
  var invalid_felder = document.getElementsByClassName('LV_invalid_field');
  
  var nX = 0;
  while(nX<felder.length) {
    felder[nX].remove();
    nX++;
  }
  
  var nZ = 0;
  while(nZ<invalid_felder.length) {
    invalid_felder[nZ].removeClassName("LV_invalid_field");
    nZ++;
  }
}


function changeTitle(newtitle, mode) {
  if(!newtitle) { var newtitle = ''; }
  if(!mode)     { var mode     = 'attach'; }
  
  var x = document.getElementsByTagName('title')[0];
  var oldTitle = x.innerHTML;
  
  if(mode=='replace') {
    var TheNewTitle = newtitle;
  } else {
    var TheNewTitle = newtitle+" | "+oldTitle;
  }
  document.title = TheNewTitle;
}


/************************************************************************
* Diese Funktion wird nach abgeschlossenem Seiten-Laden ausgeführt
*
*************************************************************************/
function runScripts() {
	showLoginMessage();
}

window.onload = runScripts;
