document.observe("dom:loaded", setupFaqs );
document.observe("dom:loaded", setMaxLength );

var ajaxBusy = null;
var ajaxResponse = null;
var faqOpen = null;
var newFaq = null;
var faqIntro = new Array();
var faqId = null;

function setupFaqs()
{
  var faqItem, tempIntro, newI;
  var x=0;
  
  if( !document.getElementsByTagName ) return;
  var allLinks = document.getElementsByTagName('span');
  
  for( var i=0; i<allLinks.length; i++ )
  {
    faqItem = allLinks[i];
    if( faqItem.className && ( ' '+faqItem.className+' ').indexOf(' faqAnswer ') != -1 )
    {
      $(faqItem).setStyle( {display:'none'} );
      faqId = faqItem.id.replace('faqAnswer_', '');
      
      tempIntro = $(faqItem).innerHTML.split(' ', 8);
      faqIntro[faqId]='';
      for( x=0; x<tempIntro.length; x++ )
      {
        faqIntro[faqId] += ' ' + tempIntro[x];
      }
      faqIntro[faqId]=faqIntro[faqId].replace('.', '');
      
      newI = new Element( 'span', { 'id':'faqIntro_'+faqId, 'class':'faqIntro' } ).update( faqIntro[faqId]+'...<br/><a href="/faqs/'+faqId+'/question.html" id="faqRead_'+faqId+'">Read more</a>' );
      $(faqItem).insert ({ 'after' : newI } );
      
      Event.observe( $('faqRead_'+faqId), 'click', faqClick, false );
    }
  }
}


function faqClick(e)
{
  faqId = this.parentNode.id.replace('faqIntro_', '');
  var path = '/faqs/getAnswer/id/'+faqId+'.html';
  
  if( !ajaxBusy && faqOpen!=faqId)
  {
    ajaxBusy=1;
    new Ajax.Request(path,
    {
      method:'get',
      onComplete: function(transport)
      {
        ajaxResponse = transport.responseText || null;
        if( ajaxResponse )
        {
          new Effect.BlindDown( $('faqAnswer_'+faqId), { duration:0.4 } );
            new Effect.BlindUp( $('faqIntro_'+faqId), { duration:0.4 } );
          
          if( faqOpen )
          {
            new Effect.BlindUp( $('faqAnswer_'+faqOpen), { duration:0.4 } );
            new Effect.BlindDown( $('faqIntro_'+faqOpen), { duration:0.4 } );
          }
            
          faqOpen = faqId;
          faqOpen = faqId;
          //fadeAllFaqTitles( faqId );
        }
        ajaxBusy=0;
      }
    });
  }

  attachPageSlide();
  Event.stop(e); 
}

function fadeAllFaqTitles( currentFaq )
{
  var allImgs = document.getElementsByTagName('a');
  
  for( var i=0; i<allImgs.length; i++ )
  {
    var img = allImgs[i];
    if( img.id && (' '+img.id+' ').indexOf(' faqQuestion_')!=-1 )
    {
      if( img.id!='faqQuestion_'+currentFaq )
      {
        $('faqAnswer_'+faqId).setStyle ({ display:'block' } );
      }
    }
  }
}


function setMaxLength()
{
  var allTextareas = document.getElementsByTagName('textarea');
    
  for( var i=0; i<allTextareas.length; i++ )
  {
    var textarea = allTextareas[i];
    if( textarea.getAttribute('maxlength'))
    {
      Event.observe( $(textarea), 'keydown',  checkMaxLength, false );
      Event.observe( $(textarea), 'change', checkMaxLength, false );
    }
  }
}

function checkMaxLength(e)
{
  var maxLength = this.getAttribute('maxlength');
  var inputText = this.value;
  var currentLength = inputText.length;
  
  if( currentLength>maxLength )
  {
    var newText=inputText.substr(0, maxLength);
    this.value = newText;
    Event.stop(e);
  }
}

