document.write('<div id=tip style="position:absolute;visibility:hidden;width:200px"><table style="border:solid 1px #000" cellpadding="0" cellspacing="0" width="200"><tr><td id=tip2 style="padding:10px;color:#000" align="left" bgcolor="#D9E6E6"></td></tr></table></div>');

document.write('<div id=tip_scr style="position:absolute;visibility:hidden;width:200px"><table style="border:solid 1px #bcd5d5" cellpadding="0" cellspacing="0" width="200"><tr><td id=tip_scr2 style="padding:5px;color:#000" align="left" bgcolor="#FFFFFF"></td></tr></table></div>');

isDOM=document.getElementById //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
isMSIE=document.all && document.all.item //Microsoft Internet Explorer 4+
isNetscape4=document.layers //Netscape 4.*
isOpera=window.opera //Opera
isOpera5=isOpera && isDOM //Opera 5+
isMSIE5=isDOM && isMSIE && !isOpera //MSIE 5+
isMozilla=isNetscape6=isDOM && !isMSIE && !isOpera
var obj;
function getLayer(layerName, parentLayerName){
  if(isDOM){ return document.getElementById(layerName); }
  if(isMSIE){ return document.all[layerName]; }
  if(isNetscape4){ return eval('document.layers[layerName]'); }
  return false;
}
function ts(what,text,e){
  //var e	 = event;
  mousex = e.clientX;
  mousey = e.clientY;
  pagexoff = 20;
  pageyoff = 20;
  if(isMSIE5){
    pagexoff = document.body.scrollLeft;
    pageyoff = document.body.scrollTop;
  }
  else{
    pagexoff = window.pageXOffset;
     pageyoff = window.pageYOffset;
  }
  if(getLayer(what)){

	if(isNetscape4)
      obj = getLayer(what);
    else
      obj = getLayer(what).style;
 	
	if(obj){

		document.all[what+2].innerHTML	=	text;

		leftoff = mousex-pagexoff;
    	obj.left = (mousex+pagexoff) + 30;

		topoff = mousey-pageyoff;
		//alert(topoff);
		//gen
		if(isOpera && topoff <= 10)
		{
    		//alert("1: isOpera && topoff <= 10");
			//alert(mousey);
			//obj.top = mousey - 10;
			//alert(mousey);
			obj.top = (mousey+pageyoff) - 160;
		}
	    else 
		if( mousey <= - 10) 
		{
			obj.top = (mousey+pageyoff) - 160;
			alert("2: mousey <= - 10");
		}
		else if (isOpera)
		{
    	    //alert("3: isOpera");
			obj.top = (mousey+pageyoff) - 160;
		}
	    else //AM & Internet Explorer
		{
    		//alert("4: else");
			obj.top = (mousey+pageyoff) - 160 ;
		}

	    //obj.top = 800;

		if(isNetscape4)
    	  obj.visibility = 'show';
	    else
    	  obj.visibility = 'visible';
	  }
   }
  return true;
}
function tc(){
  if(obj){
    if(isNetscape4)
      obj.visibility = 'show';
    else
      obj.visibility= 'hidden';
  }
  return true
}
function	parse_chords(acc) {
	var	code	=	chords[acc]?chords[acc]:chords[js_sins[acc]];
	var	fred	=	freds[acc]?freds[acc]:freds[js_sins[acc]];
	var	alt		=	alts[acc]?alts[acc]:alts[js_sins[acc]];
	var ebgd	=	new Array("E", "A", "D", "G", "B", "e");
	var	s		=	"";
	for(i=0;i<code.length;i++) {
		var s1	=	"<br><b>" + ebgd[i]+"</b> ";
		for(j=1;j<=5;j++) {
			if(j==code.charAt(i)) {
				s1	+=	"-x-|";
			} else {
				if (j==alt.charAt(i))
				{
					s1	+=	"-o-|";
				}
				else
				{
					s1	+=	"---|";
				}
			}
		}
		s	=	s1+s;
	}
	if(sk_chords[acc]) acc += " "+sk_chords[acc];
	var st	=	"<center>"+acc+"</center>";
	
	if (fred > 1)
	{
	st	+=	"<span style='text-align: left;'>"+fred+" fr.</span>";
	}

	s = st+"<span style='text-align: center;'>"+s+"</span>";
	return	s;
}
function	showAcc(acc,ev) {
	if(document.all['showing_chords'].checked) {
		ts('tip','<font style=\'font:12px Courier New\'>'+parse_chords(acc)+'</font>', ev);
	}
}
function	showAllAcc() {
	if(!document.all['showing_chords_down'].checked) {
		document.all['allch'].innerHTML	=	"";
		return true;
	}
	var s	=	"<table cellpadding=\"0\" cellspacing=\"3\" width=\"100%\" bgcolor=\"#e3e3e3\" style=\"margin-bottom:20px\">				<tr><td colspan=\"4\" width=\"100%\"><font style=\"padding:5px;height:5px;background:#CFCFCF;color:black\"><b>Chords used in this song :</b></font></td></tr>";
	var	cc	=	chords;
	for(i in js_sins) {
		cc[i] = chords[js_sins[i]];
	}
	var	j	=	1;
	for(i in cc) {
		if(j==1) {
			s	+=	"<tr>";
		}
		s	+=	"<td class='crd'> "+parse_chords(i)+"</td>";
		if(j==4) {
			s	+=	"</tr>";
			j=1;
		} else {
			j++;
		}
	}
	if(j!=1) {
		while(j<=4) {
			s	+=	"<td class='crd'></td>";
			j++;
		}
		s	+=	"</tr>";
	}
	s	+=	"</table>";
	document.all['allch'].innerHTML	=	s;
}
function	sh_chords() {
	var	b	=	document.all['showing_chords'].checked;
	for(i=1;i<=lcnt;i++) {
		el = document.all['ch'+i];
		try {
			if(!b) {
				el.style.color				=	"black";
//				el.style.textDecoration		=	"none";
				el.style.cursor				=	"default";
			} else {
				el.style.color				=	"#0000FF";
//				el.style.textDecoration		=	"underline";
				el.style.cursor				=	"pointer";
			}
		} catch(e) {}
	}
}


function getAbs(obj,k) {
	var	kk	=	0;
	if(k=='y') {
		if (typeof(obj.offsetTop != undefined)) kk	= obj.offsetTop;

		if (typeof(obj.offsetParent != undefined) && (obj.offsetParent != null))
			kk += getAbs(obj.offsetParent,'y');
	}
	else if(k=='x') {
		if (typeof(obj.offsetLeft != undefined)) kk = obj.offsetLeft;

		if (typeof(obj.offsetParent != undefined) && (obj.offsetParent != null))
			kk += getAbs(obj.offsetParent,'x');
	} else {
		return	{x:getAbs(obj,'x'),y:getAbs(obj,'y')};
	}
	return	kk;
}



function	scHpp() {

	if( (scSpeedVal=speedVals[curSpeed]) == 0 ) return

	scH	=	document.body.scrollHeight
	scT	=	document.body.scrollTop
	clH	=	document.body.clientHeight
	

	if( (scH-scT) > clH ) {
		document.body.scrollTop	+=	1
		setTimeout('scHpp()',scSpeedVal)
		nowScroll	=	true
	} else {
		nowScroll	=	false
	}
}

function	scDpp() {

	sc0		=	sc1
	sc1		=	document.body.scrollTop

	tcY		=	getAbs(document.getElementById('tab_content')).y

	if(sc1==0)
		TOP	=	tcY+5
	else
		TOP	=	document.getElementById('scSpeed_div').offsetTop + (sc1-sc0)

	if(sc1 && sc1 < tcY) return

	document.getElementById('scSpeed_div').style.top	=	TOP + "px"

	if(!nowScroll)
		scHpp()

}

function	scSpeed(v) {
	if(v=="-")
		if(curSpeed>0)
			curSpeed--
	if(v=="+")
		if(curSpeed<5)
			curSpeed++

	mouIndic()
	if(curSpeed == 0)	nowScroll	=	false
	if(!nowScroll) scHpp()
}




function	momIndic(ev) {
	if(!nowTuning) return

	ev	=	ev?ev:window.event

	document.getElementById('indic').style.height	=	getIndicY(ev)
}

function	mouIndic() {
	nowTuning	=	true
	document.getElementById('indic').style.height	=	curSpeed*14
}

function	clkIndic(ev) {
	ev	=	ev?ev:window.event
	k	=	getIndicY(ev)
	h	=	Math.ceil(k / 14)

	curSpeed										=	h
	document.getElementById('indic').style.height	=	h*14

	nowTuning	=	false
	
	if(!nowScroll)	scHpp()
}

function	getIndicY(ev) {
	k	=	ev.clientY - getAbs(document.getElementById('indic')).y + document.body.scrollTop
	if(isIE)	k	-=	3
	return	k
}


function	checkKey(ev) {

	ev = ev?ev:window.event
	if(ev.keyCode == 27) {
		curSpeed	=	0
		nowScroll	=	false
	}
	if(ev.keyCode == 43 || ev.keyCode == 107) {
		scSpeed("+")
	}

	if(ev.keyCode == 45 || ev.keyCode == 109) {
		scSpeed("-")
	}
	mouIndic()
}


function	showHelp(el) {
	k	=	getAbs(el)
	m	=	{"clientX": k.x-250, "clientY": k.y-document.body.scrollTop+120}
	ts('tip_scr','<font style="font:bold 13px Arial;color:blue">+</font>&nbsp;&nbsp;to speed up (numpad)<br><font style="font:bold 13px Arial;color:blue">&#8211;</font>&nbsp;&nbsp;to slow down (numpad)<br><font style="font:bold 12px Arial;color:blue">Esc</font>&nbsp;&nbsp;to stop',m)
}

document.onkeydown = checkKey


scSpeedVal	=	220;
isIE		=	window.addEventListener?false:true;
nowTuning	=	true
nowScroll	=	false
curSpeed	=	0

speedVals	=	new Array(0,300,200,120,50,20)

sc0	=	0
sc1	=	0


drag_on	=	false

var	kk	= ""

function MyOnMouseMove(event) {

	if(!drag_on)	return;

	event	=	event?event:window.event

	drag_obj.style.top	= event.clientY + document.body.scrollTop - kk.y + "px"
	drag_obj.style.left = event.clientX - kk.x + "px"
}



function MyOnDragStart(id,event) {

	event	=	event?event:window.event

	drag_on = true
	drag_obj = document.getElementById(id)

	t = getAbs(drag_obj)
	
	kk	=	{y: event.clientY + document.body.scrollTop - t.y, x: event.clientX - t.x}

}

function MyOnDragEnd() {

	if(drag_on) {
		drag_on	=	false
	}

}

function	ini() {
	var	k	=	getAbs(document.getElementById('tab_content'))
	document.getElementById('scSpeed_div').style.top	=	k.y + 5 + "px"
	document.getElementById('scSpeed_div').style.display	=	""
}

document.onmouseup = MyOnDragEnd
document.onmousemove = MyOnMouseMove
