/***
* Copyright (C) 2005-2009 by Juergen Heinemann www.hjcms.de
* THIS SOFTWARE IS PROVIDED BY DEVELOPER Heinemann All rights reserved.
***/
var set_hidden_elements = false;

function swapDisplay ( i )
{
   if (document.getElementById(i).style.display == 'none') {
      document.getElementById(i).style.display = '';
   } else {
      document.getElementById(i).style.display = 'none';
   }
}

function timeStamp()
{
   var date = new Date();
   return date.getMilliseconds();
}

function swapListing ( id )
{
   var obj = document.getElementById(id);
   try {
      if (obj.style.display == 'none')
         obj.style.display = '';
      else
         obj.style.display = 'none';
   } catch (e) { alert(e) }
}

/* Texteingabe Feld prüfen */
function checkTextInput( na, info )
{
   var s = document.getElementById( na );
   try {
      if ( s.value.length < 2 ) {
         alert( "Fehlende Eingabe bei " + info + "!" );
         s.style.background = '#FFFFC0';
         s.focus();
         return false;
      }
      s.style.background = '#E6E8FA';
      return true;
   } catch(e) {
      // alert('checkTextInput:'+na+':'+e)
      return false;
   }
}

function checkEMail( na )
{
   var m = document.getElementById( na );
   if ( m.value.length < 2 ) {
      alert( "Keine E-Mail angegeben!" );
      m.style.background = '#FFFFC0';
      m.focus();
      return false;
   }

   var r = new RegExp(/([\w\d\-\._]{3,})(@)([\w\d\-\._]{3,})(\.)(\w){2,5}/i);
   if ( r.test( m.value ) == false ) {
      alert( "Das scheint keine Reguläre E-Mail Adresse zu sein!" );
      m.style.background = '#FFFFC0';
      m.focus();
      return false;
   }

   var p = new RegExp(/.+(@dgmcoaching\.de)$/i);
   if ( p.test( m.value ) == true ) {
      alert( "Sie können keine E-Mail des Seitenbetreibers als Antwort Adresse verwenden!" );
      m.style.background = '#FFFFC0';
      m.focus();
      return false;
   }
   m.style.background = '#E6E8FA';
   return true;
}

function checkCaptcha( na )
{
   var c = document.getElementById( na );
   if ( c.value.length < 4 ) {
      alert( "Keine Captcha Eingabe vorhanden!" );
      c.style.background = '#FFFFC0';
      c.focus();
      return false;
   }
   c.style.background = '#E6E8FA';
   return true;
}

function checkMailFormContent( f )
{
   if ( ! checkTextInput( 'mailSubject', 'Betreffzeile' ) )
      return false;

   if ( ! checkEMail( 'mailRe' ) )
      return false;

   if ( ! checkCaptcha( 'mailCa' ) )
      return false;

   return true;
}

/* Post Daten für Unternehmer und Mitglieder prüfen */
function checkAdminFormContent(obj)
{
   if ( document.getElementById( 'mtg_remove' ).checked == true )
      return true;

   var fields= new Object();
   if ( set_hidden_elements != true )
   {
      fields["name"] = "Vorname";
      fields["nachname"] = "Nachname";
   }
   fields["ort"] = "Wohnort";

   if ( ! checkEMail( 'email' ) )
      return false;

   // Unternehmen Auswahl
   var firmaSelected = 0;
   var firma = document.getElementById('firma');
   if (firma)
   {
      for ( var i = 0; i < firma.length; i++ ) {
         if ( i < 0 ) break;
         try {
            if ( firma[i].selected == true && firma[i].value != '' )
            {
               firmaSelected = parseInt( firma[i].value );
               break;
            }
         } catch (e) {
            continue;
         }
      }
      if ( firmaSelected < 1 )
      {
         alert ( "Es wurd kein Unternehmen zugewiesen!\nAlternativ kann dieses Mitglied der DGMC zugewiesen werden!" );
         return false;
      }
   }
   else
      return false;

   for (var inp in fields)
   {
      if ( ! checkTextInput ( inp, fields[inp] ) )
         return false;
   }

   // TODO
   // if ( document.getElementById( 'mtg_duplicate' ).checked == true )
   //    return true;

   var extra= new Object();
   extra["plzort"] = "Postleitzahl";
   extra["strasse"] = "Strasse";
   extra["tvorwahl"] = "Vorwahl";
   extra["telefon"] = "Telefon";

   for (var exts in extra)
   {
      if ( ! checkTextInput( exts, extra[exts] ) )
         return false;
   }

   // CoachingSchwerPunkte
   var csp = new Array('mediation','kommunikation','kommunikation','konfliktmanagement','auftreten_ausstrahlung','gesundheit','partnerschaft_sexualitaet','familien','kinder_jugendliche','sport','marketing_verkauf','interkulturalitaet','business_management','teamentwicklung','lehrtrainer_coachingausbildung','persoenliche_praesentation');
   var buffer = new Array();
   for (var i in csp)
   {
      var element = document.getElementById('csp_'+csp[i]);
      try {
         if (element.checked)
            buffer.push( csp[i] );
      } catch(e) {
         continue;
      };
   }
   if ( buffer.length < 1 )
   {
      var cf = confirm("Es sollte Mindestens 1 Coachingschwerpunkt angegeben werden.\nWenn keine Coachingschwerpunkte angegeben sind wird dieser Eintrag nicht Angezeigt!\nSoll die Anzahl der Coachingschwerpunkte Ignoriert werden?");
      if (!cf)
         return false;
   }
   return true;
}

function checkQuestion( obj, txt )
{
   if ( obj.checked )
   {
      if ( ! confirm( txt ) )
         obj.checked = false;
   }
}

function checkBewerberFormContent(obj)
{
   var fields= new Object();
   fields["b_vorname"] = "Vorname";
   fields["b_nachname"] = "Nachname";
   fields["b_strasse"] = "Strasse";
   fields["b_plz_ort"] = "Postleitzahl und Wohnort";
   fields["b_telefon"] = "Telefon";

   for (var inp in fields)
   {
      if ( ! checkTextInput( inp, fields[inp] ) )
         return false;
   }

   if ( ! checkEMail( 'b_email' ) )
      return false;

   return true;
}

function disableElements ( b )
{
   if ( b )
      set_hidden_elements = true;
   else
      set_hidden_elements = false;
}

function checkVisibilities()
{
   set_hidden_elements = true;
}

/* http://prototypejs.org/api/ajax/request */
function initMitglieder(reg)
{
   var spinner = document.getElementById ('spinner');
   if (reg > 0 && reg <= 2)
   {
      spinner.style.display='';
      var requester = document.getElementById ('mtgrequester');
      var url = "json.php?mtg="+reg+"&amp;t="+timeStamp();
      new Ajax.Request(url, {
         method: 'get',
         encoding: 'UTF-8',
         requestHeaders: {Accept: 'application/json'},
         onSuccess: function(transport) {
            requester.innerHTML = '';
         },
         onComplete: function(transport) {
            if (200 == transport.status)
            {
               spinner.style.display='none';
               try {
                  requester.innerHTML = transport.responseText.evalJSON(true);
               } catch( errno ) {
                  requester.innerHTML = "<div>"+errno+"</div>";
               }
            }
         }
      });
   }
   else
      spinner.style.display='none';
}

/* adminedittemplate(name,handler) */
function adminedittemplate(n,h)
{
   var handler = document.getElementById (h);
   if (!handler.value)
      return;

   var spinner = document.getElementById ('spinner');
   spinner.style.display='';

   var requester = document.getElementById ('mtgrequester');
   var url = "json.php?adm="+handler.value+"&reg="+n+"&amp;t="+timeStamp();
   new Ajax.Request(url, {
      method: 'get',
      encoding: 'UTF-8',
      requestHeaders: {Accept: 'application/json'},
      onSuccess: function(transport) {
         requester.innerHTML = '';
      },
      onComplete: function(transport) {
         if (200 == transport.status)
         {
            spinner.style.display='none';
            try {
//                requester.innerHTML = eval( unescape( transport.responseText ) );
               requester.innerHTML = transport.responseText.evalJSON(true);
            } catch( errno ) {
               alert ( unescape( transport.responseText ) );
               requester.innerHTML = "<div>"+errno+"</div>";
            }
         }
      }
   });
}

function checkBewerberFormContent(obj)
{
   if ( document.getElementById( 'fa_remove' ).checked == true )
      return true;

   var fields= new Object();
   fields["fa_name"] = "Unternehmen";
   fields["fa_plz"] = "Postleitzahl";
   fields["fa_strasse"] = "Straße";
   fields["fa_ort"] = "Firmensitz";

   for (var inp in fields)
   {
      if ( ! checkTextInput( inp, fields[inp] ) )
         return false;
   }
   return true;
}

function expertsSearch()
{
   var spinner = document.getElementById ('spinner');
   var message = document.getElementById ('statusmessage');
   var requester = document.getElementById ('foundexperts');

   Element.addMethods('input', {
      toJSON: function(element) {
         element = $(element);
         if ( element.name == "s_expert" )
            return element.name + "=" + escape(element.getValue());
         else if ( element.getValue().length != 0 )
            return element.name + "=" + parseInt(element.getValue());
      }
   })

   var dataset = new Array();
   for (var i = 0; i < document.forms.Experts.length; i++)
   {
      try{
         dataset.push( Object.toJSON( document.forms.Experts.elements[i] ) );
      } catch(e) {};
   }
   var daten = dataset.join("&");
   new Ajax.Request("json.php?experts=request&t="+timeStamp(), {
      method: 'post',
      encoding: 'UTF-8',
      postBody: daten,
      onCreate: function() {
         spinner.style.visibility='';
         message.innerHTML = "Suche ...";
      },
      onLoading: function() {
         spinner.style.visibility='';
         message.innerHTML = "Bitte warten ...";
      },
      onSuccess: function(transport) {
         message.innerHTML = "...";
         requester.innerHTML = '';
      },
      onComplete: function(transport) {
         if (200 == transport.status)
         {
            message.innerHTML = "";
            spinner.style.visibility='hidden';
            try {
               requester.innerHTML = eval( unescape( transport.responseText ) );
            } catch( errno ) {
               requester.innerHTML = "<div class=\"failure\">"+errno+"</div>";
            }
         }
      },
      onFailure: function() {
         requester.innerHTML = "<div class=\"failure\">Unbekannter Fehler</div>";
      }
   });
}

