var playerWeborama = function(aWindow) 
{
	var sender = this;
	this.ownerWindow = aWindow;
	
	sender.load = function()
	{
		var fp = true;
		if (window.ActiveXObject)
		{
			try 
			{
				var a = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
			}      
			catch(e) 
			{
				fp = false;
			}
		}
		if ((window.navigator.mimeTypes['application/x-shockwave-flash'] && window.navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) || (window.ActiveXObject && fp) )
		{
			var playerContainer = document.createElement('div');
			playerContainer.style.cssText = 'z-index:10000; width: 2px; height: 1px; position: fixed; font-size: 1px;';
			if (document.filters)
			{
				if (!XMLHTTPRequest)
				{
					playerContainer.style.position = 'absolute'; //for IE 6
				}
			}
			
			playerContainer.innerHTML = sender.createSWFPlayer('weboramaInlinePlayer') + sender.createSWFProxy('weboramaInlineProxy');
			if (document.body.firstChild)
			{
				document.body.insertBefore(playerContainer, document.body.firstChild);
			}
			else
			{
				document.body.appendChild(playerContainer);
			}
			
			sender.getFlashObject = function(flashName)
			{
				if(typeof(sender.ownerWindow[flashName]) == 'undefined')
				{
					return sender.ownerWindow.document[flashName];
				}
				else
				{
					return sender.ownerWindow[flashName];
				}
			}   
			
			sender.player = sender.getFlashObject('weboramaInlinePlayer');
			sender.proxy = sender.getFlashObject('weboramaInlineProxy');
					
			var buf = document.createElement('div');
			buf.style.position = 'absolute';
			buf.style.width = '100px';
			buf.style.fontSize = '1px';  
			buf.style.height = '3px';
			buf.style.display = 'none';
			buf.style.zIndex = '999';
			
			sender.buf = buf;
			document.body.insertBefore(buf, document.body.firstChild);
			
			if (typeof document.evaluate == 'undefined') 
			{ 
				sender.iterator(document.body, sender.searchTagIE);
				sender.changeTagSongIE();
			}
			else
			{  
				var tagsSong = document.evaluate("//song", document, null, XPathResult.ANY_TYPE, null); 
				var tagSong = tagsSong.iterateNext(); 
				var tempTagSong = new Array();
				while (tagSong)
				{
					tempTagSong.push(tagSong);
					tagSong = tagsSong.iterateNext();
				}
				for (var i = 0; i < tempTagSong.length; ++i)
				{
					var linkColor = this.getElementColor(tempTagSong[i]);
					var element = sender.newSpan(tempTagSong[i].innerHTML, tempTagSong[i].id, linkColor);
					tempTagSong[i].parentNode.insertBefore(element.span, tempTagSong[i]);
					tempTagSong[i].parentNode.removeChild(tempTagSong[i]);
					sender.tagSongsArray.push({id: tempTagSong[i].id, text: tempTagSong[i].innerHTML, span: element.span, link: element.link, img: element.img, textNode: element.textNode, tag: 'song', color: linkColor, progress: element.progress, progressBack: element.progressBack});
					sender.addEvent(element.img, 'click', sender.createPlaySong(sender.tagSongsArray.length-1));
					delete tempTagSong[i];
				}

				var tempWeboramaLink = new Array();   
				var weboramaLinks = document.evaluate("//a[substring(attribute::href, 1, 56) = 'http://www.weborama.ru/#/modules/audio/song/view.php?id=']", document, null, XPathResult.ANY_TYPE, null);
				var weboramaLink = weboramaLinks.iterateNext();
				while (weboramaLink)
				{ 
					tempWeboramaLink.push(weboramaLink);
					weboramaLink = weboramaLinks.iterateNext();
				}
				var weboramaLinks = document.evaluate("//a[substring(attribute::href, 1, 54) = 'http://www.weborama.ru/modules/audio/song/view.php?id=']", document, null, XPathResult.ANY_TYPE, null);
				var weboramaLink = weboramaLinks.iterateNext();
				while (weboramaLink)
				{ 
					tempWeboramaLink.push(weboramaLink);
					weboramaLink = weboramaLinks.iterateNext();
				}      
				for (var i = 0; i < tempWeboramaLink.length; ++i)
				{
					var match = tempWeboramaLink[i].href.match(/http:\/\/www.weborama.ru.*modules\/audio\/song\/view.php\?id=([a-f0-9]{32})/i);
					var id = null;
					if (match)
					{
						id = match[1];
					}
					var linkColor = sender.getElementColor(tempWeboramaLink[i]);
					var element = sender.newSpan(tempWeboramaLink[i].innerHTML, id, linkColor, tempWeboramaLink[i]);
					tempWeboramaLink[i].parentNode.insertBefore(element.span, tempWeboramaLink[i]);
					tempWeboramaLink[i].parentNode.removeChild(tempWeboramaLink[i]);
					sender.tagSongsArray.push({id: id, text: tempWeboramaLink[i].innerHTML,  span: element.span, link: element.link, img: element.img, textNode: element.textNode, tag: 'a', color: linkColor, progress: element.progress, progressBack: element.progressBack});
					sender.addEvent(element.img, 'click', sender.createPlaySong(sender.tagSongsArray.length-1));
					delete tempWeboramaLink[i];
				}
			}
			
			playerWeborama.prototype.refresh = function()
			{ 
				for (var ii = 0; ii < sender.tagSongsArray.length; ++ii) 
				{
					sender.tagSongsArray[ii].progressBack.style.top = sender.getElementTop(sender.tagSongsArray[ii].link) + sender.tagSongsArray[ii].link.offsetHeight  + 'px';
					sender.tagSongsArray[ii].progressBack.style.left = sender.getElementLeft(sender.tagSongsArray[ii].link) + 'px';
					sender.tagSongsArray[ii].progressBack.style.width = sender.tagSongsArray[ii].link.offsetWidth + 'px';
					

					sender.tagSongsArray[ii].progress.style.top = sender.getElementTop(sender.tagSongsArray[ii].link) + sender.tagSongsArray[ii].link.offsetHeight + 'px';
					sender.tagSongsArray[ii].progress.style.left = sender.getElementLeft(sender.tagSongsArray[ii].link) + 'px';    
				}

				if (sender.lastIndex != null)
				{
					sender.buf.style.top = sender.getElementTop(sender.tagSongsArray[sender.lastIndex].link) + sender.tagSongsArray[sender.lastIndex].link.offsetHeight  + 'px';
					sender.buf.style.left = sender.getElementLeft(sender.tagSongsArray[sender.lastIndex].link) + 'px';
					sender.buf.style.width = sender.tagSongsArray[sender.lastIndex].link.offsetWidth + 'px';
				}
			}
			
			sender.ownerWindow.setInterval(sender.refresh, 2000);
			sender.addEvent(sender.ownerWindow, 'size', sender.refresh);    
		}
	}            
	
	sender.searchTagIE = function(node)
	{
		if (node.tagName == '/song' || node.tagName == '/Song' || node.tagName == '/SONG')
		{  
			sender.TempTagIE.push(node);
		}
		if (node.tagName == 'a' || node.tagName == 'A')
		{
			var match = node.href.match(/http:\/\/www.weborama.ru.*modules\/audio\/song\/view.php\?id=([a-f0-9]{32})/i);
			if (match)
			{ 
				sender.TempTagIE.push(node);
			}    
		}
	}
	
}    

playerWeborama.prototype.changeTagSongIE = function()
{
	for (var ii in this.TempTagIE)
	{
		var node = this.TempTagIE[ii];
		if (node.tagName == '/song' || node.tagName == '/Song' || node.tagName == '/SONG')
		{  
			var childNodes = node.parentNode.childNodes;
			for (var i = 2; i < childNodes.length; ++i)
			{
				if ((childNodes[i] == node) && (childNodes[i-2].tagName == 'SONG')) // надо переделать алгоритм поиска для IE, он пока не предусматривает наличие тегов внутри тегов song
				{
					var linkColor = this.getElementColor(childNodes[i-2]);
					var element = this.newSpan(childNodes[i-1].nodeValue, childNodes[i-2].id, linkColor); 
					this.tagSongsArray.push({id: childNodes[i-2].id, text: childNodes[i-1].nodeValue, span: element.span, link: element.link, img: element.img, textNode: element.textNode, tag: 'song', color: linkColor, progress: element.progress, progressBack: element.progressBack});
					this.addEvent(element.img, 'click', this.createPlaySong(this.tagSongsArray.length-1));        
					node.parentNode.insertBefore(element.span, node);
					node.parentNode.removeChild(childNodes[i-1]);
					node.parentNode.removeChild(childNodes[i-2]);        
					node.parentNode.removeChild(node);
					delete node;
				}
			}
		}
		if (node.tagName == 'a' || node.tagName == 'A')
		{
			var match = node.href.match(/http:\/\/www.weborama.ru.*modules\/audio\/song\/view.php\?id=([a-f0-9]{32})/i);
			if (match)
			{ 
				var id = match[1];
				var linkColor = this.getElementColor(node);
				var element = this.newSpan(node.innerHTML, id, linkColor, node);
				node.parentNode.insertBefore(element.span, node);
				node.parentNode.removeChild(node);
				this.tagSongsArray.push({id: id, text: node.innerHTML,  span: element.span, link: element.link, img: element.img, textNode: element.textNode, tag: 'a', color: linkColor, progress: element.progress, progressBack: element.progressBack});
				this.addEvent(element.img, 'click', this.createPlaySong(this.tagSongsArray.length-1));
				delete node;      
			}    
		}  
	}
}        

playerWeborama.prototype.getElementTop = function(element) 
{
	var top = element.offsetTop;
	while (element = element.offsetParent) 
	{
		top += element.offsetTop;
	}
	return top;  
}

playerWeborama.prototype.getElementLeft = function(element) 
{
	var left = element.offsetLeft;
	while (element = element.offsetParent) 
	{
		left += element.offsetLeft;
	}
	return left;
}

playerWeborama.prototype.addEvent = function(component, eventName, handler) 
{
	if (component && eventName && handler)
	{ 
		if (typeof component.attachEvent == 'object')
		{
			return component.attachEvent('on' + eventName, handler);
		} 
		else if (typeof component.addEventListener == 'function')
		{
			return component.addEventListener(eventName, handler, false);
		}
	}
}

playerWeborama.prototype.iterator = function(startElement, handler)
{
	if (startElement)
	{
		var childNodes = startElement.childNodes;
		for (var i = 0; i < childNodes.length; ++i)
		{
			this.iterator(childNodes[i], handler);
			handler(childNodes[i]);
		}
	}
}

playerWeborama.prototype.createSWFPlayer = function(id)
{
	var result =  '<object id="' + id + '" name="' + id + '" style="z-index: 0; width: 1px; height: 1px;" type="application/x-shockwave-flash" data="' + this.swfPlayer + '"><param name="wmode" value="transparent"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="movie" value="' + this.swfPlayer + '"/><param name="menu" value="false" /><param name="quality" value="high" /><param name="codebase" value="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" /><param name="flashvars" value="debug=0&amp;playFile=playFile&amp;pause=pause&amp;stop=stopFile&amp;getProgress=getProgress&amp;getBuffering=getBuffering&amp;setVolume=setVolume&amp;progressTimer=200&amp;getState=getState&amp;onStateChange=onStateChange&amp;onReady=onFlashReady&amp;onOpen=onOpen&amp;onProgress=window.' + this.objName + '.onProgress&amp;onBuffering=window.' + this.objName + '.onBuffering&amp;onComplete=window.' + this.objName + '.onComplete&amp;onFileError=onFileError&amp;onInitError=onInitError&amp;onId3=onId3" /></object>';
	return result;
} 

playerWeborama.prototype.createSWFProxy = function(id)
{
	var result =  '<object id="' + id + '" name="' + id + '" style="z-index: 0; width: 1px; height: 1px;" type="application/x-shockwave-flash" data="' + this.swfProxy + '"><param name="wmode" value="transparent"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="movie" value="' + this.swfProxy + '"/><param name="menu" value="false" /><param name="quality" value="high" /><param name="codebase" value="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" /><param name="flashvars" value="debug=1&load=loadURL&getBytesLoaded=getBytesLoaded&getBytesTotal=getBytesTotal&getState=getState&onStateChange=onStateChange&onReady=window.' + this.objName + '.getAudioId&onProgress=onProgress&onComplete=window.' + this.objName + '.onCompleteRequest&onError=onError&onInitError=onInitError" /></object>';
	return result;
} 

playerWeborama.prototype.getAudioId = function()
{
	if (this.tagSongsArray.length > 0)
	{
		for (var i in this.tagSongsArray)
		{
			if (this.tagSongsArray[i].id == '')
			{
				for (var ii in this.tagSongsArray)
				{
					if ((this.tagSongsArray[ii].text == this.tagSongsArray[i].text) && (this.tagSongsArray[ii].id != ''))
					{
						this.tagSongsArray[i].id = this.tagSongsArray[ii].id;
						this.tagSongsArray[i].songInfo = this.tagSongsArray[ii].songInfo;
						break;
					}
				}
				if (this.tagSongsArray[i].songInfo == null)
				{
					this.lastRequestIndex = i;
					this.proxy.loadURL(this.songSearchURL , {q : this.tagSongsArray[i].text}, null, 'GET' );
					break;
				}        
			}
			if (this.tagSongsArray[i].songInfo == null)
			{
				for (var ii in this.tagSongsArray)
				{
					if ((this.tagSongsArray[ii].id == this.tagSongsArray[i].id) && (this.tagSongsArray[ii].songInfo != null))
					{
						this.tagSongsArray[i].songInfo = this.tagSongsArray[ii].songInfo;
						break;
					}
				}
				if (this.tagSongsArray[i].songInfo == null)
				{
					this.lastRequestIndex = i;
					this.proxy.loadURL(this.songInfoURL, {id : this.tagSongsArray[i].id, type : 'audio', act : 'new'}, null, 'GET' );
					break;
				}
			}
		}
	}
}

playerWeborama.prototype.newSpan = function(text, id, color, element)
{
	if (color == null)
	{
		color = {r: 0, g: 0, b: 0};
	}                            
	var span = document.createElement('span');
	span.style.whiteSpace = 'nowrap';
	
	var img = document.createElement('img');
	img.src = this.playButton;// + "?r=" + color.r + "&g=" + color.g + "&b=" + color.b ;
	img.style.cursor = 'pointer';
	img.style.width = '9px';
	img.style.height = '9px';
	
	
	var link = null;
	var textNode = null;
	
	if (element)
	{
		link = element.cloneNode(true);
		textNode = link.firstChild;
	}
	else
	{
		link = document.createElement('a');
		link.target = "_blank";
		link.style.textDecoration = 'none';
		if (id)
		{
			link.href = 'http://www.weborama.ru/modules/audio/song/view.php?id=' + id;
		}
		
		link.style.color = "rgb(" + color.r + ", " + color.g + ", " + color.b + ")";
		
		textNode = document.createTextNode(text);
		
		link.appendChild(textNode);
		
		link.style.fontWeight = 'bold';
	}
		 
	
	var space = document.createTextNode(' ');
	
	img.style.position = 'static';
	img.style.margin = '0';
	img.style.padding = '0';
	
	span.appendChild(img);
	span.appendChild(space);  
	span.appendChild(link);
	
	var progressBack = document.createElement('div');
	progressBack.style.position = 'absolute';
	progressBack.style.width = '50px';
	progressBack.style.fontSize = '1px';  
	progressBack.style.height = '3px';
	progressBack.style.borderTop = '1px solid green';
	progressBack.style.display = 'none';
	progressBack.style.zIndex = this.zIndex++;

	var progress = document.createElement('div');
	progress.style.position = 'absolute';
	progress.style.width = '100px';
	progress.style.fontSize = '1px';
	progress.style.height = '3px';
	progress.style.borderTop = '1px solid red';
	progress.style.display = 'none';
	progress.style.zIndex = this.zIndex++;
	
	document.body.insertBefore(progress, document.body.firstChild);
	
	document.body.insertBefore(progressBack, document.body.firstChild);
		
	return {span: span, link: link, img: img, textNode: textNode, progress: progress, progressBack: progressBack};
}

playerWeborama.prototype.createPlaySong = function(index)
{              
	var sender = this;
	function playSong()
	{
		if (sender.tagSongsArray[index].id != '') // непомню зачем проверка, может можно убрать
		{
			if ( (sender.lastIndex != index) && (sender.lastIndex != null) )
			{
				sender.player.stopFile();
				if (sender.tagSongsArray[sender.lastIndex].position)
				{
					sender.tagSongsArray[sender.lastIndex].img.src = sender.emptyPlayButton;// + "?r=" + sender.tagSongsArray[sender.lastIndex].color.r + "&g=" + sender.tagSongsArray[sender.lastIndex].color.g + "&b=" + sender.tagSongsArray[sender.lastIndex].color.b;
				}
				else
				{
					sender.tagSongsArray[sender.lastIndex].progress.style.display = 'none';
					sender.tagSongsArray[sender.lastIndex].progressBack.style.display = 'none';
					sender.tagSongsArray[sender.lastIndex].img.src = sender.playButton;// + "?r=" + sender.tagSongsArray[sender.lastIndex].color.r + "&g=" + sender.tagSongsArray[sender.lastIndex].color.g + "&b=" + sender.tagSongsArray[sender.lastIndex].color.b;
				}

				sender.lastIndex = index;
			}
			
			if (sender.lastIndex == null)
			{
				sender.lastIndex = index; 
			}
	
			switch (sender.player.getState())
			{
				case 0:                                                                            
					sender.tagSongsArray[index].decorationStyle = sender.tagSongsArray[index].link.style.textDecoration;
					sender.tagSongsArray[index].link.style.textDecoration = 'none';
					
					sender.tagSongsArray[index].img.src = sender.pauseButton;// + "?r=" + sender.tagSongsArray[index].color.r + "&g=" + sender.tagSongsArray[index].color.g + "&b=" + sender.tagSongsArray[index].color.b;
					
					sender.tagSongsArray[index].progressBack.style.top = sender.getElementTop(sender.tagSongsArray[index].link) + sender.tagSongsArray[index].link.offsetHeight  + 'px';
					sender.tagSongsArray[index].progressBack.style.left = sender.getElementLeft(sender.tagSongsArray[index].link) + 'px';
					sender.tagSongsArray[index].progressBack.style.width = sender.tagSongsArray[index].link.offsetWidth + 'px';
					sender.tagSongsArray[index].progressBack.style.display = 'block';
					
					sender.tagSongsArray[index].progress.style.top = sender.getElementTop(sender.tagSongsArray[index].link) + sender.tagSongsArray[index].link.offsetHeight + 'px';
					sender.tagSongsArray[index].progress.style.left = sender.getElementLeft(sender.tagSongsArray[index].link) + 'px';
					sender.tagSongsArray[index].progress.style.width = '0';
					sender.tagSongsArray[index].progress.style.display = 'block';
					
					//var additionalColor = sender.getAdditionalColor(sender.tagSongsArray[sender.lastIndex].color);
					var additionalColor = {r: Math.round((sender.tagSongsArray[sender.lastIndex].color.r + sender.getElementBackgroundColor(sender.tagSongsArray[sender.lastIndex].link).r)/2),
																 g: Math.round((sender.tagSongsArray[sender.lastIndex].color.g + sender.getElementBackgroundColor(sender.tagSongsArray[sender.lastIndex].link).g)/2),
																 b: Math.round((sender.tagSongsArray[sender.lastIndex].color.b + sender.getElementBackgroundColor(sender.tagSongsArray[sender.lastIndex].link).b)/2)};          

					sender.tagSongsArray[sender.lastIndex].progressBack.style.borderTopColor = 'rgb(' + additionalColor.r + ', ' + additionalColor.g + ', ' + additionalColor.b + ')';
					sender.tagSongsArray[sender.lastIndex].progress.style.borderTopColor = 'rgb(' + sender.tagSongsArray[sender.lastIndex].color.r + ', ' + sender.tagSongsArray[sender.lastIndex].color.g + ', ' + sender.tagSongsArray[sender.lastIndex].color.b + ')';
					
					sender.buf.style.top = sender.getElementTop(sender.tagSongsArray[index].link) + sender.tagSongsArray[index].link.offsetHeight  + 'px';
					sender.buf.style.left = sender.getElementLeft(sender.tagSongsArray[index].link) + 'px';
					sender.buf.style.width = sender.tagSongsArray[index].link.offsetWidth + 'px';
					sender.buf.style.backgroundImage = 'url("' + sender.wave + "?r=" + sender.tagSongsArray[sender.lastIndex].color.r + "&g=" + sender.tagSongsArray[sender.lastIndex].color.g + "&b=" + sender.tagSongsArray[sender.lastIndex].color.b + '")';
	
					var file = sender.tagSongsArray[index].id;

					if (sender.tagSongsArray[index].position)
					{
						sender.player.playFile('http://static1.weborama.ru/audio/' + file.substring(0, 2) + '/' + file, sender.tagSongsArray[index].position);
					}
					else
					{
						sender.player.playFile('http://static1.weborama.ru/audio/' + file.substring(0, 2) + '/' + file); 
					}
				break;  
				case 1:
					sender.player.pause();
					sender.tagSongsArray[index].img.src = sender.emptyPlayButton;// + "?r=" + sender.tagSongsArray[index].color.r + "&g=" + sender.tagSongsArray[index].color.g + "&b=" + sender.tagSongsArray[index].color.b;
				break;
				case 2:
					sender.player.pause();
					sender.tagSongsArray[index].img.src = sender.emptyPlayButton;// + "?r=" + sender.tagSongsArray[index].color.r + "&g=" + sender.tagSongsArray[index].color.g + "&b=" + sender.tagSongsArray[index].color.b;
				break;
				case 3:          
					sender.player.pause();
					sender.tagSongsArray[index].img.src = sender.emptyPlayButton;// + "?r=" + sender.tagSongsArray[index].color.r + "&g=" + sender.tagSongsArray[index].color.g + "&b=" + sender.tagSongsArray[index].color.b;
				break;
				case 4:
					sender.player.playFile();
					sender.tagSongsArray[index].img.src = sender.pauseButton;// + "?r=" + sender.tagSongsArray[index].color.r + "&g=" + sender.tagSongsArray[index].color.g + "&b=" + sender.tagSongsArray[index].color.b;
				break;
			}
		}
	} 
	return playSong;
}

playerWeborama.prototype.getAdditionalColor = function(color)
{
	result = {r: 0, g: 0, b: 0};
	
	var d = 128;
	result.r = (color.r > 128) ? (color.r - d) : (color.r + d) ;
	result.g = (color.g > 128) ? (color.g - d) : (color.g + d) ;
	result.b = (color.b > 128) ? (color.b - d) : (color.b + d) ;
	
	return result;
}

playerWeborama.prototype.onProgress = function(filUrl, position)
{
	
	this.tagSongsArray[this.lastIndex].position = position;
					 
	if (!this.tagSongsArray[this.lastIndex].songInfo.audio.songLength)
	{
		var lengthArray = this.tagSongsArray[this.lastIndex].songInfo.audio.songLengthString.split(':');
		var length = 0;
		for (var i = 0; i < lengthArray.length; ++i)
		{
			length += Math.pow(60, lengthArray.length - 1 - i) * lengthArray[i] ;
		}
		this.tagSongsArray[this.lastIndex].songInfo.audio.songLength = length;
	}
		
	if (this.tagSongsArray[this.lastIndex].songInfo.audio.songLength != 0)
	{
		var width = Math.round((position/1000)/this.tagSongsArray[this.lastIndex].songInfo.audio.songLength*100);
		this.tagSongsArray[this.lastIndex].progress.style.width = Math.round( parseInt(this.tagSongsArray[this.lastIndex].progressBack.style.width) * width/100 ) + 'px';
		//this.tagSongsArray[this.lastIndex].progress.style.display = 'block';
	}
	else
	{
		this.tagSongsArray[this.lastIndex].progress.style.width = this.tagSongsArray[this.lastIndex].progressBack.style.width;
	}
}

playerWeborama.prototype.onBuffering = function(fileUrl, isBuffering)
{
	if (isBuffering)
	{
		this.tagSongsArray[this.lastIndex].progress.style.display = 'none';
		this.tagSongsArray[this.lastIndex].progressBack.style.display = 'none';
		this.buf.style.display = 'block';
	}
	else
	{
		this.tagSongsArray[this.lastIndex].progress.style.display = 'block';
		this.tagSongsArray[this.lastIndex].progressBack.style.display = 'block';
		this.buf.style.display = 'none'; 
	}
}

playerWeborama.prototype.onComplete = function()
{
	if (this.lastIndex != null)
	{
		this.tagSongsArray[this.lastIndex].progress.style.display = 'none';
		this.tagSongsArray[this.lastIndex].progressBack.style.display = 'none';
		this.tagSongsArray[this.lastIndex].position = null;
		this.tagSongsArray[this.lastIndex].img.src = this.playButton;// + "?r=" + this.tagSongsArray[this.lastIndex].color.r + "&g=" + this.tagSongsArray[this.lastIndex].color.g + "&b=" + this.tagSongsArray[this.lastIndex].color.b;    
		this.tagSongsArray[this.lastIndex].link.style.textDecoration  = this.tagSongsArray[this.lastIndex].decorationStyle;
	}
}

playerWeborama.prototype.onCompleteRequest = function(url, data, loadTime)
{
	var songInfo = eval('(' + data + ')');
 
	if (url.indexOf(this.songInfoURL) != -1)  
	{
		/*for (var k in songInfo.audio)
		{
			//if (k.match(/^[a-f0-9]{32}$/))
			{
				songInfo.audio = songInfo.audio[k];
			}
		}*/
		 songInfo.audio = songInfo.audio[0];
	} 

	this.tagSongsArray[this.lastRequestIndex].songInfo = songInfo;
	
	if ( (songInfo != false) && (url.indexOf(this.songSearchURL) != -1) )
	{
		this.tagSongsArray[this.lastRequestIndex].link.href = 'http://www.weborama.ru/modules/audio/song/view.php?id=' + songInfo.audio.id;
		this.tagSongsArray[this.lastRequestIndex].id = songInfo.audio.id;
	}
//  if (url.indexOf(this.songInfoURL) != -1)  
//  {
//    this.tagSongsArray[this.lastRequestIndex].textNode.nodeValue = songInfo.audio.artistName + ' - ' + songInfo.audio.songName;
//  }

	this.getAudioId();
}

playerWeborama.prototype.getElementColor = function(element)
{
	var result = {r: 0, g: 0, b: 0};
	var colorText = '';
 
	if (this.ownerWindow.getComputedStyle)
	{
		colorText = document.defaultView.getComputedStyle(element, null).getPropertyValue('color');
	}
	else
	{
		colorText = element.currentStyle.color;
	}
	
	if (this.test1 == 0)
	{
		//alert(colorText);
	}
	
	var match1 = colorText.match(/^[a-z]*$/i);
	if (match1)
	{
		var stdColors = new Array();
		stdColors['black'] = {r: 0, g: 0, b: 0};
		stdColors['green'] = {r: 0, g: 128, b: 0};
		stdColors['silver'] = {r: 192, g: 192, b: 192};
		stdColors['lime'] = {r: 0, g: 255, b: 0};
		stdColors['gray'] = {r: 128, g: 128, b: 128};
		stdColors['olive'] = {r: 128, g: 128, b: 0};
		stdColors['white'] = {r: 255, g: 255, b: 255};
		stdColors['yellow'] = {r: 255, g: 255, b: 0};
		stdColors['maroon'] = {r: 128, g: 0, b: 0};
		stdColors['navy'] = {r: 0, g: 0, b: 128};
		stdColors['red'] = {r: 255, g: 0, b: 0};
		stdColors['blue'] = {r: 0, g: 0, b: 255};
		stdColors['purple'] = {r: 128, g: 0, b: 128};
		stdColors['teal'] = {r: 0, g: 128, b: 128};
		stdColors['fuchsia'] = {r: 255, g: 0, b: 255};
		stdColors['aqua'] = {r:0 , g: 255, b: 255};
		
		result = stdColors[match1[0].toLowerCase()];
	}

	var match2 = colorText.match(/^rgb\((\d{1,3}), (\d{1,3}), (\d{1,3})\)$/i);
	if (match2)
	{
		result.r = parseInt(match2[1], 10);
		result.g = parseInt(match2[2], 10);
		result.b = parseInt(match2[3], 10);
	}
	
	var match3= colorText.match(/^#([a-f0-9]{1,2})([a-f0-9]{1,2})([a-f0-9]{1,2})$/i);
	if (match3)
	{
		result.r = parseInt( (match3[1].length == 1) ? match3[1]+match3[1] : match3[1] , 16);
		result.g = parseInt( (match3[2].length == 1) ? match3[2]+match3[2] : match3[2] , 16);
		result.b = parseInt( (match3[3].length == 1) ? match3[3]+match3[3] : match3[3] , 16);      
	}
	
	if (this.test1 == 0)
	{
		//alert(result.r + ' ' + result.g + ' ' + result.b);
		this.test1 = 1;  
	}
	
	return result;
}   

playerWeborama.prototype.getElementBackgroundColor = function(element)
{
	var result = {r: 0, g: 0, b: 0};
	var colorText = '';

	if (window.getComputedStyle)
	{
		colorText = document.defaultView.getComputedStyle(element, null).backgroundColor;
		while (((colorText == 'transparent') || ((colorText == 'rgba(0, 0, 0, 0)'))) && (element != null))
		{
			colorText = document.defaultView.getComputedStyle(element, null).backgroundColor;
			element = element.parentNode;
		}
		
		if (element == null)
		{
			colorText = 'white';
		}
	}
	else
	{
		colorText = element.currentStyle.backgroundColor;
		while ((colorText == 'transparent') && (element != null))
		{
			colorText = element.currentStyle.backgroundColor;
			element = element.parentNode;
		}
		
		if (element == null)
		{
			colorText = 'white';
		}
		
	}
	
	var match1 = colorText.match(/^[a-z]*$/i);
	if (match1)
	{
		var stdColors = new Array();
		stdColors['black'] = {r: 0, g: 0, b: 0};
		stdColors['green'] = {r: 0, g: 128, b: 0};
		stdColors['silver'] = {r: 192, g: 192, b: 192};
		stdColors['lime'] = {r: 0, g: 255, b: 0};
		stdColors['gray'] = {r: 128, g: 128, b: 128};
		stdColors['olive'] = {r: 128, g: 128, b: 0};
		stdColors['white'] = {r: 255, g: 255, b: 255};
		stdColors['yellow'] = {r: 255, g: 255, b: 0};
		stdColors['maroon'] = {r: 128, g: 0, b: 0};
		stdColors['navy'] = {r: 0, g: 0, b: 128};
		stdColors['red'] = {r: 255, g: 0, b: 0};
		stdColors['blue'] = {r: 0, g: 0, b: 255};
		stdColors['purple'] = {r: 128, g: 0, b: 128};
		stdColors['teal'] = {r: 0, g: 128, b: 128};
		stdColors['fuchsia'] = {r: 255, g: 0, b: 255};
		stdColors['aqua'] = {r:0 , g: 255, b: 255};
		
		result = stdColors[match1[0].toLowerCase()];
	}

	var match2 = colorText.match(/^rgb\((\d{1,3}), (\d{1,3}), (\d{1,3})\)$/i);
	if (match2)
	{
		result.r = parseInt(match2[1], 10);
		result.g = parseInt(match2[2], 10);
		result.b = parseInt(match2[3], 10);
	}
	
	var match3= colorText.match(/^#([a-f0-9]{1,2})([a-f0-9]{1,2})([a-f0-9]{1,2})$/i);
	if (match3)
	{
		result.r = parseInt( (match3[1].length == 1) ? match3[1]+match3[1] : match3[1] , 16);
		result.g = parseInt( (match3[2].length == 1) ? match3[2]+match3[2] : match3[2] , 16);
		result.b = parseInt( (match3[3].length == 1) ? match3[3]+match3[3] : match3[3] , 16);      
	}
	

	return result;
}


playerWeborama.prototype.tagSongsArray = new Array();
playerWeborama.prototype.test1 = 0;
playerWeborama.prototype.test2 = 0;
playerWeborama.prototype.TempTagIE = new Array();
playerWeborama.prototype.player = null;
playerWeborama.prototype.proxy = null;
playerWeborama.prototype.lastIndex = null;
playerWeborama.prototype.lastRequestIndex = null;                  
playerWeborama.prototype.songSearchURL = 'http://www.weborama.ru/modules/player/rp_songSearchJson.php';
playerWeborama.prototype.songInfoURL = 'http://www.weborama.ru/modules/player/index_json.php';
playerWeborama.prototype.playButton = 'http://www.weborama.ru/temp/tagSong/play.php';
playerWeborama.prototype.emptyPlayButton = 'http://www.weborama.ru/temp/tagSong/empty-play.php';
playerWeborama.prototype.pauseButton = 'http://www.weborama.ru/temp/tagSong/pause.php';
playerWeborama.prototype.wave = 'http://www.weborama.ru/temp/tagSong/wave.php';
playerWeborama.prototype.swfPlayer = 'http://www.weborama.ru/temp/tagSong/hidden-player.swf';
playerWeborama.prototype.swfProxy = 'http://www.weborama.ru/temp/tagSong/hidden-proxy.swf';
//playerWeborama.prototype.progressLineColor1 = '#0030d1';
//playerWeborama.prototype.progressLineColor2 = '#b3c2f0';
playerWeborama.prototype.objName = 'playerWeboramaObj';
playerWeborama.prototype.zIndex = 1000;

var aWindow = (typeof unsafeWindow != 'undefined') ? unsafeWindow : window;

if (!aWindow.hasWeboramaPlayer) 
{
	aWindow.playerWeboramaObj = new playerWeborama(aWindow);
	aWindow.playerWeboramaObj.addEvent(aWindow, 'load', aWindow.playerWeboramaObj.load);
	aWindow.hasWeboramaPlayer = true;
}
