/**
 * Basic javascript for Amit
 * @author miken /Bonk.se
 */

var Base = {
	triggerOnLoad: new Array(),
	triggerOnResize: new Array(),
	isIE: (navigator.userAgent.toLowerCase().indexOf('msie') != -1) ? true : false,
	body: (document.documentElement && document.compatMode == 'CSS1Compat') ? document.documentElement : document,

	addOnload: function( func ){ Base.triggerOnLoad.push(func); },
	addOnresize: function( func ){ Base.triggerOnResize.push(func); },
	onLoad: function() {
		for (var i=0;i<Base.triggerOnLoad.length;i++) {
			Base.triggerOnLoad[i]();
		}
	},
	onResize: function() {
		for (var i=0;i<Base.triggerOnResize.length;i++) {
			Base.triggerOnResize[i]();
		}
	},
	getPos: function( obj ) {
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			curleft = obj.offsetLeft
			curtop = obj.offsetTop
			while (obj = obj.offsetParent) {
				curleft += obj.offsetLeft
				curtop += obj.offsetTop
			}
		}
		return [curleft,curtop];
	},
	clearTout: function( oTout ) {
		clearTimeout(oTout);
		oTout = null;
		return;
	}
}


// Wrapping onload-functions
var triggerOnLoad = new Array();
var triggerOnResize = new Array();
function base_triggerOnLoad ( func ) {
	triggerOnLoad.push(func);
}
function base_triggerOnResize ( func ) {
	triggerOnResize.push(func);
}
function base_onLoad () {
	for (var i=0;i<triggerOnLoad.length;i++)
		triggerOnLoad[i]();
}
function base_onResize () {
	for (var i=0;i<triggerOnResize.length;i++)
		triggerOnResize[i]();
}

// Assign the wrappers to onload & onresize.
window.onload = base_onLoad;
window.onresize = base_onResize;


var eLoginImage = null;
function showLogin( eImg ) {
	var eForm = document.getElementById('loginform');
	eForm.style.display = 'block';
	eLoginImage = eImg;
	setTimeout('btnSwitch()', 500);
}
function btnSwitch(){ eLoginImage.onclick = doLogin; }
function doLogin(){ document.getElementById('memberlogin').submit(); }


var lastMarked = null;
function markMe( eLnk ) {
	if (eLnk != lastMarked) {
		if (lastMarked != null)
			lastMarked.className = '';
		eLnk.className = 'act';
		lastMarked = eLnk;
	}
	eLnk.blur();
}

function addComm( eSrc ) {
	document.getElementById('addcomment').style.display = 'block';
	eSrc.style.display = 'none';
}

var lastDiv = null;
function swDiv( eDiv ) {
	var div = eDiv.nextSibling;
	if (div != lastDiv) {
		div.style.display = 'block';
		if (lastDiv != null)
			lastDiv.style.display = 'none';
		lastDiv = div;
	} else {
		div.style.display = 'none';
		lastDiv = null;
	}
}

// Find positions of elements
function findPos( obj ) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

// Regular pop-up launchers
function pop( vUrl, vName, vWidth, vHeight, scroll, resizable ) {
	vUrl = (vUrl) ? vUrl : null;
	vHeight = (vHeight) ? vHeight : 260;
	vWidth = (vWidth) ? vWidth : 255;
	scroll = (scroll) ? scroll : 'no';
	resizable = (resizable) ? resizable : 'no';
	if (vUrl != null) {
		var newWind = window.open(vUrl, vName, 'scrollbars='+scroll+',menubar=no,width='+vWidth+',height='+vHeight+',resizable='+resizable+',toolbar=no,location=no,status=no');
		newWind.focus();
	}
}


// Download song
function mdl( iSong ) {
	document.location.href = '/mp3/download.php?s='+iSong;
}

var eAmpWindow = null;
var iStartsong = null;
var ePlaying = null;
// Start or switch song in player
function mp( iSong ) {
	if (eAmpWindow == null || eAmpWindow.closed) {
		iStartsong = (iSong != 0) ? iSong : null;
		eAmpWindow = window.open('/mp3/?id='+iStartsong,'ampWindow', 'scrollbars=no,menubar=no,width=285,height=136,resizable=no,toolbar=no,location=no,status=no');
	} else if (iSong != iStartsong && iSong != 0) {
		eAmpWindow.location.href = '/mp3/?id='+iSong;
		iStartsong = iSong;
	}
	eAmpWindow.focus();
}
// Get info from player
function mpWho( eWin, cSong ) {
	if (eAmpWindow == null || eAmpWindow.closed) {
		eAmpWindow = eWin;
	}
	if (ePlaying == null)
		ePlaying = document.getElementById('playersong');
	iStartsong = cSong[0];
	ePlaying.innerHTML = cSong[1];
}
// Play, stop player
function mpAction( iAct ) {
	if (iAct == 1) {
		if (eAmpWindow == null || eAmpWindow.closed) {
			mp();
		} else {
			eAmpWindow.focus();
		}
	} else if (!(eAmpWindow == null || eAmpWindow.closed)) {
		eAmpWindow.mpStop();
	}
}

function getFlashObj( movieName ) {
	if (window.document[movieName]) {
		return window.document[movieName];
	}
	if (navigator.appName.indexOf("Microsoft Internet")==-1) {
		if (document.embeds && document.embeds[movieName])
			return document.embeds[movieName];
	} else {
		return document.getElementById(movieName);
	}
}

var supportsPngAlpha = (navigator.userAgent.toLowerCase().indexOf("msie") != -1 && navigator.userAgent.toLowerCase().indexOf('msie 7') == -1 && document.all) ? false : true;
/**
 * PNG-fix for alpha transparency (crappy IE)
 * @param HTMLImageElement
 */
function pngFix( eImg ) {
	eImg.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + eImg.src + "',sizingMethod='scale')";
	eImg.src = '/i/p.gif';
}
var pngFixlist = new Array();
function pngFixAdd( sId ) {
	if (!supportsPngAlpha)
		pngFixlist.push(sId);
}
function pngFixall() {
	if (pngFixlist.length > 0) {
		for (var i=0; i<pngFixlist.length; i++) {
			var img = document.getElementById(pngFixlist[i]);
			pngFix(img);
		}
	}
}
// Png-fix backgrounds
// WARNING: Doesn't work if there's content inside the element :(
function pngFixBg( obj ) {
	var bg = obj.currentStyle.backgroundImage;
	if (bg && bg.match(/\.png/i) != null) {
		var img = bg.substring(5,bg.length-2);
		var offset = obj.style.backgroundPosition;
		obj.style.height = obj.offsetHeight; // Must do this on auto-height elements
		obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+img+"', sizingMethod='crop')";
		obj.style.backgroundImage = "url('/i/p.gif')";
		obj.style.backgroundPosition = offset; // reapply
	}
}
// Replace png-bgs to gifs (crappy IE)
function pngFixBoxs( sBox ) {
	if (!supportsPngAlpha) {
		document.getElementById('box'+sBox+'top').style.backgroundImage = 'url(/i/bg/box_'+sBox+'_top.gif)';
		document.getElementById('box'+sBox+'content').style.backgroundImage = 'url(/i/bg/box_'+sBox+'_bg.gif)';
		document.getElementById('box'+sBox+'bottom').style.backgroundImage = 'url(/i/bg/box_'+sBox+'_bottom.gif)';
	}
}

base_triggerOnLoad(pngFixall);

var Media = {
	img: null,
	holder: null,
	baseUrl: '/media/i/',
	loaded: [],

	view: function( src, w, h, bu ) {
		if (Media.holder == null) {
			Media.holder = document.getElementById('mediapicviewer');
			var div = document.createElement('DIV');
			if (Base.isIE){ div.onclick = Media.cl; }
			else { div.setAttribute('onclick', 'Media.cl()'); }
			div.setAttribute('title', 'Click to close');
			Media.holder.appendChild(div);
		} else {
			Media.holder.firstChild.removeChild(Media.holder.firstChild.firstChild);
		}
		Media.holder.style.display = 'block';
		Media.holder.style.left = ((((Base.body.clientWidth - w - 40) / 2) > 0) ? ((Base.body.clientWidth - w - 40) / 2) : 10) + 'px';
		Media.holder.style.top = ((((Base.body.clientHeight - h - 40) / 2) > 0) ? ((Base.body.clientHeight - h - 40) / 2) : 10) + 'px';
		Media.img = new Image(w,h);
		Media.img.src = ((bu) ? bu : Media.baseUrl) + src;
		var isLoaded = false;
		for(var i=0; i<Media.loaded.length; i++) {
			if (Media.loaded[i] == src) {
				isLoaded = true;
				break;
			}
		}
		if (isLoaded) {
			Media.app();
		} else {
			Media.loaded.push(src);
			Media.img.onload = Media.app;
		}
	},
	app: function() {
		Media.holder.firstChild.appendChild(Media.img);
	},
	cl: function() {
		Media.holder.style.display = 'none';
	}
}
