var safaritype = 0;
function initOthMid() {
if ((!document.getElementById) || (!document.createElement)) return;
if (!navigator.mimeTypes) return;
if ( (navigator.platform.indexOf("Mac") == -1)
  && (navigator.platform.indexOf("Win") == -1) ) return;
var midsupported = navigator.mimeTypes['audio/x-midi'];
var mp3supported = navigator.mimeTypes['audio/mpeg'];
var mp2supported = navigator.mimeTypes['application/x-mplayer2'];
var a = document.getElementsByTagName('a');
for (var i = 0; i < a.length; i++) {
	if (a[i].id.indexOf("rep") > - 1)
		if (/\.mid$/.test(a[i].href)) {
			if (midsupported && midsupported.enabledPlugin)	a[i].onclick = createMarkMid;
			else if (mp2supported && mp2supported.enabledPlugin) a[i].onclick = createMarkMplayer2; }
		else if (/\.mp3$/.test(a[i].href)) {
			if (mp3supported && mp3supported.enabledPlugin)	a[i].onclick = createMarkMp3;
			else if (mp2supported && mp2supported.enabledPlugin) a[i].onclick = createMarkMplayer2; }

	}
}
if (window.addEventListener) window.addEventListener("load",initOthMid,false);

/* see http://simon.incutio.com/archive/2003/06/15/javascriptWithXML for explanation of following function */
function createElement(element) {
  if (typeof document.createElementNS != 'undefined') {
    return document.createElementNS('http://www.w3.org/1999/xhtml', element);
  }
  if (typeof document.createElement != 'undefined') {
    return document.createElement(element);
  }
  return false;
}
function createMarkMid() {return createMarkup(this,'audio/x-midi','autoplay','true','false','120','60');}
function createMarkMp3() {return createMarkup(this,'audio/mpeg','autoplay','true','false','120','60');}
function createMarkMplayer2() {return createMarkup(this,'application/x-mplayer2','autostart','1','0','120','60');}
function createMarkup(div,mimetype,auto,autoon,autooff,width,height) {
if (safaritype == 0) {
	if ((!navigator.vendor) || (navigator.vendor.indexOf('Apple') == -1)) safaritype = 1;
	else {
    window.addEventListener("unload",function () {},false);
		var oldsafari = navigator.userAgent.indexOf('Safari');
		if (oldsafari == -1) safaritype = 2;
		else if (parseInt(navigator.userAgent.substring(oldsafari + 7,navigator.userAgent.length)) < 312) safaritype = 3;
		else safaritype = 4;
		}
	}
var newid = div.id + "noautoplay";
var uri = div.href;
if (safaritype == 3) { /* safari 10.2.8 can't handle javascript dom, but can handle innerHTML */
	if (!document.links) return true;
	var obj = document.createElement("span");
	obj.innerHTML = "<object type='" + mimetype +"' data='" + uri + "' height='" + height + "' width='" + width
	 + "' title='" + div.title + "'><param id='" + newid + "' name='" + auto +"' value='" + autoon + "'><\/object>";
	div.parentNode.replaceChild(obj,div);
	return false;
	}
var obj = createElement('object');
obj.width = width;
obj.height = height;
obj.data = uri;
obj.type = mimetype;
obj.title = div.title;
var p_m = createElement('param');
p_m.setAttribute('name',auto);
p_m.setAttribute('value',autoon);
p_m.id = newid;
obj.appendChild(p_m);
if ((safaritype != 1) || (mimetype == "application/x-mplayer2")) {
	var p_2 = createElement('param');
	p_2.setAttribute('name','src');
	p_2.setAttribute('value',uri);
	obj.appendChild(p_2);
}
var textnode = document.createTextNode("Click to ");
obj.appendChild(textnode);
var a = createElement('a');
a.setAttribute('href',uri);
var clickhere = document.createTextNode("play");
a.appendChild(clickhere);
obj.appendChild(a);
div.parentNode.replaceChild(obj,div);
if (safaritype == 1) setTimeout('document.getElementById("' + newid + '").value="'+autooff+'"',1000);
return false;
} 