/**
 * On Page Load calls
 */
Event.observe( window, 'load', function() {
  cattree();
} );

/**
 * Make DHTML Tabs
 * uses .tab style class
 * @param {String} linkselector Tabs Links selection criteria
 * @param {String} containerselector Tab Source Container criteria
 * @param {String} evt Event mouseover | click 
 */
function makeTabs( linkselector, containerselector, evt ) {
	if( !linkselector || !containerselector || !evt ) {
		throw new Error( "makeTabs: Invalid arguments provided" );
	}
	
	$$(linkselector).each( function(ln) {
		ln['on' + evt ] = function() {
			var tobj = ( ln.rel ? $(ln.rel) : false );
			if( tobj ) {
				$$(containerselector).invoke('hide');
				tobj.show();
			}

			$$(linkselector).invoke('removeClassName', 'on');
			ln.addClassName('on');
		};
	} );
}

/** 
 * Expand/Collaspe Cateory Tree
 * uses .arrow_r & .arrow_d style class
 */
function cattree( ) {
	$$('#catbox img[class^="arrow"]').each( function(ln) {
		ln.onclick = function() {
			var subcat = ln.next('ul');
			if( subcat ) {
				if( subcat.visible() ) {
					ln.className = 'arrow_r';
					new Effect.BlindUp( subcat, {duration: .2} );
				}
				else {
					ln.className = 'arrow_d';
					new Effect.BlindDown( subcat, {duration: .2} );
				}
			}
		};
	} );
}