/*


Dynamic Application of Functions to DOM
*/
var _debugMode = false;
document.observe('dom:loaded', init);
Event.observe(window, 'load', windowLoad);


function init () {
  var byline = $$('#quotes p.byline')[0];
  if (byline) {
    var markup = byline.innerHTML.strip().split(',');
    markup[0] = '<strong>~' + markup[0].split(' ')[0] + '<span class="green"> ' + markup[0].split(' ')[1] + '</span></strong>,';
    byline.update(markup.join(' '));
  }
  
  $$('.softwareItem h2').invoke('greenifyLastWord');
  
  // if ($('textSwitch')) {
  //   // var heading = $$('.pageHeader')[0];
  //   // var index = heading.innerHTML.search(/[^A-Za-z0-9]$/);
  //   // if (index == -1) heading.innerHTML += '.';
  //   // heading.innerHTML = heading.innerHTML.replace(/(.$)/, "<span class='green'>$1</span>");
  //   $$('.softwareItem p')[0].dropCap();
  // }
  
  var subnav = $('navSub');
  if (subnav) {
   var children = subnav.childElements();
   children.last().hide();
   var links = children.invoke('down').compact();
   for (var i = links.length - 1; i >= 0; i--){
    links[i].update(links[i].innerHTML.gsub(' ', '&nbsp;'));
   };
   
   var screenshotHeading = $$('#screenshots h4')[0];

   if (screenshotHeading) {
     if (!screenshotHeading.next('div')) screenshotHeading.hide();
   }
  }
  
  
}

function windowLoad () {
  if ($('softwareInsert')) {
    var url = '/front-page-software';
  
    new Ajax.Request(url, {
      method: 'get',
      onComplete: function(transport) {
        var software = transport.responseText.split('--delemiter--');
        software.pop(); //get rid of last element in the array which is empty
        var index = Math.round(Math.random() * (software.length - 1));
        $('softwareInsert').hide().update(software[index]).down('h2').greenifyLastWord();
        var header = $('softwareInsert').down('h2');
        if (header.innerHTML.length > 50) header.setStyle({fontSize: 16 + 'px'});
        (function(){
          $('loader-graphic').fade();
          $('softwareInsert').appear();
        }).delay(0.1); // giving the image a few to load
      }
    });
  }
}

Element.addMethods({
  greenifyLastWord: function(el) {
    if (el.innerHTML.strip() == '') return el;
    words = el.innerHTML.split(' ');
    if (words.size() <= 1) return el;
    words[words.size() - 1] = '<span class="green">' + words.last() + '</span>';
    el.update(words.join(' '));
    return el;
  },
  dropCap: function(el) {
    if (el.innerHTML.length < 80) return;
    el.innerHTML = el.innerHTML.replace(/(\w)/, "<span class='dropCap'>$1</span>");
  }
});
