var body = false, flashcontent = false, footer = false;
var safariPC, ie6;

var winLoc = window.location.toString().split("/")[0];

var trace = function(str){

    try {
        opera.postError(str);
    } 
    catch (e) {
        try {
            console.log(str);
        } 
        catch (f) {
            //alert(str);
        }
    }

}


// set up prepping and starting moo at appropriate stages of page loading

window.addEvent('domready', prepMoo);
window.addEvent('load', delayStartMoo);
window.addEvent('resize', fixTabs);

window.addEvent('scroll', fixTabs);


function delayStartMoo() {
    if (window.debugging) { trace('script: delayStartMoo'); }
    startMoo.delay(200,this);
};

function prepMoo()  {
  if (window.debugging) { trace('script: prepMoo'); }
  
  // get all the DOM bits were gonna use
  prepElements();
  fixTabs();

  safariPC = ($chk(window.webkit) && navigator.userAgent.toLowerCase().indexOf('windows') > -1);
  
};

function startMoo() {
  if (window.debugging) { trace('startMoo'); };
  fixTabs();
  
  try {
      if ($defined(Font)) {
          var myfont = new Font('/include/flash/ag.swf', { tags: 'h3' });
          myfont.replace();
      }
  } catch (e){
      if (window.debugging) { trace('startMoo error:'+e.description); };
  }
  
  
  
};

function fixTabs() {
    if (window.debugging) { trace('fixTabs '); };

    if (!body || !footer) prepElements();
    if (!body || !footer) return;
    
    var winHeight = window.getHeight();
    var bodyHeight = body.getSize().size['y'];
    var footerHeight = footer.getSize().size['y'];
    
    try {
        if (winHeight > bodyHeight) {
            footer.setStyles({ 
           	    position: "absolute", 
                top: (window.getScrollTop() + winHeight - footerHeight ) + "px" });
        } else {
            //footer.removeProperty("style");
            var fh = (window.ie)? footerHeight : footerHeight/2;
            footer.setStyles({ 
           	    position: "absolute", 
                top: (bodyHeight - fh ) + "px" });
        }
        
    } catch(e) {
        if (window.debugging) { trace('fixTabs error:'+e.description); };
    }
};



function getFooter() {
    return $('footer');
}

function getFlashContent() {
    return $('flashcontent');
}

function getBody() {
    return $('body');
}



function prepElements() {
  if (window.debugging) { trace('script: prepElements'); }

  if (!footer) footer = getFooter();
  if (!body) body = getBody();

  if (!flashcontent) flashcontent = getFlashContent(); 
    
};


function formatNumber(_number,_decimalPlaces) {
	return (_number.toFixed)? _number.toFixed(_decimalPlaces) : _number;
};
