Drupal.behaviors.inputTip = function(context) {
  for (var base in Drupal.settings.inputTip) {
    if (!$(base + '.inputTip_processed').size()) {
      var element_settings = Drupal.settings.inputTip[base];
      $(element_settings.selector).each(function(i, item) {
        var settings = {}
        for (prop in element_settings) {
          settings[prop] = element_settings[prop];
        }
        settings.element = this;
        var inputTipEvent = new Drupal.generalThemeEvents.inputTip(base, settings);
      });
      $(base).addClass('inputTip_processed');
    }
  }
};

if (!window.Drupal.generalThemeEvents) {
  Drupal.generalThemeEvents = {};
}

Drupal.generalThemeEvents.inputTip = function(_self, options) {
  var _self = options.element;
  var default_value = $(_self).val();
  $(_self).bind('blur', function(evt) {
  	if ($(this).val() == '') {
  		$(this).val(default_value);
  	}
  });
  $(_self).bind('focus', function(evt) {
    if ($(this).val() == default_value) {
      $(this).val('');
    }
  });  
}

/**
 * general themes functions
 */
if (!window.Drupal.generalThemes) {
  Drupal.generalThemes = {};
}
/**
 * general themes ac extensions (required hack to autocomplete.js)
 */
if (!window.Drupal.generalThemes.jsAC) {
  Drupal.generalThemes.jsAC = {};
}

/**
 * return an addition html header for a given input element
 */
Drupal.generalThemes.jsAC.additional_header = function(i){
	var el = $(i.input);
	if (!el) {
		return '';
	}
	if (el.attr('id') == 'edit-search') {
    var search_term = el.val();
    return '<div><span class="autocomplete_header">Songs played in the last 7 days matching \''+search_term+'\'</span><span class="autocomplete_close"><a href="#" class="autocomplete_close_button">Close</a></span></div>';
	}
	return '';
};

Drupal.generalThemes.windowName = function(window_name) {
	if (typeof (window_name) == 'undefined') {
		window_name = 'MAINWINDOW';
	}
	window.name = window_name;
}

Drupal.generalThemes.linkTarget = function(window_name) {
	if (typeof (window_name) == 'undefined') {
    window_name = 'MAINWINDOW';
  }
	Drupal.generalThemes.linkTargetName = window_name;
}

Drupal.generalThemes.targetLink = function(el) {
	if (el && el.href) {
		var current_target = $(el).attr('target');
		if (!current_target) {
			if (window.opener && window.opener.name == Drupal.generalThemes.linkTargetName ) {
		    $(el).attr('target', Drupal.generalThemes.linkTargetName);
		  }
		  else if (window.name != Drupal.generalThemes.linkTargetName) {
		  	var win = window.open(el.href, Drupal.generalThemes.linkTargetName);
		  	if (win) {
		  		win.focus();
		  	}
		  	return false;
		  }
		}
	}
}

Drupal.generalThemes.windowName();
Drupal.generalThemes.linkTarget();


