/*
Javascripts
*/

var divPos;
var myScrollFX;
var divWidth;
var divStep;
var divCount;
var myDomain;

window.addEvent('domready', function() {

  setURL();

  /*
  section actions
  */

  if($('textfield_2')) {
    $('textfield_2').onblur    = function(event) { textCounter(this); };
    $('textfield_2').onkeydown = function(event) { textCounter(this); };
    $('textfield_2').onkeyup   = function(event) { textCounter(this); };
    $('textfield_2').onfocus   = function(event) { textCounter(this); };
    textCounter($('textfield_2'));
  }

  if($('nutzungsbedingungen')) {
    $('field_10').onblur    = function(event) { textCounterFW(this); };
    $('field_10').onkeydown = function(event) { textCounterFW(this); };
    $('field_10').onkeyup   = function(event) { textCounterFW(this); };
    $('field_10').onfocus   = function(event) { textCounterFW(this); };
    textCounterFW($('field_10'));
  }

  if($$('input[id^=boption_]')) {
    var checkBoxArr = $$('input[id^=boption_]');
    checkBoxArr.each(
      function(item) { item.addEvent('click', function() { selectCheckBoxB(this); }) }
    );
  }

  if($$('input[id^=toption_]')) {
    var checkBoxArr = $$('input[id^=toption_]');
    checkBoxArr.each(
      function(item) { item.addEvent('click', function() { selectCheckBoxT(this); }) }
    );
  }

  if($('highlightfields')) {
    var highlightPartsArr = $('highlightfields').value.split(":");
    for(var i = 0; i <= highlightPartsArr.length; i++) {
      if($(highlightPartsArr[i])) $(highlightPartsArr[i]).setStyle('border', '2px solid #00b5e3');
    }
  }

  if($$('.faq_frage')) { var myAccordion = new Accordion($$('.faq_frage'), $$('.faq_antwort'), { display: -1, alwaysHide: true, opacity: false }); }

  if($$('img[id^=mapimage]')) {
    var imageArr = $$('img[id^=mapimage]');
    imageArr.each(
      function(item) { item.addEvent('mouseover', function() { showGruppen(this); });
                       item.addEvent('click', function() { goGruppen(this); });
                     }
    );
  }

  if($('parkbikehelp')) {
    $('parkbikehelp').addEvent('click', function() {
      window.open("http://www.ruhr2010.still-leben-ruhrschnellweg.de/parkbikehelp.html", "Hilfe", "width=470,height=270");
    }
  )};

  if($('tickethelp1')) {
    $('tickethelp1').addEvent('click', function() { showTicketHelp(); });
    $('tickethelp2').addEvent('click', function() { showTicketHelp(); });
    $('tickethelp3').addEvent('click', function() { showTicketHelp(); });
  }

  if($('nutzungsbedingungen')) {
    $('nutzungsbedingungen').addEvent('click', function() { showNutzungsbedingungen(); return false; });
  }

  if($('buchungSubmit')) {
    $('buchungSubmit').addEvent('click', function() { routeBuchung('route'); });
  }

  if($('linkBuchung')) { $('linkBuchung').submit(); }

  if($$('div[id^=gallery_container]')) {
    var divArr = $$('div[id^=gallery_container]');
    divArr.each(
      function(item) {
        var itemID = item.id.replace(/[a-zA-Z_-]/g, '');
        new SlideItMoo({ overallContainer: 'gallery_container' + itemID,
                         elementScrolled:  'thumb_container' + itemID,
                         thumbsContainer:  'thumbs' + itemID,
                         itemsSelector:    '.SlideItMoo_element',
                         itemsVisible:     3,
                         elemsSlide:       3,
                         itemWidth:        140,
                         itemHeight:       93,
                         navs:             { fwd: '.SlideItMoo_forward',
                                             bk:  '.SlideItMoo_back' },
                         slideVertical:    false,
                         showControls:     1,
                         transition:       Fx.Transitions.linear,
                         duration:         200,
                         direction:        1,
                         autoSlide:        false,
                         mouseWheelNav:    false,
                         startIndex:       0
                      });
      }
    );
  }

  /*
  section functions
  */

  function setURL() {
    var masterURL = window.location.href.substr(0, window.location.href.lastIndexOf(".html"));
    var partURL   = masterURL.split("/");
    var partCount = partURL.length;
    partURL.pop();
    myDomain = partURL[0];
    for(var i = 1; i < 3; i++) myDomain = myDomain + '/' + partURL[i];
    myDomain = myDomain + '/';
  }

  function selectCheckBoxB(itemObj) {
    var checkBoxArr = $$('input[id^=boption_]');
    checkBoxArr.each(
      function(item) { item.checked = false; }
    );
    itemObj.checked = true;
  }

  function selectCheckBoxT(itemObj) {
    var checkBoxArr = $$('input[id^=toption_]');
    checkBoxArr.each(
      function(item) { item.checked = false; }
    );
    itemObj.checked = true;
  }

  function showGruppen(itemObj) {
    var myRequest = new Request({ url: myDomain + 'rpc.php', method: 'get', data: 'code=' + itemObj.id, onSuccess: handleShowGruppen }).send(); 
  }

  function handleShowGruppen(rpcResponse) {
    $('gruppendiv').set('html', rpcResponse);
  }

  function textCounter(fieldObj) {
    var maxLen       = 350;
    var charCnt      = fieldObj.value.length;
    var fieldContent = fieldObj.value;
    if(charCnt > maxLen) {
      fieldObj.value = fieldContent.substring(0, maxLen);
      charCnt        = 350;
    }
    $('progressBar').innerHTML = "Ihre aktuelle Zeichenanzahl: " + charCnt;
  }

  function textCounterFW(fieldObj) {
    var maxLen       = 1000;
    var charCnt      = fieldObj.value.length;
    var fieldContent = fieldObj.value;
    if(charCnt > maxLen) {
      fieldObj.value = fieldContent.substring(0, maxLen);
      charCnt        = 1000;
    }
    $('progressBar').innerHTML = "Ihre aktuelle Zeichenanzahl: " + charCnt;
  }

  function routeBuchung(responseText) {
    if(responseText == 'route') {
      var internalPIN = $('pinCode').get('value');
      var myRequest   = new Request({ url: myDomain + 'route.php', method: 'get', data: 'pin=' + internalPIN, onSuccess: routeBuchung }).send(); 
    } else {
      var responseParts = responseText.split('[-]');
      $('linkTarget').action = responseParts[1];
      $('linkTarget').submit();
      return true;
    }
    return false;
  }

  if($$('a[class^=vote_button]')) {
    var aArr = $$('a[class^=vote_button]');
    aArr.each(
      function(item) { item.addEvent('click', function() {
        $('vote_result').value = item.id;
        $('voting_form').submit();
      }); }
    );
  }

});

