function addEvent(obj, evType, fn, useCapture) {
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, useCapture);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent('on'+evType, fn);
		return r;
	}
}
function URLEncode(plaintext)
{
	var SAFECHARS = "0123456789" +
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";
	var HEX = "0123456789ABCDEF";
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
		if (ch == " ") {
			encoded += "+";
		} else if (SAFECHARS.indexOf(ch) != -1) {
			encoded += ch;
		} else {
			var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
				alert( "Unicode Character '" 
						+ ch 
						+ "' cannot be encoded using standard URL encoding.\n" +
						  "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	}
	return encoded;
}
function encode_utf8(rohtext) {
	rohtext = rohtext.replace(/\r\n/g,"\n");
	var utftext = "";
	for(var n=0; n<rohtext.length; n++)
		{
		var c=rohtext.charCodeAt(n);
		if (c<128)
			utftext += String.fromCharCode(c);
		else if((c>127) && (c<2048)) {
			utftext += String.fromCharCode((c>>6)|192);
			utftext += String.fromCharCode((c&63)|128);}
		else {
			utftext += String.fromCharCode((c>>12)|224);
			utftext += String.fromCharCode(((c>>6)&63)|128);
			utftext += String.fromCharCode((c&63)|128);}
		}
	return utftext;
}
function amzLink(what, cat) {
	var thehref = 'http://www.a' + 'maz' + 
	'on' + '.com/g' + 'p/search?keywords=' + URLEncode(encode_utf8(what)) + 
	'&index=' + cat + '&ie=UTF8&tag=li' + 'xlp' + 'ixelwebd-20&linkCode=ur2&camp=1789&creative=9325'
	return thehref;
}
function addAmazon() {
	if(document.getElementsByTagName('h2')[0])
	{
		var theartist = document.getElementsByTagName('h2')[0].firstChild.nodeValue;
		if(document.getElementsByTagName('dl')) {
			var thebody = document.getElementsByTagName('body')[0];
			var thefollow = document.getElementsByTagName('dl')[0];
/*
			var newp = document.createElement('p');
			var newa = document.createElement('a');
			var newatext = document.createTextNode('Search for MP3s of ' + theartist + ' to download on Musicload');
			newp.id = 'mscl';
			newa.href = 'http://partners.webmasterplan.com/click.asp?ref=451347&site=3752&type=text&tnb=8&prd=yes&stext=' + URLEncode(encode_utf8(theartist));
			newa.target = '_blank';
			newa.title = 'Search for MP3s of ' + theartist + ' on Musicload';
			newa.appendChild(newatext);
			newp.appendChild(newa);
			thebody.insertBefore(newp, thefollow);
*/
			var newp = document.createElement('p');
			var newa = document.createElement('a');
			var newatext = document.createTextNode('Search for MP3s of ' + theartist + ' to download on Amazon');
			newp.id = 'amz';
			newa.href = amzLink(theartist, 'digital-music');
			newa.target = '_blank';
			newa.title = 'Search for MP3s of ' + theartist + ' on Amazon';
			newa.appendChild(newatext);
			newp.appendChild(newa);
			thebody.insertBefore(newp, thefollow);

			var theartists = document.getElementsByTagName('h3');
			artnum = theartists.length;
			if(artnum > 0) {
				for(i = 0; i < artnum; i++) {
					var theart = theartists[i];
					var thenode = theart.lastChild.nodeValue;
					var newamz = document.createElement('a');
					newamz.type = 'amzn';
					newamz.href = amzLink(thenode, 'music');
					newamz.target = '_blank';
					newamz.title = 'Search for CDs of ' + thenode + ' on Amazon';
					newamz.appendChild(document.createTextNode(thenode));
					theart.replaceChild(document.createTextNode(''), theart.lastChild);
					theart.appendChild(newamz);
				}
			}
/*
		var theblock = document.createElement('object');
		theblock.id = 'ab';
		theblock.type = 'text/html';
		theblock.data = 'http://songs.by/support/amz-box.php?who=' + theartist;
		var thebody = document.getElementsByTagName('body')[0];
		var thefollow = document.getElementsByTagName('dl')[0];
		thebody.insertBefore(theblock, thefollow);
*/
		}
	}
}
function addReflections() {
	var reflect = document.getElementsByTagName('img');
	var reflectnum = reflect.length;
	for (i = 0; i < reflectnum; i++) {
		try {
			var canvas = document.createElement('canvas');
			var context = canvas.getContext('2d');
			var canvasHeight = 30;
			var divHeight = reflect[i].height*1.5;
			var d = document.createElement('span');
			var canvasWidth = reflect[i].width;
			p = reflect[i];
			canvas.height = canvasHeight;
			canvas.width = canvasWidth;
			d.style.marginTop = (130-reflect[i].height) + 'px';
			p.parentNode.replaceChild(d, reflect[i]);			
			d.appendChild(p);
			d.appendChild(canvas);	
			context.save();
			context.translate(0,canvasHeight*2-1);
			context.scale(1,-1);
			context.drawImage(reflect[i], 0, reflect[i].height-canvasHeight, canvasWidth, canvasHeight, 0, canvasHeight, canvasWidth, canvasHeight);
			context.globalCompositeOperation = 'destination-out';
			var gradient = context.createLinearGradient(0, canvasHeight, 0, canvasWidth);
			gradient.addColorStop(0, 'rgba(255, 255, 255, 1.0)');
			gradient.addColorStop(0.9, 'rgba(255, 255, 255, 0.5)');
			context.fillStyle = gradient;
			context.fillRect(0, 0, canvasWidth, canvasHeight*2);
			context.restore();
		}
		catch (e) {
			reflect[i].style.marginTop = (130-reflect[i].height) + 'px';
	    }
	}
}
function init() {
	addReflections();
	var editform = document.getElementById('edit');
	if(!editform) {
		addAmazon();
	}
}

addEvent(window, 'load', init, false);
