function autoSubmit(e)
{
    var form = Event.element(e).form;
    if (form.onsubmit) {
        if (!form.onsubmit()) {
           Event.stop(e);
           return false;
        }
    }
    
    form.submit();
}

function confirmClick(e)
{
	var msg = 'Are you sure?';
    if (!confirm(msg)) {
        Event.stop(e);
        return false;
    }
    
    return true;
}

var DAAPNav =
{
	active: null,
	initSearchBox: function()
	{
		if (!$('search_form')) {
			return false;
		}
		
		$('search_input').onfocus=function() {
			if (this.value=='search') {
				this.value='';
			}
			
			this.select();
		}
		
		$('search_input').onblur=function() {
			if (this.value=='') {
				this.value='search';
			}
		}

		var re;
		if (re = navigator.userAgent.match(/Safari\/(\d+)/)) {
			if (parseInt(re[1])<500) {
				$$('.search_input').invoke('addClassName', 'search_input_safari2');
			}
		}
	
		$('nav_search').observe('click', function(e) {
			if (DAAPNav.active == 'nav_search') {
				return;
			}

			$('subnav').innerHTML='';
			$('search_form').addClassName('active');
			$('search_input').focus();
			if ($(DAAPNav.active)) {
				$(DAAPNav.active).removeClassName('active');
			}
			$('subnav').innerHTML = '';
			$('nav_search').addClassName('active');
			DAAPNav.active = 'nav_search';
			Event.stop(e);
		});
	},

	init: function()
	{
		DAAPNav.initSearchBox();

		// initialize header rollovers
		$$("#header span").each(function(me) {
			if (!me.hasClassName('active')) {
				me.observe('mouseover', function() { me.addClassName('active')});
				me.observe('mouseout', function() { me.removeClassName('active')});
			}
		});

		$$('#mainnav>li').each( function(me) {
			me.observe('mouseover', function() { me.addClassName('mainnav_over')});
			me.observe('mouseout', function() { me.removeClassName('mainnav_over')});
			if (me.hasClassName('active')) {
				DAAPNav.active = me.id;
			}
			
			$('subnav').select('ul ul').each( function(i) {
				var ternav_li = i.up('li');
				ternav_li.addClassName('ternav');
				ternav_li.ternav = i;
				i.ternav_li = ternav_li;                
			});
		});
	
		$$('#subnav li.ternav').each( function(me) {
			if (me.hasClassName('active')) {
				$$('#subnav>ul>li').invoke('addClassName', 'ternav_off');
				$$('#subnav>div>ul>li').invoke('addClassName', 'ternav_off');
				me.removeClassName('ternav_off');
				me.addClassName('ternav_active');
			}		
		});
	}

}


var DAAP = {    

	BASE_URL: window.location.protocol + '//' + window.location.host,
	MOBILE_SAFARI: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/),
	nav_active: '',
    domReady: [],
    start: new Date(),
    userOK: false,
    MAX_IDLE_LOGIN: 30 * 60,
    log: function(str) {
    	if (window.console && window.console.log) {
    		window.console.log(str);
    	}
    },
	initTextArea: function(element) 
	{
		var counter = document.createElement('div');
		counter.className = 'counter';
		if (element.readAttribute('maxlength')) {
			var counterClone = counter.cloneNode(true);
			counterClone.innerHTML = '<span>0</span>/'+element.readAttribute('maxlength');
			element.parentNode.insertBefore(counterClone,element.nextSibling);
			element.relatedElement = counterClone.getElementsByTagName('span')[0];
			element.onkeyup = element.onchange = DAAP.checkMaxLength;
			element.onkeyup();
		}
	},	
	checkMaxLength: function() 
	{
		var maxLength = this.readAttribute('maxlength');
		var currentLength = this.value.length;
		if (currentLength > maxLength) {
			this.relatedElement.className = 'toomuch';
			this.value = this.value.substring(0, maxLength);
		} else {
			this.relatedElement.className = '';	
		}
		this.relatedElement.firstChild.nodeValue = this.value.length;
	},	
	switchIndexList: function(e)
	{
		$$('#index_list li').invoke('removeClassName', 'active');
		var element = Event.element(e);
		while (element.tagName!='LI' && element.tagName != 'BODY') {
			element = element.parentNode;
		}
		if (element.tagName=='LI') {
			element.addClassName('active');
		}
	},

    init: function() {
		DAAPNav.init();

		if ($('index_list')) {
			$$('#index_list>li').invoke('observe', 'mouseover', DAAP.switchIndexList);
			$('index_list').cleanWhitespace();
		}
	
		$$('.autosubmit').invoke('observe','change',autoSubmit);
		$$('.confirm').invoke('observe', 'click', confirmClick);
		$$('input').each(function(me) {
			me.addClassName("input_" + me.type);
		});
	
	    $$('textarea[maxlength]').each(DAAP.initTextArea);
		$$('a.external').each(function(me) {
			me.target='_blank';
		});
	
	
		$(DAAP.domReady).each(function(f) { f() }); 
	},
    requires: [],
    require: function(src) {
        if (this.requires.indexOf(src)!=-1) {
            return;
        }
        
        this.requires.push(src);
    
    // inserting via DOM fails in Safari 2.0, so brute force approach
        document.write('<script type="text/javascript" src="'+src+'"></script>');
    },
    onDOMReady: function(f) {
        this.domReady.push(f);
    }
}

Event.onDOMReady(DAAP.init);

try { document.execCommand("BackgroundImageCache",false,true); } catch(e) {};

