window.onload = function() {
	if(Prototype.Browser.IE) { $$('html > body *:last-child').each(function(element){element.addClassName('last-child');}); }
	/* if($('last-child').getStyle('margin-left')!='3px') { $$('html > body *:last-child').each(function(element){element.addClassName('last-child');}); } */
};
var close_drop_down = false;
$$('header > nav a.drop').each(function(element){
	element.observe('mouseover',function(drop){
		window.clearTimeout(close_drop_down);
		$$('.drop_down').each(function(element){element.hide();});
		$('drop_down_'+element.innerHTML.toLowerCase()).show();
	});
	element.observe('mouseout',function(drop){
		close_drop_down = Element.hide.delay(.15,$('drop_down_'+element.innerHTML.toLowerCase()));
	});
});
if($('header_search')) {
	$('header_search').observe('keyup',function(event){
		search_suggest(event.keyCode);
	}).observe('click',function(element){
		/*search_suggest();*/
	}).observe('blur',function(element){
		$$('header > form > fieldset')[0].removeClassName('active');
		$$('header > form > fieldset > ul > li').each(function(element){element.remove();});
	});
}
$$('.drop_down').each(function(element){
	element.observe('mouseover',function(drop){
		window.clearTimeout(close_drop_down);
		element.show();
	}).observe('mouseout',function(drop){
		close_drop_down = Element.hide.delay(.15,element);
	});
});
var search_suggest_int = -1;
function search_suggest(keyCode){
	if($('header_search').value.length>3){
		if(keyCode==13) {
			if($$('header > form > fieldset')[0].className.match(/active/)&&$$('header > form > fieldset > ul')[0].innerHTML!='<li><em>Loading...</em></li>') {
				$$('header > form > fieldset > ul')[0].childElements().each(function(element){
					if(element.className=='hover') {
						$('header_search').value = element.innerHTML;
						window.location='/search.php?type=media&limit=25&category=0&search='+escape(element.innerHTML);
					}
				});
			}
		}
		else if(keyCode>=37&&keyCode<=40) {
			var max_int = 2;
			if($$('header > form > fieldset > ul')[0]) { max_int = $$('header > form > fieldset > ul')[0].childElements().length-1; }
			if(keyCode==38) { --search_suggest_int; }
			else if(keyCode==40) { ++search_suggest_int; }
			if(search_suggest_int>max_int) { search_suggest_int = 0; }
			else if(search_suggest_int<0) { search_suggest_int = max_int; }
			if($$('header > form > fieldset')[0].className.match(/active/)&&$$('header > form > fieldset > ul')[0].innerHTML!='<li><em>Loading...</em></li>') {
				$$('header > form > fieldset > ul')[0].childElements().each(function(element){ element.className = ''; });
			}
			if($$('header > form > fieldset > ul')[0].childElements()[search_suggest_int]) { $$('header > form > fieldset > ul')[0].childElements()[search_suggest_int].className = 'hover'; }
		}
		else {
			search_suggest_int = -1;
			$$('header > form > fieldset')[0].addClassName('active');
			$$('header > form > fieldset > ul')[0].update('<li><em>Loading...</em></li>');
			new Ajax.Request(engineURL,{
				method:'get',
				parameters:{control:'search',action:'suggest',term:$('header_search').value},
				onSuccess:function(transport){
					$$('header > form > fieldset > ul')[0].update('');
					var results = transport.responseText.evalJSON();
					var count = results.length;
					for(i=0;i<count;i++){
						var a = new Element('li').update(results[i]);
						$$('header > form > fieldset > ul')[0].insert(a);
					}
					$$('header > form > fieldset > ul > li').each(function(element){
						element.observe('mouseover',function(drop){element.addClassName('hover');})
						.observe('mouseout',function(drop){element.removeClassName('hover');})
						.observe('mousedown',function(drop){$('header_search').value=element.innerHTML;window.location='/search.php?type=media&limit=25&category=0&search='+escape(element.innerHTML);});
					});
					$$('header > form > fieldset > ul')[0].observe('keydown',function(element){
						var suggestions = $$('header > form > fieldset > ul')[0].childElements();
						var count = suggestions.length;
						if(count==0){return false;}
						var active = null;
						for(i=0;i<count;i++){
							if(suggestions[i].className=='active'){active = i;break;}
						}
						if(element.keyCode==KEY_UP){
							suggestions.each(function(element){element.removeClassName('active');});
							if(active==0){
								suggestions[count].addClassName('active');
							}
							else {
								suggestions[active-1].addClassName('active');
							}
						}
						else if(element.keyCode==KEY_DOWN){
						}
						else if(element.keyCode==KEY_RETURN){
						}
					});
				}
			});
		}
	}
}

/**
@Name: Element.prototype.swap
@Description: Swaps one element with another
@Return: returns self and other element in an array
@Example:
myElement.swap(otherElement);
*/
Element.prototype.swap = function(b){
    b = $(b);
    if(b && b.cloneNode){
        a2 = this.cloneNode(true);
        b2 = b.cloneNode(true);

        this.parentNode.replaceChild(b2, this);
        b.parentNode.replaceChild(a2, b);

        return [a2,b2];
    } else {

        throw('cannot swap node');
    }

    //actuals switch instead of clones
    a2.parentNode.replaceChild(this, a2);
    b2.parentNode.replaceChild(b, b2);
    return [this,b];
};
Effect.BlindLeft = function(element) {
  element = $(element);
  element.makeClipping();
  return new Effect.Scale(element, 0,
    Object.extend({ scaleContent: false,
      scaleY: false,
      scaleMode: 'box',
      scaleContent: false,
      restoreAfterFinish: true,
      afterSetup: function(effect) {
        effect.element.makeClipping().setStyle({
          height: effect.dims[0] + 'px'
        }).show();
      },
      afterFinishInternal: function(effect) {
        effect.element.hide().undoClipping();
      }
    }, arguments[1] || { })
  );
};
function slide(id) {
	Effect.BlindUp(id);
}

