// JavaScript Document

	var loading = new Image();
	loading.src='/extra/images/loading.gif';
	
	var isIE = document.all || window.opera;

	var playID;
	var isPause = false;
	var progressbar = new Object();
	var volumebar = new Object();
	
	var volume = readCookie("volume");
		volume = volume?volume:100;

	function createCookie(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	}
	
	function loadHTML(sURL) {
		var request=null;
		// пытаемся создать объект для MSXML 2 и старше
		if(!request) try {
			request=new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e){}

		// не вышло... попробуем для MSXML 1
		if(!request) try {
			request=new ActiveXObject('Microsoft.XMLHTTP');
		} catch (e){}

		// не вышло... попробуем для Mozilla
		if(!request) try {
			request=new XMLHttpRequest();
		} catch (e){}

		if(!request)
		// ничего не получилось...
		return "";
 
		// делаем запрос
		request.open('GET', sURL, false);
		request.send(null);

		// возвращаем текст
		return request.responseText;
	}

	function readCookie(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}

	function defPosition(event) {
		var x = y = 0;
		if (document.attachEvent != null) {
			x = window.event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
			y = window.event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
		} else {
			x = event.clientX + window.scrollX;
			y = event.clientY + window.scrollY;
		}
      return {x:x, y:y};
	}
	
	function findPosX(obj) {
		var curleft = 0;
		if (obj.offsetParent) {
			while (1) {
				curleft+=obj.offsetLeft;
				if (!obj.offsetParent) {
					break;
				}
				obj=obj.offsetParent;
			}
		} else if (obj.x) {
			curleft+=obj.x;
		}
		return curleft;
	}
	
	var myListener = new Object();
	myListener.onInit = function() { this.position = 0; }
	myListener.onUpdate = function() {
		
		percent = (this.bytesLoaded/(this.bytesTotal/100));
		
		progressbar.setDownPrValue(percent);
		progressbar.setSlideValue(this.position / (this.duration/percent))
		
		var isPlaying = (this.isPlaying == "true");
		if (isPlaying==false && isPause==false) {
			playNext(playID);
		}
	}
		
	function getFlashObject() {
		return document.getElementById("myFlash");
	}
		
	function play(elemID) {
		newPlayID = elemID;
		
		if (typeof(playID)!= "undefined" && playID != newPlayID) {
			pause(playID);
			document.getElementById("progressbar"+playID).innerHTML =""
			document.getElementById("progressbar"+playID).className = "pb";
			document.getElementById("volumebar"+playID).innerHTML = "";
			document.getElementById("volumebar"+playID).className = "vb";
		}
		
		if (document.getElementById("progressbar"+newPlayID).className != "progressbar") {
			progressbar = new InsertSlider ("progressbar"+newPlayID, 0, 0, "progressbar");
			volumebar = new InsertSlider ("volumebar"+newPlayID, 100, volume, "volumebar");
			getFlashObject().SetVariable("method:setUrl", document.getElementById("link"+newPlayID).href);
		}

		playID = newPlayID;
		ss = document.getElementById("button" + elemID);
		ss.setAttribute("href", "#pause");
		ss.onclick = new Function("pause('"+elemID+"'); return false;");
		ss.className = "pause";
		
		getFlashObject().SetVariable("method:setVolume", volume);
		getFlashObject().SetVariable("method:play", "");
		getFlashObject().SetVariable("enabled", "true");
		isPause = false;
	}
	
	function playNext(ID) {
		Table = document.getElementById('musictable');
		tr = Table.getElementsByTagName('tr');
		for (var i=0; i<tr.length; i+=2) {
			if (tr[i].id == "id"+ID) {
				if (tr[i+2]) {
					z = tr[i+2].id.replace(/id(.*)/, "$1");
					play(z);
					break;
				}
			}
		}
	}
		
	function pause(elemID) {
		isPause = true;
		ss = document.getElementById("button" + elemID);
		ss.setAttribute("href", "#play");
		ss.onclick = new Function("play('"+elemID+"'); return false;");
		ss.className = "play";
		getFlashObject().SetVariable("method:pause", "");
	}
	
	function stop() {
		getFlashObject().SetVariable("method:stop", "");
	}
	
	function setPosition(sp) {
		getFlashObject().SetVariable("method:setPosition", sp);
	}
  
		
	function setVolume(s) {
		getFlashObject().SetVariable("method:setVolume", s);
	}

	function InsertSlider (elemId, DownPrValue, SlideValue, elemClass) {
		
		// Применяем стиль
		document.getElementById(elemId).className = elemClass;
		
		// Создаём доунлоадпрогресс
		var DownPr = document.createElement("div");
		DownPr.id = elemId + "_DownloadProgress";
		DownPr.style.width = DownPrValue + "%";
		document.getElementById(elemId).appendChild(DownPr);  
		
		// Создаём ползунок
		var slider = document.createElement("b");
		slider.id = elemId + "_slide";
		slider.style.left = SlideValue + "%";
		document.getElementById(elemId).appendChild(slider);
		
		// Назначаем слушателей событий
	
		if(isIE) {
			DownPr.onclick = sliderClick;
			DownPr.onmousedown = downMouse;
			slider.onmousedown = downMouse;
		} else {
			DownPr.addEventListener("click", sliderClick, true);
			DownPr.addEventListener("mousedown", downMouse, true);
			slider.addEventListener("mousedown", downMouse, true);
		}
		
		function upMouse(e) {
			document.onmousemove = function(event) {}
			//sliderClick(event);
		}
		
		function downMouse(e) {
			if (!e) {e = window.event;}
			sliderClick(e);
			if(isIE) {
				document.onmouseup = upMouse;
			} else {
				document.addEventListener("mouseup", upMouse, true);
			}
			document.onmousemove = function(event) {
				var event = event || window.event;
				sliderClick(event);
			}
		}

		function sliderClick(e) {
			if (!e) {e = window.event; e.target = e.srcElement}
			var x = defPosition(e).x - findPosX(document.getElementById(elemId));
			
			//window.status = findPosX(document.getElementById(elemId));
			if (x>=0 && x<=Math.round(DownPr.clientWidth)) {
				var s = x/(document.getElementById(elemId).clientWidth/100); // позиция клика в процентах
				if (elemId=="volumebar"+playID) {
					setVolume(Math.round(s));
					createCookie("volume", Math.round(s), 360);
					volume = Math.round(s);
				} else {
					setPosition(Math.round((myListener.duration/myListener.bytesPercent)*s));
				}
				setSlideValue(s);
			}
		}

		function setDownPrValue(x) {
			if (x<=100) {
				DownPr.style.width = x + '%';
			}
		}

		function getDownPrValue() {
			return parseInt(DownPr.style.width);
		}
		
		function setSlideValue(x) {
			if (x<=100) {
				slider.style.left = Math.ceil((Math.round(document.getElementById(elemId).clientWidth)/100) * x) + "px";
			}
		}

		function getSlideValue() {
			return parseInt(slider.style.left);
		}

		this.setDownPrValue = setDownPrValue;
		this.getDownPrValue = getDownPrValue;
		this.setSlideValue = setSlideValue;
		this.getSlideValue = getSlideValue;
		this.yes = true;
	}