function download_log(){

	if(window.pageTracker)
		{
		var href=this.href;

		var media=href.substr(0,href.length-1);
		media=media.substr(media.lastIndexOf('/')+1);

		window.pageTracker._trackPageview('/music/'+media);
		}
}

function set_up_download_log(){

	var links=document.getElementsByTagName('A');

	for(var i=0;i<links.length;i++)
		{
		var lnk=links[i];

		if(lnk.href.indexOf('_out')!=-1)
			EventUtils.addEventListener(lnk,'click',download_log); 
		}	
}

function nospam(url,nam){
	window.location='mailto:'+nam+'@'+url+'?subject=web site contact';
}

function form_submit(frm){
	$.id(frm).submit();	
}

function fade_menu(lyr){

	var menuover=function()
			{			
			if(!this._over)
				{
				changeDim(this.id+'_'+lyr+'_back',2,this.offsetWidth,10,'px','off');
				this._over=true;
				}
			else
				{
				changeDim(this.id+'_'+lyr+'_back',2,0,10,'px','off');
				this._over=false;
				}
			}

	var items=$.id(lyr).getElementsByTagName('A');

	for(var i=0;i<items.length;i++)
		{
		var txt=items[i].innerHTML;
		items[i].innerHTML='<span>'+txt+'</span><div id="'+items[i].id+'_'+lyr+'_back" class="back"></div>';

		items[i]._over=false;

		items[i].onmouseover=menuover;
		items[i].onmouseout=menuover;

		//EventUtils.addEventListener(items[i],'mouseover',menuover);
		//EventUtils.addEventListener(items[i],'mouseout',menuover);

		items[i].style.marginLeft=Math.random()*3+'px';
		setTimeout("fader('"+items[i].id+"',0.55,100,0,1)",150+125*i);
		}
}

function fade_block(lyr){
	
	ElementHandler.putBefore(lyr, {tag: 'div', id: lyr+'_back_block', className: 'back_block'});	

	var obj=$.id(lyr);
	var t=obj.offsetTop;
	var l=obj.offsetLeft;
	var w=obj.offsetWidth;
	var h=obj.offsetHeight;

	var ow=25+0.4*Math.random()*w;
	var oh=2+Math.random()*8;

	$.id(lyr+'_back_block').style.top=4+(t+h)-oh+'px';
	$.id(lyr+'_back_block').style.left=(l+Math.random()*w)-25+'px';
	$.id(lyr+'_back_block').style.width=ow+'px';
	$.id(lyr+'_back_block').style.height=oh+'px';

	fader(lyr+'_back_block',0.4,100,0,1);
}

function fade_back(lyr,n){

	if(n==1)
		{
		fader(lyr,0.2,100,0,1);

		ElementHandler.putBefore(lyr, {tag: 'div', id: lyr+'_back_1', className: 'background'});
		ElementHandler.putBefore(lyr, {tag: 'div', id: lyr+'_back_2', className: 'background'});

		setTimeout("fade_back('"+lyr+"',2)",1000);
		
		if(Math.random()>0.8)
			setTimeout("fade_block('"+lyr+"')",2800);
		}

	var obj=$.id(lyr);
	var t=obj.offsetTop;
	var l=obj.offsetLeft;
	var w=obj.offsetWidth;
	var h=obj.offsetHeight;

	if(Math.random()>0.5)
		{dim='top';d=0;target=t;}
	else
		{dim='left';d=1;target=l;}

	r=1;

	if(n==2)
		{
		var s=4-(Math.random()*8);
		target+=s;
		s=4-(Math.random()*8);
		t+=s;
		s=4-(Math.random()*8);
		l+=s;
		r=0.35;
		}

	sig=(Math.random()>0.5)?-1:1;

	$.id(lyr+'_back_'+n).style.top=t+'px';
	$.id(lyr+'_back_'+n).style.left=l+'px';
	$.id(lyr+'_back_'+n).style.width=w+'px';
	$.id(lyr+'_back_'+n).style.height=h+'px';
	$.id(lyr+'_back_'+n).style[dim] = (target + (sig*20)) + 'px';

	fader(lyr+'_back_'+n,0.2,75*r,0,1);
	changeDim(lyr+'_back_'+n,d,target,0.8,'px','hidden')
	
}

function jump(lyr,op,dx,dy){
	obj=$.id(lyr);
	obj.style.opacity=op/100;
	obj.style.filter="alpha(opacity="+op+")";
}

function random_jump(lyr,on){
	op=(on!=1)?80-(Math.random()*80):100;
	jump(lyr,op,600,36);

	if(on!=1)
		{
		t=1000+Math.random()*4000;
		setTimeout("random_jump('"+lyr+"')",t);
		setTimeout("random_jump('"+lyr+"',1)",t+50+Math.random()*50);
		}
}

function fade(obj,d,target,f){

	var lyr=document.getElementById(obj);
	lyr.fade+=(d*20);

	if((d>0 && lyr.fade>=target) || (d<0 && lyr.fade<=target))
		{
		if(target>99)
			lyr.style.filter='';

		//lyr.fade=target*0.9999999;
		clearInterval(lyr.fade_on);
		lyr.fade_on=0;
		if(f==1 && d>0)
			{
			lyr.style.display='block';
			}
		}

	if(f>0)
		{
		if(lyr.fade==0)
			lyr.style.visibility='hidden';
		else
			lyr.style.visibility='visible';
		}

	lyr.style.opacity=lyr.fade/100;
	lyr.style.filter="progid:DXImageTransform.Microsoft.Alpha(Opacity="+lyr.fade+")";
}

function fader(lyr,d,target,init,f){
	var obj=document.getElementById(lyr);
	
	if(obj.fade_on==null)
		{			
		obj.fade_on=0;
		obj.fade=init;
		}

	if(obj.fade_on!=0)
		{
		clearInterval(obj.fade_on);
		obj.fade_on=0;
		}

	obj.fade_on=setInterval("fade('"+lyr+"',"+(d/2)+","+target+","+f+")",50);
}

var dimensions=new Array('top','left','width','height','marginLeft','marginTop');

function animLS(lyr,dim,target,step,mode,overflow){

	var obj=document.getElementById(lyr);

	var real=obj.lsReal[dim];
	var delta=Math.sqrt(Math.abs(target-real))*0.0125;

	var step=obj.sig[dim]*(Math.log(Math.abs(real-target))*(real-target)*0.01+10);

	var new_dim=obj.lsReal[dim];
	obj.lsReal[dim]=real+(obj.step[dim]*step*delta);

	var d=dimensions[dim];

	if((new_dim>=target && obj.sig[dim]>0) || (new_dim<=target && obj.sig[dim]<0))
		{
		target=target+''+mode;
		obj.style[d]=target;
		clearInterval(obj.lsInterval[dim]);
		obj.lsInterval[dim]=0;

		if(overflow!='off')
			obj.style.overflow=overflow;
		return;
		}
	else
		{
		new_dim=new_dim+''+mode;
		obj.style[d]=new_dim;
		}
	
	obj.it++;
}

function changeDim(lyr,dim,target,step,mode,overflow){

	var obj=$.id(lyr);

	if(obj.lsReal==null)
		{
		var w_w=document.body.clientWidth;
		var w_h=document.body.clientHeight;

		obj.step=new Array();
		obj.sig=new Array();
		obj.lsReal=new Array();
		obj.lsInterval=new Array();
		}

	if(obj.lsInterval[dim]!=0)
		{
		clearInterval(obj.lsInterval[dim]);
		obj.lsInterval[dim]=0;
		}

	switch(dim)
		{
		case 0:
			obj.lsReal[0]=(!parseInt(obj.offsetTop))?0:parseInt(obj.offsetTop);
			break;
		case 1:
			obj.lsReal[1]=(mode=='%')?((parseInt(obj.offsetLeft)/w_w)*100):parseInt(obj.offsetLeft);
			break;
		case 2:
			obj.lsReal[2]=(mode=='%')?((parseInt(obj.offsetWidth)/w_w)*100):parseInt(obj.offsetWidth);
			break;
		case 3:
			obj.lsReal[3]=(mode=='%')?((parseInt(obj.offsetHeight)/w_h)*100):parseInt(obj.offsetHeight);
			break;
		case 4:
			obj.lsReal[4]=parseInt(obj.style.marginLeft);
			break;
		case 5:
			obj.lsReal[5]=(!parseInt(obj.style.marginTop))?0:parseInt(obj.style.marginTop);
			break;
		}

	obj.step[dim]=step;
	obj.sig[dim]=((target-obj.lsReal[dim])>0)?1:-1;

	obj.it=0;

	obj.lsInterval[dim]=setInterval("animLS('"+lyr+"',"+dim+","+target+","+step+",'"+mode+"','"+overflow+"')",30);
}