function Browser()
{
	var ua, i;

	this.isIE	= false;
	this.isNS	= false;
	this.version = null;

	ua = navigator.userAgent;

	if ((i = ua.indexOf('MSIE')) >= 0) {
		this.isIE = true;
		this.version = parseFloat(ua.substr(i + 'MSIE'.length));
		return;
	}

	if ((i = ua.indexOf('Netscape6/')) >= 0) {
		this.isNS = true;
		this.version = parseFloat(ua.substr(i + 'Netscape6/'.length));
		return;
	}

	/* Treat any other "Gecko" browser as NS 6.1. */
	if ((i = ua.indexOf('Gecko')) >= 0) {
		this.isNS = true;
		this.version = 6.1;
		return;
	}
}

window.browser = new Browser();

/*
 * WMP Event object
 */
var WmpEvent = {};
WmpEvent.attachWmpEvent = function (event, eventType, eventHandler) {
	//return false;
	if (window.browser.isIE) {
		document.attachEvent('on' + eventType, eventHandler);
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}

	if (window.browser.isNS) {
		document.addEventListener(eventType, eventHandler, true);
		event.preventDefault();
	}
}
WmpEvent.detachWmpEvent = function (eventType, eventHandler) {
	if (window.browser.isIE) {
		document.detachEvent('on' + eventType, eventHandler);
	} else if (window.browser.isNS) {
		document.removeEventListener(eventType, eventHandler, true);
	}
}


// This object represents a Windows Media Player object
// with ability to bind events on an HTML page to its controls

function MediaPlayer(mediaUrl)
{
	/* URL: "private" property and method */
	var getUrl = function () { return mediaUrl; }

	/* Player type */
	var isActiveX = function () { return null != window.ActiveXObject; }
	var isOpera = function () { return -1 != navigator.userAgent.indexOf('Opera'); }
	var isWmp11 = function () {

		if (isActiveX()) {
			return false;
		}

		if (!!navigator.plugins) {
			for (var i in navigator.plugins) {
				if ('np-mswmp' == navigator.plugins[i].description) {
					return true;
				}
			}
		}

		return false;
	}

	/* HTML code for player */
	var getPlayerHtml = function (autostart) {
		var html = '';
		autostart = !!autostart ? 1 : 0;

		if (isWmp11() && !isOpera()) {
			html =  '<object id="wmplayer" type="application/x-ms-wmp" data="' + getUrl() + '" width="0" height="0">';
			html += '<param name="URL" value="' + getUrl() + '" />';
			html += '<param name="uiMode" value="minimal" />';
			html += '<param name="EnablePositionControls" value="true" />';
			html += '<param name="ShowControls" value="1" />';
			html += '<param name="ShowDisplay" value="0" />';
			html += '<param name="ShowStatusBar" value="0" />';
			html += '</object>';
		} else if (isActiveX()) {
			/* no object code needed */
		} else {
			html  = '<embed id="wmplayer" name="wmplayer" type="application/x-mplayer2"';
			html += ' pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" ';
			/*html += ' filename="' + getUrl() + '" ';*/
			html += ' src="' + getUrl() + '" ';
			html += ' EnablePositionControls="1" ';
			html += ' ShowControls="1" ShowDisplay="0" ShowStatusBar="0" AutoStart="' + autostart + '" width="0" height="0" />';
		}

		return html;
	}

	var volume = 0;
	var playing = true;
	var wmpControl = null;
	
	/* initialization */
	var playerContainer = null;
	var initPlayer = function () {
		playerContainer = document.createElement('div');
		playerContainer.style.position = 'absolute';
		playerContainer.style.width  = '1px';
		playerContainer.style.height = '1px';
		playerContainer.setAttribute('id', 'player_container');
		document.body.appendChild(playerContainer);
		playerContainer.innerHTML = getPlayerHtml(true);
		
		if (isActiveX()) {
			wmpControl = new ActiveXObject('WMPlayer.OCX.7');
			wmpControl.URL = getUrl();
		} else if (isWmp11()) {
			wmpControl = document.getElementById('wmplayer');
		}
		
		wmpControl && wmpControl.settings  && (wmpControl.settings.volume = 100);
	}
	initPlayer();

	/* String variables, set methods */
	var statusbarText = null;
	this.setStatusbarText = function (text) { statusbarText = text; }

	/* detecting play state changes */
	var checkPlayState = function (st) {
		var newState = wmpControl && wmpControl.playState || st;

		if (null == newState) {
			//if (browser.isIE) {
				newState = 0;
			//} else {
			//	return false;
			//}
		}
		
		var status = '';
		var volumebarDisplay = 'none';
		var playButtonMax = document.getElementById('button');
		if (10 == newState) {
			status = 'Готово';
		} else if (11 == newState) {
			status = 'Соединение';
		} else if (6 == newState) {
			status = 'Буферизация';
		} else if (7 == newState) {
			status = 'Ожидание';
		} else if (9 == newState) {
			status = 'Загрузка';
		} else if (1 == newState) {
			status = 'Остановлено';
			startTime = new Date();
		} else { /* 3 == playState */
			status = null != statusbarText ? statusbarText : timeOfListening;
			volumebarDisplay = 'block';
			//if (playButtonMax.className == 'play')
				//playButtonMax.className = 'pause';
		}
		/*try {document.getElementById('main_info').innerHTML = '**' + status + '**' + statusbar.firstChild.nodeValue} catch (e) {alert('Bad!')};*/
		//this.statusbar && (status != this.statusbar.firstChild.nodeValue) && (this.statusbar.innerHTML = status);
		//volumebar && (volumebar.style.display = volumebarDisplay);
	}
	//var statusbar;
	var volumebar;
	wmpControl && setInterval(checkPlayState, 200);

	/* volume */
	var volumeSlider = null;
	window.volumeSliderInfo = {}; /* make it temp global */

	/* private event handlers */
	var volumeDragStart = function (ev) {
		var x, y;
		volumeSliderInfo.zIndex = 0;

		ev = ev || window.event;

		if (null == volumeSlider) {
			if (browser.isIE) {
				volumeSlider = ev.srcElement;
			} else if (browser.isNS) {
				volumeSlider = ev.target;
			} else {
				/* no support for Opera yet, coming soon */
				return false;
			}

			/* do we really need it? */
			if (3 == volumeSlider.nodeType) {
				volumeSlider = volumeSlider.parentNode;
			}
		}

		volumeSliderInfo.mouseX = ev.clientX;

		WmpEvent.attachWmpEvent(ev, 'mousemove', volumeDragDo);
		WmpEvent.attachWmpEvent(ev, 'mouseup', volumeDragEnd);
	}
	var volumeDragDo = function (event) {
		var mouseX = event.clientX;
		volumeSliderInfo.marginLeftCur = volumeSliderInfo.marginLeftCur - (volumeSliderInfo.mouseX - mouseX);
		volumeSliderInfo.mouseX = mouseX;
		
		var loud_img = document.getElementById('loud');
		if ((volumeSliderInfo.marginLeftCur > 66)){
			loud_img.className = "loud_3"			
		} else if ((volumeSliderInfo.marginLeftCur > 33) && (volumeSliderInfo.marginLeftCur < 66)){
			loud_img.className = "loud_2"			
		} else if ((volumeSliderInfo.marginLeftCur > 0) && (volumeSliderInfo.marginLeftCur < 33)){
			loud_img.className = "loud_1"
			
		}
		if (volumeSliderInfo.marginLeftCur < volumeSliderInfo.marginLeftMin) {
			loud_img.className = "loud"
			volumeSliderInfo.marginLeftCur = volumeSliderInfo.marginLeftMin;
			
		} else if (volumeSliderInfo.marginLeftCur > volumeSliderInfo.marginLeftMax) {
			volumeSliderInfo.marginLeftCur = volumeSliderInfo.marginLeftMax;
			
			
		}
		
		volumeSlider.style.marginLeft = volumeSliderInfo.marginLeftCur + 'px';

		if (browser.isIE) {
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		} else if (browser.isNS) {
			event.preventDefault();
		}
		
		/* seeting volume */
		var volume = parseInt(100 * (volumeSliderInfo.marginLeftCur - volumeSliderInfo.marginLeftMin) / (volumeSliderInfo.marginLeftMax - volumeSliderInfo.marginLeftMin));
		wmpControl && wmpControl.settings  && (wmpControl.settings.volume = volume);
		volumebar && (volumebar.innerHTML = volume + '%');
	}
	var volumeDragEnd = function (event) {
		WmpEvent.detachWmpEvent('mousemove', volumeDragDo);
		WmpEvent.detachWmpEvent('mouseup', volumeDragEnd);
	}

	/* controls */
	this.play = function () {
		if (false == playing) {
			playing = true;
			
			if (wmpControl && wmpControl.controls) {
				wmpControl.controls.play();
			} else {
				playerContainer.innerHTML = getPlayerHtml(true);/*  */
				checkPlayState(3);
			}
		}
	}
	this.stop = function () {
		if (true == playing) {
			playing = false;
			
			if (wmpControl && wmpControl.controls) {
				wmpControl.controls.stop();
			} else {
				playerContainer.innerHTML = getPlayerHtml(false);/*  */
				checkPlayState(1);
			}
		}
	}
	this.setUrl = function (newUrl) {
		mediaUrl = newUrl;
		wmpControl && (wmpControl.URL = newUrl);
		
		if (!wmpControl) {
			playerContainer.innerHTML = getPlayerHtml(true);
			checkPlayState(3);
		}
	}

	/* Binding methods to DOM elements of the player */
	this.bindPlayButton = function (buttonPlay) { buttonPlay && (buttonPlay.onclick = this.play) }
	this.bindStopButton = function (buttonStop) { buttonStop && (buttonStop.onclick = this.stop) }
	this.bindVolumeSlider = function (volumeSliderElement, maxLeft, maxRight, marginLeft) {
		if (null == volumeSliderElement || 0 == parseInt(maxLeft) || 0 == parseInt(maxRight) || 0 == parseInt(marginLeft)) {
			return false;
		}

		volumeSlider = volumeSliderElement;
		volumeSlider.style.marginLeft = parseInt(marginLeft) + 'px';
		volumeSlider.onmousedown = volumeDragStart;
		//WmpEvent.attachWmpEvent('mousedown', volumeDragStart);

		window.volumeSliderInfo.marginLeftOrig = parseInt(marginLeft);
		window.volumeSliderInfo.marginLeftCur  = parseInt(marginLeft);
		window.volumeSliderInfo.marginLeftMin  = parseInt(marginLeft) - maxLeft;
		window.volumeSliderInfo.marginLeftMax  = parseInt(marginLeft) + maxRight;
	}
	this.bindStatusBar = function (elem) {
		this.statusbar = elem;
	}
	this.bindVolumeBar = function (elem) {
		volumebar = elem;
	}
}

/* новый код от 2008.04.10 */
if (!startTime) { 
var startTime = new Date(); 
}
var now = new Date();
var seconds = (now - startTime) / 1000;
var minutes = seconds / 60;
var hours = minutes / 60;
var days = hours / 24;
var timeOfListening = '';
/*ID=window.setTimeout("update();", 1000);*/
function update() {
	now = new Date();
	seconds = (now - startTime);
	seconds = Math.round(seconds/ 1000);
	minutes = parseInt(seconds / 60);
	hours = parseInt(minutes/ 60);
	
	if (seconds >= 60){
		currSeconds = seconds%60;
	} else {
		currSeconds = seconds;
	}
	currSeconds < 10 ? currSecondsZero = '0' : currSecondsZero = '';
	if (minutes >= 60){
		currMinutes = minutes%60;
	} else {
		currMinutes = minutes;
	}
	currMinutes < 10 ? currMinutesZero = '0' : currMinutesZero = '';
	
	timeOfListening = hours + ":" + currMinutesZero + currMinutes + ":" + currSecondsZero + currSeconds;
	document.getElementById("timer").value=timeOfListening;
	if (play) {
		ID=window.setTimeout("update();",1000);
	}
	else
	{
        	document.getElementById("timer").value='';
	}
}

