/* AJAX */
//
var current_id;
var div_all_fixed;

//-----------------------------------------------------------------------------
function doLogin(){

  var myAjax = new Ajax.Request(
                                 "/user_login.php",
                                 {
                                    method: 'post',
                                    parameters: Form.serialize($('login_form')),
                                    onComplete: changeLoginTable
                                 }
                                );
}

//-----------------------------------------------------------------------------
function doLogout(){

  var myAjax = new Ajax.Request(
                                 "/user_login.php",
                                 {
                                    method: 'get',
                                    parameters: 'mode=logout',
                                    onComplete: changeLoginTable
                                 }
                                );
}

//-----------------------------------------------------------------------------
function showRegisterUser(){

  var myAjax = new Ajax.Request(
                                 "/_table_register.php",
                                  {
                                  onComplete: changeDivAll
                                 }
                               );
}

//-----------------------------------------------------------------------------
function registerUser(){

  if (checkRegisterForm() == false)
    return;

  var myAjax = new Ajax.Request(
                                 "/user_register.php",
                                  {
                                  parameters: Form.serialize($('register_user')),
                                  onComplete: changeDivRegister
                                 }
                               );
}

//-----------------------------------------------------------------------------
function showSendPassword(){

  var myAjax = new Ajax.Request(
                                 "/_table_send_password.php",
                                  {
                                  onComplete: changeDivAll
                                 }
                               );
}

//-----------------------------------------------------------------------------
function sendNewPassword(){

  if (document.forms.mail_to.email.value == "" || document.forms.mail_to.email.value.indexOf('@') == -1){
    alert('Bitte gib eine gültige Email Adresse ein!');
    return;
  }

  var myAjax = new Ajax.Request(
                                 "/user_send_password.php",
                                  {
                                  parameters: Form.serialize($('mail_to')),
                                  onComplete: changeDivRegister
                                 }
                               );
}

//-----------------------------------------------------------------------------
function activateUser(){

  var myAjax = new Ajax.Request(
                                 "/user_activate.php",
                                  {
                                  onComplete: changeDivRegister
                                 }
                               );


}

//-----------------------------------------------------------------------------
function addComment(){

  if(document.form_comment.titel.value == "" || document.form_comment.titel.value == "Titel") {
    alert("Bitte gib einen Titel an!");
    return;
  }

  if(document.form_comment.text.value == "") {
    alert("Bitte gib einen Text ein!");
    return;
  }

  var myAjax = new Ajax.Request(
                                 "/comment.php",
                                 {
                                    method: 'post',
                                    parameters: Form.serialize($('form_comment')),
                                    onComplete: changeDivKommentare
                                 }
                                );
}

//-----------------------------------------------------------------------------
function addReply(form_name){

  var reply_form = document.getElementById(form_name);

  if(reply_form.text.value == "") {
    alert("Bitte gib einen Text ein!");
    return;
  }

  var myAjax = new Ajax.Request(
                                 "/comment.php",
                                 {
                                    method: 'post',
                                    parameters: Form.serialize($(reply_form)),
                                    onComplete: changeDivKommentare
                                 }
                                );
}

//-----------------------------------------------------------------------------
function vote(id, yes_no){

  var myAjax = new Ajax.Request(
                                 "/comment_vote.php",
                                 {
                                    method: 'get',
                                    parameters: 'id='+id+'&vote='+yes_no,
                                    onComplete: changeDivKommentare
                                 }
                                );
}

//-----------------------------------------------------------------------------
function executeQuery(){

  if (document.forms.suche.location.value != 0){
    document.forms.suche.distance.style.visibility = 'visible';
  }

  if (document.forms.suche.location.value == 0){
    document.forms.suche.distance.style.visibility = 'hidden';
  }

  document.body.style.cursor = 'wait';

  var myAjax = new Ajax.Request(
                                 "/search.php",
                                 {
                                  method: 'get',
                                  parameters: Form.serialize($('suche')),
                                  onComplete: changeDivSearchResult
                                 }
                                );
}

//-----------------------------------------------------------------------------
function changeEntry(id){

  document.body.style.cursor = 'wait';

  var scroll_effect = new Effect.ScrollTo('divheader', {transition: Effect.Transitions.linear});

  if(id != current_id){
    current_id = id;

    var myAjax = new Ajax.Request(
                                   "/get_data.php",
                                   {
                                    method: 'get',
                                    parameters: 'daten_id='+id,
                                    onComplete: changeDivData
                                   }
                                  );
  }


}

//-----------------------------------------------------------------------------
function updateWhatsNear(){

  var myAjax = new Ajax.Request(
                                 "/update_nearby_div.php",
                                  {
                                  onComplete: changeDivNearby
                                 }
                               );


}

//-----------------------------------------------------------------------------
function updateAddToMerkliste(){

  var myAjax = new Ajax.Request(
                                 "/_table_add_merkliste.php",
                                  {
                                  onComplete: changeAddToMerkliste
                                 }
                               );


}

//-----------------------------------------------------------------------------
function updateWriteCommentDiv(){

  var myAjax = new Ajax.Request(
                                 "/update_write_comment_div.php",
                                  {
                                  onComplete: changeWriteCommentDiv
                                 }
                               );


}

//-----------------------------------------------------------------------------
function updateComments(){

  var myAjax = new Ajax.Request(
                                 "/_comments.php",
                                  {
                                  onComplete: changeDivKommentare
                                 }
                               );


}

//-----------------------------------------------------------------------------
function addToList(id, user_id){

  if(user_id == 0){
     alert('Um den Eintrag zur Merkliste hinzuzufügen melde dich bitte an.');
     Effect.Pulsate('login_box', {pulses:3, duration: 1});
     return;
  }

  var myAjax = new Ajax.Request(
                                 "/change_merkliste.php",
                                 {
                                  method: 'get',
                                  parameters: 'daten_id='+id+'&user_id='+user_id+'&action=add',
                                  onComplete: changeDivPlanerData
                                 }
                                );


}

//-----------------------------------------------------------------------------
function removeFromList(id, user_id){

  var myAjax = new Ajax.Request(
                                 "/change_merkliste.php",
                                 {
                                  method: 'get',
                                  parameters: 'daten_id='+id+'&user_id='+user_id+'&action=delete',
                                  onComplete: changeDivPlanerData
                                 }
                                );


}

//-----------------------------------------------------------------------------
function deleteList(user_id){

  var myAjax = new Ajax.Request(
                                 "/change_merkliste.php",
                                 {
                                  method: 'get',
                                  parameters: 'user_id='+user_id+'&action=delete_all',
                                  onComplete: changeDivPlanerData
                                 }
                                );

}

//-----------------------------------------------------------------------------
function addUserEntry()
{
  var myAjax = new Ajax.Request(
                                 "../add_user_entry.php",
                                 {
                                  method: 'post',
                                  parameters: Form.serialize($('add_user_entry')),
                                  onComplete: changeDivAddUserEntry
                                 }
                                );
}

//-----------------------------------------------------------------------------
//Check functions
//-----------------------------------------------------------------------------

function checkAndSubmitUserEntry(entry_name){
  if (checkUserEntryForm() == true)
    checkEntryExists(entry_name);
}

//-----------------------------------------------------------------------------
function checkEntryExists(entry_name){
  var found = false;
  var myAjax = new Ajax.Request(
                                 "ajax_check_entry_exists.php",
                                 {
                                  method: 'get',
                                  parameters: 'name='+entry_name,
                                  onSuccess: function(transport) {
                                                        if (transport.responseText == "true"){
                                                          alert("Der Betrieb befindet sich bereits in der Datenbank!");
                                                        }
                                                        else{
                                                           addUserEntry();
                                                        }
                                                      }
                                  }
                               );
  return ;
}

//-----------------------------------------------------------------------------
function checkRegisterForm() {
var user_name = document.forms.register_user.username.value;
var password = document.forms.register_user.password.value;
var password_confirm = document.forms.register_user.password_confirm.value;
var email = document.forms.register_user.email.value;

  if( user_name== "") {
    alert("Bitte gib einen Usernamen an!");
    return false;
  }

  if( user_name.indexOf(';') > -1 || user_name.indexOf('"') > -1 || user_name.indexOf('<') > -1 ) {
    alert("Die Zeichen \" ; < sind nicht erlaubt!");
    return false;
  }

  if(password == "") {
    alert("Bitte gib ein Passwort an!");
    return false;
  }

  if( password.indexOf(';') > -1 || password.indexOf('"') > -1 || password.indexOf('<') > -1 ) {
    alert("Die Zeichen \" ; < sind nicht erlaubt!");
    return false;
  }

  if(password_confirm == "") {
    alert("Bitte bestätige dein Passwort!");
    return false;
  }

  if(password != password_confirm) {
    alert("Die Passwörter sind nicht identisch");
    return false;
  }

  if(email == "" || email.indexOf('@') == -1) {
    alert("Bitte gib eine korrekte Email-Adresse an! Du benötigst sie, um dich freizuschalten.");
    return false;
  }

  if( email.indexOf(';') > -1 || email.indexOf('"') > -1 || email.indexOf('<') > -1 ) {
    alert("Die Zeichen \" ; < sind nicht erlaubt!");
    return false;
  }

return true;
}

//-----------------------------------------------------------------------------
function checkUserEntryForm() {
var entry_name = document.forms.add_user_entry.name.value;
var entry_description = document.forms.add_user_entry.description.value;
var entry_address = document.forms.add_user_entry.address.value;
var entry_plz = document.forms.add_user_entry.plz.value;
var entry_location = document.forms.add_user_entry.location.value;
var entry_telefon = document.forms.add_user_entry.telefon.value;


  if( entry_name== "") {
    alert("Bitte gib den Namen des Betriebes an!");
    return false;
  }

  if( entry_name.indexOf(';') > -1 || entry_name.indexOf('"') > -1 || entry_name.indexOf('<') > -1 ) {
    alert("Die Zeichen \" ; < sind nicht erlaubt!");
    return false;
  }

  if(entry_description == "") {
    alert("Bitte gib eine Beschreibung an!");
    return false;
  }

  if(entry_address == "") {
    alert("Bitte gib eine Adresse an!");
    return false;
  }

  if(entry_plz == "") {
    alert("Bitte gib eine Postleitzahl an!");
    return false;
  }
  
  if(entry_location == "") {
    alert("Bitte gib einen Ort an!");
    return false;
  }

  if(entry_telefon == "") {
    alert("Bitte gib eine Telefonnummer an!");
    return false;
  }

return true;
}

//-----------------------------------------------------------------------------
//Change functions
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
function changeDivAll( originalRequest ) {

  document.getElementById('google_ad').style.display = 'none';
  document.getElementById('all').innerHTML = originalRequest.responseText;
}

//-----------------------------------------------------------------------------
function changeDivRegister( originalRequest ) {

  document.getElementById('divregister').innerHTML = originalRequest.responseText;
  document.getElementById('google_ad').style.visibility = 'hidden';
}

//-----------------------------------------------------------------------------
function changeDivSearchResult( originalRequest ) {

  document.getElementById('div_search_result').innerHTML = originalRequest.responseText;
  document.body.style.cursor = 'default';
}

//-----------------------------------------------------------------------------
function changeDivAddUserEntry( originalRequest ) {

  document.getElementById('divregister').innerHTML = originalRequest.responseText;
  document.getElementById('google_ad').style.visibility = 'hidden';
  var scroll_effect = new Effect.ScrollTo('divheader', {transition: Effect.Transitions.linear});
}

//-----------------------------------------------------------------------------
function changeDivData( originalRequest ) {

    document.getElementById('all').innerHTML = originalRequest.responseText;
    document.getElementById('google_ad').style.display = 'block';

    resetInterestScroll();
    resetUserInterestScroll();
    resetCommentWindow();

    updateMap(document.forms.lat_lng.lat.value, document.forms.lat_lng.lng.value);

    var entry_name = document.forms.stored_data.name.value;
    var entry_desc = document.forms.stored_data.desc.value;

    document.title = entry_name;
    document.body.style.cursor = 'default';

  updateWhatsNear();
}

//-----------------------------------------------------------------------------
function changeDivPlanerData( originalRequest ) {

  document.getElementById('divplaner').innerHTML = originalRequest.responseText;
}

//-----------------------------------------------------------------------------
function changeDivKommentare( originalRequest ) {
  document.getElementById('div_kommentare').innerHTML = originalRequest.responseText;

  //if(originalRequest.responseText.indexOf('error_box') == -1)
    closeCommentWindow();
    document.form_comment.reset();
  //else
   // document.getElementById('close_comment').style.visibility = 'visible';
}

//-----------------------------------------------------------------------------
function changeDivNearby( originalRequest ) {

  document.getElementById('nearby').innerHTML = originalRequest.responseText;
}

//-----------------------------------------------------------------------------
function changeAddToMerkliste( originalRequest ) {
  document.getElementById('div_add_merkliste').innerHTML = originalRequest.responseText;
}

//-----------------------------------------------------------------------------
function changeWriteCommentDiv( originalRequest ) {
  document.getElementById('div_write_comment').innerHTML = originalRequest.responseText;
}

//-----------------------------------------------------------------------------
function changeLoginTable( originalRequest ) {

  document.getElementById('divplaner').innerHTML = originalRequest.responseText;
  updateAddToMerkliste();
  updateWriteCommentDiv();
  updateComments();
}

