	function fave() { 
	title = "Sweetest.ru - скачать mp3 бесплатно"; 
	url = "http://sweetest.ru";
	if (window.sidebar) {window.sidebar.addPanel(title, url,"");} 
	else if(window.external) {window.external.AddFavorite(url,title); } 
	else if(window.opera && window.print) { 
	var mbm = document.createElement('a');
	    mbm.setAttribute('rel','sidebar');
	    mbm.setAttribute('href',url);
	    mbm.setAttribute('title',title);
	    mbm.click();
	} 
	}



function sf(){document.f.q.focus()}



function ge()
{
var ea;
for( var i = 0; i < arguments.length; i++ ) {
var e = arguments[i];
if( typeof e == 'string' )
e = document.getElementById(e);
if( arguments.length == 1 )
return e;
if( !ea )
ea = new Array();
ea[ea.length] = e;
}
return ea;
}


	function thisMovie(movieName){
		if(navigator.appName.indexOf("Microsoft") != -1)
		{
			return window[movieName];
		}else{
			return document[movieName];
		}
	};


var coke=1;
var lastid=0;
var chako=1;

var thaplayingid=0;
var currentState;

	function getUpdate(typ,pr1,pr2,pid) {
		if(pid != "null") {
			if((typ == "state")&&(pr1 != undefined)) { 
				currentState = pr1; 
				if(currentState=="3") { 
				stateChanged(thaplayingid,"","finished","ok");
				chako=2;
				lastid=thaplayingid;
				}
			}
		}
	};


function ses(thisid) {
thaplayingid=thisid;
if(coke==2) {
if(thisid==lastid) {
if(chako==1) {
ge("imgbutton" + thisid).src = "/images/play.gif";
chako=2;
}else{
ge("imgbutton" + thisid).src = "/images/pause.gif";
chako=1;
}
thisMovie("player").sendEvent('playpause',true); 
}
}
lastid=thisid;
coke=2;
};



function seses(typ,prm) { 
if(ge("player")) {
if(isIE()) {
thisMovie("player").sendEvent(typ,prm);
}else{
document.getElementById("player").sendEvent(typ,prm);
}
}
}
	function fuckthisMovie(movieName) {
	    if(navigator.appName.indexOf("Microsoft") != -1) {
			return window[movieName];
		} else {
			return document[movieName];
		}
	};




var AudioObject = {
	prevAudio: 0,
	debug_mode: 0,
	curAudio: 0,
	curWallAudio: null,
	curPressed: false,
	flashVer: 0,
	preventInit: false,
	fileInfo: new Array(),
	offlineHosts:[],
	images: {
		playmode: {
			play: "/images/play.gif",
			pause: "/images/pause.gif"
		},
		editmode: {
			play: "/images/play.png",
			pause: "/images/pause.png"
		},
		icon: "/images/favicon.ico",
		pauseicon: "/images/pauseicon.ico",
		playicon: "/images/playicon.ico"
	},

	getSuff: function(wall){
		return (wall) ? "Wall" : "";
	},

	setIcon: function(icon){
		var links = document.getElementsByTagName("link");
		for (i in links) {
			var ico = links[i];
			if (ico && ico.parentNode && (ico.rel == "shortcut icon")) {
				var parent = ico.parentNode;
				ico.setAttribute("href", icon);
				if (isOpera()) {
					parent.innerHTML = parent.innerHTML;
				}
				else {
					parent.removeChild(ico);
					parent.appendChild(ico);
				}
			}
		}
	},

	getPlayer: function(current, wall){
    var created = false;
		if (!this.curVolume)
			this.curVolume = parseInt(readCookie("audio_vol"));
		if (isNaN(this.curVolume)) {
			this.curVolume = 80;
			createCookie("audio_vol", this.curVolume);
		}
		var suff = this.getSuff(wall);
		
		var id = (wall) ? "playerWall" : "player";
    if(!ge(id)){
			//if (wall)
				//this.curWallAudio = null;

			var width = (wall) ? "278" : "290";
			var name = (wall) ? "/swf/m.swf" : "/swf/m.swf";
			var so = new SWFObject(name, id, width, "14", "7", "#FFFFFF");
			if (isWindowFocused)
				so.addParam("wmode", "transparent");
			so.addParam("swliveconnect", "true");
			so.addParam("allowScriptAccess", "always");
			so.addVariable("debug", window.debug_mode);
			so.addVariable("volume", this.curVolume);
    			so.addVariable("id", "no_file");
	var dthesongfile="/"+this.fileInfo[current].host+"/"+this.fileInfo[current].user+"/"+this.fileInfo[current].id+".mp3";
	var sattrs = "debug="+debug_mode+
              "&autostart=true" +
              "&enablejs=true" +
              "&javascriptid=player" +
              "&showdigits=true" +
              "&frontcolor=0xEABB00" +
"&file="+dthesongfile;
    			so.addVariable("FlashVars", sattrs);
			//for(var i in this.fileInfo[current]){
        //so.addVariable(i, this.fileInfo[current][i]);
			//}
			this.flashVer = so.installedVer.major;
			window.isValidFlash =((this.flashVer > 7) || (this.flashVer == 7 && !isOpera()));
			so.write("player" + suff + current);//container.id);
			created = true;
		}else{}
		var player = document["player" + suff] || window['player' + suff];
		return {player:player,created:created};
	},

	checkPlayer: function(id, wall){
    var res = this.getPlayer(id, wall);
		if (!window.isValidFlash) {
			var message = "Для того, чтобы воспользоваться аудиосервисом, Вам необходимо установить Flash-проигрыватель." + (window.showBox ? "<br/><br/>" : "\n\n") + "Хотите перейти на страницу установки проигрывателя?";
			var goFlash = function(){
				if (window.hideBox)
					hideBox();
				document.location = "http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash";
			};
			if (window.showBox) {
				ge("boxMessage").innerHTML = message;
				showBox(goFlash);
			}
			else {
				if (confirm(message)) {
					goFlash();
				}
			}
			return false;
		}
		return res;
	},

	iloveyou: function(id, host, user, file, dur, wall){
		if(!window.Ajax || !this.offlineHosts[host]){
			return this.doOperate(id, host, user, file, dur, wall);
		}else{
			var ajax = new Ajax();
			var _t = this;
			ajax.onDone = function(resp, text){
				if(!text || text=="ok"){
					_t.offlineHosts[host] = false;
					return _t.doOperate(id, host, user, file, dur, wall);
				}else{
					var suff = _t.getSuff(wall);
					ge("player"+suff+id).innerHTML = text;
					ge("player"+suff+id).style.display = "";
					ge("player"+suff+id).style.paddingTop = "-5px";
					ge("line"+suff+id).style.display = "none";
				}
			}
		}
		return false;
	},
	
	doOperate: function(id, host, user, file, dur, wall){
		log("operate");
		if (!this.fileInfo[id]) {
			this.fileInfo[id] = {
				"dbid": id,
				"host": host,
				"user": user,
				"id": file,
				"duration": dur
			};
		}

		var res = this.checkPlayer(id, wall);
		if (!res)	return;

		var prevWall = (this.curWallAudio != null);
		var prevAudio = (this.curAudio || this.curWallAudio);
		if (prevAudio == id && prevWall == wall) {
			if (!wall) {
				this.curPressed = true;
			}
			this.setVariable("buttonPressed", "true", wall);
			return;
		}
		if (!wall) {
			this.curPressed = false;
		}

		if (wall) {
			this.curWallAudio = id;
			this.curAudio = null;
		}
		else {
			this.curAudio = id;
			this.curWallAudio = null;
		}

		if (prevAudio) {
			this.hidePlayer(prevAudio, prevWall, prevWall != wall);

			var _t = this;
			_t.showPlayer(id, wall, res.created);
		}
		else {
			this.showPlayer(id, wall, res.created);
		}
		return false;
	},

	setVariable: function(func, value, wall){
		log("setVariable: " +[func,value,wall] .toString());
		var player = this.getPlayer(this.curAudio || this.curWallAudio, wall).player;
		var counter = 0;
		var interval = 0;
		var cycle = function(){
			try {
				if (isIE() || player.SetVariable) {
					player.SetVariable("audioPlayer_mc." + func, value);
					clearInterval(interval);
					return true;
				}
			}
			catch (e) {
				log(e.message);
			}

			if (counter++ > 3) {
				clearInterval(interval);
			}
			return false;
		};
		if (!cycle()) {
			interval = setInterval(cycle, 50);
		}
	},

	showPlayer: function(id, wall, ignoreinit){
    log(["showPlayer",id,wall,ignoreinit]);
		var suff = this.getSuff(wall);
		var player = this.getPlayer(id, wall).player;
		var mode = (window.audioEditMode) ? "editmode" : "playmode";
		if (window.audioEditMode) {
			ge("audio" + id).className = "audioEditRowPlaying";
			ge('line' + suff + id).style.display = "none";

		}else{
			
			setStyle(ge('line' + suff + id),{
			  borderTop: "0px",
			  background: "no-repeat url('images/player.gif')",
			  position: "absolute"
			});
		}

		ge("imgbutton" + suff + id).src = this.images[mode].pause;
		//this.setIcon(this.images.playicon);

		var indent = (wall) ? 236 : 300;
		//if (!ge("toddler" + suff + id)) {
		//	ge('player' + suff + id).appendChild(createElement("div", {
		//		id: "toddler" + suff + id,
		//		className: "toddler" + suff
		//	}));
		//}
		//ge("toddler" + suff + id).style.marginLeft = Math.floor(indent + this.curVolume / 100 * 35) + "px";

		ge('player' + suff + id).style.display = "";

    if(!ignoreinit){
        //this.initPlayer(id, wall);
		}
	},

	initPlayer: function(id, wall){

	var thesongfile="/"+this.fileInfo[id].host+"/"+this.fileInfo[id].user+"/"+this.fileInfo[id].id+".mp3";
	var attrs = "debug="+debug_mode+
              "&autostart=true" +
              "&enablejs=true" +
              "&javascriptid=player" +
              "&showdigits=true" +
              "&frontcolor=0x00bf79" +
"&file="+thesongfile;

	 //this.addVariable("FlashVars", attrs);
	 this.setVariable("FlashVars", attrs, wall);


	},

	hidePlayer: function(id, wall, fixOpera){
		var suff = this.getSuff(wall);
		if(!ge('player' + suff + id))return;
		this.setVariable("setState", "stop", wall);
		ge('player' + suff + id).style.display = "none";
		ge("player" + suff + id).innerHTML = "";
		if (window.audioEditMode) {
			ge("audio" + id).className = "audioEditRow";
		}
		else{
			setStyle(ge('line' + suff + id),{
				background: "none"
			})
		}
		ge('line' + suff + id).style.display = "";
		var mode = (window.audioEditMode) ? "editmode" : "playmode";
		ge("imgbutton" + suff + id).src = this.images[mode].play;
		this.setIcon(this.images.icon);

		var indent = (wall) ? 236 : 300;
		//setStyle(ge("toddler" + suff + id), {
		//	marginLeft: Math.floor(indent + this.curVolume / 100 * 35) + "px",
		//	display: ""
		//});

		return;
	},
	
	setTimeoutIE: function(func, n){
		if(isIE()){func();}
		else{setTimeout(func, n);}
	},



	stateChanged: function(id, wall, state, message){
		log("stateChanged: " +[id,wall,state,message] .toString());
		var _t = this;
		var suff = this.getSuff(wall);
		var mode = (window.audioEditMode) ? "editmode" : "playmode";
		switch (state) {
			case "stopped":
				break;
			case "created":

//				if (this.preventInit != id) {
//				this.setTimeoutIE(function(){
//						_t.initPlayer(id, wall);
//						},50);
//				}
//				else {
//          log("PREVENT");
//					this.preventInit = false;
//				}
				break;
			case "volume":
				this.curVolume = parseInt(message);
				createCookie("audio_vol", this.curVolume);
				break;
			case "init":
				ge('line' + suff + id).style.display = "none";
				//setStyle(ge("toddler" + suff + id), {
				//	display: "none"
				//});
        break;
			case "finished":
				this.setIcon(this.images.icon);
				ge("imgbutton" + suff + id).src = this.images[mode].play;
				this.setTimeoutIE(function(){
					var next = getSiblingsIds(ge("audio" + suff + id));
					if (next[1] && !wall && !window.audioEditMode) {
						ge("imgbutton" + suff + next[1]).onclick();
					}
					else {
						_t.hidePlayer(id, wall, true);
						_t.curAudio = null;
						_t.curWallAudio = null;
						var next_offset = current_offset + 50;
						if(getPageContent)getPageContent(next_offset, 1, function(){
							if(next_offset != current_offset) return;
							var next = getSiblingsIds(ge("audios").firstChild);
							if(next[1])ge("imgbutton" + suff + next[1]).onclick();
						});
					}
				}, 0);
				break;
			default:
				this.setIcon((state == "playing") ? this.images.playicon : this.images.icon);
				ge("imgbutton" + suff + id).src = (state == "playing") ? this.images[mode].pause : this.images[mode].play;
				if (window.audioEditMode && state != "playing" && this.curPressed) {
					this.setTimeoutIE(function(){
						_t.hidePlayer(id, wall, true);
						_t.curAudio = null;
						_t.curWallAudio = null;
					}, 0);
					return;
				}
				break;
		}
	}
};

function isOpera(){
	return (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
}

function isIE(){
	return (navigator.userAgent.toLowerCase().indexOf("msie") != -1);
}

function stateChanged(id, wall, state, message){
	AudioObject.stateChanged(id, wall, state, message);
}

function operateWall(id, host, user, file, dur)
{
	AudioObject.iloveyou(id, host, user, file, dur, true);
}

function iloveyou(id, host, user, file, dur){
	AudioObject.iloveyou(id, host, user, file, dur, false);
}


function flashDebug(message)
{
	log("flash debug: " + message);
}

function log(message)
{
	if(!window.debug_mode)return;
	if(!ge("debug"))document.getElementsByTagName('body')[0].appendChild(createElement("div",{id:"debug"}));
	ge("debug").innerHTML += message + "<br/>";
}


var startSiblings;

function getSiblingsIds(elem){
	var prev, next, el = elem;
	while (el.previousSibling) {
		prev = el = el.previousSibling;
		if (prev.nodeType != 3)
			break;
		prev = null;
	}
	el = elem;
	while (el.nextSibling) {
		next = el = el.nextSibling;
		if (next.nodeType != 3)
			break;
		next = null;
	}
	return [prev ? prev.id.match(/(\d+)/)[1] : 0, next ? next.id.match(/(\d+)/)[1] : 0];
}

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 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 player_DoFSCommand(command, args) {
 	eval(args);
}
function playerWall_DoFSCommand(command, args) {
 	eval(args);
}

function showLyrics(id, lid) {
  if (ge('lyrics'+id).shown != 1) {
   show(ge('lyrics'+id));
 		var ajaxLyrics = new Ajax();
 		ajaxLyrics.onDone = function(ajaxLyrics, responseText){
 			ge('lyrics'+id).innerHTML = "<div style='margin:5px 10px 15px 40px;'>"+responseText+"</div>";
    ge('lyrics'+id).shown = 1;
 		};
 		ge('lyrics'+id).innerHTML = "<div style='text-align: center; height: 50px; padding: 30px 10px 10px 10px'><img valign='middle' src='images/progress7.gif'></div>";
		} else {
   ge('lyrics'+id).innerHTML = "";
   ge('lyrics'+id).shown = 0;
   hide(ge('lyrics'+id));
		}
}

var isWindowFocused = true;

function createElement(name, attrs, styles){
  var el = document.createElement(name);
    for(attr in attrs){
      el[attr] = attrs[attr];
    }
  setStyle(el, styles);
  return el;
}

function setStyle(el, styles){
  if(el && el.style){
    for(st in styles){
      el.style[st] = styles[st];
    }
  }
}

fixOperaTimeout = 0;

if(window.addEventListener){
window.addEventListener("blur", function(){
	isWindowFocused = false;
}, false);
window.addEventListener("focus", function(){
	isWindowFocused = true;
}, false);

window.addEventListener("scroll", function(){
	if(isOpera()){
		//fix opera transparent flash - refresh page head
		clearTimeout(fixOperaTimeout);
		fixOperaTimeout = setTimeout(function(){
			head = document.getElementsByTagName("head")[0];
			head.innerHTML = head.innerHTML;
		}, 300);
	}
}, false);
}

window.debug_mode = false;