
	var fTimeout,hint_wind;
	var lyr_al = getCookieValue("lyr_al");
	var lyr_ff = getCookieValue("lyr_ff");
	var lyr_fw = getCookieValue("lyr_fw");
	var preview_vis = getCookieValue("preview_vis");
	preview_vis = (preview_vis == "false")?false:true;
	var preview_type = getCookieValue("preview_type");
	if (!preview_type) preview_type = 1;

	var click_flags = {
		"cust_widget_click":false,
		"aolim_click":false,
		"furl_click":false,
		"reddit_click":false,
		"stumb_click":false,
		"face_click":false,
		"copy_ipod_click":false,
		"copy_flash_video_click":false,
		"copy_flash_click":false,
		"copy_video_click":false,
		"copy_link_click":false,
		"copy_link2_click":false,
		"copy_embed_click":false,
		"del_click":false,
		"digg_click":false,
		"print_click":false,
		"email_click":false
	}

	onLoadFunctionList = new Array();
	function performOnLoadFunctions() {
		for (var i in onLoadFunctionList)
			onLoadFunctionList[i]();
	}

	function _offsetTop(obj) {
		var top = obj.offsetTop;
		var p = obj.offsetParent;
		while (p.tagName.toUpperCase()!="BODY") {
			top += p.offsetTop;
			p = p.offsetParent;
		}
		return top;
	}

	function _offsetLeft(obj) {
		var left = obj.offsetLeft;
		var p = obj.offsetParent;
		while (p.tagName.toUpperCase()!="BODY") {
			left += p.offsetLeft;
			p = p.offsetParent;
		}
		return left;
	}


	function load_options() {
    document.getElementById("ff_select").selectedIndex = ((lyr_ff === null) || (lyr_ff <0) || (lyr_ff >4))?3:lyr_ff;
    document.getElementById("fw_select").selectedIndex = ((lyr_fw === null) || (lyr_fw <0) || (lyr_fw >4))?2:lyr_fw;
    if ((lyr_al != "left") && (lyr_al != "center") && (lyr_al != "right")) lyr_al = "left";
    change_align(lyr_al);
    document.getElementById('songlyrics').style.fontFamily = document.getElementById("ff_select").value;
    document.getElementById('songlyrics').style.fontSize = document.getElementById("fw_select").value;
    document.getElementById('widgets').style.display = (preview_vis === true)?"block":"none";
    if (youtube_video) {
			document.getElementById('rb'+preview_type).checked = "true";
	    change_preview(preview_type);
    }
    document.getElementById('hide_link_id').innerHTML = (preview_vis === true)?'<img id="img_arr_id" src="/i/arr_u.gif" align="middle" border="0" alt="Hide preview" width="18" height="18">':'<img id="img_arr_id" src="/i/arr_d.gif" align="middle" border="0" alt="Show preview" width="18" height="18">';
    document.getElementById('save_button').src = "/i/save_bw.gif";
    document.getElementById('save_link').style.cursor = "default";
	}
	
	function hide_preview() {
    if (preview_vis === true) {
      document.getElementById('widgets').style.display = 'none';
      document.getElementById('hide_link_id').innerHTML = '<img id="img_arr_id" src="/i/arr_d.gif" align="middle" border="0" alt="Show widget preview" width="18" height="18">';
    } else {
      document.getElementById('widgets').style.display = 'block';
      document.getElementById('hide_link_id').innerHTML = '<img id="img_arr_id" src="/i/arr_u.gif" align="middle" border="0" alt="Hide widget preview" width="18" height="18">';
    }
    preview_vis = (preview_vis === true)?false:true;
    if (preview_vis === true && youtube_video) change_preview(preview_type);
    var nowDate = new Date();
    nowDate.setMonth(nowDate.getMonth() + 6);
    setCookie("preview_vis", preview_vis, "/", nowDate.toGMTString());
  }
	
	function showFormLogin(obj,y,x) {
		var login_register = document.getElementById('login_register');
//		setOpacity(login_register,0);
		document.getElementById('login_register').style.display = 'block';
		document.getElementById('login_register').style.top = _offsetTop(obj)+y+'px';
		document.getElementById('login_register').style.left = _offsetLeft(obj)-x+'px';
		/*
		for (var i=1;i<=20;i++) {
			var code = 'setTimeout("setOpacity(document.getElementById(\'login_register\'),'+(i*5)+')",'+(i*20)+');';
			eval(code);
		}
		*/
	}

	function setOpacity(obj,value) {
		obj.style.MozOpacity = value/100;
		obj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity="+value+")";
	}

	function showForm(obj, prefix) {
		document.getElementById(obj).style.display = 'block';
		if (prefix != 'yt') document.getElementById(prefix+'_cancel').focus();
		document.getElementById(prefix+'_text').focus();
	}

	function rep_change() {
		if (document.getElementById('br_text').value.replace(/[\ \n\r\t]{2,}/," ").length>3) {
			document.getElementById('br_but').disabled = false;
		}	else {
			document.getElementById('br_but').disabled = true;
		}
	}

	function DoHide() {
    hint_wind.style.display = 'none';
	}

	function copy_click(n) {
    var req = new Subsys_JsHttpRequest_Js()
  	req.onreadystatechange = function() {
  		if ((req.readyState == 4) && (req.responseJS))
        if (req.responseJS['ok']) eval("click_flags['"+n+"_click'] = true");
  	}
  	req.caching = false;
  	req.open('GET', "/code/copy_click.php", true);
    req.send({inq:n});
  }

 

  function change_align(al) {
    var al_arr = new Array('left','center','right');
    document.getElementById("songlyrics").align = al;
    for (i=0;i<3;i++) {
      if (al == al_arr[i]) {
        document.getElementById("id_"+al_arr[i]).style.borderColor = "#2E0966";
        lyr_al = al;
      } else {
        document.getElementById("id_"+al_arr[i]).style.borderColor = "#2E0966";
      }
    }
    document.getElementById("save_button").src = "/i/save.gif";
    document.getElementById('save_link').style.cursor = "pointer";
  }

  function save_options() {
    var nowDate = new Date();
    nowDate.setMonth(nowDate.getMonth() + 6);
    setCookie("lyr_al", lyr_al, "/", nowDate.toGMTString());
    setCookie("lyr_ff", document.getElementById("ff_select").selectedIndex, "/", nowDate.toGMTString());
    setCookie("lyr_fw", document.getElementById("fw_select").selectedIndex, "/", nowDate.toGMTString());
    document.getElementById('save_button').src = "/i/save_bw.gif";
    document.getElementById('save_link').style.cursor = "default";
  }

  function change_preview(n) {

  	n = parseInt(n);
  	document.getElementById('lrb'+preview_type).className = "smg";
  	document.getElementById('lrb'+n).className = "smg_u";
		if (preview_vis === true) {
	    switch (n) {
	    	case 1: {
					document.getElementById('videowidget').style.display = "block";
					document.getElementById('videowidget').style.borderBottom = "";
					document.getElementById('flashpreview').style.display = "block";
					document.getElementById('copy_flash').style.top="501px";
				} break;
	    	case 2: {
					document.getElementById('videowidget').style.display = "none";
					document.getElementById('flashpreview').style.display = "block";
					document.getElementById('copy_flash').style.top="240px";
				} break;
	    	case 3: {
					document.getElementById('videowidget').style.display = "block";
					document.getElementById('videowidget').style.borderBottom = "1px solid #1F768B";
					document.getElementById('flashpreview').style.display = "none";
					document.getElementById('copy_flash').style.top="325px";
				} break;
	    }
    }
		switch (n) {
  //  	case 1: document.getElementById('code_input').value = lv_code; break;
  //  	case 2: document.getElementById('code_input').value = l_code; break;
  //  	case 3: document.getElementById('code_input').value = v_code; break;
    }
    preview_type = n;

    var nowDate = new Date();
    nowDate.setMonth(nowDate.getMonth() + 6);
    setCookie("preview_type", preview_type, "/", nowDate.toGMTString());

  }
  
  function open_custom() {
		if (!eval("click_flags['cust_widget_click']")) copy_click('cust_widget');
		var hgt = youtube_video?610:415;
		var wdt = 730;
		var ptop = (screen.height - hgt)/2;
		var pleft = (screen.width - wdt)/2;
		window.open('/about/widget.php?song_id='+song_id,'','width='+wdt+',height='+hgt+',scrollbars=no,resizable=no,status=no,location=no,top='+ptop+',left='+pleft);
	}

	function open_email() {
		if (!eval("click_flags['email_click']")) copy_click('email');
		var hgt = 400;
		var wdt = 730;
		var ptop = (screen.height - hgt)/2;
		var pleft = (screen.width - wdt)/2;
		window.open('/mailto.php?songid='+song_id,'','width='+wdt+',height='+hgt+',scrollbars=no,resizable=no,status=no,location=no,top='+ptop+',left='+pleft);
	}

	// meanings BEGIN ->
	function gotoPage(i) {
		getUrlXMLResponse("/operations.php?a=gotoPage&songid="+song_id+"&curpage="+i,function(xmlHttpReq) {
			var html_content = getNodeValue(xmlHttpReq.responseXML.documentElement,"html_content");
			document.getElementById('usersMeanings').innerHTML = html_content;
		});
	}
	
	function vote(valuemean, meanid)
	{
		var vote,voteInt,color;
		if (!isLogged)
		{
			alert("Please, login or register to vote for the meanings");
			return;
		}
		getUrlXMLResponse("/operations.php?a=vote&songid="+song_id+"&valuemean="+valuemean+"&meanid="+meanid,function(xmlHttpReq) {
			var js_code = getNodeValue(xmlHttpReq.responseXML.documentElement,"js_code");
			if (js_code!="") {
				eval(js_code);
			}
			else
			{
				var html_content = getNodeValue(xmlHttpReq.responseXML.documentElement,"html_content");
				voteInt = parseInt(html_content);
				//alert(vote);
				color = voteInt>0?'#2474AD':'#A71212';
				vote = !voteInt?'':(voteInt>0?('+'+voteInt.toString()):voteInt);
				html_content=vote;
				document.getElementById('voteValue'+meanid).style.color = color;
				document.getElementById('voteValue'+meanid).innerHTML = html_content;
			}
		});
	}
	
	function badRep(meanid)
	{
		if (!isLogged)
		{
			alert("Please, login or register to report bad meanings");
			return;
		}
		popupWin = window.open("/operations.php?a=badrep&meanid="+meanid,'','width=500, height=300, scrollbars=no,resizable=no,status=no,location=no,top=200,left=300');
		popupWin.focus();
	}
	function strip_tags(str)
	{ return str.replace(/<\/?[^>]+>/gi, "");	}
	
	function trim(s)
	{ return rtrim(ltrim(s)); }

	function ltrim(s)
	{ return s.replace(/^\s+/, ''); }

	function rtrim(s)
	{ return s.replace(/\s+$/, ''); }
	
	function ChkInputData()
	{
		var lengthStart;
		snd = document.frmSendMean.text.value.toString();
		snd = trim(snd);
		lengthStart=snd.length;
		snd = strip_tags(snd);
		if( (snd.length!=lengthStart)&&(snd.length<50) )
		{
			alert("HTML tags aren't allowed!");
			document.frmSendMean.text.focus();
			return false;
		}
		if(snd.length < 50)
		{
			alert("Your meaning should be 50 letters at least!");
			document.frmSendMean.text.focus();
			return false;
		}
	}
	
	function str_replace(search, replace, subject)
	{ return subject.split(search).join(replace); }
	
	function GoToForm()
	{
		var retFromLogin = getCookieValue("textMeanings")?true:false;
		var retIdSong	 = getCookieValue("meaningsIdSong");
		if(song_id != retIdSong) return;
		else
		if (retFromLogin) {
			document.frmSendMean.post.focus();
			document.frmSendMean.text.value = str_replace("+", " ", getCookieValue("textMeanings"))
			setCookie('textMeanings','','/');
			setCookie('meaningsIdSong','','/');
		}
	};
	// meanings END <-
	
