if (!Array.prototype.forEach)
{
  Array.prototype.forEach = function(fun /*, thisp*/)
  {
    var len = this.length >>> 0;
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this)
        fun.call(thisp, this[i], i, this);
    }
  };
}
if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

//Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function(from, to) {
  var rest = this.slice((to || from) + 1 || this.length);
  this.length = from < 0 ? this.length + from : from;
  return this.push.apply(this, rest);
};

YAHOO.akaka.locationinit = function(){
	var tabs = YAHOO.util.Selector.query('#locations .tabset li');
	var locations = YAHOO.util.Selector.query('#locations .tabs-bottom > div');
	
	var handleMouseover = function(e) {
		var li = this;
		var loc = YAHOO.util.Dom.getAttribute(this,'location');
		tabs.forEach(function(l){
			YAHOO.util.Dom.removeClass(l,'active');
		});
		YAHOO.util.Dom.addClass(li,'active');
		
		locations.forEach(function(div){
			if (YAHOO.util.Dom.getAttribute(div,'location') == loc) {
				YAHOO.util.Dom.removeClass(div,'hide');
			} else {
				YAHOO.util.Dom.addClass(div,'hide')
			}
		});
		YAHOO.util.Event.preventDefault(e);
	}
	YAHOO.util.Event.on(tabs, 'mouseover', handleMouseover);
};
YAHOO.util.Event.onDOMReady(YAHOO.akaka.locationinit);


YAHOO.akaka.textReset = function(el,defaultMsg,errorMsg,validate) {
	var el = (typeof(el) == 'string') ? YAHOO.util.Dom.get(el) : el;
	var validate = (typeof(validate) == 'function') ? validate : function(v){return (v == '' || v == defaultMsg) ? false : true;};
	var errorMsg = (typeof(errorMsg == 'string')) ? errorMsg : 'Danger! Danger!';
	
	var handleSubmit = function(e){
		if (!validate(el.value)) {
			alert(errorMsg);
			el.focus();
			YAHOO.util.Event.preventDefault(e);
		}
	};
	var handleBlur = function(e){ if (el.value == '') el.value = defaultMsg;  };
	var handleFocus = function(e){ if (el.value == defaultMsg) el.value = ''; };
	
	YAHOO.util.Event.on(el,'blur',handleBlur);
	YAHOO.util.Event.on(el,'focus',handleFocus);
	YAHOO.util.Event.on(el.form,'submit',handleSubmit);
};

YAHOO.akaka.forminit = function(){
	YAHOO.akaka.textReset('e-mail','E-mail Address','Please enter a valid email',function(v){if (v.search(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i) == -1) {return  false} else {return true}});
	YAHOO.akaka.textReset('search','Search this site','Please enter your search term');
};
YAHOO.util.Event.onDOMReady(YAHOO.akaka.forminit);

