$(document).ready(function() {
  if ($.browser.safari) {
    searchify_fields('input.search');
    filterify_fields('input.filter');
  }
  
  $('form.uniForm').uniform();
});

function searchify_fields(fields) {
  $(fields).each(function() {
    this.setAttribute('type', "search");
    this.setAttribute('autosave', "molmeth.org");
    this.setAttribute('results', "5");
    this.setAttribute('placeholder', "Search");
    $('label[for='+this.id+']').hide();
  });
}

function filterify_fields(fields) {
  $(fields).each(function() {
    this.setAttribute('type', "search");
    this.setAttribute('placeholder', "Filter");
    //$('label[for='+this.id+']').hide();
  });
}

$.fn.uniform = function(settings) {
  settings = jQuery.extend({
    valid_class    : 'valid',
    invalid_class  : 'invalid',
    focused_class  : 'focused',
    holder_class   : 'ctrlHolder',
    field_selector : 'input, select, textarea'
  }, settings);
  
  return this.each(function() {
    var form = jQuery(this);
    
    // Focus specific control holder
    var focusControlHolder = function(element) {
      var parent = element.parent();
      
      while(typeof(parent) == 'object') {
        if(parent) {
          if(parent[0] && (parent[0].className.indexOf(settings.holder_class) >= 0)) {
            parent.addClass(settings.focused_class);
            return;
          } // if
        } // if
        parent = jQuery(parent.parent());
      } // while
    };
    
    // Select form fields and attach them higlighter functionality
    form.find(settings.field_selector).focus(function() {
      form.find('.' + settings.focused_class).removeClass(settings.focused_class);
      focusControlHolder(jQuery(this));
    }).blur(function() {
      form.find('.' + settings.focused_class).removeClass(settings.focused_class);
    });
  });
};
