		mutestate = -1;
		zoom_cover = '';
		
		function coverzoom(cover, state) {
			if (cover.src != 'blank.gif') {
				switch (state) {
					case -1:
						zoom_cover = '<img src="'+cover.src.replace('42x42','266x266').replace('55x55','266x266')+'" alt="" id="cover_zoom_img" />';
						zoomOn(zoom_cover);
						break;
					case 0:
						clearTimeout(document.cover_timerId);
						break;
					case 1:
						zoom_cover = '<img src="'+cover.src.replace('42x42','266x266').replace('55x55','266x266')+'" alt="" id="cover_zoom_img" />';
						document.cover_timerId = setTimeout('zoomOn(zoom_cover)', 500);
						break;
				}
			}
		}
		
		function zoomOn(img) {
			//[MS] 20080604 Checking for albumproductId is not neccesary...
			//var aid = top.getcurrentplayervalue('albumproductid');
			//if (!aid) return;
			
			var el = top.document.getElementById('cover_zoom');
			if(!el) return;
			el.innerHTML = img;
			el.style.display = 'block';
		}

		// Class containing sliderbar settings;		
		function BarSettings(h, w, i, f) {
			this.Height = h;
			this.Width = w;
			this.Interval = i;
			this.ImageFolder = f;
		}

		var seekbar_allow_update = 1;
		var seekbar;
		seekbar = new Bs_Slider('seekbar');
		volumebar = new Bs_Slider('volumebar');
		
		function init(settingsSeek, settingsVolume) {
			if (settingsSeek == null) settingsSeek = new BarSettings(27, 250, 1, "images/");
			if (settingsVolume == null) settingsVolume = new BarSettings(27, 78, 1, "images/");
		
			seekbar.width         = settingsSeek.Width;		//250;/*S2M*/		//530;	/*MA*/
			seekbar.height        = settingsSeek.Height;	//27;	/*S2M*/		//21;	/*MA*/
			seekbar.minVal        = 0;
			seekbar.maxVal        = 1000;
			seekbar.valueDefault  = 0;
			seekbar.valueInterval = settingsSeek.Interval;	//1;
			seekbar.arrowAmount   = 1;
			//seekbar.setSliderIcon(imageRoot + 'slider.gif', 5, 11); //17, 19
			seekbar.setSliderIcon(settingsSeek.ImageFolder + "slider.gif", 5, 11);
			seekbar.useInputField = 4;
			seekbar.colorbar = new Object();
			//seekbar.colorbar['color']           = 'F79860';
			seekbar.colorbar['cssClass']		= 'slider_default';
			seekbar.colorbar['cssClass2']		= 'slider_2';
			seekbar.colorbar['cssClass3']		= 'slider_3';
			//seekbar.colorbar['height']          = 1;
			seekbar.colorbar['widthDifference'] = 0;
			seekbar.colorbar['offsetLeft']      = 2;
			seekbar.colorbar['offsetTop']       = 4;
			seekbar.setDisabled(false);
			seekbar.draw('seekbardiv');
			seekbar.attachOnChange(SeekbarOnChange);
			seekbar.attachOnSlideEnd(SeekbarOnSlideEnd);
			seekbar.attachOnSlideStart(SeekbarOnSlideStart);

			volumebar.width         = settingsVolume.Width;		//78;/*S2M*/	//84;/*MA*/
			volumebar.height        = settingsVolume.Height;	//27;/*S2M*/	//11;/*MA*/
			volumebar.minVal        = 0;
			volumebar.maxVal        = 100;
			volumebar.valueDefault  = 0;
			volumebar.valueInterval = settingsVolume.Interval;	//1; /*S2M*/	//1;/*MA*/
			volumebar.arrowAmount   = 1;
			volumebar.setSliderIcon(settingsVolume.ImageFolder + "slider.gif", 5, 11);
			volumebar.useInputField = 4;
			volumebar.colorbar = new Object();
			/*CSS*///volumebar.colorbar['color']				= 'F79860';
			/*CSS*///volumebar.colorbar['height']			= 1;
			volumebar.colorbar['widthDifference']	= 0;
			volumebar.colorbar['offsetLeft']		= 2;
			volumebar.colorbar['offsetTop']			= 4;
			volumebar.setDisabled(false);
			volumebar.colorbar['cssClass']			= 'slider_default';
			volumebar.colorbar['cssClass2']			= 'slider_2';
			volumebar.colorbar['cssClass3']			= 'slider_3';
			volumebar.draw('volumebardiv');
			volumebar.attachOnChange(VolumeOnChange);
			top.volumebar_update();		

			top.repeat(top.document.player_repeat,0);
			top.shuffle(top.document.player_shuffle,0);
			
			startBlink();
			speaker_init();
		}	

		function SeekbarOnSlideEnd() {
			seekbar_allow_update = 1;
			top.player_set_seekpos(top.slider2seconds());
		}

		function SeekbarOnSlideStart() {
			seekbar_allow_update = 0;
		}
		
		function SeekbarOnChange(obj, val, newpos) {
			if (seekbar_allow_update == 1) { 
				top.player_set_seekpos(top.slider2seconds());
			} else {
				top.player_set_seektime(top.slider2seconds())
			}
			if ((top.document.isplaying==0) && (top.document.ispaused==0)) {
				seekbar.updateHandle(0);
				seekbar.setValue(0);
			}
		}	
		
		function VolumeOnChange(obj, val, newpos) {
			top.player_set_volume(val);
			var d = YearAdd(new Date(), 1);
			setCookie('vol', val, d);
			try {
				if (el = document.getElementById('voltxt'))
					el.innerHTML = val;
			} catch(exception) {
			}
		}
		
		function search_submit() {
			var q = document.getElementById('q').value;
			var qt = document.getElementById('qt').value;
			top.document.getElementById('content').contentWindow.document.location.replace("../../main.asp?action=searchresults&q="+escape(q)+"&qt="+escape(qt));
		}
		function HandleUsername() {
			if (document.getElementById('username').value=="<gebruikersnaam>") document.getElementById('username').value = "";
		}
		function HandlePassword() {
			if (document.getElementById('password').value=="<password>") document.getElementById('password').value = "";
		}
		function BlurUsername() {
			if (document.getElementById('username').value=="") document.getElementById('username').value = "<gebruikersnaam>";
		}
		function BlurPassword() {
			if (document.getElementById('password').value=="") document.getElementById('password').value = "<password>";
		}
		function getparam(url, lookfor) {
			var st = url;
			var start  = st.indexOf (lookfor);
			if (start != -1) {
				st = st.substring (start);
				start = st.indexOf ('=');
				st = st.substring (start+1);
				eind = st.indexOf ('&');
				if (eind == -1) eind = st.length;
				st = st.replace (/\+/g, ' ');
				var st = unescape(st.substring (0, eind));
			} else {
				st = ""
			}
			return st;
		}
		function replace_old(string,text,by) {
			var strLength = string.length, txtLength = text.length;
			if ((strLength == 0) || (txtLength == 0)) return string;
			var i = string.indexOf(text);
			if ((!i) && (text != string.substring(0,txtLength))) return string;
			if (i == -1) return string;
			var newstr = string.substring(0,i) + by;
			if (i+txtLength < strLength) newstr += replace_old(string.substring(i+txtLength,strLength),text,by);
			return newstr;
		}
		
		function EnterPressed(e) {
			var characterCode;

			if (e && e.which) {				//if which property of event object is supported (NN4)
				characterCode = e.which;	//character code is contained in NN4's which property
			} else {
				characterCode = e.keyCode;	//character code is contained in IE's keyCode property
			}
			if (characterCode == 13) {		//if generated character code is equal to ascii 13 (if enter key)
				return true;
			}
			return false;
		}
		
		function CanSubmitLogin() {
			if (el = document.getElementById('username')) {
				if (el.value == '') return false;
				if (el.value == '<gebruikersnaam>') return false;
			}
			if (el = document.getElementById('password')) {
				if (el.value == '') return false;
				if (el.value == ' ') return false;
				if (el.value == '<wachtwoord>') return false;
			}
			alert('CanSubmitLogin = true!');
			return true;
		}
		
		function SubmitLogin() {
			if (frm = document.getElementById('loginform')) {
				alert('Submitting loginform...');
				frm.submit();
			}
		}
		
		function login_submit() {
			var username = document.getElementById('username').value;
			if (username == '') username = '<gebruikersnaam>';
			var password = document.getElementById('password').value;
			if (password == '') password = ' ';
			mainurl = top.document.getElementById('content').contentWindow.document.location.href;
			curpas = getparam(mainurl, "password")
			curuser = getparam(mainurl, "username")
			mainurl = top.Replace(mainurl, "?username="+escape(curuser),"")
			mainurl = top.Replace(mainurl, "&username="+escape(curuser),"")
			mainurl = top.Replace(mainurl, "?password="+escape(curpas),"")
			mainurl = top.Replace(mainurl, "&password="+escape(curpas),"")
			if (mainurl.indexOf("?") >= 0) {
				if ((mainurl.indexOf("?")+1)!=mainurl.length) mainurl += "&";
			} else {
				mainurl += "?"
			}
			mainurl += "username="+escape(username)+"&password="+escape(password)
			top.document.getElementById('content').contentWindow.document.location.replace(mainurl);
		}
		
		function logout_submit() {
			top.document.auth = 0;
			top.ajaxCall('action:logout');
		}
		
		function playermenu_current_download_disk() {
			handle = window.open('download.asp?downloadtype=disk&productid='+ top.document.trackid,'popup','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=400,height=192,left='+eval((screen.availWidth/2)-200)+',top='+eval((screen.availHeight/2)-91));
			handle.focus();

			return false;
		}

		function playermenu_current_download_portable() {
			handle = window.open('download.asp?downloadtype=portable&productid='+ top.document.trackid,'popup','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=400,height=192,left='+eval((screen.availWidth/2)-200)+',top='+eval((screen.availHeight/2)-91));
			handle.focus();
		}
		
		function menu_action(theaction, thevalues) {

			switch(theaction) {
				case 'player_next':
					
					top.playerNext(thevalues);
					break;
				
				case 'player_previous':
					
					top.playerPrev();
					break;
			
				case 'goto':
					
					switch(thevalues) {
						case 'playlist':
							top.content.location.href = 'main.asp?action=playlist_management&playlistid='+top.document.playlistid+'&subaction=edit';
							break;
						case 'artist':
							top.content.location.href = 'main.asp?action=showartist&artistid='+top.getcurrentplayervalue("artistid");
							break;
						case 'album':
							top.content.location.href = 'main.asp?action=showalbum&aid='+top.getcurrentplayervalue("albumproductid");
							break;		
					}
					break;
				
				case 'track_delete':
					top.ajaxCall('action:myplaylist_delete_track','productid:'+ top.document.trackid,'playlistid:'+top.document.playlistid);
					break;
				case 'add_mymusic':
					top.ajaxCall('action:mymusic_add','productid:'+ top.document.trackid);
					break;
			}
			
		}

		function plus_menu_update() {
			popup_sub = 1;	
			menu_play = 0;
				menu_play_sub = 2;
				menu_play_sub_next = 0;
				menu_play_sub_previous = 1;
				menu_play_sub_playlist = 2;
					menu_play_sub_playlist_sub = 3;
			menu_active_track = 1;
				menu_active_track_sub = 4;
				menu_active_track_sub_delete = 0;
				menu_active_track_sub_add = 1;
					menu_active_track_sub_add_sub = 5;
					menu_active_track_sub_add_sub_mymusic = 0;
					menu_active_track_sub_add_sub_playlist = 1;
						menu_active_track_sub_add_sub_playlist_sub = 6;
				menu_active_track_sub_download = 2;
					menu_active_track_sub_download_sub = 7;
					menu_active_track_sub_download_sub_harddisk = 0;
					menu_active_track_sub_download_sub_portable = 1;
			menu_goto_page = 2;
				menu_goto_page_sub = 8;
				menu_goto_page_sub_playlist = 0;
				menu_goto_page_sub_artist = 1;
				menu_goto_page_sub_album = 2;
			menu_empty_player = 3;
			
			// update menu_play
			if (top.document.tracks.length >= 2) {
				top.dm_ext_changeItem(0, menu_play_sub, menu_play_sub_next, ["", "javascript:top.player.menu_action('player_next',1);", "", "", "", ""]);
				top.dm_ext_changeItem(0, menu_play_sub, menu_play_sub_previous, ["", "javascript:top.player.menu_action('player_previous','');", "", "", "", ""]);
			} else {
				top.dm_ext_changeItem(0, menu_play_sub, menu_play_sub_next, ["", "", "", "", "", "_"]);
				top.dm_ext_changeItem(0, menu_play_sub, menu_play_sub_previous, ["", "", "", "", "", "_"]);
			}
			if (top.document.userid<=0) {
				top.dm_ext_changeItem(0, menu_play_sub, menu_play_sub_playlist, ["", "", "", "", "", "_"]);
			} else {
				top.dm_ext_changeItem(0, menu_play_sub, menu_play_sub_playlist, ["", "", "", "", "", ""]);
			}
			
			// update active track
			if (top.document.trackid == 0) {
				top.dm_ext_changeItem(0, popup_sub, menu_active_track, ["", "", "", "", "", "_"]);
				top.dm_ext_changeItem(0, popup_sub, menu_goto_page, ["", "", "", "", "", "_"]);
			} else {
				top.dm_ext_changeItem(0, popup_sub, menu_active_track, ["", "", "", "", "", ""]);
				top.dm_ext_changeItem(0, popup_sub, menu_goto_page, ["", "", "", "", "", ""]);
				
				// goto...
				top.dm_ext_changeItem(0, menu_goto_page_sub, menu_goto_page_sub_playlist, ["", "javascript:top.player.menu_action('goto','playlist');", "", "", "", ""]);
				top.dm_ext_changeItem(0, menu_goto_page_sub, menu_goto_page_sub_artist, ["", "javascript:top.player.menu_action('goto','artist');", "", "", "", ""]);
				
				thevalue = top.getcurrentplayervalue('albumproductid');
				if (thevalue != 0) {
					top.dm_ext_changeItem(0, menu_goto_page_sub, menu_goto_page_sub_album, ["", "javascript:top.player.menu_action('goto','album');", "", "", "", ""]);
				} else {
					top.dm_ext_changeItem(0, menu_goto_page_sub, menu_goto_page_sub_album, ["", "", "", "", "", "_"]);
				}
			
				// Active Track
				top.dm_ext_changeItem(0, menu_active_track_sub, menu_active_track_sub_delete, ["", "javascript:top.player.menu_action('track_delete','');", "", "", "", ""]);
				top.dm_ext_changeItem(0, menu_active_track_sub_add_sub, menu_active_track_sub_add_sub_mymusic, ["", "javascript:top.player.menu_action('add_mymusic','');", "", "", "", ""]);
			
				// download
				thevalue = top.getcurrentplayervalue('allow_combined');
				if (thevalue & 2) {	// Download
					top.dm_ext_changeItem(0, menu_active_track_sub_download_sub, menu_active_track_sub_download_sub_harddisk, ["", "javascript:top.player.playermenu_current_download_disk();", "", "", "", ""]);
				} else {
					top.dm_ext_changeItem(0, menu_active_track_sub_download_sub, menu_active_track_sub_download_sub_harddisk, ["", "", "", "", "", "_"]);
				}
				if (thevalue & 8) {	// Download
					top.dm_ext_changeItem(0, menu_active_track_sub_download_sub, menu_active_track_sub_download_sub_portable, ["", "javascript:top.player.playermenu_current_download_portable();", "", "", "", ""]);
				} else {
					top.dm_ext_changeItem(0, menu_active_track_sub_download_sub, menu_active_track_sub_download_sub_portable, ["", "", "", "", "", "_"]);
				}
			}
			//top.dm_ext_changeItem(0,1,1, ["", "", "", "", "", "_"]);	
		}
		
		function plus_click(evt) {
			/*[MS] 20080428 Menu pops up based on mouse coordinates */
			var posx = posy = 0;
			var e = evt;
			if (!e) e = window.event;
			if (e.pageX || e.pageY) {
				posx = e.pageX;
				posy = e.pageY;
			} else if (e.clientX || e.clientY) {
				posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
				posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
			}
			// posx and posy contain the mouse position relative to the document

			//alert("Deze functie is nog niet beschikbaar");
			var agt = navigator.userAgent.toLowerCase();
			//alert('agt: ' + agt);
			var is_major = parseInt(navigator.appVersion);
			var is_minor = parseFloat(navigator.appVersion);

			var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
					&& (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
					&& (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
			var is_firefox = (agt.indexOf("firefox") != -1);

			var calc=200;
			var iframeList = parent.document.getElementById('player');
			//offsetx = (top.document.body.offsetWidth - iframeList.offsetWidth)/2
			
			if (is_firefox) {
				offsetx = (((parent.window.innerWidth-20) - window.innerWidth)/2); //+evt.pageX;
			} else {
				offsetx = (((top.document.body.offsetWidth-20) - iframeList.offsetWidth)/2);
			//	alert(top.document.body.offsetWidth + ' '+ iframeList.offsetWidth + ' ' + evt.x);
			}
			//alert(offsetx);
			if (offsetx < 0) {
				offsetx = 0;
			}
			plus_menu_update();

			//return top.dm_popup(0, 4000, evt, 701+offsetx, 30);
			return top.dm_popup(0, 4000, evt, posx + offsetx, posy);
			top.ajaxCall("action:player_update_playlistmenu",'');
		}	

		function doBlink() {
			var blink = document.all.tags("BLINK")
			for (var i=0; i<blink.length; i++) blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : ""
		}

		function startBlink() {
			if (document.all) setInterval("doBlink()",800)
		}			
		
		function checkEnter(e) {
			var characterCode

			if (e && e.which) { //if which property of event object is supported (NN4)
				characterCode = e.which //character code is contained in NN4's which property
			} else {
				characterCode = e.keyCode //character code is contained in IE's keyCode property
			}

			if (characterCode == 13) { //if generated character code is equal to ascii 13 (if enter key)
				login_submit();
				return false;
			} else {
				return true
			}
		}
		
		function speaker_toggle() {
			
			if (mmsurftool_getmute() == 1) {
				mmsurftool_setmute(0);
				
			} else {
				mmsurftool_setmute(1);
				
			}
			
			speaker_update();
		}
		
		function speaker_update() {
			 speakerobj = document.getElementById("speakerdiv");
			 speakerlink = document.getElementById("speaker");
			 
			 if (mmsurftool_getmute() == mutestate) {
				return;
			 }
			 
			 if (mmsurftool_getmute() == 0) {
				if(speakerobj) speakerobj.innerHTML = "<img border='0' src='speaker_on.jpg' onclick='speaker_toggle();'>";
				if (speakerlink) speakerlink.className = "speaker_on";
				mutestate = 0;
			 } else {
				if(speakerobj) speakerobj.innerHTML = "<img border='0' src='speaker_off.jpg' onclick='speaker_toggle();'>";
				if (speakerlink) speakerlink.className = "speaker_off";
				mutestate = 1;
			 }
			 
		}
		
		function windows_check() {
			speaker_update();
			setTimeout('windows_check()', 1000);
		}
		
		function speaker_init() {
			try {
				//alert(mmsurftool_supported('getmute'));
				
				if (mmsurftool_supported('getmute')) {
					speaker_update();
					windows_check();
				}
			} catch(err) {};
		}