/**
 * Webosaurs main JS file
 * 
 * Copyright and Trademark (c) 2009-2010 - ReelFX, Inc.
 */

// mix-in Asset loader and Fx.Slide from mootools-more
//MooTools More, <http://mootools.net/more>. Copyright (c) 2006-2009 Aaron Newton <http://clientcide.com/>, Valerio Proietti <http://mad4milk.net> & the MooTools team <http://mootools.net/developers>, MIT Style License.
MooTools.More={version:"1.2.4.2",build:"bd5a93c0913cce25917c48cbdacde568e15e02ef"};Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical",hideOverflow:true},initialize:function(b,a){this.addEvent("complete",function(){this.open=(this.wrapper["offset"+this.layout.capitalize()]!=0);
if(this.open&&Browser.Engine.webkit419){this.element.dispose().inject(this.wrapper);}},true);this.element=this.subject=document.id(b);this.parent(a);var d=this.element.retrieve("wrapper");
var c=this.element.getStyles("margin","position","overflow");if(this.options.hideOverflow){c=$extend(c,{overflow:"hidden"});}this.wrapper=d||new Element("div",{styles:c}).wraps(this.element);
this.element.store("wrapper",this.wrapper).setStyle("margin",0);this.now=[];this.open=true;},vertical:function(){this.margin="margin-top";this.layout="height";
this.offset=this.element.offsetHeight;},horizontal:function(){this.margin="margin-left";this.layout="width";this.offset=this.element.offsetWidth;},set:function(a){this.element.setStyle(this.margin,a[0]);
this.wrapper.setStyle(this.layout,a[1]);return this;},compute:function(c,b,a){return[0,1].map(function(d){return Fx.compute(c[d],b[d],a);});},start:function(b,e){if(!this.check(b,e)){return this;
}this[e||this.options.mode]();var d=this.element.getStyle(this.margin).toInt();var c=this.wrapper.getStyle(this.layout).toInt();var a=[[d,c],[0,this.offset]];
var g=[[d,c],[-this.offset,0]];var f;switch(b){case"in":f=a;break;case"out":f=g;break;case"toggle":f=(c==0)?a:g;}return this.parent(f[0],f[1]);},slideIn:function(a){return this.start("in",a);
},slideOut:function(a){return this.start("out",a);},hide:function(a){this[a||this.options.mode]();this.open=false;return this.set([-this.offset,0]);},show:function(a){this[a||this.options.mode]();
this.open=true;return this.set([0,this.offset]);},toggle:function(a){return this.start("toggle",a);}});Element.Properties.slide={set:function(b){var a=this.retrieve("slide");
if(a){a.cancel();}return this.eliminate("slide").store("slide:options",$extend({link:"cancel"},b));},get:function(a){if(a||!this.retrieve("slide")){if(a||!this.retrieve("slide:options")){this.set("slide",a);
}this.store("slide",new Fx.Slide(this,this.retrieve("slide:options")));}return this.retrieve("slide");}};Element.implement({slide:function(d,e){d=d||"toggle";
var b=this.get("slide"),a;switch(d){case"hide":b.hide(e);break;case"show":b.show(e);break;case"toggle":var c=this.retrieve("slide:flag",b.open);b[c?"slideOut":"slideIn"](e);
this.store("slide:flag",!c);a=true;break;default:b.start(d,e);}if(!a){this.eliminate("slide:flag");}return this;}});var Asset={javascript:function(f,d){d=$extend({onload:$empty,document:document,check:$lambda(true)},d);
var b=new Element("script",{src:f,type:"text/javascript"});var e=d.onload.bind(b),a=d.check,g=d.document;delete d.onload;delete d.check;delete d.document;
b.addEvents({load:e,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){e();}}}).set(d);if(Browser.Engine.webkit419){var c=(function(){if(!$try(a)){return;
}$clear(c);e();}).periodical(50);}return b.inject(g.head);},css:function(b,a){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:b},a)).inject(document.head);
},image:function(c,b){b=$merge({onload:$empty,onabort:$empty,onerror:$empty},b);var d=new Image();var a=document.id(d)||new Element("img");["load","abort","error"].each(function(e){var f="on"+e;
var g=b[f];delete b[f];d[f]=function(){if(!d){return;}if(!a.parentNode){a.width=d.width;a.height=d.height;}d=d.onload=d.onabort=d.onerror=null;g.delay(1,a,a);
a.fireEvent(e,a,1);};});d.src=a.src=c;if(d&&d.complete){d.onload.delay(1);}return a.set(b);},images:function(d,c){c=$merge({onComplete:$empty,onProgress:$empty,onError:$empty,properties:{}},c);
d=$splat(d);var a=[];var b=0;return new Elements(d.map(function(e){return Asset.image(e,$extend(c.properties,{onload:function(){c.onProgress.call(this,b,d.indexOf(e));
b++;if(b==d.length){c.onComplete();}},onerror:function(){c.onError.call(this,b,d.indexOf(e));b++;if(b==d.length){c.onComplete();}}}));}));}};

(function() {
  // Femtoverlay: a barebones lightbox-like implementation with self-contained CSS
  var Femtoverlay=new Class({Implements:[Events,Options],options:{onOpen:$empty,onClose:$empty,onCreate:$empty,onDestroy:$empty,size:{x:600,y:400},element:null,zIndex:60000,overlayDisplay:null},initialize:function(a){this.setOptions(a);if(this.options.element){$(this.options.element).addEvent("click",function(b){b.stop();this.open()}.bind(this))}},reposition:function(a){a=a||{};if(a.x){this.options.size.x=a.x}if(a.y){this.options.size.y=a.y}if(this.femtocontent){this.femtocontent.setStyles({width:this.options.size.x,height:this.options.size.y,marginLeft:-(this.options.size.x)/2,marginTop:(this.options.size.y>document.getSize().y)?(-document.getSize().y/2):(-this.options.size.y/2)})}this.overlay.setStyle("height",document.getScrollSize().y)},open:function(){if($("femtoverlay")){return}var a=this,b=this.options;this.overlay=new Element("div",{id:"femtoverlay",events:{click:this.close.bind(this)},tween:{duration:this.options.overlayDisplay?1:500,onComplete:function(){if(a.overlay.get("opacity")===0){a.fireEvent("close");a.overlay.dispose()}else{a.femtocontent=new Element("div",{id:"femtocontent",styles:{position:"absolute",top:"50%",left:"50%",overflow:"hidden",zIndex:b.zIndex+2}}).inject(document.body);a.reposition();a.isOpen=true;a.fireEvent("open",a.femtocontent)}}},styles:{position:"absolute",left:0,top:0,width:"100%",backgroundColor:"#000",opacity:0,zIndex:b.zIndex,display:a.options.overlayDisplay}}).inject(document.body).fade(0.72);this.reposition();this.key_close_fn=function(c){if(c.key=="esc"){c.stopPropagation();a.close()}};window.addEvent("resize",this.reposition.bind(this));document.addEvent("keydown",this.key_close_fn);this.fireEvent("create",a.femtocontent)},close:function(){if(this.femtocontent){this.femtocontent.dispose()}this.isOpen=false;window.removeEvent("resize",this.reposition);document.removeEvent("keydown",this.key_close_fn);this.fireEvent("destroy");this.overlay.fade("out")}});
  
  // slightly modified version of the Back to Top plugin for mootools - http://blog.gonchuki.com/archives/usability-101-adding-a-global-back-to-top-to-your-site/
  var make_back_to_top=function(a){if(!Browser.Engine.trident4 || a.allow_ie6){var b={target_opacity:0.64,btn_text:"",parent_element:document.body,scroll_element:window,position:"fixed",relative_pos:{bottom:0,right:0}};a=$merge(b,a);new Element("span",{id:"back-to-top",styles:{opacity:a.target_opacity,display:"none",position:a.position,bottom:a.relative_pos.bottom,right:a.relative_pos.right,cursor:"pointer"},text:a.btn_text,tween:{duration:200,onComplete:function(c){if(c.get("opacity")==0){c.setStyle("display","none")}}},events:{click:function(){a.scroll_element.scrollTo(0,0)}}}).inject(a.parent_element);$(a.scroll_element).addEvent("scroll",function(){var c=a.scroll_element.getScroll().y>(a.scroll_element.getSize().y*0.7);if(c==arguments.callee.prototype.last_state){return}if(Fx&&Fx.Tween){if(c){$("back-to-top").fade("hide").setStyle("display","inline").fade(a.target_opacity)}else{$("back-to-top").fade("out")}}else{$("back-to-top").setStyle("display",(c?"inline":"none"))}arguments.callee.prototype.last_state=c})}};
  var limit_to_digits = function(target) { if (!target) return; target.addEvent('keypress', function(e) { if (((e.code > 31) && (e.key.length === 1) && (!/\d/.test(e.key)))) { e.preventDefault(); return false; } }); };
  var activate_dependables=function(a){a=a||document.getElements(".dependable");a.each(function(c){var d=c.className.match(/depends_on_(\w+)/)[1];var b=c.className.match(/depend_value_(\w+)/)[1];c.getParent("form").getElements("input[name="+d+"], select[name="+d+"]").each(function(e){e.addEvent(((e.get("tag")=="select")?"change":"click"),function(f){if((c.getStyle("display")!="block")&&((e.value==b)&&(/(hidden|text)/.test(e.get("type"))||e.checked||(e.get("tag")=="select")))){c.addClass("visible");if(e.retrieve("pre_selected")){e.eliminate("pre_selected")}else{c.highlight();if(c.getElements("input, select")){$try(c.getElements("select, input")[0].focus())}}}else{if(e.value!=b||e.checked===false){e.eliminate("pre_selected");c.removeClass("visible")}}c.fireEvent("dependable::update", [c, d, b])});c.fireEvent("dependable::update", [c, d, b]);if(e.checked||e.get("checked")=="checked"||e.selectedIndex>0||(/(hidden|text)/.test(e.get("type"))&&e.get("value")==b)){e.store("pre_selected",true).fireEvent((e.get("tag")=="select")?"change":"click")}})});return a};
  
  var GROWL_AUTOHIDE_DELAY = 3000;
  
  var add_close_btn = function(overlay, container) {
    new Element('a', {
      id: 'femto_close',
      styles: { opacity: 0 },
      events: { click: function() { overlay.close(); }}
    }).inject(container || document.body).fade('in');
  };
  
  window.addEvent('domready', function() {
    new Sprites2({item_selector: '#nav_main a', duration: 200});
    
    // some dynamic resizing magic
    if (document.id('content')) {
      var full_height = !!document.getElement('#content_wrap.trans_wrap, h2#tit_playpen, h2#tit_parents_settings, h2#tit_login, h2#tit_login_customer_care');
      var MIN_HEIGHT = full_height ? 654 : 300;
      var find_rule = function(selector) {
        var sheet = document.styleSheets[0];
        var rules = sheet.cssRules ? sheet.cssRules : sheet.rules;
        for (var i = 0; i < rules.length; i++) if (selector == rules[i].selectorText.toLowerCase()) return rules[i];
      };
      
      if (full_height && (document.getSize().y < MIN_HEIGHT)) {
        var rule = find_rule('div#footer');
        rule.style.width = null;
        rule.style.position = null;
        rule.style.marginLeft = null;
      }
      
      var h2 = document.getElement('#content h2[id], #content h2');
      if (h2) {
        h2.inject(document.id('content').addClass('warped'), 'before').addClass('warped');
        if (!document.id('section_nav')) { new Element('div', {id:'void_nav'}).inject(h2.addClass('void_nav'), 'before'); }
      }
      
      window.addEvent('resize', function() {
        var elements_h = (document.getElement('#section_nav, #void_nav') ? document.getElement('#section_nav, #void_nav').getScrollSize().y : 0) + (h2 ? h2.getScrollSize().y : 0);
        if (Browser.Engine.presto && h2) { elements_h += 28; }
        
        var new_h = (window.getSize().y - (document.id('header').getSize().y + document.id('footer').getSize().y + 10 + elements_h)).limit(MIN_HEIGHT, 670 - elements_h);
        var rule = find_rule('#content');
        if (Browser.Engine.trident4) rule.style.height =  new_h.limit(MIN_HEIGHT, document.id('content').getScrollSize().y) + "px";
        else rule.style.maxHeight = new_h + "px";
        document.id('footer').setStyles((new_h == MIN_HEIGHT) ? {margin: '0 auto', position: 'static'} : {margin: null, position: null});
      }).fireEvent('resize');
      
      document.getElements('.dependable').addEvent('dependable::update', function(target, name, value) {
        document.getElements('.linked_to_' + name)[target.hasClass('visible') ? 'addClass' : 'removeClass']('hidden')[target.hasClass('visible') ? 'removeClass' : 'addClass']('visible');
      });
      activate_dependables();
    }
    
    if (document.id('status_bar')) {
      if (typeof h2 != 'undefined' && h2) { document.id('status_bar').dispose().inject(h2, 'after').setStyle('top', h2.getPosition(document.id('content_wrap')).y + h2.getSize().y + 4); }
      document.id('status_bar').set({
        'tween': { onComplete: function() {
          var sb = document.id('status_bar');
          if (sb.get('opacity') === 1) {
            if (sb.retrieve('perpetual')) {
              sb.adopt(new Element('span', {'class': 'close', title: 'close', opacity: 0, events: {click: function(){ sb.fade('out'); }}}).fade(0.7));
              sb.eliminate('perpetual'); return;
            }
            sb.store('timer', (function(){ sb.fade('out'); }).delay(GROWL_AUTOHIDE_DELAY));
          }
        }},
        'opacity': 0
      }).store('show', function(text, mode) {
        var sb = document.id('status_bar');
        window.clearTimeout(sb.retrieve('timer', null));
        sb.fade('hide')[mode == 'error' ? 'addClass' : 'removeClass']('error')[sb.retrieve('perpetual') ? 'addClass' : 'removeClass']('perpetual').set('html', text).setStyles({'visibility': 'visible', 'margin-left': -(sb.getSize().x / 2)}).fade('in');
      });
      
      if (document.getElement('input[id=status_message]')) { document.id('status_bar').store('perpetual', true).retrieve('show')(document.getElement('input[id=status_message]').get('value')); }
    }
    
    if (document.getElement('#parents_playpen, #parents_wishlist')) {
      if (document.id('child_account_sel') && document.id('child_account_sel').options.length > 1) {
        var rq = new Request.HTML({
          link: 'cancel',
          update: document.id('account_info'),
          onFailure: function() { document.id('status_bar').retrieve('show')('unexpected error, please try again', 'error'); },
          onSuccess: function() { transfer_coins_init(); change_pass_init(); delete_account_init(); chat_safeness_init(); },
          onRequest: function() { document.id('parents_playpen').retrieve('throbber', new Element('img', {'class':'throbber'})).inject(document.id('child_account_sel'), 'after');},
          onComplete: function() { document.id('parents_playpen').retrieve('throbber').dispose(); }
        });
        
        document.id('child_account_sel').addEvent('change', function() { rq.get('/parents/children/'+this.value+'/info/?' + (new Date().getTime())); });
      }
      
      var transfer_coins_init = (function() {
        var sb = document.id('status_bar');
        
        // my eyes... my fingers... my dignity :\
        if (document.id('share_coins')) {
          var share_overlay = new Femtoverlay({
            element: 'share_coins',
            size: {x: 898, y: 400 },
            overlayDisplay: 'none',
            onOpen: function(container) {
              container.fade('hide').set('html', '<div class="pop_window"><div class="pop_content"><div id="overlay_message_area"></div></div></div>');
              container.getElement('.pop_content').set('html',
                '<form action="" method="post">' +
                '<div id="transfer_coins_cont">' +
                '<label for="share_coins_coins"></label>'+
                '<input type="text" name="transfer_amount" id="share_coins_coins" />' +
                '<input type="text" name="message" id="share_coins_message" /></div>' +
                '<p class="submit"><button type="submit" class="button submit" id="button_overlay_submit"><span>submit</span></button></p>' +
                '</form>');
              limit_to_digits(container.getElement('input[name="transfer_amount"]'));
              add_close_btn(share_overlay, container.getElement('.pop_window'));
              sb.store('top', sb.getStyle('top')).setStyle('top', 115).inject(container);
              
              var json_req = new Request.JSON({
                link: 'ignore',
                url: '/parents/children/addmoney/',
                onSuccess: function(responseJSON) {
                  document.id('current_child_coins').set('text', responseJSON.child_coins).highlight();
                  document.id('current_parents_balance').set('text', responseJSON.parent_coins).highlight();
                  sb.fade('hide');
                  container.getElement('.pop_content').tween('height', 144).empty().set('html', '<div id="ty_share"></div>' + 
                  '<p class="submit"><button type="submit" class="button btn_done" id="button_overlay_submit"><span>submit</span></button></p>');
                  container.tween('margin-top', -100).getElement('.pop_content p.submit button').addEvent('click', share_overlay.close.bind(share_overlay));
                },
                onFailure: function(xhr) { 
                  switch (xhr.status) {
                    case 409: document.id('status_bar').retrieve('show')('you don\'t have enough coins to transfer, please enter a smaller amount', 'error'); break;
                    case 400: document.id('status_bar').retrieve('show')('please enter the amount of coins to transfer', 'error'); break;
                    default:  document.id('status_bar').retrieve('show')('error on coins transfer, please re-check the value you entered', 'error');
                  }
                }
              });
              
              container.getElement('form').addEvent('submit', function(e) {
                e.stop();
                json_req.get({transfer_amount: container.getElement('input[name=transfer_amount]').value, message: container.getElement('input[name=message]').value, rand: (new Date().getTime())});
              });
              
              container.fade('in');
            },
            onDestroy: function() {
              sb.fade('hide').setStyle('top', sb.retrieve('top')).injectAfter(document.id('content_wrap').getElement('h2'));
            }
          });
        }
        
        var buy_overlay = new Femtoverlay({
          element: 'buy_coins',
          size: {x: 898, y: 300 },
          overlayDisplay: 'none',
          onOpen: function(container) {
            container.fade('hide').set('html', '<div class="pop_window"><div class="pop_content"><div id="overlay_message_area"></div></div></div>');
            container.getElement('.pop_content').set('html', 
              '<form action="" method="post">' +
              '<div id="buy_coins_cont_1"></div>' +
              '<p class="submit"><button type="button" class="button btn_continue" id="button_overlay_continue"></button></p>' +
              '</form>');
            add_close_btn(buy_overlay, container.getElement('.pop_window'));
            sb.store('top', sb.getStyle('top')).setStyle('top', 155).inject(container);
            
            container.getElement('#button_overlay_continue').addEvent('click', function() {
              container.getElement('form').set('action', '/parents/buycoins/');
              var pop_content = container.getElement('div.pop_content');
              var pop_selector = new Element('div', {id: 'buy_coins_cont_2', styles: {height: pop_content.getSize().y - 32}});
              container.getElement('form').empty().adopt(pop_selector.tween('height', 428));
              buy_overlay.options.size.y = 550;
              container.setStyle('height', 550).tween('margin-top', -260);
              pop_selector.set('html', '<span class="coins_mark_1"></span><span class="coins_mark_2"></span><span class="coins_mark_3"></span><span class="coins_mark_4"></span>' +
                                       '<span id="coins_rad_1"></span><span id="coins_rad_2"></span><span id="coins_rad_3"></span><span id="coins_rad_4"></span>' +
                                       '<input name="coins_pack" id="coins_pack_input" type="hidden" />');
              pop_selector.getElements('span[id~=coins_rad').addEvent('click', function() {
                pop_selector.getElements('span[id~=coins_rad').removeClass('selected');
                document.id('coins_pack_input').set('value', this.id.match(/(\d)/)[1]);
                this.addClass('selected');
              });
              new Element('p', {"class": 'submit', html: '<button type="submit" class="button submit" id="button_overlay_submit"></button>'}).inject(pop_content.getElement('form'));
              pop_content.getElement('p.submit button').addEvent('click', function(e) {
                if (!pop_selector.getElement('span.selected')) {
                  e.stop();
                  sb.retrieve('show')('please select an option', 'error');
                  return;
                }
              });
            });
            container.fade('in');
          },
          onDestroy: function() {
            buy_overlay.options.size.y = 300;
            sb.fade('hide').setStyle('top', sb.retrieve('top')).injectAfter(document.id('content_wrap').getElement('h2'));
          }
        });
        
        return arguments.callee;
      })();
      
      var change_pass_init = (function() {
        document.id('change_password').addEvent('click', function(e) {
          e.stop();
          if (document.id(e.target).getParent().getElement('form')) return;
          
          document.id(e.target).getParent().adopt(
            new Element('form', { 
              action: '',
              method: 'post',
              id: 'change_pwd_frm',
              html: '<div class="ajax_form">' +
                    '<input type="hidden" name="uid" value="' + document.id('child_account_sel').value + '" />' +
                    '<label for="pwd_change_pass">New Password:</label><input type="password" name="password" class="text shorter" /><br />' + 
                    '<label for="pwd_change_pass2">Confirm Password:</label><input type="password" name="password2" class="text shorter" /><br />' +
                    '<p class="m_submit"><button type="submit" class="button submit"><span>Submit</span></button><a href="#" class="cancel" onclick="document.id(\'change_pwd_frm\').dispose();">cancel</a></p>' +
                    '</div>'
            })
          );
          if (Browser.Engine.trident4) window.fireEvent('resize');
          document.id('content').scrollTo(0, document.id('content').getScrollSize().y);
        });
        return arguments.callee;
      })();
      
      var delete_account_init = (function() {
        document.id('delete_account').addEvent('click', function(e) {
          e.stop();
          if (document.id(e.target).getParent().getElement('form')) return;
          
          new Request({
            url:'/parents/children/delete/token/?' + (new Date().getTime()),
            method: 'get',
            onRequest: function() { document.id(e.target).addClass('waiting'); },
            onComplete: function() { document.id(e.target).removeClass('waiting'); },
            onSuccess: function(response) {
              document.id(e.target).getParent().adopt(
                new Element('form', { 
                  action: '/parents/children/delete/',
                  method: 'post',
                  id: 'delete_account_frm',
                  html: '<div class="ajax_form">' +
                        '<input type="hidden" name="uid" value="' + document.id('child_account_sel').value + '" />' +
                        '<input type="hidden" name="token" value="' + response + '" />' +
                        '<h2 class="warning">WARNING: Deleting an account is irreversible!</h2>' + 
                        '<p>Once you delete your child\'s account you there\'s no way to recover the data.</p><br />' +
                        '<p>Are you sure you want to delete the account?</p>' +
                        '<p class="bigger_contents"><button type="submit" class="button warning">Yes, delete the account.</button>&nbsp;&nbsp;<a href="#" class="cancel safe" onclick="document.id(\'delete_account_frm\').dispose();">wait! I changed my mind.</a></p>' +
                        '</div>'
                })
              );
              if (Browser.Engine.trident4) window.fireEvent('resize');
              document.id('content').scrollTo(0, document.id('content').getScrollSize().y);
            },
            onFailure: function(xhr) { document.id('status_bar').retrieve('show')('error while preparing to delete account, please contact support', 'error'); }
          }).send();
          
        });
        return arguments.callee;
      })();
      
      var chat_safeness_init = (function() {
        document.id('account_info').getElements('input.radio[name=chat]').addEvent('click', function(e) {
          var el = this;
          new Request({
            url:'/parents/children/chat/?' + (new Date().getTime()),
            data: {'uid': document.id('child_account_sel').value, 'mode': el.value },
            method: 'post',
            onRequest: function() { document.id('chat2_rad').getParent('label').addClass('waiting'); },
            onComplete: function() { document.id('chat2_rad').getParent('label').removeClass('waiting'); },
            onSuccess: function() { document.id('status_bar').retrieve('show')('chat mode change succesfully saved'); }
          }).send();
        });
        return arguments.callee;
      })();
    }
    
    if (document.id('membership_plans')) {
      new Sprites2({item_selector: '.membership_types a', duration: 200, parent_selector: '.parent'});
    }
    
    if (document.getElement('.btn_get_membership')) {
      document.id('content_wrap').adopt(document.getElement('.btn_get_membership'));
      if (document.id('account_nav')) document.id('account_nav').dispose();
    }
    
    if (document.id('homepage')) {
      new Sprites2({item_selector: '#home_links a', duration: 200});
      window.addEvent('resize', function() {
        var v_left = (Browser.Engine.gecko || Browser.Engine.presto) ? (-(document.id('homepage').getScrollSize().x - document.id('homepage').getSize().x) / 2) : 0;
        if (document.id('homepage').getScrollSize().x > document.id('homepage').getSize().x) { document.id('home_links').setStyle('left', v_left); }
        else if (document.id('home_links').getStyle('left')) { document.id('home_links').setStyle('left', ''); }
      }).fireEvent('resize');
      
      new Femtoverlay({
        element: 'home_nav_video',
        size: {x: 640, y: 530 },
        onOpen: function(container) {
          add_close_btn(this);
          if ((Browser.Plugins.Flash.version < 9) || (Browser.Plugins.Flash.version == 9 && Browser.Plugins.Flash.build < 115)) {
            var self = this;
            new Asset.javascript('/includes/swfobject.js', {
              onload: function() {
                new Element('div', {id: 'swfvideo'}).inject(container);
                swfobject.showExpressInstall({ data:"/includes/expressInstall.swf", width:"640", height:"530" }, {menu: false}, 'swfvideo', function(e){ self.close(); });
              }
            });
          } else {
            new Swiff('http://www.webosaurs.com/swf/home-player.swf', { width: 640, height: 530, container: container, params: {base: 'http://www.webosaurs.com/swf/'} });
          }
        },
        onDestroy: function() { document.getElements('#femto_close').dispose(); }
      });
    }
    
    if (document.getElement('#help_faq, #parents_player_safety, #parents_privacy_policy, #help_terms')) {
      make_back_to_top({
        target_opacity: 0.9,
        parent_element: document.id('content_wrap'),
        scroll_element: document.id('content'),
        position: 'absolute',
        relative_pos: { bottom: '2px', right: '38px'},
        allow_ie6: true
      });
      
      
      document.getElements('dl.faq dt').each(function(dt) {
        var dd = dt.getNext('dd').addClass('linked').set({slide:{duration: 250}}).slide('hide').set({tween:{duration: 350}});
        dt.addEvent('click', function(e) {
          dt.toggleClass('open');
          dd.toggleClass('open').slide(dt.hasClass('open') ? 'in' : 'out');
        })
      });
    }
    
    if (document.id('membership_why_buy')) {
      document.getElements('#mnu_why_buy li a').each(function(a) {
        a.addEvent('click', function(e) {
          e.stop();
          document.getElements('#mnu_why_buy .selected').removeClass('selected');
          document.getElements('#member_benefits .selected').removeClass('selected');
          
          this.addClass('selected');
          document.getElement('#member_benefits div[id=' + this.get('href').match(/#(\w+)/)[1] + ']').addClass('selected');
        });
      });
    }
    
    if (document.id('parents_payment_form')) {
      var recalc_total = function() {
        var processing_fee = document.getElement('input[name=processing_fee]') ? document.getElement('input[name=processing_fee]').get('value').toFloat() * 100 : 0;
        var nominal_fee = document.getElement('#upgrade_packages li.selected span.price').get('text').toFloat() * 100;
        document.getElement('button.btn_payment_submit span.total').set('text', ((processing_fee + nominal_fee) / 100));
        document.getElement('#content_wrap h2').set('id', 'tit_buy_membership_' + document.getElement('#upgrade_packages li.selected input').get('id').match(/\d+/)[0]);
      };
      
      document.getElements('#upgrade_packages a').addEvent('click', function(e) {
        e.preventDefault();
        document.id(e.target).getParent('li').getElement('input').checked = true;
        document.getElements('#upgrade_packages li').removeClass('selected');
        e.target.getParent('li').addClass('selected');
        recalc_total();
      });
      
      document.getElements('#upgrade_packages label').addEvent('click', function(e) {
        document.getElements('#upgrade_packages li').removeClass('selected');
        document.id(e.target).getParent('li').addClass('selected');
        recalc_total();
      });
      
      //  Amadeus: 06/04/2010 - Commented out to prevent disabling membership fields
      /*
      document.getElements('fieldset.payment_mode input').addEvent('click', function(e) {
        if (this.get('value') != 'cc') {
          document.id('payment_mid').getElements('fieldset.col').tween('opacity', .6);
          (function() { document.id('payment_mid').getElements('input').set('disabled', 'disabled'); }).delay(100);
        } else {
          document.id('payment_mid').getElements('input').set('disabled', null);
          document.id('payment_mid').getElements('fieldset.col').tween('opacity', 1);
        }
      });
      */
    }
    
    if (document.id('frm_parent_login')) {
      (new Femtoverlay({
        size: {x: 356, y: 235 },
        onCreate: function() {
          document.id('femtoverlay').setStyles({zIndex: 9000});
        },
        onOpen: function(container) {
          document.id('femtoverlay').removeEvents('click');
          container.adopt(document.id('frm_parent_login'));
        }
      })).open()
    }
    
    if (document.getElement('h2#tit_playpen, h2#tit_parents_settings, h2#tit_login, h2#tit_login_customer_care, h2#tit_forgotten_password, h2#tit_generic')) {
      document.id('content_wrap').addClass('trans_wcont');
    }
    
    if (document.getElement('h2#tit_login, h2#tit_login_customer_care')) {
      document.id('content_wrap').addClass('trans_login_cont');
    }
    
    if (document.getElement('div.tab-o-licius')) {
      document.getElement('div.tab-o-licius').inject(document.getElement('h2'), 'after');
    }
    
  });
  
  // defer loading of google analytics.
  window.addEvent((document.id('homepage') ? 'load' : 'domready'), function() {
    new Asset.javascript((("https:" == document.location.protocol) ? "https://ssl." : "http://www.") + 'google-analytics.com/ga.js', {
      onload: function() {
        try {
        var pageTracker = _gat._getTracker("UA-8358839-1");
        pageTracker._setDomainName(".webosaurs.com");
        pageTracker._trackPageview();
        } catch(err) {}
      }
    });
  });
  
})();
