var oa = {
  init: function() {
    var obj = oa.fn;
    for (var prop in obj) {
      if (obj.hasOwnProperty(prop))
        if (obj[prop].hasOwnProperty('init'))
          obj[prop].init();
    }
  },
  fn: {
    form: {
      init: function(context) {
        // define default context
        context = typeof(context) != 'undefined' ? context : document;

        // select first form input
        //$(':input:first', context).focus();
        // add asterisk to all labels with class "required"
        $('label.required', context).append('&nbsp;<strong>*</strong>&nbsp;');
        
        // Split state and country codes into seperate fields via underscore
        $('select[name=region]', context).change(function(){
          var 
              region_split = $(this).val().split('_');
              state = region_split[0],
              country = region_split[1];
              
          $('input[name=state]').val(state);
          $('input[name=country]').val(country);
        });
      }
    },
    ajax: {
      init: function() {
        oa.fn.ajax.spinner();
      },
      spinner: function() {
        var $spinner = $('#ajax_spinner');
        $(document)
                .ajaxSend(function() {
          $spinner.show();
        })
                .ajaxStop(function() {
          $spinner.slideUp("fast");
        })
                .ready(function() {
          $spinner.hide().removeClass("hide");
        });
      }
    }
  }
};


// jQuery onLoad actions
jQuery(function($) {
  // initialize d2 states
  oa.init();
  
  // lightbox
  (function(){
    var image_dir = '/img/jquery/'
    $('a[rel*=lightbox]').lightBox({
      imageLoading:     image_dir + 'lightbox-ico-loading.gif',
      imageBtnPrev:     image_dir + 'lightbox-btn-prev.gif',
      imageBtnNext:     image_dir + 'lightbox-btn-next.gif',
      imageBtnClose:    image_dir + 'lightbox-btn-close.gif',
      imageBlank:       image_dir + 'lightbox-blank.gif'
    });
  })();
});

