if(!this.JSON){JSON={};}
(function(){function f(n){return n<10?'0'+n:n;}
if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return this.getUTCFullYear()+'-'+
f(this.getUTCMonth()+1)+'-'+
f(this.getUTCDate())+'T'+
f(this.getUTCHours())+':'+
f(this.getUTCMinutes())+':'+
f(this.getUTCSeconds())+'Z';};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}
var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}
function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}
if(typeof rep==='function'){value=rep.call(holder,key,value);}
switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}
gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null';}
v=partial.length===0?'[]':gap?'[\n'+gap+
partial.join(',\n'+gap)+'\n'+
mind+']':'['+partial.join(',')+']';gap=mind;return v;}
if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==='string'){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}
v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+
mind+'}':'{'+partial.join(',')+'}';gap=mind;return v;}}
if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' ';}}else if(typeof space==='string'){indent=space;}
rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}
return str('',{'':value});};}
if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}}
return reviver.call(holder,key,value);}
cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+
('0000'+a.charCodeAt(0).toString(16)).slice(-4);});}
if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F])/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;}
throw new SyntaxError('JSON.parse');};}})();function Config()
{
}
Config.detectSystemData=function()
{
	var usrAg=navigator.userAgent.toLowerCase();
	//get browser name
	if(usrAg.indexOf("msie")!=-1)
	{
		Config.browserName="msie";
		Config.browserVersion=parseInt(usrAg.substr(usrAg.indexOf("msie")+5,1));
	}
	else if(usrAg.indexOf("firefox")!=-1)
	{
		Config.browserName="firefox";
	}
	else if(usrAg.indexOf("safari")!=-1)
	{
		Config.browserName="safari";
	}
	else if(usrAg.indexOf("opera")!=-1)
	{
		Config.browserName="opera";
	}
	//get platform
	if(usrAg.indexOf("linux")!=-1)
	{
		Config.platform="linux";
	}
	else if(usrAg.indexOf("win")!=-1&&usrAg.indexOf("darwin")==-1)
	{
		Config.platform="windows";
	}
	else if(usrAg.indexOf("mac")!=-1)
	{
		Config.platform="mac";
	}
	
	//get the plugin that is used for playing the tracks
	if(Config.platform=="windows" || Config.platform=="mac")
	{
		
		if(Config.platform=="mac")
		{
			for(var i=0; i<navigator.plugins.length;i++)
			{				
				if(navigator.plugins[i].name.toLowerCase().indexOf("windows media")!=-1 || navigator.plugins[i].name.toLowerCase().indexOf("windowsmedia")!=-1)
				{
					Config.plugin="windows media player";
					break;
				}
			}
		}
		else
		{
			Config.plugin="windows media player";
		}
	}
	else
	{
		for(var i=0; i<navigator.plugins.length;i++)
		{
			if(navigator.plugins[i].name.toLowerCase().indexOf("real player")!=-1 || navigator.plugins[i].name.toLowerCase().indexOf("realplayer")!=-1)
			{
				Config.plugin="real player";
				break;
			}
		}
	}
}

Config.baseURL = "http://www.qloud.com/";
//Config.playerURL = "http://dev.qloud.com/ultimate_flash_player/";
//Config.playerURLENC="http%3A%2F%2Fdev.qloud.com%2Fultimate_flash_player%2Fqloud_config%2F";
Config.playerURL = "http://www.qloud.com/ultimate_flash_player/";
Config.playerURLENC="http%3A%2F%2Fwww.qloud.com%2Fultimate_flash_player%2Fqloud_config%2F";

Config.imagePath = "http://www.qloud.com/images/";
Config.apiURL = "http://www.qloud.com/api/";
Config.newbiePage = "index.php";
Config.mainPage = "index2.html"; 

// variables which are erased from the environment on every page load
Config.volatileVariables = new Array("tag","artist","track","album",
							"channel","group","user","country","level","distance_from","zipcode","level_id",
							"tag_id","artist_id","track_id","album_id","older_than","younger_than","avg_rating","gender",
							"channel_id","group_id","user_id","country_id","level_id",
							"rows_page","offset","class","edit_mode","is_friend_of","city",
							"rel_before","rel_after","label_id","showingVideoId");

Config.validSearchConditions = new Array("tag","artist","track","album",
							"channel","group","user","country","level","distance_from","zipcode","level_id",
							"tag_id","artist_id","track_id","album_id","older_than","younger_than","avg_rating","gender",
							"channel_id","group_id","user_id","country_id","level_id","is_friend_of","city","f_first_name","f_last_name","f_email",
							"rel_before","rel_after","label_id","tags","age","username","match_my_friends","release_date","playlist","others_friends");
							
Config.browserName="mozilla";
Config.platform="";
Config.plugin="none";
Config.detectSystemData();

Config.debug = 0;

Config.defaultSubTab = new Array();
Config.defaultSubTab['music']='tracks';
Config.defaultSubTab['tags']='tags';
Config.defaultSubTab['people']='users';

Config.levelArray = new Array("choose level...","Level 0","Level 1: Nuit","Level 2: Raiden","Level 3: Thor","Level 4: Xango","Level 5: Zeus");
Config.diggURL="http://www.digg.com/";
Config.showDiggImage=false;
if(typeof(console)=='undefined'){var console = {};}
if(typeof(console.log) != "function")
  console.log =  function(msg) {};
var KEY_RETURN=13;
var KEY_LEFT=37;
var KEY_UP=38;
var KEY_RIGHT=39;
var KEY_DOWN=40;

/**
 * Truncates a text if its length cannot fit in the designated space (column)
 * @param (String) str			The string to be truncated
 * @param (Number) maxLength	Column length, in "normal" (en) characters
 * @param (String) separator	The tokens separator (can be 0-length)
 */
function truncate(str, maxLength, separator) {
	// var normal = 'Iabcdeghkmnopqrsuvxyz234567890-+ ';
	var narrow = 'fijlt1\'\/,":;.';
	var wide = 'ABCDEFGHIJKLMNOPQRSTUVWXYZmw\\';
	var narrowPercent = 0.85;
	var widePercent = 1.15;
	var tokensArr = str.split(separator);
	var total = 0;
	var text = '';
	var sepLen = 0;
	// calculate length of separator
	for (var i=0; i<separator.length; ++i) {
		var current = separator.charAt(i);
		if (narrow.indexOf(current) >= 0) {
			sepLen += narrowPercent;
		} else if (wide.indexOf(current) >= 0) {
			sepLen += widePercent;
		} else {
			sepLen++;
		}
	}
	for (var index=0; index<tokensArr.length; ++index) {
		var token = tokensArr[index];
		var sum = 0;
		for (var i=0; i<token.length; ++i) {
			var current = token.charAt(i);
			if (narrow.indexOf(current) >= 0) {
				sum += narrowPercent;
			} else if (wide.indexOf(current) >= 0) {
				sum += widePercent;
			} else {
				++sum;
			}
		}
		if (total+sum+sepLen > maxLength-3) {
			return text + "...";
		} else {
			text += token + separator;
			total += sum + sepLen;
		}
	}
	return text;
}

function getTop(elem)
{
	if (elem.offsetParent)
	{
		return elem.offsetTop + getTop(elem.offsetParent);
	}
	else
	{
		return elem.offsetTop;
	}
}
function getLeft(elem)
{
	if (elem.offsetParent)
	{
		return elem.offsetLeft + getLeft(elem.offsetParent);
	}
	else
	{
		return elem.offsetLeft;
	}
}

function getLeftByNode(elem)
{
	if (elem.parentNode)
	{
		return elem.offsetLeft + getLeftByNode(elem.parentNode);
	}
	else
	{
		return elem.offsetLeft;
	}
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function centerVertically(contentRef, containerRef)
{
	var h1 = contentRef.offsetHeight;
	var h2 = containerRef.offsetHeight;
	var dh;

	if (h1 < h2) {
		dh = Math.round((h2 - h1)/2);
		contentRef.style.paddingTop = dh + "px";
	}
}

/**
 * Checks if a value is in an array
 * @param mixed The value can be of any type except undefined
 * @param object The array/object to loop through and check for the value
 * @return This function returns false if the parameters are incorrect or
 * the value is not in the array, otherwise it returns the index where the value is found
 * @example if (valueInArray(1,new Array(1,2,3,4,5))!==false) alert('Value exists in array')
 */

function valueInArray(value, arr)
{
	if (typeof(value)=='undefined')
	{
		return false;
	}
	if (typeof(arr)!='object')
	{
		return false;
	}
	for (var index in arr)
	{
		if (arr[index]==value)
		{
			return index;
		}
	}
	return false;
}

/**
 * Traces an object via Firebug's console
 * @param object
 */
function trace(object)
{
	try
	{
		console.log(object);
	}
	catch (e)
	{
		if (_e('konsole_output'))
		{
			_e('konsole_output').innerHTML+="<hr>"+object;
		}
	}
}

/**
 * Alias for _e
 * @param string id
 */
function _e(id)
{
	return document.getElementById(id);
}

/**
 * Returns the event source
 * @param object e Optional parameter
 */
function getEventSrc(e)
{
	var eSrc;
	if (!e) var e = window.event;
	if (e.target) eSrc = e.target;
	else if (e.srcElement) eSrc = e.srcElement;
	if (eSrc.nodeType == 3) // defeat Safari bug
		eSrc = eSrc.parentNode;
	return eSrc;
}

/**
 * Returns all elements which have a specific class name
 * @param string className The name of the class which all the returned elements should have
 * @param string tag If this parameter is specified only <tag> elements are returned
 * @param object parent If this parameter is specified only the <parent>'s childs are returned
 * @return array
 */
function getElementsByClassName(className,tag,parent)
{
	if (tag==undefined){tag='*';}
	if (parent==undefined) {parent=document;}
	var elems=parent.getElementsByTagName(tag);
	var ret=new Array();
	for (var i=0;i<elems.length;i++)
	{
		if (elems[i].className==className) ret[ret.length]=elems[i];
	}
	return ret;
}

/**
 * Checks if an array is empty or not empty means its length is 0. Since we use arrays
 * with non-numeric key quite a lot we can't use Array.length that so we use a little trick
 * @param object arr
 * @return boolean
 */
function arrayEmpty(arr)
{
	for (var i in arr)
	{
		return false;
	}
	return true;
}

function encodeHtmlEntities(str)
{
	if (str=='"') return "&quot;";
	if (str=="'") return "&quot;";
}

/**
*@param object 	event object
*@desc check if the enter/return key is pressed and executes a search
*	   if there is no input filed or combo box selected
*/
function checkSearchOnReturnKey(e)
{
	return;
	var elem=getEventSrc(e);
	var eSource=elem.nodeName.toLowerCase();
	if(e.keyCode==KEY_RETURN)
	{	//executes the onclick event handler of the search button
		if(SearchCauldron.getInstance().state==SearchCauldron.STATE_OPEN &&
			 (!FormLib.isTextInputControl(elem) ||
			  (FormLib.isTextInputControl(elem) && elem.value==""))
		)
		{
		 //cauldron is open OR the cursor is not in any input controll/the cursor
		 //is in any input control AND no text has been typed in the control
		 	if (Environment.getInstance().get('flyingCriteria'))
		 	{
		 		return false;
		 	}
			_e("search_button").onclick(e);
		}
		if (FormLib.isTextInputControl(elem) && elem.value!="")
		{
			//elem.blur();
		}
		//alert(elem.type);
	}
	return true;
}

/**
*@desc
*/
function getElementOnReturnKey(e)
{
	if(e.keyCode==KEY_RETURN)
	{
		return getEventSrc(e);
	}
}

/**
*@desc get the top-left & right-bottom corners absolute coordinates of the visible area from the browser's window
*@return array
*/
function getVisibleAreaCoords()
{
	var firefoxAdjustment=(Config.browserName=="msie" || Config.browserName=="safari")?0:0;//px
	var isIE=Config.browserName=="msie"?true:false;
	var ieObject=isIE?(Config.browserVersion>=7?document.documentElement:document.body):null;
	var xScroll=isIE?ieObject.scrollLeft:window.pageXOffset;
	var yScroll=isIE?ieObject.scrollTop:window.pageYOffset;
	var innerWd=isIE?ieObject.clientWidth:window.innerWidth;
	var innerHt=isIE?ieObject.clientHeight:window.innerHeight;

	return {"topX":xScroll, "topY":yScroll, "bottomX":xScroll+innerWd-firefoxAdjustment, "bottomY":yScroll+innerHt};
}


/**
 * Encode a string to base64
 * @param string input Text to encode
 */
function encode64(input) {
	var output = "";
	var chr1, chr2, chr3 = "";
	var enc1, enc2, enc3, enc4 = "";
	var i = 0;
	var keyStr = "ABCDEFGHIJKLMNOP" +
			"QRSTUVWXYZabcdef" +
			"ghijklmnopqrstuv" +
			"wxyz0123456789+/" +
			"=";
	do {
		chr1 = input.charCodeAt(i++);
		chr2 = input.charCodeAt(i++);
		chr3 = input.charCodeAt(i++);
		enc1 = chr1 >> 2;
		enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
		enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
		enc4 = chr3 & 63;
		if (isNaN(chr2)) {
			enc3 = enc4 = 64;
		} else if (isNaN(chr3)) {
			enc4 = 64;
		}
		output = output +
			keyStr.charAt(enc1) +
			keyStr.charAt(enc2) +
			keyStr.charAt(enc3) +
			keyStr.charAt(enc4);
		chr1 = chr2 = chr3 = "";
		enc1 = enc2 = enc3 = enc4 = "";
	} while (i < input.length);
	return output;
}
function populate_select_from_array(listArray,container_id,selectedValue,mode)
{
	var body_el = _e(container_id);
	var argv = arguments;
	for(var i in listArray)
	{
		var new_element = document.createElement("option");
		var sValue = "";

		switch(mode)
		{
			case 1 :
				new_element.value = i;
				sValue = i;
			break;
			case 2 :
				new_element.value = listArray[i];
				sValue = listArray[i];
			break;
			case 3 :
				new_element.value = argv[4][i];
				sValue = argv[4][i];
			break;
			case 4:  //elents are objects

				try
				{
					for(k in listArray[i])
					{
						new_element.value = k;
						new_element.innerHTML = listArray[i][k];
						if(selectedValue == k)
						{
							new_element.setAttribute("selected","true");
						}
					}
				}
				catch(err){}

				break;
			default :
				new_element.value = i;
		}
		if(mode!=4) //array of objects
		{
			new_element.innerHTML = listArray[i];
		}
		
//		trace(selectedValue+"=="+sValue);

		try
		{
			if(mode != 4)
			{
				if(selectedValue==sValue)
				{
					new_element.setAttribute("selected","true");
				}
			}
		}
		catch(err) {}
		body_el.appendChild(new_element);
	}
}


/**
*@return number
*@desc returns a unique value that is time dependent
*/
function getUniqueValue()
{
	return (new Date()).getTime();
}

/**
*return the trimed value of the string
*/
String.prototype.trim=function()
{
	var tmpval=this.replace(/^[ \n]+/,"");
	return tmpval.replace(/$[ \n]+/,"");
}

/**
 * Truncates a text if its length cannot fit in the designated space (column)
 * @param (String) str          The string to be verified
 * @return true, if string is null, 0-length or made-up of blanks; false otherwise
 */
function isEmpty(str) {
    if (str == null) return true;
    if (str == '') return true;
    if (str.trim() == '') return true;
    return false;
}
function is_empty(str) { return isEmpty(str); }

/**
*return the string with first char as capital
*/
String.prototype.firstToUpperCase = function()
{
	var trimmed = this.trim();
	var ret = trimmed.charAt(0).toUpperCase() + trimmed.substr(1,trimmed.length-1);
	return ret;
}

//returns an reffrence to the element we sould fly to
function getFlyToElement()
{
	if(ChannelEditWidget.getInstance().isEditing()==true)
	{
		return _e('edit_channel_form_criterias');
	}
	else
	{
		return _e('cauldron');
	}
}

function popupWindow(url,name,options)
{
	return window.open(url,name,options);
}



function testKeyPressOnInput(inputReff,event)
{
	if(!event) event = window.event;
	switch(event.keyCode)
	{
		case KEY_RETURN :
			inputReff.onblur();
		break;
	}

	return true;
}




function cloneArray(obj)
{
	var clone = new Array();
	for(var property in obj)
	{
		if(typeof obj[property] == "object")
		{
			clone[property] = cloneArray(obj[property]);
		}
		else
		{
			clone[property] = obj[property];
		}
	}

	return clone;
}




//Cookie manipulation functions

function CookieLib()
{
}
CookieLib.createCookie=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=/";
}

CookieLib.readCookie=function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
//	alert(ca);
	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;
}

CookieLib.eraseCookie=function eraseCookie(name) {
	CookieLib.createCookie(name,"",-1);
}


function validateInput(inputReff,ev,filter)
{
	if(!ev) ev = window.event;

	var code = 0;
	var toAdd = "";
	code = ev.keyCode>0?ev.keyCode:ev.charCode;

	if((code==8)||(code==13)||(code==9))
	{
		return true;
	}

	if(filter.indexOf("NUMERIC_ONLY")>0)
	{
		if((code>=48)&&(code<=57))
		{
			toAdd = String.fromCharCode(code);
		}
	}

	if(filter.indexOf("MAX_LENGTH")>0)
	{
		var st = filter.indexOf(":",filter.indexOf("MAX_LENGTH"));
		var end = filter.indexOf(";",filter.indexOf("MAX_LENGTH"));
		var len = parseInt(filter.substring(st+1,end));
		if(inputReff.value.length>=len)
		{
			toAdd = "";
		}
	}

	inputReff.value += "" + toAdd;

	return false;
}
/**
*@desc select the content of an DOM element
*@param object ref. to the element
*/
function selectElementContent(elRef)
{
	if(Config.browserName=="safari")return;

	var range=null;
	if(document.body && document.body.createTextRange)
	{
			range=document.body.createTextRange();
			range.moveToElementText(elRef);
			range.select();
	}else if(document.createRange())
	{
			range=document.createRange();
			range.selectNode(elRef);
	}

	if(range === null) return;
	 if(window.getSelection)
	 {
	 	var sel=window.getSelection();
		sel.addRange(range);
	 }
}

/**
 * Encode input in base64
 */
function encode64(input) {
	var output = "";
	var chr1, chr2, chr3 = "";
	var enc1, enc2, enc3, enc4 = "";
	var i = 0;
	var keyStr = "ABCDEFGHIJKLMNOP" +
			"QRSTUVWXYZabcdef" +
			"ghijklmnopqrstuv" +
			"wxyz0123456789+/" +
			"=";
	do {
		chr1 = input.charCodeAt(i++);
		chr2 = input.charCodeAt(i++);
		chr3 = input.charCodeAt(i++);
		enc1 = chr1 >> 2;
		enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
		enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
		enc4 = chr3 & 63;
		if (isNaN(chr2)) {
			enc3 = enc4 = 64;
		} else if (isNaN(chr3)) {
			enc4 = 64;
		}
		output = output +
			keyStr.charAt(enc1) +
			keyStr.charAt(enc2) +
			keyStr.charAt(enc3) +
			keyStr.charAt(enc4);
		chr1 = chr2 = chr3 = "";
		enc1 = enc2 = enc3 = enc4 = "";
	} while (i < input.length);
	return output;
}

/**
	 * Get location parameters
	 * @param {String} url	The full url
	 * @keyOfReturnValue {String} If defined returns the value of element with key keyOfReturnValue, else returns the whole parameters array as key=>value
	 */
function getLocationParams(url,keyOfReturnValue){

	// split address?params
	addr_params = url.split('?');
	sParams = addr_params[1];

	// get params as key=value
	aParams = sParams.split('&');

	// get params keys and values
	var keyValues = new Array();
	for(var i in aParams){

		var aKeyValue = aParams[i].split('=');
		keyValues[aKeyValue[0]] = aKeyValue[1];

		if((arguments[1] != undefined) && (arguments[1] == aKeyValue[0])){

			return aKeyValue[1];

		}
	}

	return keyValues;
}

function getPageDimensions()
{
	var isIE=Config.browserName=="msie"?true:false;
	var rez=new Array();
	if(isIE)
	{
		rez["wd"]=document.documentElement.clientWidth;
		rez["ht"]=document.documentElement.clientHeight;
	}
	else
	{
		rez["wd"]=window.innerWidth;
		rez["ht"]=window.innerHeight;
	}

//	rez["wd"] = 1000;
//	rez["ht"] = 700;

	return rez;
}

function urlEncode (str)
{
	var final_str = ""; 
	
	str = str.replace(/\s/g,"+");
	
	for(i=0;i<str.length;i++)
	{
		final_str += escape(str.charAt(i));
	}
	
	return final_str;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function clicktoshow(elm) {
  if (_e(elm)) _e(elm).style.display = "block";
}
function clicktohide(elm) {
  if (_e(elm)) _e(elm).style.display = "none";
}

function strId(numId) {
    try {
	    if (CookieLib.readCookie('auth_user_facebook')) return numId;
        var str = numId + '';
        while (str.length < 20) str = '0'+str;
        return str;
    } catch(err) { return numId; }
}
function fbs_click(url) 
{
	var u=url;
	var t="Share this song";
	window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
	return false;
}

function htmlEntities(str){
    var i,ch,temp='';
    for(i=0;i<str.length;i++){
        ch = str[i].charCodeAt(0);
        temp += ((ch > 47 && ch < 58) || (ch > 62 && ch < 127) 
        	? str[i] : ( "&#" + ch + ";"));
    }
    return temp;
}function Request(cReff,url){var selfobj=this;this.xmlRequestObject=null;this.urlString=url;this.callerReff=cReff;this.reqMethod="GET";this.managerIndex=null;this.rqStatus=Request.STATUS_IDLE;this.startTime=0;this.stopTime=0;this.postData="";this.setRequestMethod=function(meth){this.reqMethod=meth};this.getRequestMethod=function(){return this.reqMethod};this.setURL=function(urlS){this.urlString=urlS};this.getURL=function(){return this.urlString};this.setPostData=function(data){if(typeof(data)!='string'){var str='';for(ind in data)str+=(str.length==0?'':'&')+ind+'='+encodeURI(data[ind]);data=str;this.reqMethod="POST";}this.postData=data;};this.getURL=function(){return this.postData};this.abort=function(){if(this.getReqStatus()==Request.STATUS_BUSY){selfobj.xmlRequestObject.abort();this.setReqStatus(Request.STATUS_IDLE);if(Config.debug&&_e("loading_debug")&&_e("loading_debug_text")){if(!RequestManager.getInstance().activeRequests>0){_e("loading_debug").style.visibility="hidden"}_e("loading_debug_text").innerHTML=RequestManager.getInstance().activeRequests+" active requests"}}};this.start=function(){if(this.getReqStatus()==Request.STATUS_IDLE){this.setReqStatus(Request.STATUS_BUSY);this.getHTTPObject();if(this.reqMethod=="POST"){selfobj.xmlRequestObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");selfobj.xmlRequestObject.send(this.postData)}else{selfobj.xmlRequestObject.send(null)}RequestManager.getInstance().activeRequests++;selfobj.startTime=getUniqueValue();if(Config.debug&&_e("loading_debug")&&_e("loading_debug_text")){if(RequestManager.getInstance().activeRequests>0){_e("loading_debug").style.visibility="visible"}_e("loading_debug_text").innerHTML=RequestManager.getInstance().activeRequests+" active requests"}return true}return false};this.setReqStatus=function(status){this.rqStatus=status};this.getReqStatus=function(){return this.rqStatus};this.setManagerIndex=function(index){this.managerIndex=index};this.getManagerIndex=function(){return this.managerIndex};this.getHTTPObject=function(){if(selfobj.xmlRequestObject==null){var xmlhttp;if(typeof XMLHttpRequest!="undefined"){try{xmlhttp=new XMLHttpRequest()}catch(e){xmlhttp=false}}else{try{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}}if(!xmlhttp){alert("No XmlHttpRequest object could be found for your browser\nPlease use a fully supported browser (Firefox 1.0 or newer, IE6 or newer or Safari)")}selfobj.xmlRequestObject=xmlhttp}selfobj.xmlRequestObject.open(selfobj.reqMethod,selfobj.urlString,true);selfobj.xmlRequestObject.onreadystatechange=function(){if(selfobj.xmlRequestObject.readyState==Request.STATE_COMPLETED){selfobj.stopTime=getUniqueValue();selfobj.setReqStatus(Request.STATUS_IDLE);selfobj.callerReff.handleResponse(selfobj.getManagerIndex());RequestManager.getInstance().activeRequests--;if(RequestManager.getInstance().activeRequests==0){if(typeof RequestManager.getInstance().onAllRequestsEnd=="function"){RequestManager.getInstance().onAllRequestsEnd()}}if(Config.debug&&_e("loading_debug")&&_e("loading_debug_text")){trace(selfobj.urlString+=": "+(selfobj.stopTime-selfobj.startTime)+"ms");if(!RequestManager.getInstance().activeRequests>0){_e("loading_debug").style.visibility="hidden"}_e("loading_debug_text").innerHTML=RequestManager.getInstance().activeRequests+" active requests"}}};return xmlhttp};this.getResponseErrorCode=function(){if(selfobj.xmlRequestObject.responseText){var rsp_arr=eval("("+selfobj.xmlRequestObject.responseText+")");return rsp_arr.errorCode}return null};this.getResponseContent=function(){if(selfobj.xmlRequestObject.responseText){var rsp_arr=eval("("+selfobj.xmlRequestObject.responseText+")");return rsp_arr.content}return""}}Request.STATE_COMPLETED=4;Request.STATUS_BUSY=1;Request.STATUS_IDLE=2;function RequestManager(){this.requestQue=new Array();this.activeRequests=0;this.onAllRequestsEnd=null;this.createRequest=function(E,A,F){if(typeof F=='undefined'){var F=false;}var C=new Request(E,A);var D=this.requestQue.length;for(var B=0;B<this.requestQue.length;B++){if(!this.requestQue[B]){D=B;break;}}C.setManagerIndex(D);if(F){C.setPostData(F);}this.requestQue[D]=C;return D;};this.getRequestObj=function(A){return this.requestQue[A]};this.removeRequest=function(A){if(this.getRequestObj(A)){this.getRequestObj(A).abort();this.requestQue[A]=null}};this.startRequest=function(A){if(this.getRequestObj(A)){this.getRequestObj(A).start();return true}return false};this.abortRequest=function(A){if(this.getRequestObj(A)){this.getRequestObj(A).abort();return true}return false}}RequestManager.__instance__=null;RequestManager.getInstance=function(){if(RequestManager.__instance__==null){this.__instance__=new RequestManager()}return this.__instance__};function SearchManagerController()
{
	this.reqWidgetQueue= new Array();//queue with the widgets that made a request through this controller object
	var validParams = Config.validSearchConditions.concat((new Array("rows_page","offset")));
	var self=this;
	
	//aici tinem playlisturile ca sa nu le aducem de fiecare data
	this.playlistList = null;
	
	/**
	 * @param The manager index of the request 
	 * @desc This method is a handler for the completition of one request
	 */
	this.handleResponse=function (managerIndex)
	{		
		if(SearchManagerView.getInstance())
		{
		}

		var errorCode = RequestManager.getInstance().getRequestObj (managerIndex).getResponseErrorCode();
		var content = RequestManager.getInstance().getRequestObj (managerIndex).getResponseContent();
		var rtext = eval('('+RequestManager.getInstance().getRequestObj (managerIndex).xmlRequestObject['responseText']+')');
		switch(errorCode)
		{
			case 0 :
			   if (SearchManagerView.getInstance().currentPage == 'now_playing') {
			       SearchManagerView.getInstance().setFreshTracks(content);
			   } else {
				   SearchManagerView.getInstance().generateTrackList(content);
			   }	
			break;
			case 2 :
				SearchManagerView.getInstance().notify(content);//notify the widget 
			break;
			//set the buy link
			case 3 :
				SearchManagerView.getInstance().setBuyLink (content);
			break;
			//playing track data received
			case 4 :
				SearchManagerView.getInstance().setSomeTrackData(content);//notify the widget 
			break;
			case 5 :
				this.playlistList = content;
				SearchManagerView.getInstance().populatePlayListSelect(content);
			break;
			case 6 :
				SearchManagerView.getInstance().showPopup("<b class='w_title'>&nbsp;&nbsp;Success!</b><div class='desc'>Your playlist has been updated.</div><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' style='color: #ffffff;' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>",_e("add_to_playlist_main"),"left");
			break;
			case 7 :
				SearchManagerView.getInstance().showPopup("<b class='w_title'>&nbsp;&nbsp;Success!</b><div class='desc'>"+content+"</div><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' style='color: #ffffff;' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>",SearchManagerView.getInstance().addToLibReff,SearchManagerView.getInstance().addToLibReff==_e("add_to_library_link")||SearchManagerView.getInstance().currentPage=='friends_extended'?"left":"right");
			break;
			case 8 :
                 SearchManagerView.getInstance().do_search_library(); 
			break;
			case 12 :
				SearchManagerView.getInstance().showPopup("<b class='w_title'>&nbsp;&nbsp;Success!</b><div class='desc'>"+content+"</div><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' style='color: #ffffff;' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>",SearchManagerView.getInstance().addToLibReff,"right");
			break;	
			case 13 :
				SearchManagerView.getInstance().showPopup("<div class='desc'>"+content+"</div><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' style='color: #ffffff;' href='"+SearchManagerView.getInstance().myspace_app_url+"&appParams="+encodeURIComponent('{"page":"profile_edit"}')+"' target='_top'><img border=0 src='"+Config.baseURL+"images/library/popup_edit_button.gif' /></a><a class='a_button_new' style='color: #ffffff;' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/popup_nevermind_button.gif' /></a>",SearchManagerView.getInstance().addToLibReff,"right");
			break;	
			case 15 :
				SearchManagerView.getInstance().setOnTour(content);
			break;
			case 20 :
				SearchManagerView.getInstance().otherRecordingsList(content,rtext['track_id']);
			break;
			case 21 :
			
				SearchManagerView.getInstance().otherRecordingsList(rtext['other_recordings'],rtext['track_id'],rtext['recording_id'], true);
			break;
			case 22 :
			   if (typeof(rtext['content']['error_message']) !="undefined")  {
			       var msg = "<b class='w_title'>&nbsp;&nbsp;Error!</b><div class='desc'>"+rtext['content']['error_message'][0]+"</div><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' style='color: #ffffff;' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>";
			   } 
			   
			   else {
				SearchManagerView.getInstance().otherRecordingsList(rtext['other_recordings'],rtext['track_id'],null, true);
				var msg = "<b class='w_title'>&nbsp;&nbsp;Success!</b><div class='desc'>Recording was succefully added to Other recordings list </div><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' style='color: #ffffff;' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>";
			     _e('saveFavoriteURL').value = "";
			   }
			   SearchManagerView.getInstance().showPopup(msg ,_e('saveFavoriteURL'),"left");
				
			break;
			case 23 :
				
			break;
			//save user settings
			case 25 :
			break; 
			//get related artist
			case 26: 
			      SearchManagerView.getInstance().relatedArtistList(content);
			break;
			
			case 27:
                 SearchManagerView.getInstance().setTempTrackData(content);
            break;
            case 28:
                 SearchManagerView.getInstance().setTempArtistsData(content);
            break;  	
            case 29:
                 window.open("http://twitter.com/home?status=This+music+video+is+great+"+content);
            break;
            case 60:
                 SearchManagerView.getInstance().setFacebookTrackWall(content);
                 break;
            case 62:
		        _e('comment_submit_form').style.display = 'none';
		        _e('comment_message').value = '';
		        if (content.track_id) {
	                _e('div-1213357741662').innerHTML = '';
	                self.getFacebookTrackWall(content.track_id);
	            } else {
	               _e('track_comments').style.display = '';
	            }
                break;
			case 108:
				SearchManagerView.getInstance().refreshSongOfTheMoment(content);
				break;
			default :
			break;
		}
	}
	
	/**
	 * @param object widget object
	 * @param array parameters of the request	
	 * @desc this method registers a widget with the controller object 
	 * @return number The index of the widget
	 */
	 
	this.getBuyLink=function(widget,trackId)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=get_buy_link&track_id="+trackId+"&use_format=json");
		self.reqWidgetQueue[rqid]=widget;
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	this.doSearch = function (search_key,params) {
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=do_search&search_key="+search_key+params+"&use_format=json");
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}	
	
	this.getTracks=function(widget,qryStr)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=getTracks"+qryStr + "&use_format=json");
		self.reqWidgetQueue[rqid]=widget;
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	
	/**
	 * @param the index of the request 
	 * @desc Remove widget from the queue
	 */
	this.removeWidget=function (managerIndex)
	{
		RequestManager.getInstance().removeRequest(managerIndex);		
		SearchManagerView.getInstance()=null;
	}
	
	this.deleteTracks = function (track_ids)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=deleteTracks&track_ids="+track_ids +SearchManagerView.getInstance().get_memcache_key()+ "&use_format=json");
		
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	//error code
	this.getTrackData = function (track_id,artist_id)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=getTrackData&artist_id="+artist_id+"&track_id="+track_id + "&use_format=json");

		
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	
	}
	
	this.addToPlaylist = function (playlist_id,track_ids)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=addToPlaylist&channel_id="+playlist_id+"&track_ids="+track_ids);
		
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	
	this.addToLibrary = function (track_ids)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=addToLibrary&track_ids="+track_ids + "&use_format=json");
		
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	
	this.getPlaylistList = function ()
	{
		if(this.playlistList != null)
		{
			SearchManagerView.getInstance().populatePlayListSelect(this.playlistList);
		}
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=getPlaylistList");
		
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
/*	this.getBuyLink =function(widget,trackId)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+SearchManagerController.SERVER_DIR+"/my_library_view.php?action=getBuyLink&track_id="+trackId);
		self.reqWidgetQueue[rqid]=widget;
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}*/
	
	this.addToFavorites = function (track_ids)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=add_to_favorites_reloaded&use_format=json&add_track="+track_ids);
		
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	
	this.isOnTour = function(artistId)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=is_ontour&use_format=json&artist_id=" + artistId);
		
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	//errorcode: 20
	this.getOtherRecordings = function(track_id)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=getOtherRecordings&track_id="+track_id+"&use_format=json");
		
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	//errorcode: 21
	this.voteRecording = function(objRef,recording_id, track_id)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=voteOtherRecording&track_id="+track_id+"&recording_id="+recording_id+"&use_format=json");
		
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	//errorcode: 22
	this.saveFavoriteURL = function(favURL, track_id)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=saveFavoriteURL&use_format=json&track_id="+track_id+"&the_url="+encodeURIComponent(favURL));
		
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	//errorcode: 23
	this.sendDeleteRecordingMessage = function(therec,theid,thetype)
	{
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=emailDeleteRecording&use_format=json&track_id="+theid+"&recording_id="+therec+"&type="+thetype);
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	//errorCode: 24
	this.getGivePointsURL = function () {
         var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=give_points_url&use_format=json");
         RequestManager.getInstance().startRequest(rqid);
		 return rqid;
	}
	//errorCode: 25
	this.saveUserSettings = function (user_settings) {
         var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=save_user_settings&settings="+user_settings+"&use_format=json");
         RequestManager.getInstance().startRequest(rqid);
		 return rqid;
	}
	//errorCode: 26
	this.getRelatedArtists = function (artist_id) {
	    SearchManagerView.getInstance().artistId = artist_id;
         var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=get_related_artists&artist_id="+artist_id+"&use_format=json");
         RequestManager.getInstance().startRequest(rqid);
		 return rqid;
	}
   //errorCode: 27
	this.getTrackDataDetailsByTrackId = function (track_id) {
         var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=getTrackDataDetailsByTrackId&track_id="+track_id+"&use_format=json");
         RequestManager.getInstance().startRequest(rqid);
		 return rqid;
	}
	//errorCode: 28
	this.getArtistsDataDetails = function (artist_ids) {
         var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=getArtistsDataDetails&artist_ids="+artist_ids+"&use_format=json");
         RequestManager.getInstance().startRequest(rqid);
		 return rqid;
	}
	//errorCode: 29
	this.postTwitter=function (track_id) {
	 var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=getTwitterLink&track_id="+track_id+"&use_format=json");
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}
	//errorCode: 31
	this.publishPlaySong=function (track_id) {
	 var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=publish_feed_first_play&track_id="+track_id+"&use_format=json");
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}

	//errorCode:60
    this.getFacebookTrackWall=function(track_id) {
     var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?action=get_song_wall_posts&limit=2&track_id="+track_id+"&use_format=json");
        RequestManager.getInstance().startRequest(rqid);
        return rqid;
    }

    //errorCode:62
    this.postFacebookTrackWall=function(track_id, message) {
     var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?use_format=json&action=post_to_song_wall&track_id="+track_id+"&text_message="+message);
        RequestManager.getInstance().startRequest(rqid);
        return rqid;
    }

    //errorCode:108
    this.saveSongOfTheMoment=function(track_id,later) {
		var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?module=main&use_format=json&action=sotm_set&track_id="+track_id+(later ? '&later=true' : ''));
        RequestManager.getInstance().startRequest(rqid);
        return rqid;
    }
    
}

SearchManagerController.SERVER_DIR = "";

SearchManagerController.__instance__=null;

SearchManagerController.getInstance=function()
{
	if(SearchManagerController.__instance__==null)
	{
		SearchManagerController.__instance__=new SearchManagerController();
	}
	return SearchManagerController.__instance__;
}/*
 * Created on 27.05.2008
 * Robert Damoc robert@reea.net
 *
 */
 var jsListObject = null;
 var fromNowPlay = false;
 var tempData = '';
 
 
function SearchManagerView()
{
	var self=this;
	var managerIndex=null; // the index in the corespondent controller object
	var videoPlayerRef=null;
	
	this.sortOrder= 'DESC';
	this.currentSort= '';
	this.sortCols= new Array ('track','artist','most_played');
	
	
	this.playingTrackId = null;
	
	var currentPlayNowContainer = null;
	var playingRowIndex = null;
	var selectedPopularTrack = null;
	this.oldClassName = null;
	
	var popularTracksList = new Array();
	if (_e("main_table")) {
	     this.inittReff = _e("main_table").cloneNode(true);
	}
	this.nowIPlay = false;
	this.playFromPopular = false;
	
	this.addToLibReff;
	this.searchKey = null;
	this.pagination = null;
	this.isFromNowPlay= true;
    this.extraSearch = false;
    
    this.otherRecordings = null;
	this.playingRecordingId = null;
	this.votePopular = false;
	this.origPlayingTrackId = null;
	this.lastSelectedRowId = null;   //for shift+click feature
	this.currentPage = null;
	this.siteId = '12387766892866170194';
	this.tempTrackData = null;
    this.vote_type = '';
    if(_e("player")){ 
    	this.player_content=_e("player").innerHTML;
    }
    if(_e("vote_player")){ 
    	this.vote_player_content=_e("vote_player").innerHTML;
    }
    this.setRecordFirstPlayed = function (track_id) {
          CookieLib.createCookie("first_played",track_id+"");
     }
    //fist played track
    this.getRecordFirstPlayed = function () {
          return this.checkCookie("first_played");
    }
  
    this.deleteRecordingDialogContent='';
    	
    
    //user log state
    this.isLoggedIn = function () {
         trace('logged users ' + CookieLib.readCookie("_ps_auth"+this.siteId));
         return this.checkCookie("_ps_auth"+this.siteId)?true:false;
    }
    this.isFirstTime = function () {
         return this.checkCookie("new_user")=="true"?true:false;
    }
    
    this.checkCookie = function (cookie_name) {
         var cookie = CookieLib.readCookie(cookie_name);
          if (cookie == null || cookie == 'undefined' || cookie == '' ) return false;
          return cookie;   
    }
    
    this.checkFirstPlayPublishFeed = function (tData)
    { 
        if (this.getRecordFirstPlayed()  == 0) {
            this.publishFeed('first_play', tData);
            SearchManagerController.getInstance().publishPlaySong(tData.track_id);    
            this.setRecordFirstPlayed(tData.track_id);
        }
    }
    this.publishFeed = function (type,tData) {
        //feeds are publishing only to registered users
         
        if (typeof(tData) == 'string') {
            
        }
        trace('logged users '+ this.isLoggedIn());
        if (!this.isLoggedIn()) {
            trace('User Must to be auth!!!');
             return;
        }     
        var body = '';
        var link = '';
        var title = '';
        
        switch(type) {
           case 'first_play':
            //I listened to a song on Qloud: [Song name] by [Artist name]
            //<a href=\"javascript:void(0);\"  onclick=\"openContextPlayer("+tData.track_id+",this);return false;\"><img id=\"img_track_"+tData.track_id+"\" src=\""+Config.baseURL +  "images/library/play_button2.gif\" /></a>
               title = "I listened to a song on Qloud  <a href=\""+Config.baseURL+tData.embed_url+"\" target=\"_blank\" > "+ tData.track + "</a> by " ;
               title += "<a href=\"http://www.qloud.com/"+tData.embed_artist_url+"\" target=\"_blank\" > "+ tData.artist + "</a>";
              
             break;
            case 'vote': 
            //Votes other recordings
            //  I voted for my favorite version of a song on Qloud [Song name] by [Artist name] 
               title = "I voted for my favorite version of a song on Qloud <a href=\"http://www.qloud.com/"+tData.embed_url+"\" target=\"_blank\" >"+ tData.track + "</a> by " ;
               title += "<a href=\"http://www.qloud.com/"+tData.embed_artist_url+"\" target=\"_blank\" >"+ tData.artist + "</a>";
            break;             
            case 'add_to_library': 
            //I added a song to my library on Qloud [Song name] by [Artist name]      - single song
            //I added some songs to my library on Qloud [Song name] by [Artist name] [Song name] by [Artist name] [Song name] by [Artist name] [Song name] by [Artist name] [Song name] by [Artist name]  
               title = "I added a song to my library on Qloud <a href=\"http://www.qloud.com/"+tData.embed_url+"\" target=\"_blank\" >"+ tData.track + "</a> by " ;
               title += "<a href=\"http://www.qloud.com/"+tData.embed_artist_url+"\" target=\"_blank\" >"+ tData.artist + "</a>";
            break;   
           case 'add_related_artist':
            //Add a Related Artist 
            //I added a related artist on Qloud I suggested that [artist name] is related to [artist name].
              title = "I added a related artist on Qloud I suggested that <a href=\"http://www.qloud.com/"+tData[0].embed_artist_url+"\" target=\"_blank\" >"+ tData[0].artist_name + "</a> is related to " ;
              title += "<a href=\"http://www.qloud.com/"+tData[1].embed_artist_url+"\" target=\"_blank\" >"+ tData[1].artist_name + "</a>";
            break;  
            case 'vote_related_artist':
            //Vote a Related Artist 
            //I voted for a related artist on Qloud I voted that [artist name] is related to [artist name].
              title = "I voted for a related artist on Qloud I voted that <a href=\"http://www.qloud.com/"+tData[0].embed_artist_url+"\" target=\"_blank\" >"+ tData[0].artist_name + "</a> is related to " ;
              title += "<a href=\"http://www.qloud.com/"+tData[1].embed_artist_url+"\" target=\"_blank\" >"+ tData[1].artist_name + "</a>";
            break;
             case 'first_time':
                title = "I started a music library on <a href=\"http://www.qloud.com/\"target=\"_blank\" >Qloud</a>.";
                body  = "Play music for free and check out what <a href=\"http://www.qloud.com/index.php?page=friends\" target=\"_blank\" >people</a> are listening to on <a href=\"http://www.qloud.com/\"target=\"_blank\" >Qloud</a>."; 
             break;
            //I shared a [song/album/artist] from Qloud [song and artist name/album name/artist name] 
             case 'share_song':
               title = "I shared a song on Qloud  <a href=\""+Config.baseURL+tData.embed_url+"\" target=\"_blank\" > "+ tData.track + "</a> by " ;
               title += "<a href=\"http://www.qloud.com/"+tData.embed_artist_url+"\" target=\"_blank\" > "+ tData.artist + "</a>";
             break;     
             case 'share_artist':
               title = "I shared an artist on Qloud <a href=\"http://www.qloud.com/"+tData.embed_artist_url+"\" target=\"_blank\" > "+ tData.artist + "</a>";
             break;
             case 'share_album':
               title = "I shared a album on Qloud  <a href=\""+Config.baseURL+tData.embed_album_url+"\" target=\"_blank\" > "+ tData.album_name + "</a> by " ;
               title += "<a href=\"http://www.qloud.com/"+tData.embed_artist_url+"\" target=\"_blank\" > "+ tData.artist + "</a>";
             break;
             case 'share_playlist':
               title = "I shared a playlist on Qloud  <a href=\""+Config.baseURL+tData.embed_playlist_url+"\" target=\"_parent\" > "+ tData.playlist_name + "</a> " ;
             break;
             case 'update_status_song':
               title = "My song of the moment on Qloud is  <a href=\""+tData.track_link+"\" target=\"_parent\" > "+ tData.track + "</a> by <a href=\""+tData.artist_link+"\" target=\"_parent\" > "+ tData.artist + "</a> " ;
             break;
            default:
                trace("unknow type: "+type);  
                return;
            break; 
        }
        if (typeof(user_options) != 'undefined') {
            user_options['feeds'] = {};
            user_options['feeds']['title'] = title;
            user_options['feeds']['body']  = body;
            user_options['feeds']['url']   = Config.baseURL ;
            
		     google.friendconnect.container.renderOpenSocialGadget(
		     { id: '1213694897406',  site: '12387766892866170194', url: 'http://www.qloud.com/qloud.xml', 'view-params': user_options });
		     //reset feeds after publish
		     user_options['feeds'] = {};
        } else {
            trace ("user_options is undefined");
        }
        
        //trace ("to publish "+title+ "\n" + body); 
    }
    
    this.getTempTrackData = function (track_id) {
        SearchManagerController.getInstance().getTrackDataDetailsByTrackId(track_id);
    }
    this.setTempTrackData = function (val) {
        trace(val);
        this.tempTrackData = val;
    }
    
    this.getTempAristsData = function (artist_ids,type) {
        SearchManagerController.getInstance().getArtistsDataDetails(artist_ids);
        this.vote_type = type;
    }
    this.setTempArtistsData = function (val) {
        trace(val);
        this.publishFeed(this.vote_type,val);
        
    }   

	
	  this.showLoginConfirm = function (objReff, msg){
	      	if (!this.isLoggedIn()) {
	          if (!msg) {
	            // var msg = "<b class='w_title'>&nbsp;&nbsp;Login required</b><div class='desc'>You must to be Sign In to perform this action.<br /> To Sign In click on button 'Sign In' from top of page. </div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()' style='color:#ffffff;'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>";   
	           var msg = '<div id="no_result" style="padding-top:5px;padding-bottom:5px;color:#656565;text-align:center;"><strong> Sign in above in order to performe this action. </strong></div>';   
	      
	          }
	  		 // this.showPopup(msg,objReff,this.addToLibReff == objReff?"left":"right");
	  		  this.showPopupNew(msg,objReff);
			  return true;
	    	}
	     return false; 
	  }
    this.do_search = function (prm) {
      toggleGlobalPreloader(true);
      try {
      
      	this.searchKey = _e('search_key').value;
      	if (this.searchKey == 'Search for a song or artist to listen to') {
      	    this.searchKey = '';
      	}
      	this.pausePlayer();
        switch (this.currentPage) {
            case 'search':
            case 'libray' : 
            case 'now_playing':
               if (_e('search_loader')) { 
      	           _e('search_loader').innerHTML = '<img src="' + Config.baseURL+ 'images/library/loading.gif" border="0" />';	
      	           _e('search_loader').style.display = "block";
      	        }
      	        _e('user-message').style.display = "none";
      	      	_e('no_results').innerHTML = "";
      	        _e('no_results').style.display = "none";
      	        _e('library').style.display = "none";                 
            default:
                
                do_quick_search(this.searchKey?this.searchKey:'');
                return;
            break;
        }      	
      // SearchManagerController.getInstance().doSearch(escape(this.searchKey),prm?prm:'');
      } catch (e) {
          trace(e);
      }	
  }
  this.do_search_library = function () {
      toggleGlobalPreloader(true);
      try {
      this.pausePlayer();
      	this.searchKey = _e('library_search_key').value;
      	if (this.searchKey == 'Search your library') {
      	    this.searchKey = '';
      	}
      	_e('search_loader').innerHTML = '<img src="' + Config.baseURL+ 'images/library/loading.gif" border="0" />';	
      	_e('search_loader').style.display = "block";
      	_e('user-message').style.display = "none";
      	_e('search_keyword').style.display = "none";
      	
      	_e('no_results').innerHTML = "";
      	_e('no_results').style.display = "none";
      	_e('library').style.display = "none";
  		toggleSelect(_e('select_all'),'none');
      	var id=_e('quid').value;
      	if(_e('friend_id').value!=0)
      	{
      		id=_e('friend_id').value;
      	}
      	SearchManagerController.getInstance().doSearch(escape(this.searchKey),"&sort="+this.currentSort+"&sort_order="+this.sortOrder+"&user_id="+id);
      } catch (e) {
          
      }	
  }
	this.getBuyLink = function (track_id,isNowPlay,isPopular){
	    this.isFromNowPlay= isNowPlay;
	    var tData = null; 
	    if (isPopular) {
	      tData = this.getPopularData(track_id);
	    } else {
	      tData = this.getTrackDataByTrackId(track_id,initialTracksList);   
	    }
	    this.setBuyLink(this.generateBuyLink(tData));
	}
	this.generateBuyLink = function (tData) {
	    var the_url="http://www.amazon.com/s/ref=nb_ss_dmusic/?tag=buzznet08-20&url=search-alias%3Ddigital-music&field-keywords=";
	    the_url += this.extra_escape(tData['artist']) + '+' + this.extra_escape(tData['track']);
	    return the_url;
	}
	this.extra_escape = function (tData) {
	    var escaped_data = '';
	    try
			{
				escaped_data = tData.split('\x2B');
				escaped_data = escaped_data.join('%2B');
			} catch (e){}
		try
			{
				escaped_data = tData.split('\x20');
				escaped_data = escaped_data.join('+');
			} catch (e){}
		return escaped_data;		
	}
	this.setBuyLink = function (content) {
	    
	    if (this.isFromNowPlay) {
	       _e("crtBuyButton").href = content;
	       _e("crtBuyButton_txt").href = content;
	      if(_e("crtBuyButton_voted")) {_e("crtBuyButton_voted").href = content;}
	    }
	    else {
	        var w = window.open(content); return false;
	    }
	}
	
	this.set_memcache_key = function (val) {
	   this.memcache_key = val;
	}
	
	this.get_memcache_key = function () {
	   if (this.memcache_key){
	     return '&memcache_key='+this.memcache_key;
	   }
	   return '';    
	}
	this.getWidgetDomElement=function() 
	{
		var wdDOMel=document.createElement('div');
		wdDOMel.innerHTML=self.htmlCode;
		return wdDOMel;
	}
	
	this.setDOMReference=function (refNode)		
	{					
		self.DOMNodeReference=refNode;
		//set the index from the corespondant controller queue
		managerIndex=FBPlayerController.getInstance().register(self);
	}
	
	this.getDOMReference = function ()
	{
		return self.DOMNodeReference;
	}

	this.notify = function (result)
	{			
		
	}
	this.init = function ()
	{	
		if (this.isFirstTime()) {
		    setTimeout('SearchManagerView.getInstance().publishFeed("first_time","")',"10000");
		}
		try {
		    if (typeof(initialTracksList) == 'undefined') return '';
		} catch (e) {
		    trace(e);
		    return '';
		}   
		this.generateTrackList(initialTracksList);
		this.sortOrder = "DESC";
		this.currentSort = "most_played";
		if (playFirst == 1)
			this.doPlay(initialTracksList[0].track_id);
		if (this.currentPage == 'library') {
	          this.sortCols.push('recent_played'); 
	          this.currentSort  =  "recent_played"; 
	     } 
	    if (this.currentPage == 'now_playing') {
	        _e('ML_most_played').innerHTML = 'Last played';
	    }
	     
	}
	
	this.generateTrackList = function (trackList)
	{
	 
	_e('search_loader').innerHTML = '';
	_e('search_loader').style.display = "none";
      
 //TODO: drink coke
	switch (this.currentPage) {
	    case 'search':
	           if (trackList.response == 'no data to display') {
            	    _e('no_results').innerHTML = 'No result matches for "<strong>'+this.searchKey+'</strong>"';
            	    _e('no_results').style.display = "block";
            	    return;
            	} else {
            	     if (this.searchKey != '' && this.searchKey != null) {
            	        _e('search_keyword').innerHTML = 'Displaying songs with the keyword "<strong>'+this.searchKey+'</strong>"';
            	        _e('search_keyword').style.display = "block";
            	     }  else {
            	         if (_e('user-message')) {
                    	    _e('user-message').style.display = "block";
                    	}
            	     }
            	}
	    break;
	    case 'library':
	         
	         if (trackList.response == 'no data to display') {
                 _e('no_results').style.display = "block";
                 if (this.searchKey == null || this.searchKey.length < 1 && this.isLoggedIn()) {
                    _e('no_results').innerHTML = ' You have no songs in your personal library.<br /> You can add songs.... Or, check out what other users are <a href="http://www.qloud.com/index.php?page=now_playing" style="text-decoration:none;"><b>Now Playing</b></a>';
                     
                 }   else { 
            	    if (this.isLoggedIn()) {
            	       _e('no_results').innerHTML = 'No result matches for "<strong>'+this.searchKey+'</strong>"'+"<br /> <a href='javascript:void(0)' onclick=\"_e('library_search_key').value='Search your library'; SearchManagerView.getInstance().searchKey = null; SearchManagerView.getInstance().do_search_library();return false;\" style=\"text-decoration:none;color:#425892;\">Back to your full library</a>.";
               	    } else {
            	       _e('no_results').innerHTML = '<strong>Sign in above in order to see your library.</strong>';
            	       _e('no_results').style.paddingTop = "100px";
            	       _e('no_results').style.paddingBottom = "100px";
            	       _e('no_results').style.fontSize = "18px";  
            	    }   
            	       _e('no_results').style.display = "block";
                 }
                 return ; 
            	} else {
            	     if (this.searchKey != '' && this.searchKey != null) {
            	        _e('search_keyword').innerHTML = 'Displaying songs with the keyword "<strong>'+this.searchKey+'</strong>"';
            	          _e('search_keyword').innerHTML += ". <a href='javascript:void(0)' onclick=\"_e('library_search_key').value='Search your library'; SearchManagerView.getInstance().searchKey = null; SearchManagerView.getInstance().do_search_library();return false;\" style=\"text-decoration:none;color:#425892;\">Back to your full library</a>.";   
            	        _e('search_keyword').style.display = "block";
            	     } else {
            	         if (_e('user-message')) {
                    	    _e('user-message').style.display = "block";
                    	}
            	     } 
            	     
            	}
	    
	    default:
	     
	    break;
	    
	}
	this.searchKey = '';
	
	
	_e('library').style.display = "block";
	initialTracksList = trackList;		
	cont = 0;
		this.closePlayer();
		this.emptyTrackList();
		for(i in trackList)
		{
		
			if (i == 'pagination'){ 
                this.pagination = this.paginate(trackList[i]);
			    if (this.pagination) {
			      _e('page_box').innerHTML = this.pagination;
			      _e('page_box2').innerHTML = this.pagination;
			    }
            }
			else {
				if (this.currentPage=='library') {
	  		        this.addTrackLibrary(trackList[i],cont);    
				} else {
     				this.addTrack(trackList[i],cont);
				}
				
				cont++;
			}
			
		}
		
	}
	this.setNoResults = function () {
	    
	}
	
	this.closePlayer = function ()
	{		
		
		if (this.playingRowIndex==null || !_e("main_table")) return;
			var tReff = _e("main_table");
			document.body.appendChild(_e("playing_now_main"));
			if(_e("vote_playing_now_main")){
				document.body.appendChild(_e("vote_playing_now_main"));
				_e("vote_playing_now_main").style.marginLeft="-900px";
				_e("vote_playing_now_main").style.display="none";
			}
			_e("playing_now_main").style.marginLeft="-900px";		
			_e("playing_now_main").style.display="none";			
			tReff.deleteRow(this.playingRowIndex-1);
			this.playingRowIndex         = null;
			this.currentPlayNowContainer = null;						
			videoPlayerRef = null;
			
			var argv = arguments;
			try {
    			var tmp=_e("actionContainer_"+this.playingTrackId);
    			var clsname=tmp.className;
    			tmp.className="test";
    			tmp.className=clsname;
			} catch (e) {}
			if(argv.length==1 || argv[0]==true)
			{				
				return false;
			}
			this.redrawTable();		
	}	
	this.closePlayerSongMoment = function ()
	{		
		nowPlayingTrackID='';
		if (this.playingRowIndex==null || !_e("main_table")) return;
			var tReff = _e("main_table");
			document.body.appendChild(_e("playing_now_main"));
			_e("playing_now_main").style.marginLeft="-900px";		
			_e("playing_now_main").style.display="none";			
			tReff.deleteRow(this.playingRowIndex-1);
			this.playingRowIndex         = null;
			this.currentPlayNowContainer = null;						
			videoPlayerRef = null;	
			FriendsEx.getInstance().buildFeedsTable(initialTracksList);			
	}	
	
	this.pausePlayer = function()
	{
		try {
			var videoPlayerRef=_e("playingNowVideo"+(Config.browserName=="firefox"?"_embed":""));
			if(!videoPlayerRef)	{ return; }
			videoPlayerRef.pauseTrack();
		} catch (e) { trace("PausePlayer: " + e); }
	}
	this.resumePlay = function()
	{
		try {
			var videoPlayerRef=_e("playingNowVideo"+(Config.browserName=="firefox"?"_embed":""));
			if(!videoPlayerRef)	{ return; }
			videoPlayerRef.resumeTrack();
		} catch (e) { trace("resumePlayer: " + e); }
	}
	this.pausePlayerVote = function()
	{
		try {
			var videoPlayerRef=_e("playingNowVideoVote"+(Config.browserName=="firefox"?"_embed":""));
			if(!videoPlayerRef)	{ return; }
			videoPlayerRef.pauseTrack();
		} catch (e) { trace("PausePlayer: " + e); }
	}
	this.pausePlayerRef = function(playerRef)
	{
		try {
			var videoPlayerRef = _e(playerRef+(Config.browserName=="firefox"?"_embed":""));
			if(!videoPlayerRef)	{ return; }
			videoPlayerRef.pauseTrack();
		} catch (e) { trace("PausePlayerRef: " + e); }

	}
	
	this.removeTrack = function (track_id)
	{
		this.hidePopup();
		if (null==track_id || typeof track_id == 'undefined') return false;
		var tReff = _e("main_table");
		if (track_id==-1){
		    track_id=this.currentTrackId;
		    this.closePlayer();
		}		
		if(this.nowIPlay)
		{
			this.closePlayer();			
		}
		var del_row = this.getRowIndexByReff(this.inittReff,_e(track_id));
		tReff.deleteRow(del_row);		
		// call api for delete for next view
		SearchManagerController.getInstance().deleteTracks(track_id);
	}
	
	this.showRemoveTrackConfirm = function (track_id,objReff)
	{
		if (this.showLoginConfirm(objReff)) return;
		var tData = this.getTrackDataByTrackId(track_id,initialTracksList);
		var msg = "<b class='w_title'>&nbsp;&nbsp;Are you sure you want to delete this song?</b><li>"+tData.track+" <span>by</span> "+tData.artist+"</li> <div class='desc'>This will permanently remove this song from your library.</div><a class='a_button' href='javascript:void(0)' onclick='SearchManagerView.getInstance().removeTrack("+track_id+");'>Delete</a><a class='a_button' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'>Cancel</a>";
		this.showPopup(msg,objReff,"right");
	}
	
	this.showAddToLibraryConfirm = function (track_id,objReff,t_data)
	{
		
	if (this.showLoginConfirm(objReff)) return;
	    this.timerStarted = true;
		this.switchTimer();	
		
		if (t_data) {
		    var tData = t_data;
		    this.getTempTrackData(track_id);
		} else {
    		var tData = this.getTrackDataByTrackId(track_id,initialTracksList);
    		//if there is nothing, maybe there is in the popular tracks
    		if(!tData)
    		{
    			tData = this.getPopularData(track_id);
    		}
		}	
		var msg = "<b class='w_title'>&nbsp;&nbsp;Do you want to add this song to your library?</b><li>"+ decodeURIComponent(tData.track)+" <span>by</span> "+decodeURIComponent(tData.artist)+"</li><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().addToLibrary("+track_id+");'><img border=0 src='"+Config.baseURL+"images/library/popup_yes_button.gif' /></a><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/popup_no_button.gif' /></a>";
		this.showPopup(msg,objReff,"right");
		this.addToLibReff = objReff;
	}
	this.showAddToLibraryCheckedTracksConfirm = function (objReff)
	{
		this.addToLibReff = objReff;
		if (this.showLoginConfirm(objReff)) return;
		var tList = "";
		try
		{
			var tReff = _e("main_table");
			var delNodes= new Array();
			for(var idx=0; idx < tReff.rows.length; idx++) {
			 	//if (idx>0){
			 	if (tReff.rows[idx].id && _e('chk_'+tReff.rows[idx].id)) {
			 		var chk=_e('chk_'+tReff.rows[idx].id).src;
					if (chk.indexOf('checkbox_selected.gif')>0)
					{
						delNodes.push(tReff.rows[idx].id);
					}
				}
			}	
		 } catch(err) {trace(err);}
			for (var i=0;i<(delNodes.length>3?3:delNodes.length);i++)
			{
				var myId = delNodes[i];
				if (myId.indexOf('_') > 0) { // id is <user_id>_<track_id>
					myId = myId.substring(myId.indexOf('_')+1);
				}
				var tData = this.getTrackDataByTrackId(myId,initialTracksList);
				tList += "<li>"+tData.track+" <span>by</span> "+tData.artist+"</li>";
			} 
			if(delNodes.length>3)
			{
				tList += "<div class='more_tracks'>... and "+(delNodes.length-3)+" other songs</div>";
			}
			var msg = "";
			if(delNodes.length == 0)
			{
				msg = "<b class='w_title'>&nbsp;&nbsp;Nothing selected</b><div class='desc'>You must select at least one track to use this action.</div><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()' style='color:#ffffff;'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>";	
			}
			else
			{
				if(delNodes.length == 1)
				{
					msg = "<b class='w_title'>&nbsp;&nbsp;Do you want to add this song to your library ?</b>"+tList+" <a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().addToLibraryChecksTracks();return false;'><img border=0 src='"+Config.baseURL+"images/library/popup_yes_button.gif' /></a><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup();return false;'><img border=0 src='"+Config.baseURL+"images/library/popup_no_button.gif' /></a>";
				}
				else
				{
					msg = "<b class='w_title'>&nbsp;&nbsp;Do you want to add these songs to your library ?</b>"+tList+" <a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().addToLibraryChecksTracks();return false;'><img border=0 src='"+Config.baseURL+"images/library/popup_yes_button.gif' /></a><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup();return false;'><img border=0 src='"+Config.baseURL+"images/library/popup_no_button.gif' /></a>";
				}
			}
		this.showPopup(msg,objReff,"left");
	}
	
	
	this.addToLibrary = function (trackId)
	{
		SearchManagerController.getInstance().addToLibrary(trackId);
		this.hidePopup();
      	//TODO: Insert publish feed	
    	  if (typeof(initialTracksList) != "undefined" ) {
    	      var trackData = this.getTrackDataByTrackId(trackId,initialTracksList);
    	  }   
    	  trace(trackData);
    	  if (typeof(trackData) == "undefined") {
    	      var trackData = this.tempTrackData;
    	  }
    	  trace(trackData);
    	  trace(tempData);
    	  if (trackData) {
    	     this.publishFeed('add_to_library',trackData);
    	  }   
	}
	
	this.redrawTable = function ()
	{
		var tReff = _e("main_table");
		if (!tReff) return false;
		for(var idx=1; idx < tReff.rows.length; idx++) 
		{
			try 
			{
			    
				_e('chk_'+tReff.rows[idx].id).src= Config.baseURL +  "images/library/checkbox_unselected.gif";
				_e('playButton_'+tReff.rows[idx].id).src= Config.baseURL + "images/library/play_button2.gif";
        			if (fromNowPlay) {
        			    tReff.rows[idx].style.opacity = "";
        			} 
        			tReff.rows[idx].className="dynamic_row";
        			if (idx%2==0) 
        			{
        				tReff.rows[idx].className="dynamic_row_color";
        			}
			    
			} catch (err){trace(err);}
			
		}		
		
	}
	
	this.emptyTrackList = function ()
	{	
		//beta hacks
		var mainTable=_e("main_table");
		mainTable.parentNode.replaceChild(this.inittReff,mainTable);
		//restore sort
		try {
			if (this.currentSort){
					_e("ML_"+this.currentSort).className="sort_"+this.sortOrder.toLowerCase();
					_e("HD_"+this.currentSort).className="hd_selected";
			}
		} catch(err) {}	
		
		//return false;
		
		var tReff = _e("main_table");
		if (tReff.rows.length<1) return;
		for(var idx=tReff.rows.length-1; idx > 0; idx--) {
				tReff.deleteRow(idx);
				//trace(idx);
		}		
	}	
	
	this.addTrack = function (trackObj,cont)
	{
		var tReff = _e("main_table");
		
		var insertedRow = tReff.insertRow(cont+1);
		insertedRow.id = trackObj.track_id;
		
		var rowIndex = cont;
		if (fromNowPlay) {
		    rowIndex = this.refreshListCounter+1;
		    //started afer player open
		    if (this.playingTrackId != null) {
		         this.playingRowIndex++;
		         rowIndex++;
		    }    
		}
		
		if (rowIndex%2==0 ) 
		{
			insertedRow.className='dynamic_row';
		}
		else
		{
			insertedRow.className='dynamic_row_color';
		}

        
		
		for(var i=0;i<5;i++)
		{
			var insertedCell = insertedRow.insertCell(i);
			switch(i)
			{
				case 0 :
					
					insertedCell.style.textAlign="center";
					insertedCell.style.padding="0px";
					insertedCell.style.border="none";
					insertedCell.innerHTML = "<img id='chk_"+trackObj.track_id+"' src='"+Config.baseURL+"images/library/checkbox_unselected.gif' onclick='SearchManagerView.getInstance().check(this.id,event)' title='Tip: Use Shift + Right Click to select multiple songs' /> <input type='checkbox' name='tracks[]' style='display:none;'>";
				break;
				case 1 :
					insertedCell.innerHTML = "<div style='float:left'>"+this.createAPlayButton(trackObj.track_id,cont+1)+"</div> <div style='float:left;'>"+this.createAPlayLink(trackObj.track_id,cont+1,trim_string(trackObj.track,36))+"</div>";
				break;
				case 2 :
					insertedCell.innerHTML = this.createAArtistLinkEx(Config.baseURL + trackObj.embed_artist_url, trim_string(trackObj.artist,25));
				break;
				case 3 :
					if (this.currentPage == 'now_playing') {
					     insertedCell.innerHTML = '<span class="notSelected" >' + this.normalizeDate(trackObj.real_time) + '</span><span class="now_selected">Now Playing</span>' ;
					     insertedCell.className = 'last_played';
					     insertedCell.style.display ="none";  
					     if (_e('HD_most_played').style.display != "none") _e('HD_most_played').style.display = "none";  
					
					} else {
					     insertedCell.innerHTML = '<span style=\'margin-left: 10px\'>' + this.normalizePlay(trackObj.sort_play) + '</span>' ;
					  insertedCell.className = 'number';
					} 
					
					
					 
				break;
				case 4 :
					 
    					insertedCell.vAlign="bottom";
    					insertedCell.align="center";
    					insertedCell.innerHTML = this.createActions(trackObj,trackObj.buy_link);
    					insertedCell.className = 'actions';
					
				break;
				default :
					insertedCell.innerHTML = i;

				break;
			}
		}
	}
	this.addTrackLibrary  = function (trackObj,cont)
	{
		var tReff = _e("main_table");
		
		var insertedRow = tReff.insertRow(cont+1);
		insertedRow.id = trackObj.track_id;
		
		
		if (cont%2==0 ) 
		{
			insertedRow.className='dynamic_row';
		}
		else
		{
			insertedRow.className='dynamic_row_color';
		}

        
		
		for(var i=0;i<6;i++)
		{
			var insertedCell = insertedRow.insertCell(i);
			switch(i)
			{
				case 0 :
					
					insertedCell.style.textAlign="center";
					insertedCell.style.padding="0px";
					insertedCell.style.border="none";
					insertedCell.innerHTML = "<img id='chk_"+trackObj.track_id+"' src='"+Config.baseURL+"images/library/checkbox_unselected.gif' onclick='SearchManagerView.getInstance().check(this.id,event)' title='Tip: Use Shift + Right Click to select multiple songs' /> <input type='checkbox' name='tracks[]' style='display:none;'>";
				break;
				case 1 :
					insertedCell.innerHTML = "<div style='float:left'>"+this.createAPlayButton(trackObj.track_id,cont+1)+"</div> <div style='float:left;'>"+this.createAPlayLink(trackObj.track_id,cont+1,trim_string(trackObj.track,36))+"</div>";
				break;
				case 2 :
					insertedCell.innerHTML = this.createAArtistLinkEx(Config.baseURL + trackObj.embed_artist_url, trim_string(trackObj.artist,25));
				break;
				case 3 :
				     insertedCell.innerHTML = '<span style=\'margin-left: 10px\'>' + this.normalizePlay(trackObj.number_plays) + '</span>' ;
					  insertedCell.className = 'number';
				break;
				case 4 :
				       insertedCell.innerHTML = '<span class="notSelected" >' + this.normalizeDate(trackObj.last_played) + '</span><span class="now_selected">Now Playing</span>';
				       insertedCell.className = 'last_played';    
				break;
				case 5 :
				   	insertedCell.innerHTML = this.createActions(trackObj,trackObj.buy_link);
   					insertedCell.className = 'actions';
				break; 
				default :
					insertedCell.innerHTML = i;
				break;
			}
		}
	}
	this.normalizePlay = function(n)
	{
		if(n == null || n == 'undefined')
			return 0;

		//errmm.. not very elegant, but it does the job :)		
		if(n < 1000)
		{
			return n;
		}
		
		var res = 0;
			
		if(n >= 1000 && n < 10000)
		{
			res = n.substring(0, 1) + "," + n.substring(1, n.length);
			return res;
		}
		
		if(n >= 10000 && n < 100000)
		{
			res = n.substring(0, 2) + "," + n.substring(2, n.length);
			return res;
		}
		
		if(n >= 100000 && n < 1000000)
		{
			res = n.substring(0, 3) + "," + n.substring(3, n.length);
			return res;
		}
		
		if(n >= 1000000)
		{
			res = n.substring(0, 1) + "," + n.substring(1, 4) + "," + n.substring(4, n.length);
			return res;
		}
		
		//we should never get here :)
		return n;
	}
	
	this.normalizeDate = function(n)
	{
		if(n == null || n == 'undefined' || n == 'invalid date')
			return "--";
			
		return n;
	}
	
	this.createAPlayButton = function (track_id,row_index) {
		var str = "<div id='play_butt_"+track_id+"' onclick='SearchManagerView.getInstance().doPlay("+track_id+","+row_index+")'><img id='playButton_"+track_id+"' src='"+Config.baseURL+"images/library/play_button2.gif' style='margin-left: 2px;' border='0'></div>";
		return str;
	}
	
	this.createAPlayLink = function (track_id,row_index,caption) 
	{
		var str = "<a href='javascript:void(0);' style='font-weight: bold; text-decoration: none;' id='song_link_"+track_id+"' onclick='SearchManagerView.getInstance().doPlay("+track_id+","+row_index+"); return false;'>"+caption+"</a>";		
		return str;
	}
	
	this.createAArtistLinkEx = function (href, caption)
	{
	
		var str = '<a style="font-size: 11px; font-weight: bold; text-decoration: none;" href="' + href + '" >'+caption+'</a>';
		
		return str;
	}
		
	this.createActions = function (trackO,buy_link) 
	{
		var str = "<div class='playerCloseButtonContainer'><a onclick='SearchManagerView.getInstance().closePlayer();return false;' href='javascript:void(0)' style='font-size:9px;color:#3C579C;font-weight: bold;text-decoration:none'>Close</a></div>";
	
		str += '<div id="actionContainer_'+trackO.track_id+'" style="padding:0 0 0 0;" class="actions_container">';
		str += "<span ><a href='javascript:void(0)' title='Buy' onclick=\"SearchManagerView.getInstance().getBuyLink("+trackO.track_id+",false,false);return false;\"><img id=\"buy_"+trackO.track_id+"\" src=\"" + Config.baseURL+ "images/library/action_buy.gif\" border=\"0\"/></a></span>";
        
        if (this.currentPage != 'library') {
        	
        	str += '<span style="margin-left: 4px"><a href="javascript:void(0)" title="Add to library" onclick="SearchManagerView.getInstance().showAddToLibraryConfirm('+trackO.track_id+',this);return false;"><img src="' + Config.baseURL+ 'images/library/action_add.gif" border="0" /></a></span>';
        } else {
          //str += '<span style="margin-left: 4px"><a href="javascript:void(0)" title="Share This Song" onclick="SearchManagerView.getInstance().showShareConfirm('+track_id+',this);return false;"><img src="' + Config.baseURL+ 'images/library/share.gif" border="0" width="14px" height="14px"></a></span>';            
        }
        str += "<span ><a href='#' onclick='SearchManagerController.getInstance().postTwitter("+trackO.track_id+");return false;' title='Post on Twitter ' target='_blank'><img width='14px'height='14px' id=\"twitter_"+trackO.track_id+"\" src=\"" + Config.baseURL+ "images/twitterICO.png\" border=\"0\"/></a></span>";
        //http://twitter.com/home?status=This+music+video+is+great+"+trackO.tiny_url+"
	    str +="</div>";
		
		
		return str;
	}
	
    this.shareSuff = function (url,tData,type) {
       this.hidePopup();
       var msg = '<div id="no_result" style="padding-top:5px;padding-bottom:5px;color:#656565;text-align:center;"><strong>Sign in above to share this content.</strong></div>';   
       if (this.showLoginConfirm(_e('share'),msg)) return;
        url = '';

        this.publishFeed(type,tData);

        var a=document,b=a.createElement('script'), w=window, g={};
        
        g.altWindow=w.open(url,'_blank','height=370px,width=720px,toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');
       
        setTimeout(function(){g.altWindow.focus()},1000);
        function f(o){
            try{
                var d=new google.share.EmailWidget(g);
                d.display();
           
             
              } catch(e) {
                  trace(e);
                      if(o>20)return;
                  setTimeout(function(){f(o+1)},o<10?1<<o:1000)}
         };
          b.src='http://www.google.com/s2/sharing/js?script=socialsharing&key=AAAAJ--gdtJYHC_fJptEAHT5Bf2eeiCe0ysr04hY3hQKtrFQDdk4H-T1l4FwX_RMKNHsOA';
          a.body.appendChild(b);
          f(0);        
    }
	
	this.showShareConfirm = function (track_id,objReff,t_data)
	{
	    if (t_data) {
		    var tData = t_data;    
		} else {
    		var tData = this.getTrackDataByTrackId(track_id,initialTracksList);
    		//if there is nothing, maybe there is in the popular tracks
    		if(!tData)
    		{
    			tData = this.getPopularData(track_id);
    		}
		}	
		
		var msg = "<b class='w_title'>&nbsp;&nbsp;Do you want to share this song?</b><li>"+decodeURIComponent(tData.track)+" <span>by</span> "+decodeURIComponent(tData.artist)+"</li><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' href='javascript:void(0)' style='color:#FFFFFF' onclick='SearchManagerView.getInstance().shareSuff(\""+tData.embed_url+"\");'><img border=0 src='"+Config.baseURL+"images/library/popup_yes_button.gif' /></a><a class='a_button_new' href='javascript:void(0)' style='color:#FFFFFF' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/popup_no_button.gif' /></a>";
		this.showPopup(msg,objReff,"right");
		this.addToLibReff = objReff;
	}
	this.showShareDragPopup = function (objReff) {
	    var desc = (Config.browserName == "msie" ? 'Right-click on this and add it to Favorites':'Drag this to your bookmarks bar');
	    var msg = "<b class='w_title'>&nbsp;&nbsp;Share Stuff</b><div class='desc'>"+desc+".</div><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()' style='color:#ffffff;'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>";
	    this.showPopup(msg,objReff,"right")
	    return false;
	}
	
	this.showAddToFavoritesConfirm = function (track_id,objReff,t_data)
	{
	    if (t_data) {
		    var tData = t_data;    
		} else {
    		var tData = this.getTrackDataByTrackId(track_id,initialTracksList);
    		//if there is nothing, maybe there is in the popular tracks
    		if(!tData)
    		{
    			tData = this.getPopularData(track_id);
    		}
		}	
		
		var msg = "<b class='w_title'>&nbsp;&nbsp;Do you want to add this song to your Favorites?</b><li>"+decodeURIComponent(tData.track)+" <span>by</span> "+decodeURIComponent(tData.artist)+"</li><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' href='javascript:void(0)' style='color:#FFFFFF' onclick='SearchManagerView.getInstance().addToFavorites("+track_id+");'><img border=0 src='"+Config.baseURL+"images/library/popup_yes_button.gif' /></a><a class='a_button_new' href='javascript:void(0)' style='color:#FFFFFF' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/popup_no_button.gif' /></a>";
		this.showPopup(msg,objReff,"right");
		this.addToLibReff = objReff;
	}
	
	this.addToFavorites = function (track_id)
	{
		SearchManagerController.getInstance().addToFavorites(track_id);
		this.hidePopup();
	}
	
	this.checkToggle = function (checked) {
		if (null == checked) {
	 		checked = false;
	 	 }
		var tReff = _e("main_table");
		for(var idx=0; idx < tReff.rows.length; idx++) {
			if (idx>0 && _e('chk_'+tReff.rows[idx].id)){
				
				this.selectUnselectRow('chk_'+tReff.rows[idx].id,checked);
				
			}		
		}		
	}
	
	this.check = function(id, event)
	{
		this.stopRefreshTimer();
		this.selectUnselectRow(id);
		//if shift is pressed check from last selection to current row
		var shiftPressed = false;
		if( typeof( event ) == "undefined" && typeof( window.event ) != "undefined" )
		{
			event = window.event;
		}
		shiftPressed = event.modifiers? (event.modifiers & Event.SHIFT_MASK)  : event.shiftKey;
		
		if(shiftPressed)
		{
			this.checkMulty(id);
		}
		
		this.lastSelectedRowId = id;
	}
	
	this.selectUnselectRow = function (id,checkedAll) {
	    
	    var tmp= _e(id);
	    if (!checkedAll) checkedAll = false;
		if (tmp.src.indexOf('_un')>0 || checkedAll){
			tmp.src = Config.baseURL + 'images/library/checkbox_selected.gif';
			var track_id =  id.split("_")[1];
			_e(track_id).className = 'track_selected';
			_e('playButton_'+track_id).src = Config.baseURL + 'images/library/play_selected.gif';
			_e('buy_'+track_id).src = Config.baseURL + 'images/library/action_buy_selected.gif';
			
		}
		else {
			tmp.src = Config.baseURL + 'images/library/checkbox_unselected.gif';
			var track_id =  id.split("_")[1];
			_e(track_id).className = 'dynamic_row';
			_e('playButton_'+track_id).src = Config.baseURL + 'images/library/play_button2.gif';
			_e('buy_'+track_id).src = Config.baseURL + 'images/library/action_buy.gif';
			
		}
	    
	}
	this.checkMulty = function(id)
	{
		var lastrowindex = 1;
		
		if(this.lastSelectedRowId)
		{
			lastrowindex = this.getRowIndexByReff(this.inittReff, _e(this.lastSelectedRowId.replace("chk_","")))
		}
		//current row index
		var cur_row_idx = this.getRowIndexByReff(this.inittReff, _e(id.replace("chk_","")))
		var do_chk_state = (_e(id).src.indexOf('_un')>0)? "uncheck" : "check"; //what should be done from last click to cur row
		var from = (lastrowindex>=cur_row_idx)? cur_row_idx : lastrowindex;
		var to  = (lastrowindex>=cur_row_idx)? lastrowindex :cur_row_idx;
		var tReff = _e("main_table");
		
		
		switch(do_chk_state)
		{
			
			case "uncheck":
				for(var idx = from; idx<=to; idx++)
				{
					this.selectUnselectRow('chk_'+tReff.rows[idx].id,false);
					//_e('chk_'+tReff.rows[idx].id).src = Config.baseURL + 'images/library/checkbox_unselected.gif';
				}
				break;
			case "check":
				for(var idx = from; idx<=to; idx++)
				{
					this.selectUnselectRow('chk_'+tReff.rows[idx].id,true);
					//_e('chk_'+tReff.rows[idx].id).src = Config.baseURL + 'images/library/checkbox_selected.gif';
				}
				break;
		}	
	}
	/*
	 * This function is done like this, because if we remove a row, all other are mess't up, and we are deleting them wrong
	 */
	this.removeChecksTracks = function () {
		this.hidePopup();
		 try{
			 var tReff = _e("main_table");
			 var delNodes= new Array();
			 var delNodesIds= new Array();
		  	 for(var idx=0; idx < tReff.rows.length; idx++) {
			 	if (idx>0){
			 		var chk=_e('chk_'+tReff.rows[idx].id).src;
					if (chk.indexOf('checkbox_selected.gif')>0)
					{
						delNodes.push(tReff.rows[idx]);
						delNodesIds.push(tReff.rows[idx].id);
					}
				}
			}	
			for (i=0; i<delNodes.length; i++) {
				
					delNodes[i].parentNode.removeChild(delNodes[i]);
			} 
		 } catch(err) {trace(err);}
		 SearchManagerController.getInstance().deleteTracks(delNodesIds.join(","));
		 this.redrawTable();
	}
	
	this.showRemoveCheckedTracksConfirm = function (objReff)
	{
		//we get all the id's
		var tList = "";
		try
		{
			var tReff = _e("main_table");
			var delNodes= new Array();
			for(var idx=0; idx < tReff.rows.length; idx++) {
			 	if (idx>0){
			 		var chk=_e('chk_'+tReff.rows[idx].id).src;
					if (chk.indexOf('checkbox_selected.gif')>0)
					{
						delNodes.push(tReff.rows[idx].id);
					}
				}
			}	
		 } catch(err) {trace(err);}
			trace(delNodes);
			for (var i=0;i<(delNodes.length>3?3:delNodes.length);i++)
			{
				var tData = this.getTrackDataByTrackId(delNodes[i],initialTracksList);
				trace(tData);
				tList += "<li>"+tData.track+" <span>by</span> "+tData.artist+"</li>";
			} 
			if(delNodes.length>3)
			{
				tList += "<div class='more_tracks'>... and "+(delNodes.length-3)+" other songs</div>";
			}
			var msg = "";
			if(delNodes.length == 0)
			{
				msg = "<b class='w_title'>&nbsp;&nbsp;Nothing selected</b><div class='desc'>You must select at least one track to use this action.</div><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()' style='color:#ffffff;'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>";	
			}
			else
			{
				if(delNodes.length == 1)
				{
					msg = "<b class='w_title'>&nbsp;&nbsp;Are you sure you want to delete this song?</b>"+tList+" <div class='desc'>This will permanently remove the songs from your library.</div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().removeChecksTracks();return false;'><img border=0 src='"+Config.baseURL+"images/library/popup_yes_button.gif' /></a><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup();return false;'><img border=0 src='"+Config.baseURL+"images/library/popup_no_button.gif' /></a>";
				}
				else
				{
					msg = "<b class='w_title'>&nbsp;&nbsp;Are you sure you want to delete these songs?</b>"+tList+" <div class='desc'>This will permanently remove the songs from your library.</div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().removeChecksTracks();return false;'><img border=0 src='"+Config.baseURL+"images/library/popup_yes_button.gif' /></a><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup();return false;'><img border=0 src='"+Config.baseURL+"images/library/popup_no_button.gif' /></a>";
				}
			}
		this.showPopup(msg,objReff,"left");
	}
	
	this.addToPlayListChecksTracks = function ()
	{
		var tSelect = _e("add_to_this_playlist");
		var playlistId = tSelect.options[tSelect.selectedIndex].value;
		
		try
		{
			var tReff = _e("main_table");
			var delNodes= new Array();
			for(var idx=0; idx < tReff.rows.length; idx++) {
			 	if (idx>0){
			 		var chk=_e('chk_'+tReff.rows[idx].id).src;
					if (chk.indexOf('checkbox_selected.gif')>0)
					{
						delNodes.push(tReff.rows[idx].id);
					}
				}
			}	
		 } catch(err) {trace(err);}
		 
		var trackIds = delNodes.join(",");
		
		SearchManagerController.getInstance().addToPlaylist(playlistId,trackIds);
		SearchManagerView.getInstance().hidePopup();
	}

	this.openPlaylistAdder = function (objReff)
	{
		var tReff = _e("main_table");
		var selectedTracks = new Array();
		var selectedIds = new Array();
		for(var idx = 0; idx < tReff.rows.length; ++idx) {
			try {
			 	if (idx > 0) {
			 		trace('chk_' + tReff.rows[idx].id);
			 		var chk = _e('chk_' + tReff.rows[idx].id).src;
					if (chk.indexOf('checkbox_selected') > 0) {
						selectedTracks.push(new Array(tReff.rows[idx].id,
								document.getElementById('song_link_' + tReff.rows[idx].id).innerHTML));
					}
				}
			} catch(err) {trace(err);}
		}
		if(selectedTracks.length == 0) {
			msg = "<b class='w_title'>&nbsp;&nbsp;Nothing selected</b><div class='desc'>You must select at least one track to use this action.</div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()' style='color:#ffffff;'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>";	
			this.showPopup(msg,objReff,"left");
		} else {		
			togglePlaylistsWindow('',selectedTracks);
		}
	}
	
	this.openPlaylistAdderFEx = function (objReff)
	{
		var tReff = _e("main_table");
		var selectedTracks = new Array();
		var selectedIds = new Array();
		for(var idx = 0; idx < tReff.rows.length; ++idx) {
			try {
		 		trace('chk_' + tReff.rows[idx].id);
		 		var chk = _e('chk_' + tReff.rows[idx].id).src;
				if (chk.indexOf('checkbox_selected') > 0) {
					selectedTracks.push(new Array(tReff.rows[idx].id,
							document.getElementById('song_link_' + tReff.rows[idx].id).innerHTML));
				}
			} catch(err) {trace(err);}
		}
		if(selectedTracks.length == 0) {
			msg = "<b class='w_title'>&nbsp;&nbsp;Nothing selected</b><div class='desc'>You must select at least one track to use this action.</div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()' style='color:#ffffff;'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>";	
			this.showPopup(msg,objReff,"left");
		} else {		
			togglePlaylistsWindow('',selectedTracks);
		}
	}
	
	this.addToPlayListCheckedTracksConfirm = function (objReff)
	{
		//we get all the id's
		var tList = "";
		try
		{
			var tReff = _e("main_table");
			var delNodes= new Array();
			for(var idx=0; idx < tReff.rows.length; idx++) {
			 	if (idx>0){
			 		var chk=_e('chk_'+tReff.rows[idx].id).src;
					if (chk.indexOf('checkbox_selected.gif')>0)
					{
						delNodes.push(tReff.rows[idx].id);
					}
				}
			}	
		 } catch(err) {trace(err);}
			trace(delNodes);
			for (var i=0;i<(delNodes.length>3?3:delNodes.length);i++)
			{
				var tData = this.getTrackDataByTrackId(delNodes[i],initialTracksList);
				trace(tData);
				tList += "<li>"+tData.track+" <span>by</span> "+tData.artist+"</li>";
			}
			if(delNodes.length>3)
			{
				tList += "<div class='more_tracks'>... and "+(delNodes.length-3)+" other songs</div>";
			}
			var msg = "";
			var populate = false;
			if(delNodes.length == 0)
			{
				msg = "<b class='w_title'>&nbsp;&nbsp;Nothing selected</b><div class='desc'>You must select at least one track to use this action.</div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()' style='color:#ffffff;'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>";	
			}
			else
			{
				msg = "<b class='w_title'>&nbsp;&nbsp;You are about to add these songs to a playlist :</b>"+tList+" <b><div class='desc'>Which playlist?</div></b><select name='add_to_this_playlist' id='add_to_this_playlist'></select><a class='a_button' href='javascript:void(0)' onclick='SearchManagerView.getInstance().addToPlayListChecksTracks();'>Add</a><a class='a_button'  href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'>Cancel</a>";
				populate = true;
			}
		this.showPopup(msg,objReff,"left");
		
		if(populate)
		{
			SearchManagerController.getInstance().getPlaylistList();
		}
	}
	this.addToLibraryCheckedTracksConfirm = function (objReff)
	{
		if (this.showLoginConfirm(objReff)) return;
		//we get all the id's
		var tList = "";
		try
		{
			var tReff = _e("main_table");
			var delNodes= new Array();
			for(var idx=0; idx < tReff.rows.length; idx++) {
			 	if (idx>0){
			 		var chk=_e('chk_'+tReff.rows[idx].id).src;
					if (chk.indexOf('checkbox_selected.gif')>0)
					{
						delNodes.push(tReff.rows[idx].id);
					}
				}
			}	
		 } catch(err) {trace(err);}
//			trace(delNodes);
			for (var i=0;i<(delNodes.length>3?3:delNodes.length);i++)
			{
				var tData = this.getTrackDataByTrackId(delNodes[i],initialTracksList);
//				trace(tData);
				tList += "<li>"+tData.track+" <span>by</span> "+tData.artist+"</li>";
			} 
			if(delNodes.length>3)
			{
				tList += "<div class='more_tracks'>... and "+(delNodes.length-3)+" other songs</div>";
			}
			var msg = "";
			if(delNodes.length == 0)
			{
				msg = "<b class='w_title'>&nbsp;&nbsp;Nothing selected</b><div class='desc'>You must select at least one track to use this action.</div><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()' style='color:#ffffff;'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>";	
			}
			else
			{
				msg = "<b class='w_title'>&nbsp;&nbsp;Do you want to add these songs to your library ?</b>"+tList+"<div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new'  href='javascript:void(0)' onclick='SearchManagerView.getInstance().addToLibraryChecksTracks();'><img border=0 src='"+Config.baseURL+"images/library/popup_yes_button.gif' /></a><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/popup_no_button.gif' /></a>";
			}
		this.showPopup(msg,objReff,"left");
		this.addToLibReff = objReff;
	}
	
	this.addToLibraryChecksTracks = function (objReff)
	{
		try
		{
			var tReff = _e("main_table");
			var delNodes= new Array();
			for(var idx=0; idx < tReff.rows.length; idx++) {
			 	if (idx>0){
			 		var chk=_e('chk_'+tReff.rows[idx].id).src;
					if (chk.indexOf('checkbox_selected.gif')>0)
					{
						var myId = tReff.rows[idx].id;
						if (myId.indexOf('_') > 0) { // id is <user_id>_<track_id>
							myId = myId.substring(myId.indexOf('_')+1);
						}
						delNodes.push(myId);
					}
				}
			}	
		 } catch(err) {trace(err);}
		 
		var trackIds = delNodes.join(",");
		
		SearchManagerController.getInstance().addToLibrary(trackIds);
		SearchManagerView.getInstance().hidePopup();
	}
	
	this.populatePlayListSelect = function (playlists)
	{
		_e("add_to_this_playlist").innerHTML = "";
		
		var prepareArray = new Array();
		for(var i in playlists)
		{
			prepareArray[playlists[i].channel_id] = trim_string(playlists[i].name,30);
		}
		
//		trace("array"+prepareArray);
		populate_select_from_array(prepareArray,"add_to_this_playlist",0,1);
	}
	
	this.changeSort = function (sort){
		
		if (this.currentPage == 'now_playing') return;
		if (this.currentSort==sort)	{
			switch(this.sortOrder){
			case 'ASC': 
					this.sortOrder="DESC";
			break;
			case 'DESC': 
					this.sortOrder="ASC";
			break;
			default:
				this.sortOrder="ASC";
			break;
			}
			  
		}
		else {
			if(sort == "most_played" || sort == "recent_played")
			{
				this.sortOrder="DESC";
			}
			else
			{		
				this.sortOrder="ASC";
			}
		}
		this.currentSort=sort;
		//reset sort
		for(var i=0; i<this.sortCols.length; i++){
			_e("ML_"+this.sortCols[i]).className="default";
			_e("HD_"+this.sortCols[i]).className="";
		}
		_e("ML_"+sort).className="sort_"+this.sortOrder.toLowerCase();
		_e("HD_"+sort).className="hd_selected";
		
		this.updatePagination(sort,this.sortOrder);
		
		// call Controller with new sort
		this.searchKey = search_key_global;
		var params="&sort="+sort+"&sort_order="+this.sortOrder;
		var id=_e('quid').value;
      	if(_e('friend_id').value!=0)
      	{
      		id=_e('friend_id').value;
      	}
		if (_e('quid') && this.currentPage == 'library') {
		    params +="&user_id="+id;
		}
		//params += search_params;
		SearchManagerController.getInstance().doSearch(this.searchKey,params);
	}
	
	this.updatePagination = function(sort,sortOrder)
	{
		var tmp = null;
	
		tmp = this.pagination;
		if (!tmp) return;
		
		tmp = tmp.replace(/&sort_order=DESC/gi,"&sort_order="+sortOrder.toLowerCase());
		tmp = tmp.replace(/&sort_order=ASC/gi,"&sort_order="+sortOrder.toLowerCase());
		
		tmp = tmp.replace(/&sort=artist/gi,"&sort="+sort);
		tmp = tmp.replace(/&sort=track/gi,"&sort="+sort);
		tmp = tmp.replace(/&sort=recent_played/gi,"&sort="+sort);
		tmp = tmp.replace(/&sort=most_played/gi,"&sort="+sort);
		tmp = tmp.replace(/&sort=mostrecent_played/gi,"&sort="+sort);
		tmp = tmp.replace(/&sort=last_7_days/gi,"&sort="+sort);
				
		tmp = tmp.replace(/\\#/gi,'#');
		
		var el = _e("page_box");
		if(el)
		{
			el.innerHTML = tmp;
		}
		el = _e("page_box2");
		if(el)
		{
			el.innerHTML = tmp;
		}
	}
	
	//it's messy, but I don't want to mess with the code above :)
	this.showSort = function (sort,sortOrder)
	{
		try
		{
			_e("ML_"+sort).className="sort_"+sortOrder.toLowerCase();
			_e("HD_"+sort).className="hd_selected";
		}
		catch(err){}
	}
	
	this.selectTrackId = function (track_id)
	{
		_e("playing_now_main").style.display="";
		this.redrawTable();
		_e(track_id).className="playing_now";
		_e("playButton_"+track_id).src= Config.baseURL + "images/library/play_button2_selected.jpg";
		_e('chk_'+track_id).src= Config.baseURL + "images/library/checkbox_unselected_blue.gif";
		
	}
	this.selectTrackIdSongMoment = function (track_id,user_id)
	{
		_e("playing_now_main").style.display="";
		//this.redrawTable();
		//_e(track_id).className="playing_now";
		selectRow(track_id,user_id);
		_e("playButton_"+user_id+'_'+track_id).src= Config.baseURL + "images/friendsFeeds/pauseButton.png";
		_e('chk_'+user_id+'_'+track_id).src= Config.baseURL + "images/library/checkbox_unselected_blue.gif";
		
	}
	
	this.resetPlayerContainer=function resetPlayerContainer()
	{
		try { _e('album_image').src= Config.baseURL + "images/library/spacer.gif"; } catch(err) {}	
		if(this.videoCheckTimeout)
		{
			clearInterval(this.videoCheckTimeout)
		}		
	}
	
	this.createPlayerContainer = function (where)
	{
		var tReff = _e("main_table");
		if(this.playingRowIndex != null)
		{
			if(where>=this.playingRowIndex)
			{
				where = where + 1;
				this.playingRowIndex = where;
			}
		}
		else
		{
				this.playingRowIndex = where+1;
		}
		
		var newPC = tReff.insertRow(where);
		var newCell = newPC.insertCell(0);
		
		newCell.setAttribute("colSpan",6);
		newCell.appendChild(_e("playing_now_main"));
		_e("playing_now_main").style.marginLeft="0px";
		newCell.style.padding="0";
		
		if(this.currentPlayNowContainer != null)
		{
			this.currentPlayNowContainer.parentNode.parentNode.removeChild(this.currentPlayNowContainer.parentNode);
		}
		
		this.currentPlayNowContainer = newCell;
	}
	
	this.playNext = function ()
	{
		//return; //we don't need this functionality in the Global Search
		
		var nextTrack;
		if(this.playFromPopular != true)
		{
			nextTrack = this.getNextTrackData();
			if(nextTrack)
			{
				if(this.currentPage =='friends'){
					this.doPlaySongMoment(nextTrack.track_id,nextTrack.user_id);
				}
				else{
					this.doPlay(nextTrack.track_id);
				}
			}
			else
			{
				trace('Load next page');
//				load next page, and play first in the list
				this.loadNextPage();
			}
			
		}
		else
		{
			nextTrack = this.getNextPopularTrackData();
			this.doPopularPlay(nextTrack.track_id,_e("popular_track_"+nextTrack.track_id));
		}
		
		//trace("next track is "+nextTrack.track_id);
		
	}
	
	this.loadNextPage = function ()
	{
		trace('change the page!');
		var page = page_no + 1;
		return false;
	}
	
	this.doPlay = function doPlay(track_id)
	{
		this.timerStarted = true;
		this.switchTimer();
		this.votePopular = false;
		this.origPlayingTrackId = track_id;
		this.playFromPopular = false;
		this.resetPlayerContainer();
		var fixTrack=_e('fixTrackLink');
		
		this.closePlayer(true);
		this.selectTrackId(track_id);
		var current_row = this.getRowIndexByReff(this.inittReff,_e(track_id));
		
		this.selectedPopularTrack = null;
		this.createPlayerContainer(current_row+1);
		_e("player").innerHTML=this.player_content;
		
		var trackData = this.getTrackDataByTrackId(track_id,initialTracksList);
		this.setPlayingData(trackData);
		this.playingTrackId = track_id;
    
        fixTrack.href = "javascript:void(0);";
		fixTrack.target = "_self";
		fixTrack.onclick = function fixTrackHandler()
		{
			var message='<div id="no_result" style="padding-top:5px;padding-bottom:5px;color:#656565;text-align:center;"><strong> Sign in above in order to vote for a track.</strong></div>';
			var resp=SearchManagerView.getInstance().showLoginConfirm(_e('fixTrackLink'),message);
			if (resp) return;
			//SearchManagerView.getInstance().voteDifferentVersionPopup(SearchManagerView.getInstance().playingTrackId);
			//SearchManagerView.getInstance().pausePlayer ();
			showOtherCP_G(SearchManagerView.getInstance().playingTrackId);
			return false;
		}	
		this.getBuyLink(track_id,true);
		SearchManagerController.getInstance().getTrackData(track_id,trackData.artist_id);		
		this.nowIPlay = true;
		this.doActualPlay(track_id);
		
	   // Publish feed if it's need
		this.checkFirstPlayPublishFeed(trackData);
		
		// Render Wall Gadget for playing track_id
        this.renderWallGadget(track_id);
	}
	this.doPlaySongMoment = function doPlaySongMoment(track_id,user_id)
	{
		this.currentPage ='friends';
		this.timerStarted = true;
		this.switchTimer();
		this.votePopular = false;
		this.origPlayingTrackId = track_id;
		this.playFromPopular = false;
		this.resetPlayerContainer();
		var fixTrack=_e('fixTrackLink');		
		this.closePlayerSongMoment(true);
		nowPlayingTrackID=user_id+'_'+track_id;
		
		this.selectTrackIdSongMoment(track_id,user_id);
		var current_row = this.getRowIndexByReff(this.inittReff,_e(user_id+'_'+track_id));
		
		this.selectedPopularTrack = null;
		this.createPlayerContainer(current_row+1);
		if(_e("player"))
		{
			var player_cont=_e("player").innerHTML;
			_e("player").innerHTML=player_cont;
		}
		
		var trackData = this.getTrackDataByTrackId(track_id,initialTracksList);
		this.setPlayingData(trackData);
		this.playingTrackId = track_id;
    
        fixTrack.href = "javascript:void(0);";
		fixTrack.target = "_self";
		fixTrack.onclick = function fixTrackHandler()
		{
			var message='<div id="no_result" style="padding-top:5px;padding-bottom:5px;color:#656565;text-align:center;"><strong> Sign in above in order to vote for a track.</strong></div>';
			var resp=SearchManagerView.getInstance().showLoginConfirm(_e('fixTrackLink'),message);
			if (resp) return;
			//SearchManagerView.getInstance().voteDifferentVersionPopup(SearchManagerView.getInstance().playingTrackId);
			//SearchManagerView.getInstance().pausePlayer ();
			showOtherCP_G(SearchManagerView.getInstance().playingTrackId);
			return false;
		}	
		this.getBuyLink(track_id,true);
		SearchManagerController.getInstance().getTrackData(track_id,trackData.artist_id);		
		this.nowIPlay = true;
		this.doActualPlay(track_id);
		
	   // Publish feed if it's need
		this.checkFirstPlayPublishFeed(trackData);
		
		// Render Wall Gadget for playing track_id
        this.renderWallGadget(track_id);
	}
	this.renderWallGadget = function  (trackId,entity) {
        _e('div-1213357741662').innerHTML = '';
        if (typeof fromFacebook == 'undefined' || !fromFacebook) {
        	if (!this.isLoggedIn())
        	{
        	  _e('div-1213357741662').innerHTML ='<div style="padding-top:100px;padding-bottom:50px;color:#656565;font-size:18px;text-align:center;"><strong> Sign in above in order to leave a comment. </strong></div>	';
        	}
        	else{      		
		    //Friend Connect Track Wall Skin
		    if (!entity) var entity = "track_";
			var skin = {}; 
			skin['HEIGHT'] = '248'; 
			skin['POST_INPUT_BG_COLOR'] = '#ffffff'; 
			skin['THREAD_BG_COLOR'] = '#ffffff'; 
			skin['POST_OBJECT_BORDER_COLOR'] = '#CDE4F4'; 
			skin['THREAD_ALT_BG_COLOR'] = '#ffffff'; 
			skin['POST_TEXT_FONT_COLOR'] = '#333333'; 
			skin['POST_META_FONT_COLOR'] = '#666666';
			var options = { id: 'div-1213357741662', site: this.siteId, 'view-params': {} };
			var viewParams = options['view-params']; 
			viewParams['docId'] = entity+trackId.toString();
			viewParams['scope'] = "ID";
			viewParams['features'] = "video,comment";
			google.friendconnect.container.setParentUrl('/' /* location of rpc_relay.html and canvas.html */);
			google.friendconnect.container.renderWallGadget(options, skin);
        	}
		} else {
            SearchManagerController.getInstance().getFacebookTrackWall(trackId);
		}
	}
	
	this.renderReviewGadget = function  (trackId,entity) {
        _e('div-1213357741662').innerHTML = '';
        if (typeof fromFacebook == 'undefined' || !fromFacebook) {
		    //Friend Connect Track Wall Skin
		    if (!entity) var entity = "track_";
			var skin = {}; 
			skin['HEIGHT'] = '248'; 
			skin['POST_INPUT_BG_COLOR'] = '#ffffff'; 
			skin['THREAD_BG_COLOR'] = '#ffffff'; 
			skin['POST_OBJECT_BORDER_COLOR'] = '#CDE4F4'; 
			skin['THREAD_ALT_BG_COLOR'] = '#ffffff'; 
			skin['POST_TEXT_FONT_COLOR'] = '#333333'; 
			skin['POST_META_FONT_COLOR'] = '#666666';
			skin['DEFAULT_REVIEW_TEXT'] = '- add your comment here -';      
			skin['RATINGS_PROMPT'] = 'Reviews ';     
			var options = { id: 'div-1213357741662', site: this.siteId, 'view-params': {} };
			var viewParams = options['view-params']; 
			viewParams['scope'] = 'ID'; 
			viewParams['docId'] = entity+trackId.toString(); 
			viewParams['features'] = "video,comment";
			viewParams['startMaximized'] = 'true'; 
			viewParams['disableMinMax'] = 'false';
			google.friendconnect.container.setParentUrl('/' /* location of rpc_relay.html and canvas.html */);
			google.friendconnect.container.renderReviewGadget(options, skin);
        } else {
            SearchManagerController.getInstance().getFacebookTrackWall(trackId);
        }
	}
	
    this.setFacebookTrackWall = function(data) {
        trace(data);
        var comments = '';
        var num = 0;
        if (typeof data.messages === 'undefined' || 1 * data.messages == 0) {
            comments += '<div id="track_comments" style="font-weight:bold; padding-left:7px; padding-top:4px;">No wall posts.</div>';
            data.messages = 0;
        } else {
            try {
                comments += '<div id="track_comments" style="margin-left:5px;"><table cellpadding="0" cellspacing="0" border="0" width="318">';
                for (var i in data) {
                    if (num == 2) break;
                    if (i === 'pagination' || i === 'messages' || i=== 'track_id') continue;
                    var comment = data[i];
                    comments += '<tr><td style="border:0px;"><div style="margin-left:-15px;"><img style="width:24px;height:24px;margin-left:10px;margin-top:5px;border:1px solid #CCCCCC;padding:1px;vertical-align:middle;" src="'
                            + comment.image +'" style="width:24px;height:24px;"/></div></td><td style="border:0px; width:90%;"><div style="padding-top:5px;"><div class="box_comment_head"><div><a href="'
                            + ('http://www.facebook.com/profile.php?id='+comment.facebook_id) +'" target="_blank" id="comment_name">'
                            + (comment.firstname+(comment.lastname ? ' ' : '')+comment.lastname) +'</a> <span id="comment_action">'
                            + (comment.replied_to ? 'replied to a message' : 'wrote') +'</span></div><div id="comment_date">'
                            + comment.formatted_date +'</div></div></div></td></tr><tr><td style="border:0px;">&nbsp;</td><td style="border:0px; width:90%;"><div style="padding-top:3px;"><div class="box_comment"><div id="comment_body">'
                            + comment.message +'</div></div></div></td></tr>';
                    ++num;
                }
                comments += '</table></div>';
            } catch(err) { trace(err); }
        }
        var code = '<div id="song_wall"><div class="box_head"><h2>Song Wall</h2></div><div class="box_subhead" id="box_subhead"><div style="width:305px;"><span style="float:left;">Displaying <span id="num_post_start">'
                +num+'</span> of <span id="num_post_end">'
                +(data.messages)+'</span> wall posts</span><span style="float:right;"><a href="javascript:void(0);" onclick="SearchManagerView.getInstance().toggleCommentsForm(true);">Write Something</a><span style="color:#444444;"> | </span><a id="comment_see_all" href="'
                +'javascript:void(0)" onclick="SearchManagerView.getInstance().showAllComments()" target="_top">See All</a></span></div></div>'
                +'<div id="comment_submit_form" style="display:none;height:130px; width:330px;background-color:#EEEEEE;"><div id="patch" style="background-color:#EEEEEE; position: relative; top: 20px; left: -3px; height: 17px; width: 5px;">&nbsp;</div><textarea id="comment_message" style="position:relative;top:-7px;left:7px; width:310px;height: 80px; border:1px solid #BCC8D8;"></textarea><br/><div style="padding-left:7px; margin-top:-2px;"><input type="button" class="inputsubmit" value="Post" onclick="SearchManagerView.getInstance().publishTrackWallPost('+data.track_id+'); return false;"/><a href="javascript:void(0);" style="padding-left:5px;" onclick="SearchManagerView.getInstance().toggleCommentsForm(false);">Cancel</a></div></div>'
                +comments+'</div></div>';
        var container = _e('div-1213357741662');
        container.parentNode.style.paddingLeft = '0px';
        container.parentNode.style.paddingTop = '0px';
        container.innerHTML = code;
    }
    
    this.toggleCommentsForm = function(show) {
        if (typeof show == 'undefined') var show = false;
        if (show) {
            _e('track_comments').style.display = 'none';
            _e('comment_message').value = '';
            _e('comment_submit_form').style.display = '';
        } else {
            _e('comment_submit_form').style.display = 'none';
            _e('track_comments').style.display = '';
        }
    }
    
    this.showAllComments = function() {
        _e('comment_submit_form').style.display = 'none';
        _e('track_comments').style.display = '';
    }
    
    this.publishTrackWallPost = function(track_id) {
        var comment = escape(_e('comment_message').value);
        SearchManagerController.getInstance().postFacebookTrackWall(track_id, comment);
    }
    
	this.renderSignInGadget = function  () {
        var skin = {}; 
		skin['ALIGNMENT'] = 'center'; 
		skin['BG_COLOR'] = '#ffffff'; 
		skin['TEXT_COLOR'] = '#000000'; 
		skin['LINK_COLOR'] = '#42598E'; 
		skin['SIGN_IN_BORDER_COLOR'] = '#CDE4F4'; 
		skin['SIGN_IN_BUTTON_COLOR'] = '#ffffff'; 
		skin['SIGN_IN_LINK_COLOR'] = '#42598E'; 
        google.friendconnect.container.setParentUrl('/' /* location of rpc_relay.html and canvas.html */);
        google.friendconnect.container.renderSignInGadget({ id: 'div-1213972781524', site: '12387766892866170194' }, skin);
	}
	 
	
	
	this.doPopularPlay = function (track_id,playReff)
	{
		this.votePopular = true;
		var save_album_image = _e("album_image").src;
		if( _e("album_image_voted")){
			var save_album_image_voted = _e("album_image_voted").src;
		}
		this.playFromPopular = true;
		trackData = this.getPopularData(track_id);
		this.playingTrackId = track_id;
	    this.getBuyLink(trackData.track_id,true,true);
				
		videoPlayerRef=_e("playingNowVideo"+(Config.browserName=="firefox"?"_embed":""));
		videoPlayerRef.playTrack(track_id+"");
		/*var v = this.getVideoReff();
		v.play(track_id);*/
		//videoPlayerRef.SetVariable("/actionObject:actionParams",track_id+"");
		//videoPlayerRef.SetVariable("/actionObject:actionType","play");
		
		trackData = this.getPopularData(track_id);
	     this.renderWallGadget(track_id); 
		
		
		_e("track_name").innerHTML = trim_string(trackData.track,30);
		_e("track_name").href = Config.baseURL +  trackData.embed_url;
		if(_e("track_name_voted")){_e("track_name_voted").innerHTML = trim_string(trackData.track,30);}
		_e("album_name").innerHTML = trim_string(trackData.album,28);
		_e("album_name").href = Config.baseURL +  trackData.embed_album_url;;
		_e("permalink").value  = Config.baseURL +  trackData.embed_url;
		_e('go_to_url').href   = Config.baseURL +  trackData.embed_url;
		_e('go_to_url').onclick = function embedURLHandler() {
		    SearchManagerView.getInstance().pausePlayer();
		}
		
		_e("album_image").src = save_album_image;
		if(_e("album_image_voted")){
			_e("album_image_voted").src = save_album_image_voted;
		}
		this.selectPopularTrack(playReff);
	}
	
		
	this.videoCheckTimeout=null;
	this.doActualPlay = function doActualPlay(track_id)
	{
		this.videoCheckTimeout=setInterval("SearchManagerView.getInstance().playVideo("+track_id+")",1800);	
	}
	
	this.playVideo=function playVideo(track_id)
	{
	try {
		videoPlayerRef=_e("playingNowVideo"+(Config.browserName=="firefox"?"_embed":""));

		switch(Config.browserName)
		{
			case "msie":
				if(typeof videoPlayerRef != 'object')
				{			
					return;
				}
			break;
			default:
				if(typeof videoPlayerRef != 'function')
				{			
					return;
				}
			break;
		}
	   }		
		catch (e) {
		    return;
		}
		
		clearInterval(this.videoCheckTimeout);
		/*var v = this.getVideoReff();
		v.play(track_id);	*/
		
		videoPlayerRef=_e("playingNowVideo"+(Config.browserName=="firefox"?"_embed":""));
		try{		
		videoPlayerRef.playTrack(track_id+"");
		}
		catch(e){trace("error"+track_id);
			this.doActualPlay(track_id);
		}
		
		//videoPlayerRef.SetVariable("/actionObject:actionParams",track_id+"");
		//videoPlayerRef.SetVariable("/actionObject:actionType","play");		
	}
	this.getVideoReff = function () {
	    var movie = "playingNowVideo"+(Config.browserName=="firefox"?"_embed":"");
		return this.getMovie(movie);
     }
     this.getMovie =  function (movieName) {
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document[movieName];
         }
	}	 
	this.paginate = function (pages){
	   
	    var result = "";
		var qryStr = "";
		
		if (this.currentPage == 'now_playing') {
		    this.currentSort = 'recent_played';
		    this.sortOrder = 'DESC';
		}
         result += "<ul class='pagerpro'>";
     	if (pages['prev_button'])
		{
			result +='<li><a href="javascript:void(0);" onclick="SearchManagerView.getInstance().goToNextPage(\''+qryStr+'&page_no='+(pages['current_page']-1)+'\');return false;" >Prev</a></li> ';
		}
		for(var i=pages['pages_from'];i<=pages['pages_to'];i++)
		{
			if (pages['current_page']==i)
			{
				result +='<li class="current"><a >'+i+'</a> </li>';
			}
			else
			{
				result +='<li><a href="javascript:void(0);" onclick="SearchManagerView.getInstance().goToNextPage(\''+qryStr+'&page_no='+i+'\');return false;" >'+i+'</a></li>';
			}
		}
		if (pages['next_button'])
		{
			result +='<li><a href="javascript:void(0);" onclick="SearchManagerView.getInstance().goToNextPage(\''+qryStr+'&page_no='+(pages['current_page']+1)+'\');return false;" >Next</a></li>';
		}
		//delete 
		try {
		    if (pages['memcache_key']) {
		        this.set_memcache_key(pages['memcache_key']);
		    }
		} catch (err) {}
		result += "</ul>";
		return result;
	}
	this.goToNextPage = function (qry) {
		toggleGlobalPreloader(true);
	    var extra = '';
	    var id=_e('quid').value;
      	if(_e('friend_id').value!=0)
      	{
      		id=_e('friend_id').value;
      	}
      	
	    if (_e('quid') && this.currentPage == 'library') {
	        extra = "&user_id="+id;
	     }
	     this.searchKey = search_key_global;
	    SearchManagerController.getInstance().doSearch(this.searchKey,qry + "&sort="+this.currentSort+"&sort_order="+this.sortOrder + extra);
	}
	
	this.getTrackDataByTrackId = function (track_id,trackList)
	{
		for(i in trackList)
		{
			if(trackList[i].track_id == track_id)
			{
				return trackList[i];
			}
		}
		
		return false;
	}

	this.getPopularData = function (track_id)
	{
		for(i in this.popularTracksList)
		{
			if(this.popularTracksList[i].track_id == track_id)
			{
				return this.popularTracksList[i];
			}
		}
		
		return false;
	}
	
	this.getNextTrackData = function ()
	{
		var found = false;
		for(i in initialTracksList)
		{
			if(i == "pagination") continue;
			if(found == true)
			{
				return initialTracksList[i];
			}
			if(initialTracksList[i].track_id == this.playingTrackId)
			{
				found = true;
				//trace("i found the track "+initialTracksList[i].track_id);
			}
		}
		
		//if we are here we return the first in the list
		return initialTracksList[0];
	}
	
	this.getNextPopularTrackData = function ()
	{
		var found = false;
		for(i in this.popularTracksList)
		{
			if(i == "pagination") continue;
			if(found == true)
			{
				return this.popularTracksList[i];
			}
			if(this.popularTracksList[i].track_id == this.playingTrackId)
			{
				found = true;
				//trace("i found the track "+initialTracksList[i].track_id);
			}
		}
		
		//if we are here we return the first in the list
		return this.popularTracksList[0];
	}
	
	this.getRowIndexByReff = function (table,trReff)
	{
		table = _e("main_table");
		for(i=0;i<table.rows.length;i++)
		{
			//trace(table.rows.item(i).id);
			if(table.rows.item(i) == trReff) 
			{
				return i;
			}
		}
	}
	
	this.setOnTour = function (isOnTour)
	{
		if(isOnTour == 0)
		{ 
			_e('ontour').style.display = "none";
			_e('ontour_pic').style.display = "none";
		}
		else
		{
			_e('ontour').href = isOnTour;
			_e('ontour_pic').src = Config.baseURL + "images/library/ontour.gif";
			_e('ontour').style.display = "block";
		}
	}
	this.searchHandler = function (search_key) {
	      _e("search_key").value = search_key;
	        //do_quick_search(search_key);
		    SearchManagerView.getInstance().searchKey = search_key;
		    SearchManagerController.getInstance().doSearch(escape(search_key));
	}
	this.setPlayingData = function (trackData)
	{
		
		_e("track_name").innerHTML = trim_string(trackData.track,30);
		if(_e("track_name_voted")){	_e("track_name_voted").innerHTML = trim_string(trackData.track,30);}
		_e("artist_name").innerHTML = trackData.artist;
		if(_e("artist_name_voted")){ _e("artist_name_voted").innerHTML = trackData.artist;}
		_e("artist_name").href = Config.baseURL + trackData.embed_artist_url;
		if(_e("artist_name_voted")){_e("artist_name_voted").href =  Config.baseURL + trackData.embed_artist_url;}
		_e("album_name").innerHTML =  trim_string(trackData.album,28);
		if(_e("album_name_voted")){_e("album_name_voted").innerHTML =  trim_string(trackData.album,28);}
		_e("album_name").href = Config.baseURL + trackData.embed_album_url;
		if(_e("album_name_voted")){_e("album_name_voted").href = Config.baseURL + trackData.embed_album_url;}
		
		if (this.currentPage == 'library') {
		    _e("add_to_library_np").style.display = "none";
		} else {
		    _e("add_to_library_np").style.display = "";
		     _e("add_to_library_np").onclick = function addToLibNowPlayingHandler(){ 
    		    SearchManagerView.getInstance().showAddToLibraryConfirm(trackData.track_id,_e("add_to_library_np"),{'track':trackData.track,'artist': trackData.artist});
    		    return false;
    		  }    
		}
		_e("twitter_link").onclick= function addTwitterAction(){ 
    		    SearchManagerController.getInstance().postTwitter(trackData.track_id);
    		    return false;
    		  } 
       _e("twitter_link_txt").onclick= function addTwitterAction(){ 
    		    SearchManagerController.getInstance().postTwitter(trackData.track_id);
    		    return false;
    		  }   
		
		
		_e('permalink').value = Config.baseURL +  trackData.embed_url;
		_e('go_to_url').href = Config.baseURL +  trackData.embed_url;
		_e('go_to_url').onclick = function embedURLHandler() {
		    SearchManagerView.getInstance().pausePlayer();
		}
		
	}

	this.setSomeTrackData = function (someData)
	{
		_e("album_image").src = someData.album_image;
		if(_e("album_image_voted")){
			_e("album_image_voted").src = someData.album_image;
		}
		
		this.popularTracksList = someData.artist_popular;
		this.generatePopularTracksList(someData.artist_popular);
	}
	
	this.generatePopularTracksList = function (tracksListPopular)
	{
		var colors=new Array('#FFFFFF','#F1F4F9');
		var classes=new Array('popular_track_color1', 'popular_track_color2');
		var count=0;
		
		
		_e("popular_songs_container").innerHTML = "<div class='title'>Popular songs by this artist</div>";
		
		var tLen = parseInt(tracksListPopular.length/2);
		for (var j=0; j < tLen; j++) {
	        var newTrack = document.createElement("div");
	        var newTrack2 = document.createElement("div");
			newTrack.className = "popular_track "  + classes[j%2];
			newTrack2.className = "popular_track "  + classes[j%2];
	        newTrack2.style.cssFloat ="right";
	        newTrack2.style.paddingLeft ="11px";
		
	         try {	
                 newTrack.innerHTML = "<div class='play_button' onclick='SearchManagerView.getInstance().doPopularPlay("+tracksListPopular[j].track_id+",this)' id='popular_track_"+tracksListPopular[j].track_id+"'></div><a class='track_name' target='_top' href='javascript:void(0)' onclick='SearchManagerView.getInstance().doPopularPlay("+tracksListPopular[j].track_id+",this)'>"+tracksListPopular[j].track.substring(0,25)+"</a>";	             
	             _e("popular_songs_container").appendChild(newTrack); } catch(e) {}
			 try {	
    		  	 newTrack2.innerHTML = "<div class='play_button' onclick='SearchManagerView.getInstance().doPopularPlay("+tracksListPopular[j+tLen].track_id+",this)' id='popular_track_"+tracksListPopular[j + tLen].track_id+"'></div><a class='track_name' target='_top' href='javascript:void(0)' onclick='SearchManagerView.getInstance().doPopularPlay("+tracksListPopular[j+8].track_id+",this)'>"+tracksListPopular[j+8].track.substring(0,25)+"</a>";
    			 _e("popular_songs_container").appendChild(newTrack2);
			 } catch(e) {}
    	}
	}
	
	this.selectPopularTrack = function (playButtonReff)
	{
		if(this.selectedPopularTrack != null)
		{
			this.selectedPopularTrack.parentNode.className = this.oldClassName;
			this.selectedPopularTrack.parentNode.setAttribute("class",this.oldClassName);
		}
		
		this.selectedPopularTrack = playButtonReff;
		this.oldClassName = playButtonReff.parentNode.className;
		playButtonReff.parentNode.className = "popular_track_selected";
		playButtonReff.parentNode.setAttribute("class","popular_track_selected");
		
	}
	
	this.openPopupPlayer = function (objReff)
	{
		this.pausePlayer();
		var tReff = _e("main_table");
		var delNodes= new Array();
		var playIngOut = false;
		var track_id=0;
		for(var idx=0; idx < tReff.rows.length; idx++) 
		{
			try 
			{
			 	if (idx>0)
			 	{
			 		var chk=_e('chk_'+tReff.rows[idx].id).src;
			 		
					if (chk.indexOf('checkbox_selected.gif')>0)				
					{
						track_id=tReff.rows[idx].id;
						//trace(track_id.indexOf('_'));
						if(track_id.indexOf('_')>-1)
						{
							var arr=new Array();
							arr=track_id.split('_');	
							track_id=arr[1];
						}
					
						delNodes.push(track_id);
						if(track_id == this.playingTrackId)
						{
							playIngOut = true;
						}
					}
				}
			} catch(err) {trace(err);}
		}	
		
		if(delNodes.length == 0)
		{
			msg = "<b class='w_title'>&nbsp;&nbsp;Nothing selected</b><div class='desc'>You must select at least one track to use this action.</div><a class='a_button_new' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()' style='color:#ffffff;'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>";	
			this.showPopup(msg,objReff,"left");
		}
		else
		{		
			var track_ids = delNodes.join(",");
			if((this.playingTrackId == null)||(playIngOut == false))
			{
				current_track_id = delNodes[0];
			}
			else
			{
				current_track_id = this.playingTrackId;
			}
			this.hidePopup ();
			
			var hndW=window.open(Config.baseURL+'popout_player.php?track_ids='+track_ids,'pop_up','height=430,width=660,location=no,titlebar=no,toolbar=no');
			hndW.focus(); 
		}
		
	}

	this.showPopup = function (content,reffObj,align,showFixed)
	{
        if (typeof(showFixed) == 'undefined') var showFixed = false;
		
		_e('background_holder').style.display = "block";
		_e('the_popup').style.display = "block";
		_e('the_popup').innerHTML = "<div class='hide'><a href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/hide_welcome_btn.gif' /></a></div>"+content;
		_e('popup_arrow').style.display = "block";
		
		switch(align)
		{
			case "right" :
				_e('the_popup').style.left = "";
				_e('the_popup').style.width = "325px"; 
				_e('the_popup').style.left = (getLeft(reffObj)+25-325)+"px";
				_e('the_popup').style.top = (getTop(reffObj)+25)+"px";
				
				_e('background_holder').style.left = "";
				_e('background_holder').style.width = "325px"; 
				_e('background_holder').style.left = (getLeft(reffObj)+25-325)+"px";
				_e('background_holder').style.top = (getTop(reffObj)+25)+"px";
				
				_e('popup_arrow').style.left = "";
				_e('popup_arrow').style.left = (getLeft(reffObj)+9-30)+"px";
				_e('popup_arrow').style.top = (getTop(reffObj)+10)+"px";
			break;
			case "left" :
				_e('the_popup').style.right = "";
				_e('the_popup').style.width = "325px"; 
				_e('the_popup').style.left = (getLeft(reffObj)-10)+"px";
				_e('the_popup').style.top = (getTop(reffObj)+25)+"px";
				
				_e('background_holder').style.right = "";
				_e('background_holder').style.width = "325px"; 
				_e('background_holder').style.left = (getLeft(reffObj)-10)+"px";
				_e('background_holder').style.top = (getTop(reffObj)+25)+"px";	
							
				_e('popup_arrow').style.right = "";
				_e('popup_arrow').style.left = (getLeft(reffObj)+5)+"px";
				_e('popup_arrow').style.top = (getTop(reffObj)+10)+"px";
			break; 
		}
		
		try {
			if (showFixed) {
				_e('background_holder').style.position = 'fixed';
				_e('the_popup').style.position = 'fixed';
			}
		} catch(err) { trace(err); }
		
		return false;
	}
	this.showPopupNew = function(message,reffObj)
	{
		var playerDiv = _e("popup_new");
		var coords = getVisibleAreaCoords();
	    //set up pop up position
        playerDiv.style.top =  parseInt((coords.bottomY-coords.topY)/2)-110+coords.topY+"px";
        playerDiv.style.left = parseInt(coords.bottomX/2)-205+"px";
        _e('popup_content').innerHTML=message;
	    playerDiv.style.display = "block";
	}

	this.hidePopup = function ()
	{
		_e('background_holder').style.display = "none";
		_e('the_popup').style.display = "none";
		_e('popup_arrow').style.display = "none";
		_e('the_popup').innerHTML = "";
		try {
			_e('the_popup').style.position = '';
			_e('background_holder').style.position = '';
		} catch(err) { trace(err); }
	}
	this.hidePopupNew = function ()
	{	
		_e('popup_new').style.display = "none";
	}
	
	this.onClipEnd = function ()
	{
		if(this.nowIPlay == false) return false;
		//trace("clip end called");
		setTimeout("SearchManagerView.getInstance().playNext()",50);
		//this.playNext();
	}
	this.onPlay = function ()
	{
		setTimeout("SearchManagerView.getInstance().onPlayChange()",25);

	}
	this.onPlayChange = function()
	{
		if(typeof(nowPlayingTrackID)!='undefined')
		{
		if(_e('playButton_'+nowPlayingTrackID))
		{
			_e('playButton_'+nowPlayingTrackID).src='http://www.qloud.com/images/friendsFeeds/pauseButton.png';
			playOn=true;
		}
	}
	}
	
	this.onPause = function ()
	{
		setTimeout("SearchManagerView.getInstance().onPauseChange()",25);		
	}
	this.onPauseChange = function ()
	{
		if(_e('playButton_'+nowPlayingTrackID))
		{
			_e('playButton_'+nowPlayingTrackID).src= 'http://www.qloud.com/images/friendsFeeds/playbuttonnormal.png';
			playOn=false;
		}
	}
	this.setProviderLogo = function ()
	{
			
	}
	
	this.setCrtRecordingId = function ()
	{
		
	}
	//vote for different version 
	this.voteDifferentVersion = function(track_id)
	{
    	if (this.showLoginConfirm(_e('fixTrackLink'))) return;
		
		var current_row = 1;
		if(this.votePopular==false)
		{
			current_row = this.getRowIndexByReff(this.inittReff,_e(track_id));
		}
		else
		{
			current_row = this.getRowIndexByReff(this.inittReff,_e(this.origPlayingTrackId));
		}
		this.resetPlayerContainer();
		this.closePlayer(true);
		this.selectTrackIdVote(track_id);
		
		this.selectedPopularTrack = null;
		// this.createVotePlayerContainer(current_row+1);
		this.createVotePlayerContainerPopup();
		_e("vote_player").innerHTML=this.vote_player_content;
		
		var trackData = this.getTrackDataByTrackId(track_id,initialTracksList);
		SearchManagerController.getInstance().getOtherRecordings(track_id);	
		
		return false;
	}
	
	this.voteDifferentVersionPopup = function(track_id)	{
		
		SearchManagerController.getInstance().getOtherRecordings(track_id);	
		return false;
	}
	
	this.otherRecordingsList = function(otherRecs, track_id,recording_id)
	{
		
		///////////////////////////////
	    // generate other  recordings track list
		//two variables that will prevent track restart in case of voting
		if(typeof(recording_id)=='undefined')
		{
			recording_id = null;
		}
		if(typeof(noplay)=='undefined')
		{
			noplay = false;
		}
		//current playing track
		_e('palyingFavTrackId').value = track_id;
		
		//reset songs container and add new data
		_e("voted_songs_container").innerHTML ='';
		try {
    		if (otherRecs.response.indexOf("data to display")> -1  ) {
    		   _e("voted_songs_container").innerHTML ='<div style="text-align: center; font-size: 14px; font-weight: bold; color: red; width; 100%;height:180px;">No other recordings available.</div>';
    		   return "";
    		}
		} catch (e) {
		    
		}
		
		
		
		if (this.currentPage == 'other_recordings') {
		   var first_recording_id = this.addRecordOtherPage(otherRecs,track_id,recording_id);
		} else {
		   var first_recording_id = this.addRecordLibrary(otherRecs,track_id,recording_id);
		}
    		 
    	if(first_recording_id && !noplay) {
    	   this.playRecording(_e('playRecording_'+first_recording_id),first_recording_id,track_id);
    	}
	}
	
	this.addRecordOtherPage = function (otherRecs,track_id,recording_id) {
	    var count=0;
		var first_recording_id=null;
	    for(i in otherRecs)
		{
			if((otherRecs[i]['provider_name']=="Muze") || (i == 'pagination'))
			{
				continue;
			}
			if(first_recording_id == null)
			{
				first_recording_id = otherRecs[i].recording_id;
			}
			var playbutton = "library/play_button2.gif";
			if(this.playingRecordingId && (this.playingRecordingId == otherRecs[i]['recording_id']))
			{
				playbutton = "library/playing_button.gif"
			}
			var newTrack = document.createElement("div");
			newTrack.className = "recordings";
			var divcontent = "<div class=\"rec_left\">"+
                				"<div style=\"float: left; width: 22px; \">"+
                				"<a href=\"javascript:void(0);\" onclick=\"jsListObjects.makePlay("+otherRecs[i].recording_id+");return false;\"><img id=\"img_track_"+otherRecs[i].recording_id+"\" border=0 src=\"" + Config.baseURL+ "images/"+playbutton+"\" /></a></div>"+
                				"<div style=\"color: #42598E;\"><b>"+trim_string(otherRecs[i].title,35)+"</b></div>"+
                				"<div style=\"float: left; width: 22px; padding-top:5px;\">"+
                					"<input type=\"image\" src=\"" + Config.baseURL+ "images/library/thumbs_up_"+(otherRecs[i]['voted']? "on" : "off")+".gif\" border=\"0\" vspace=\"3\" onclick=\"SearchManagerView.getInstance().voteRecording(this, "+otherRecs[i].recording_id+","+track_id+"); return false;\"/>"+
                				"</div>"+
                				"<div style=\"float: left; font-size: 10px;\">"+
                					"<font class=\"filesize\">Source: "+otherRecs[i]['provider_name']+"</font>&nbsp;<br />"+
							        "<font style=\"font-size:10px;\">"+otherRecs[i]['total_votes']+" User Votes</font>"+
                				"</div>"+
                			"</div>"+
                			"<div class=\"rec_right\">"+
                				"<a href=\"javascript:void(0)\" onclick=\"SearchManagerView.getInstance().showDeleteRecordingDialog('"+otherRecs[i]['recording_id']+"',this,true); return false;\">"+
	                               "<img src=\"" + Config.baseURL+ "images/library/delete.gif\" border=\"0\" vspace=\"1\" />"+
                                  "</a>"+
                 	       	"</div>";			
				
			newTrack.innerHTML = divcontent;
			_e("voted_songs_container").appendChild(newTrack);
//			newTrack.style.backgroundColor=colors[count%2];
			count++;
			//if(count==5) break;
		}
		return first_recording_id;
	}
	this.addRecordLibrary = function (otherRecs,track_id,recording_id,noplay) {
	    var count=0;
		var first_recording_id=null;
	
	    for(i in otherRecs)
		{
			if((otherRecs[i]['provider_name']=="Muze") || (i == 'pagination'))
			{
				continue;
			}
			if(first_recording_id == null)
			{
				first_recording_id = otherRecs[i].recording_id;
			}
			var playbutton = "library/play_button2.gif";
			if(this.playingRecordingId && (this.playingRecordingId == otherRecs[i]['recording_id']))
			{
				playbutton = "library/playing_button.gif"
			}
			var newTrack = document.createElement("div");
			newTrack.style.padding = "2px 0px 2px 0px";
			var divcontent = "<table width=\"295px\" cellpadding=\"2\" cellspacing=\"0\" class=\"mytable\" style=\"\">"+
						"<tr><td width=\"20\" valign=\"top\" style=\"padding-left:10px;\">"+
						"<input type=\"image\" src=\"" + Config.baseURL+ "images/"+playbutton+"\" border=\"0\" title='"+otherRecs[i].title+"' onclick=\"SearchManagerView.getInstance().playRecording(this, "+otherRecs[i].recording_id+","+track_id+"); return false;\" id=\"playRecording_"+otherRecs[i].recording_id+"\"/><br />"+
						"<input type=\"image\" src=\"" + Config.baseURL+ "images/library/thumbs_up_"+(otherRecs[i]['voted']? "on" : "off")+".gif\" border=\"0\" vspace=\"3\" onclick=\"SearchManagerView.getInstance().voteRecording(this, "+otherRecs[i].recording_id+","+track_id+"); return false;\"/>"+
						"</td>"+
						"<td valign=\"top\" style=\"line-height:12px; width:250px;white-space:normal;\">"+
							"<font class=\"artist_name_playlist\" style=\"font-size:10px;\">"+trim_string(otherRecs[i].title,60)+"</font><br />"+
							"<font class=\"filesize\">Source: "+otherRecs[i]['provider_name']+"</font>&nbsp;<br />"+
							"<font style=\"font-size:10px;\">"+otherRecs[i]['total_votes']+" User Votes</font>"+
						"</td>"+
						"<td align=\"right\" style=\"text-align:right;vertical-align:top; width:30px;\">"+
						    "<!-- &nbsp;<font class=\"artist_name_playlist\"><strong id=\"nowPlayingVoted"+otherRecs[i]['recording_id']+"\"></strong></font><br /> -->"+
                        "<a href=\"#\" onclick=\"SearchManagerView.getInstance().showDeleteRecordingDialog('"+otherRecs[i]['recording_id']+"',this,true); return false;\">"+
	                       "<img src=\"" + Config.baseURL+ "images/library/delete.gif\" border=\"0\" vspace=\"1\" />"+
                        "</a></td><td></td></tr></table>";			
			newTrack.innerHTML = divcontent;
			_e("voted_songs_container").appendChild(newTrack);
//			newTrack.style.backgroundColor=colors[count%2];
			count++;
			// if(count==4) break;
		}
		return first_recording_id;
	}
	
	this.createVotePlayerContainer = function(row_id)
	{
		var tReff = _e("main_table");
		if(this.playingRowIndex != null)
		{
			if(row_id>=this.playingRowIndex)
			{
				row_id = row_id + 1;
				this.playingRowIndex = row_id;
			}
		}
		else
		{
				this.playingRowIndex = row_id+1;
		}
		
		var newPC = tReff.insertRow(row_id);
		var newCell = newPC.insertCell(0);
		
		newCell.setAttribute("colSpan",6);
		newCell.appendChild(_e("vote_playing_now_main"));
		_e("vote_playing_now_main").style.marginLeft="0px";
		newCell.style.padding="0";
		
		if(this.currentPlayNowContainer != null)
		{
			this.currentPlayNowContainer.parentNode.parentNode.removeChild(this.currentPlayNowContainer.parentNode);
		}
		
		this.currentPlayNowContainer = newCell;
	}
	
	this.createVotePlayerContainerPopup = function()
	{
		/*if(this.currentPlayNowContainer != null)
		{
			this.currentPlayNowContainer.parentNode.parentNode.removeChild(this.currentPlayNowContainer.parentNode);
		}*/
		var elemX = _e("vote_playing_now_main");
		elemX.style.width = "700px";
		elemX.style.margin = "auto";
		elemX.style.padding = "0px";
		_e("orContainerCnt").innerHTML = "";
		_e("orContainerCnt").appendChild(elemX);
		if(this.vote_player_content){
		_e("vote_player").innerHTML=this.vote_player_content;}
		
	}
	this.createVotePlayerContainerPopupLib = function()
	{
		var elemX = _e("vote_playing_now_main");
		//elemX.style.width = "700px";
		//elemX.style.margin = "auto";
		//elemX.style.padding = "0px";
		//_e("orContainerCnt").style.display = "";
	   _e("vote_player").innerHTML=this.vote_player_content;
		
	}
	
	this.selectTrackIdVote = function(track_id)
	{
		_e("vote_playing_now_main").style.display="";
		if(this.votePopular==false)
		{
			this.redrawTable();
			_e(track_id).className="playing_now";
			_e("playButton_"+track_id).src= Config.baseURL + "images/library/play_button2_selected.jpg";
			_e('chk_'+track_id).src= Config.baseURL + "images/library/checkbox_unselected_blue.gif";
		}		
	}
	
	this.doActualPlayVoted = function doActualPlay(recording_id)
	{		
		this.videoCheckTimeout=setInterval("SearchManagerView.getInstance().playVideoVoted("+recording_id+")",1800);	
	}
	
	
	this.playVideoVoted = function playVideoVoted(recording_id)	{
		trace("playVideoVoted::" + recording_id);
		try {
			videoPlayerRef = _e("playingNowVideoVote" + (Config.browserName == "firefox" ? "_embed" : ""));
			// videoPlayerRef=document.getElementsByName("playingNowVideoVote"+(Config.browserName=="firefox"?"_embed":""));
			switch(Config.browserName)
			{
				case "msie":				
					if(typeof videoPlayerRef != 'object') { return; }
					/* else { if(videoPlayerRef.GetVariable('trackSuffix')==null) return; } */
					break;
				default:
					if(typeof videoPlayerRef.GetVariable != 'function') { return; }
					/* else { if(videoPlayerRef.GetVariable('trackSuffix')==null) return; } */
					break;
			}	
		} catch(e) { return; }	
		clearInterval(this.videoCheckTimeout);	
		// videoPlayerRef=_e("playingNowVideoVote"+(Config.browserName=="firefox"?"_embed":""));	
		try {		
			videoPlayerRef.playRecording(recording_id);
			// this.playRecording(recording_id);
		} catch(e) {
			console.log("error_" + recording_id + ", e = " + e);
			this.doActualPlayVoted(recording_id);
			// this.videoCheckTimeout=setInterval("SearchManagerView.getInstance().playVideoVoted("+recording_id+")",2000);	
		}
		//	videoPlayerRef.SetVariable("/actionObject:actionParams",recording_id+"");
		//	videoPlayerRef.SetVariable("/actionObject:actionType","play_recording");		
	}
	
	this.playRecording = function(refObj, recording_id,track_id)
	{
		try
		{
			if(this.playingRecordingId)
			{
				try
				{
					var tt = _e('playRecording_' + this.playingRecordingId);
					tt.src = tt.src.replace('playing_button.gif','play_button2.gif');
				}catch(e1){}
			}
		
						
			this.nowIPlay = true;
			this.playingRecordingId = recording_id;
			_e('palyingFavTrackId').value = track_id;
			refObj.src = refObj.src.replace('play_button2.gif','playing_button.gif');
			clearInterval(this.videoCheckTimeout);
			this.doActualPlayVoted(recording_id);
		}
		catch(e){}
	}
	
	this.saveFavoriteURL = function(ObjReff)
	{
		if (this.showLoginConfirm(ObjReff)) return;
		try
		{
			var theid = _e('palyingFavTrackId').value;
			var theurl = _e('saveFavoriteURL').value;
			SearchManagerController.getInstance().saveFavoriteURL(theurl,theid);
		}
		catch(e){
		    trace(e);
		}
	}
	
	this.showDeleteRecordingDialog = function(rec_to_del,objReff,showFixed)
	{
	    if (this.showLoginConfirm(ObjReff)) return;
        if (typeof(showFixed) == 'undefined') var showFixed = false;

		try
		{
			_e('selectedRecordingForDelete').value = rec_to_del;	
		}
		catch(e){}
		if(_e("deleteRecordingDialog").innerHTML)
		{
			this.deleteRecordingDialogContent=_e("deleteRecordingDialog").innerHTML;
		}
		_e("deleteRecordingDialog").innerHTML="";
		var msg = "<b class='w_title' style='margin-bottom: 0px; height: 22px;'>&nbsp;&nbsp;Delete this recording? Are you sure?</b>";
		this.showPopup(msg+this.deleteRecordingDialogContent,objReff,"right",showFixed);
		_e('deleteRecordingDialog').style.display = "none";
	}
	this.hideDeleteRecordingDialog = function()
	{
		try
		{
			_e('selectedRecordingForDelete').value = 0;	
		}
		catch(e){}
		_e("deleteRecordingDialog").innerHTML=this.deleteRecordingDialogContent;
		this.hidePopup();
	}
	this.sendDeleteRecordingMessage = function()
	{
		try
		{
			
			var delrec_id = _e('selectedRecordingForDelete').value? _e('selectedRecordingForDelete').value : this.playingRecordingId
			
			
			var theid = _e('palyingFavTrackId').value;
			var therec = delrec_id;
			var thetype = null;
			if(!theid || !therec)
			{				
				this.hideDeleteRecordingDialog();
				return false;
			}
			//check radios
			var radios =new Array('mym_dead_link','mym_amateur','mym_image');
			for(i in radios)
			{
				try
				{
					if(_e(radios[i]).checked == true)
					{
						thetype = _e(radios[i]).value;
						break;
					}
				}
				catch(e){}
			}
			this.hideDeleteRecordingDialog();
			if(!thetype)
			{
				return false;
			}
			SearchManagerController.getInstance().sendDeleteRecordingMessage(therec,theid,thetype);
		}
		catch(e){
		    trace(e);
		}
		return false;
	}
	//end vote for different version
	this.refreshTracksInterval = null;
	this.refreshListCounter = 25;
	this.timerStarted = false; 
	this.beforeMe = null;
	
	// "real-time" tracks
	this.realTimeTracksList = function () {
	   if (this.currentPage != 'now_playing') return;
	   this.timerStarted = true;   
	   
	   setTimeout("SearchManagerView.getInstance().drawPlayPause()",3200);
	   this.refreshTracksInterval = setInterval("SearchManagerView.getInstance().refreshTrackList()",3200);
	   
	}
	this.setFreshTracks =function (tracks) {
	    trackList2 = tracks;
	    this.refreshListCounter = 25; // back again;
	    this.timerStarted = false;
	    this.switchTimer();
	
	}
	this.refreshTrackList = function () {
	    
	    this.refreshListCounter --;
	
	
	    if (this.refreshListCounter < 0 || typeof(this.refreshListCounter) == 'undefined'){
	         this.stopRefreshTimer();
	         SearchManagerController.getInstance().doSearch('','&sort=recent_played');
	         return "";
	    } 
	      
	//insert track  
	    this.addTrack(trackList2[this.refreshListCounter],0);
	    initialTracksList.push(trackList2[this.refreshListCounter]); 
	 //remove last track   
	    _e("main_table").deleteRow(_e("main_table").rows.length-1);
	    
        try {
            //reset opacity elements bellow
            if (this.beforeMe != null) {
                try {_e(this.beforeMe).style.opacity = ""; } catch (e) {}
                _e('round_timer').action("stop");
            } 
            this.beforeMe = trackList2[this.refreshListCounter].track_id;
            this.opacity.from = 0;
            try {
              if (trackList2[SearchManagerView.getInstance().refreshListCounter].track_id) {
                 var element =_e(this.beforeMe);
                 if (element) {
                     if (Config.browserName == "msie") {
                        element.style.zoom =  "1";
                        element.style.filter = "alpha(opacity=0)";
                       }
               	       element.style.opacity = "0";
                 }
                 _e('round_timer').action("resume");
                 
                 this.opacityInterval= setInterval("SearchManagerView.getInstance().Appear(trackList2[SearchManagerView.getInstance().refreshListCounter].track_id)",200);
              }   
            } catch(e) {
            }
        } catch(e) {trace(e);}
    }
    
	this.stopRefreshTimer = function () {
	     this.timerStarted = false;  
	     this.opacity.from = 0;
	     clearInterval(this.refreshTracksInterval);
         clearInterval(this.opacityInterval); 
         
	}
	
	this.switchTimer = function () {
	    if (!_e('play_pause')) return;
	     
	    if (this.timerStarted) {
	        this.stopRefreshTimer();
	    } else {
	        this.realTimeTracksList();
	    }
	    this.drawPlayPause();
	     
	}
	this.drawPlayPause = function() {
	     var imgURL = Config.baseURL + "images/library/now_playing/";
	       
	     if (this.timerStarted) {
	         
	         _e('np_button').src = imgURL + "pause-button__white__normal.png";
	         _e('np_button').onmouseover = function now_play_button_pause_over() {_e('np_button').src = imgURL + "pause-button__white__over.png";}
	         _e('np_button').onmouseout = function now_play_button_pause_out() {  _e('np_button').src = imgURL + "pause-button__white__normal.png";}
	     } else {
	            
	         _e('np_button').src = imgURL+"play-button__white__normal.png";
	         _e('np_button').onmouseover = function now_play_button_play_over() {_e('np_button').src = imgURL + "play-button__white__over.png";}
	         _e('np_button').onmouseout = function now_play_button_play_out() {  _e('np_button').src = imgURL + "play-button__white__normal.png";}
	     }
	     try {
	         _e('round_timer').action(this.timerStarted?"resume":"pause");
	     } catch (e) {
	         trace(e);
	     }    
	      
	}
	this.opacity = {"from":0,"to":1};
	this.opacityInterval = null;
	this.Appear  = function (element) {
       try{
           if (!element || !SearchManagerView.getInstance().timerStarted) {
               _e(element).style.opacity ="1";
               this.opacity.from = 1;
               clearInterval(this.opacityInterval);
               
               return;
           } 
          if (Config.browserName == "msie") {
              _e(element).style.zoom =  "1";
              _e(element).style.filter = "alpha(opacity="+this.opacity.from*100+")";
          }
           if (this.opacity.from < this.opacity.to)  {	        
	          _e(element).style.opacity = this.opacity.from.toString();
	          this.opacity.from += 0.1; //step
	           
           } else {
               this.opacity.from = 1;
               clearInterval(this.opacityInterval);
               
           }
       } catch (e) {}
	    return;
	}
	
	this.saveUserSettings = function (settings) {
	     SearchManagerController.getInstance().saveUserSettings(settings);
	}
	
	this.voteRecording = function (ObjReff,recordingId,trackId,trackD) {
		// if (this.showLoginConfirm(ObjReff)) return;
		SearchManagerController.getInstance().voteRecording(ObjReff,recordingId,trackId);  
	    // publish feed for vote other recordings
	    if(typeof(initialTracksList)!=="undefined")
	    {
	    	var trackData = this.getTrackDataByTrackId(trackId,initialTracksList);
	    }
	    else
	    {
	    	var trackData =tempData;
	    }
	
	    this.publishFeed('vote',trackData);
    }
    this.artistId = null;
     
    this.relatedArtistList = function (content) {
       _e('related_artists_container').innerHTML = '';
       
        for (i in content){
            
            var row = document.createElement("div");
            var row_content ='<div class="clearfix" style="margin-top: 5px;">'+
						'<table width="204" cellpadding="0" cellspacing="0">'+
							'<tr>'+
								'<td width="74" valign="top" style="padding-top:1px;">'+
									'<div class="qloud_box" style="width:70px;">'+
										'<a href="'+ Config.baseURL + content[i].embed_artist+'" style="text-decoration: none;"><img src="'+content[i].image+'" style="width: 70px;/* height:*/" border="0"/></a>'+
									'</div>'+
								'</td>'+
								'<td width="4"></td>'+
								'<td valign="top" style="line-height:13px; padding-top:15px; margin-top: 0px; width: 115px;text-align:left;">'+
									'<font class="artist_name_playlist" title="'+content[i].artist_name+'"><a href="'+ Config.baseURL + content[i].embed_artist+'"><b>'+content[i].artist_name+'</b></a></font><br />'+
									'<span style="color:#808080;font-size:10px" ><span id="rel_artist_votes_'+content[i].artist_id+'">'+content[i].total_votes+'</span> Related Votes</span>'+
								'</td>'+
								'<td>'+
									'<div style="float:right;width:18px;text-alig:right" id="vote_container_'+content[i].artist_id+'">'+
										'<div style="width:18px;height:16px"><a href="javascript:void(0)" class="'+(content[i].thumbs == 1  ? "thumb_up_selected":"thumb_up_default") + '" style="display:block" id="thumbup_'+content[i].artist_id+'" onclick="vote_artist(this,'+ this.artistId + ','+content[i].artist_id+',true);return false" ><img src="'+ Config.baseURL +'images/spacer.gif" width="18" height="16" border="0" alt="Agree: these artists are related" title="Agree: these artists are related" /></a></div>'+
										'<div style="width:18px;height:16px"><a href="javascript:void(0)" class="'+(content[i].thumbs == -1 ? "thumb_down_selected":"thumb_down_default") +'" style="display:block"  id="thumbdown_'+content[i].artist_id+'" onclick="vote_artist(this,'+ this.artistId + ','+content[i].artist_id+',false);return false" ><img src="'+ Config.baseURL +'images/spacer.gif" width="18" height="16" border="0" alt="Disagree: these artists are not related" title="Disagree: these artists are not related" /></a></div>'+
									'</div>'+
									'<div style="float:right;width:18px;text-alig:right;display:none" id="loading_container_'+content[i].artist_id+'">'+
										'<img src="'+ Config.baseURL +'images/library/votes/loading.gif" />'+
									'</div>'+
									'<div style="clear:both"></div>'+
								'</td>'+
							'</tr>'+
							'<tr><td colspan="3" height="10"></td></tr>'+
						'</table>'+
					'</div>';
			 row.innerHTML = row_content;
			_e('related_artists_container').appendChild(row);		
        }
    }
    
    this.setSongOfTheMoment = function() {
    	if (stopSotmPopup) return false;
    	try {
    		sotm = 1;
	    	generalSuggest.getInstance().setIds({
				'poke_tracks'			: 'sotm_poke_tracks',
				'small_suggest'			: 'sotm_small_suggest',
				'suggested_artist_id'	: 'sotm_suggested_artist_id',
				'suggested_track_id'	: 'sotm_suggested_track_id',
				'suggested_artist'		: 'sotm_suggested_artist',
				'current_artist_id'		: 'sotm_current_artist_id'			
	    	});
		  	document.getElementById('setSotm').style.height = '100%';
	  		document.getElementById('setSotm').style.display = '';
	    	trace('Setting Song of the Moment...');
	    } catch(err) { trace(err); }
    }
	
    this.closeSongOfTheMoment = function() {
    	try {
    		sotm = 0;
	  		document.getElementById('setSotm').style.display = 'none';
	  		_e('sotm_suggested_artist').value='';
	  		var x=_e('sotm_poke_tracks');
	  		var len=x.length;
			for (i=0;i<len;i++)
			  {
			  x.remove(x.options[i]);
			  }
	  		_e('sotm_poke_tracks').disabled=true;
	  		_e('sotm_suggested_artist_id').value=0;
	  		_e('sotm_suggested_track_id').value=0;
	  		_e('later').checked=false;
	  		generalSuggest.getInstance().setIds(); // reset to use in the rest of the page
	    	trace('All done!');
	    } catch(err) { trace(err); }
    }
    
    this.updateSongOfTheMoment = function() {
  		SearchManagerController.getInstance().saveSongOfTheMoment(_e('sotm_suggested_track_id').value, _e('later').checked);
	    var permission = 'status_update';
	    if (typeof (fromFacebook) !=='undefined' || fromFacebook) {
			facebook_prompt_permission('status_update', function(accepted) {
				if(accepted) {
					var rqid=RequestManager.getInstance().createRequest(SearchManagerController.getInstance(),Config.baseURL+"index.php?use_format=json&action=publish_track_to_status&track="+_e('sotm_suggested_track_id').value);
					RequestManager.getInstance().startRequest(rqid);
	            }
	    	});   
    	} 	
    }
    
    this.refreshSongOfTheMoment = function(data) {
    	trace('Response for updating the song of the moment');
    	trace(data);
    	if (typeof(fromFacebook) == 'undefined' || !fromFacebook) {
    		this.publishFeed('update_status_song',data.current);
    	}
    	if (!_e('sotm_current_value')) return;
    	// Set the current song
    	//var code = '<a href="javascript:void(0);" onclick=\'SearchManagerView.getInstance().setSongOfTheMoment();\'>-- Click Here to Set --</a>';
    	var code='<span style="color:#42598E;">-- Click Here to Set --</span>';
    	if (data.current['track']) {
			// code = '<a href="'+data.current['track_link']+'" title="'+data.current['track']+'" onclick="stopSotmPopup=true;">'+truncate(data.current['track'],20,'')
			//	+'</a> by <a href="'+data.current['artist_link']+'" title="'+data.current['artist']+'" onclick="stopSotmPopup=true;">'+truncate(data.current['artist'],20,'')+'</a>';
			code = '<span style="color:#42598E;" title="'+data.current['track']+'">'+truncate(data.current['track'],20,' ')+'</span> by <span style="color:#42598E;" title="'+data.current['artist']+'">'+truncate(data.current['artist'],20,' ')+'</span>';
    	}
    	_e('sotm_current_value').innerHTML = code;
    	try { _e('sotm_current_value_feeds').innerHTML = code; } catch(err) { trace(err); }
    	// Rebuild the combobox:
    	var tarcksList = '<option value="0" style="color:#CCCCCC;" selected="selected">Select a track</option>';
    	if(data.later){
    	for(var i in data.later) {
    		var item = data.later[i];
    		tarcksList += '<option value="'+item['track_id']+'">'+htmlEntities(item['track'])+'</option>';
    	}
    	}
    	try { _e('sotm_saved_tracks').innerHTML = tarcksList; } catch(err) { trace(err); }
    	self.closeSongOfTheMoment();
    }
}

SearchManagerView.getLink = function (aReff)
{
	parent.location.href = aReff.href;
}

SearchManagerView.WIDGET_PATH = "";

SearchManagerView.__instance__=null;


SearchManagerView.getInstance=function()
{
	if(SearchManagerView.__instance__==null)
	{
		SearchManagerView.__instance__= new SearchManagerView();
	}
	return SearchManagerView.__instance__;
}



function trim_string(s,l)
{
	if (typeof(s) === undefined) return '';
	if (s == '') return s;
	if(s.length > l)
	{
		return s.substring( 0,(l-3) )+"...";
	}
	return s;
}
var selectedAll = false;
var stopSotmPopup = false;
var sotm = 0;
	
	function toggleSelect(ch, all)
	{
		
		if(all == 'all') selectedAll = true;
		else
		{ 
			if(all == 'none') selectedAll = false;
			else selectedAll = !selectedAll;	
		} 	
		
		if(selectedAll)
		{
			ch.src = Config.baseURL + "images/library/checkbox_selected.gif";
			
		}
		else
		{
			ch.src = Config.baseURL + "images/library/checkbox_unselected.gif";
		}
		
		SearchManagerView.getInstance().checkToggle(selectedAll);
	}
clicked = false;

function on_focus(val) {
  if (clicked) {
      return;
  }
  if (val) {
    if ( _e('search_key').value =='Search for a song or artist to listen to')  _e('search_key').value ='';
  } else {
      if (_e('search_key').value == '') _e('search_key').value ='Search for a song or artist to listen to';
  }
  return true;
}
function ie_fix_submit(){
   var e = window.event;
   var reff = getEventSrc(e);
   if ((!reff || reff.id != 'SearchKey') && e.keyCode == 13) {
       SearchManagerView.getInstance().do_search();
       return false;
   }
}

if(Config.browserName=="msie"){
	window.attachEvent("onresize",winResizeHandler);
    document.attachEvent("onkeydown",ie_fix_submit);
} else {
	window.addEventListener("resize",winResizeHandler,false);
}

function winResizeHandler() {
	try {
	var pageDim = getVisibleAreaCoords();
	var innerWd = pageDim['bottomX'];
	var nInnerWd = innerWd ;

	    if (innerWd < 998) {
	     	_e('qloud_container').style.width = "998px"; 
	     if (Config.browserName != 'msie') document.body.style.overflowX='auto';
	    }
	    else if (innerWd < 1200) {
	         _e('qloud_container').style.width = nInnerWd + "px";
	         document.body.style.overflowX='hidden';
	    }
	    else {
	    	_e('qloud_container').style.width = "1200px";
	    }
	} 
	  catch (e) {
	      //
	  }   
	if (_e('main_tbl'))	_e('main_tbl').style.display = "block";
	if (_e('bottom-menu')) _e('bottom-menu').style.display = "block";
	
	
}
function load_images() {
	MM_preloadImages(Config.baseURL + 'images/box/top-right.png',Config.baseURL + 'images/box/margin-top.png',Config.baseURL + 'images/box/top-left.png',
	Config.baseURL + 'images/box/margin-bottom.png',Config.baseURL + 'images/box/margin-left.png',Config.baseURL + 'images/box/margin-right.png',
	Config.baseURL + 'images/box/bottom-right.png',Config.baseURL + 'images/box/margin-bottom.png',Config.baseURL + 'images/box/bottom-left.png',
	Config.baseURL + 'images/library/popup_trans_bg.png');
}
function load_background_images() {
	//make user happy
	MM_preloadImages(Config.baseURL + 'images/main_bg1.jpg',Config.baseURL + 'images/main_bg2.jpg',Config.baseURL + 'images/main_bg3.jpg',Config.baseURL + 'images/main_bg4.jpg',Config.baseURL + 'images/main_bg5.jpg');
}
function check_expired_token () {
   
    if (CookieLib.readCookie('session_expired') == 'yes' && CookieLib.readCookie('session_expired')!=null && CookieLib.readCookie('session_expired') !='' &&  CookieLib.readCookie('session_expired') !='undefined') {
        google.friendconnect.container.signout();
        CookieLib.eraseCookie('session_expired');
    }
}
function attach_handlers () {
   /* try {*/
   //alert('atach');
    var search_input = _e('search_key');
        if(Config.browserName == "msie")
        {
        	//alert('IE');
        	search_input.attachEvent('onmouseover',searchKeyMouseOver);
           // alert(search_input.attachEvent('onmouseover',function() { alert('over'); on_focus(false); }));
        	search_input.attachEvent('onmouseout',searchKeyMouseOut);
        	search_input.attachEvent('onclick',searchKeyOnClick);
        }
        else{
         search_input.onmouseover = function searchKeyMouseOverHandler () {
             on_focus(true);
         }
        search_input.onmouseout = function searchKeyMouseOutHandler () {
             on_focus(false);
         }
        search_input.onclick = function searchKeyOnClickHandler () {
             clicked = true;
         }
        }
 /*    } 
     catch (e) {
         trace(e);
     }*/
}

function searchKeyMouseOver () {
	//alert('mover');
	 on_focus(true);
}
function  searchKeyMouseOut () {
	//alert('mout');
	 on_focus(false);
}
function searchKeyOnClick () {
	//alert('click');
     clicked = true;
}
function do_quick_search(search_key) {
      window.location.href = Config.baseURL + "search/"+SearchManagerView.getInstance().extra_escape(search_key)+".php";
     return;
}  
function start_now_playing() {
    if (SearchManagerView.getInstance().currentPage != 'now_playing') return;
    trace(SearchManagerView.getInstance().currentPage);
    var player = new SWFObject(Config.baseURL+"flashPlayer/RoundTimer.swf?framesPS=30", "round_timer", "20", "20", "8.0.0.0", "#ffffff", true);
	        player.addParam("allowScriptAccess", "always");
            player.addParam("wmode", "transparent");
            player.addParam("quality", "high");
            player.write("flash_loader");
    SearchManagerView.getInstance().realTimeTracksList();
    fromNowPlay = true;
}

function welcome_toggle() {
    var el = _e('welcome_switch');
    var box = _e('welcome_box');
    var um = _e('user-message');
    if (SearchManagerView.getInstance().isLoggedIn()) {
        SearchManagerView.getInstance().saveUserSettings(el.innerHTML=='close'?'0':'1');
    }
    if (el.innerHTML=='close') {
        el.innerHTML = 'Help';
        box.style.display = "none";
        um.style.height = "20px";
    } else {
        el.innerHTML = 'close';
        box.style.display = "block";
        um.style.height = "auto";
    }
} 

function app_init() {
	//resize container
	winResizeHandler();
	
	//preload main bg images
	setTimeout("load_background_images()",4000);
	setTimeout("check_expired_token()",5000);
	//FC sign in
	try { if(_e('div-1213972781524')){SearchManagerView.getInstance().renderSignInGadget(); }} catch(err) { trace(err); }
    try {
       jsListObject = SearchManagerView.getInstance();
       if (SearchManagerView.getInstance().currentPage != 'friends') {
         SearchManagerView.getInstance().init();
       } 
    } catch (e) {}
    // Attach Handlers on search key
    attach_handlers();
	//load_images();
	start_now_playing();
	
}

var is_initialized = false;

// Ensure Facebook app is initialized and call callback afterward 
function ensure_init(callback) {
    if(window.is_initialized) {
        callback();
    } else {
        FB_RequireFeatures(["XFBML"], function() {
            //FB.FBDebug.logLevel = 4;
            //FB.FBDebug.isEnabled = true;
            FB.Facebook.init("2e54750532894f9a4311f1ac3955d750","http://www.qloud.com/xd_receiver.htm");
            window.is_initialized = true;
            callback();
        });
    }
}

/*
 * Prompts the user to grant a permission to the application.
 */
function facebook_prompt_permission(permission, callbackFunc) {
  ensure_init(function() {
    //check is user already granted for this permission or not
    FB.Facebook.apiClient.users_hasAppPermission(permission,
     function(result) {
        // prompt offline permission
        if (result == 0) {
            // render the permission dialog
            FB.Connect.showPermissionDialog(permission, callbackFunc);
        } else {
            // permission already granted.
            callbackFunc(true);
        }
    });
  });
}

function toggleGlobalPreloader(show) {
	try {
		var showing = (_e('main_preloader').style.display == '');
		if (typeof show === 'undefined') {
			show = (showing ? false : true);
		} else if ((show && !showing) || (!show && showing)) {
			_e('main_preloader').style.display = (show ? '' : 'none');
		}
	} catch(err) { trace(err); }
}function MouseMonitor()
{
	var x=0;
	var y=0;
	var selfObj=this;
	var widgets=new Array();
	
	this.getX=function()
	{
		return x;
	}
	
	this.getY=function()
	{
		return y;
	}
	
	this.setPositions=function(e)
	{

		/*
	

		if(Config.browserName=="msie" && event && document.body)
		{

			x=event.clientX + document.body.scrollLeft;
			y=event.clientY + document.body.scrollTop;
		}
		else
		{	
			x=e.pageX;
			y=e.pageY;
		}
		*/
		if(typeof e === 'undefined' || !e) var e = window.event;
		
		if (document.documentElement && document.documentElement.scrollTop)
			x = document.documentElement.scrollTop;
		else if (document.body)
			x = document.body.scrollTop;
			
		if (document.documentElement && document.documentElement.scrolLeft)
			y = document.documentElement.scrollLeft;
		else if (document.body)
			y = document.body.scrollLeft;			
			
		x = e.clientX + x;			
		y = e.clientY + y;			
			
		for(var i=0;i<widgets.length;i++)
		{
			if(widgets[i])
			{			
				try
				{	
					widgets[i].onMouseMove();
				}catch(err){}
			}
		}
	}	
	/**
	*@param object 
	*@return number 	the index inside the "widgets" collection
	*@desc 	Register a widget with this controller
	*/
	this.register=function(widget)
	{
		if(typeof widget != "object")
		{
			return -1;
		}
		
		for(var i=0;i<widgets.length;i++)
		{
			if(!widgets[i])
			{
				widgets[i]=widget;
				return i;
				alert(widgets.length);
			}
		}
		widgets.push(widget);			
		return widgets.length-1;		
	}
	
	this.remove=function(wdIndex)
	{
		//widgets[wdIndex]=null;
		delete widgets[wdIndex];		
	}
}

MouseMonitor.__instance__=null;
MouseMonitor.getInstance = function()
{
	if(MouseMonitor.__instance__==null)
	{
		MouseMonitor.__instance__=new MouseMonitor();
	}
	return MouseMonitor.__instance__;
}
MouseMonitor.moveEventHandler=function(e)
{	
	if(typeof e === 'undefined' || !e) var e = window.event;
	MouseMonitor.getInstance().setPositions(e);
}
if(Config.browserName=="msie")
{
	document.attachEvent("onmousemove",MouseMonitor.moveEventHandler);
}
else
{
	document.addEventListener("mousemove",MouseMonitor.moveEventHandler,false);
}


/********************************************* GENERAL SUGGEST FUNCTION **************************************/
    var KEY_UP=38;
    var KEY_DOWN=40;
    lastSuggestType = null;
    function generalSuggest() {
		this.suggestRequestId = null
		this.suggestInterval = null;
		this.artist_id = null;
		this.album_id = null;
		this.track_id = null;
		this.track_name = null;
		this.album_name = null;
		this.artist_name = null;
		this.__instance__=null;
		
		this.queSuggest = function (suggestType,inputReff)
		{
			var argv = arguments;
			var argc = arguments.length;
			var event = null;
		    if (!_e(generalSuggest.ids['poke_tracks'])) {
		        var poke_tracks = document.createElement("div");
		        poke_tracks.id = generalSuggest.ids['poke_tracks'];
		        document.body.appendChild(poke_tracks);
		    }   
			_e(generalSuggest.ids['poke_tracks']).disabled=true;
			if(argc==3)
			{
				if(argv[2])
				{
					event = argv[2];
				}
				else
				{
					event = window.event;
				}
				
				if(event!=null)
				{
				
				if (this.suggestPosition == null) {
				    this.suggestPosition = 0 ;
				}
					if((event.keyCode == 13)&&(this.suggestPosition>=0))
					{
						_e(generalSuggest.SUGGEST_ID_PREFIX+this.suggestPosition).onmousedown();
						return false;
					}
	
					//arrow navigation on small suggest
					if((_e(generalSuggest.ids['small_suggest']).style.display == "block")&&((event.keyCode==KEY_DOWN)||(event.keyCode==KEY_UP)))
					{
						
						try
						{
							_e(generalSuggest.SUGGEST_ID_PREFIX+this.suggestPosition).className = "typeahead_suggestion typeahead_not_selected";
						}
						catch (err) {}
	
							
						switch(event.keyCode)
						{
							case KEY_DOWN :
								 this.suggestPosition ++;
							break;
							case KEY_UP :
								if(this.suggestPosition>0) this.suggestPosition --;
								else this.suggestPosition = 0;
							break;
						}
						try
						{
							_e(generalSuggest.SUGGEST_ID_PREFIX+this.suggestPosition).className = "typeahead_suggestion typeahead_selected";
						}
						catch(err)
						{
							// error most probably suggestPosition was too big, so reset
							this.suggestPosition = 0;
							_e(generalSuggest.SUGGEST_ID_PREFIX+this.suggestPosition).className = "typeahead_suggestion typeahead_selected";
						}
						return false;
					}
				}
			}
	
			if(inputReff.value=="")
			{
				clearTimeout(this.suggestInterval);
				this.closeSuggest();
				return false;
			}
			suggestInputReff = inputReff;
			if(this.suggestInterval!=null)
			{
				clearTimeout(this.suggestInterval);
			}
			lastSuggestType = suggestType;
			this.suggestInterval = setTimeout("generalSuggest.getInstance().runSuggest('"+suggestType+"')",300);
		}
		
		this.runSuggest = function (suggestType)
		{
			var search_key = suggestInputReff.value;
			_e(generalSuggest.ids['small_suggest']).innerHTML = "<div class='typeahead_message'>Loading...</div>";
			_e(generalSuggest.ids['small_suggest']).style.display = "block";
			this.suggestInterval = null;
			var more = "";
		    
			
			switch(suggestType)
			{
				case "album" :
					more += "&the_id="+this.artist_id+"&return_type=select";
					
				break;
				
				case "track" :
				
				if (SearchManagerView.getInstance().currentPage == 'artist_details') {
				    insert_related_artist(this.artist_id);
				    return;
				}
					if (this.album_id) more ="&the_id="+this.album_id;
					if (this.artist_id)	{
						more += "&artist_id="+this.artist_id;
						_e(generalSuggest.ids['suggested_artist_id']).value = this.artist_id;
					} else {
						more +="&search_key="+escape(search_key);
					}
					more += "&return_type=select";
				break;
				
				default:
					more +="&search_key="+escape(search_key);
				
				break;
			}
	
			more += "&controller=generalSuggest&sotm="+sotm;
		
        var rqid=RequestManager.getInstance().createRequest(generalSuggest.getInstance(),Config.baseURL+"index.php?action=refine_suggest&suggest_type="+suggestType+more+"&limit=10000&use_format=json");
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
			
		}
		
		this.handleResponse=function (managerIndex)
		{
			
			var errorCode = RequestManager.getInstance().getRequestObj (managerIndex).getResponseErrorCode();
		    var content = RequestManager.getInstance().getRequestObj (managerIndex).getResponseContent();
			var response = eval('('+RequestManager.getInstance().getRequestObj (managerIndex).xmlRequestObject['responseText']+')');
			switch(errorCode)
			{
				case 1 :
					_e(generalSuggest.ids['small_suggest']).innerHTML = "<div class='typeahead_message'>No matches found</div>";
				break;
				case 2 :
					try {
						var rez = content;
					} catch(err) {
					
					}
				break;
				case 5 :
					if(lastSuggestType=="artist")
					{
						var sEl = _e(generalSuggest.ids['small_suggest']);
						sEl.style.display = "block";
	
						try {
							var rez = content['solution'];
						} catch (err) {
						
						}
						
						try
						{
							if(rez.length>0) {
								try
								{
									this.artist_id=null;
									this.album_id=null;
									var rezNew = rez.replace(/<a/g,'<div');
									rezNew = rezNew.replace(/<\/a/g,'</div');
									rezNew = rezNew.replace(/onclick=/gi,'onmousedown=');
									 var tmpArr1=rezNew.split('<div');
									 var suggest_list='';
									 var search_key = suggestInputReff.value;
									for (var i=1;i<tmpArr1.length;i++)
									{
									var t3 = tmpArr1[i].split(">");
									var elm_content = t3[0]+"><em style='color:#003399;'>"+t3[1].substr(0,search_key.length)+"</em>"; 
									    elm_content += t3[1].substr(search_key.length)+">";
										suggest_list+="<div style='font-size: 12px;' onmousemove='generalSuggest.getInstance().setSuggest("+(i-1)+");' onmouseout='generalSuggest.getInstance().setSuggest(-1);' "+elm_content;
									}		 
										
									sEl.innerHTML =suggest_list;
									sEl.style.display="block";
									
									//highlight the first item by default if possible
									_e(generalSuggest.SUGGEST_ID_PREFIX+0).className = "typeahead_suggestion typeahead_selected";
									this.suggestPosition=0;
									for(var i=1;i<rez.length;i++) _e(generalSuggest.SUGGEST_ID_PREFIX+i).className = "typeahead_suggestion typeahead_not_selected";
								} catch(err) {}
							}
						} catch(err) {
							sEl.innerHTML = "<div class='typeahead_message'>Loading...</div>";
						}
					} else {
						try {
							if (_e(generalSuggest.ids['poke_tracks'])) {
								_e(generalSuggest.ids['poke_tracks']).disabled = false;
								if (sotm == 1) {
									// song of the moment
									var sel = _e(generalSuggest.ids['poke_tracks']);
									sel.innerHTML = '';
									var set_suggested_id = false
									for(var i in content.solution) {
										if (!set_suggested_id) {
											_e('sotm_suggested_track_id').value = i;
											set_suggested_id = true;
										}
										var opt = document.createElement('option');
										opt.value = i;
										opt.innerHTML = content.solution[i];
										sel.appendChild(opt);
									}
								} else {
									_e(generalSuggest.ids['poke_tracks']).innerHTML = content.solution;
								}
							}
						} catch(err) { trace(err); }
					}
				break;
				//100 + 1 vote
				case 101 :
				    vote_artist_response(content);
				break;
				//insert related artist
				case 102:
                    _e(generalSuggest.ids['suggested_artist']).style.background = "white url("+Config.baseURL+"images/library/magglass.png) no-repeat scroll 3px 4px";
                    _e(generalSuggest.ids['suggested_artist']).style.height = "17px";
                    _e(generalSuggest.ids['suggested_artist']).style.lineHeight = "17px";
                    _e(generalSuggest.ids['suggested_artist']).value = 'Type an artist name';
                
                    SearchManagerController.getInstance().getRelatedArtists(_e(generalSuggest.ids['current_artist_id']).value);
                    //SearchManagerView.getInstance().showPopup("<b class='w_title'>&nbsp;&nbsp;Success!</b><div class='desc'>"+content+"</div><div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+"images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' style='color: #ffffff;' href='javascript:void(0)' onclick='SearchManagerView.getInstance().hidePopup()'><img border=0 src='"+Config.baseURL+"images/library/popup_close_button.gif' /></a>",_e('suggested_artist'),"left");    				
				break;
				
				default:
				break;
			}
		}
		
		this.setSuggest = function setSuggest(index)
		{
			this.selectedindex=(index<=-1)?-1:index;
			var nodes=_e(generalSuggest.ids['small_suggest']).childNodes;
		
			for(var i=0;i<nodes.length;i++)
			{
				if(this.selectedindex==i)
				{
					nodes[i].className=nodes[i].className.replace(/\btypeahead_not_selected\b/,'typeahead_selected');
				}
				else
				{
					nodes[i].className=nodes[i].className.replace(/\btypeahead_selected\b/,'typeahead_not_selected');
				}
			}
		}
			
		this.suggestAction = function (suggestType,data,id)	{
			this.closeSuggest();
			switch(suggestType)
			{
				case "artist" :
					this.artist_id = id;
					this.artist_name = data;
					_e(generalSuggest.ids['suggested_artist']).value = data;
					this.runSuggest('track');
					lastSuggestType="track";
					if (_e(generalSuggest.ids['small_suggest']))  {
					  this.closeSuggest();
					}
				break;
				
				case "track" :
					this.track_id = id;
					this.track_name = data;

					lastSuggestType="track";
				break;
			}
	
			return true;
		}
		this.closeSuggest = function () {
			_e(generalSuggest.ids['small_suggest']).style.display = "none";
			this.suggestPosition = 0 ;
		}
		
		this.setIds = function(arr) {
			if (typeof arr == 'undefined') var arr = new Array();
			for(key in generalSuggest.ids) {
				if (arr[key]) generalSuggest.ids[key] = arr[key];
				else generalSuggest.ids[key] = defaults[key];
			}
		}
	}
	
	var lastSuggestType = null;
	var suggestInputReff = null;
	
	generalSuggest.ids = {
		poke_tracks			: 'poke_tracks',
		small_suggest		: 'small_suggest',
		suggested_artist_id	: 'suggested_artist_id',
		suggested_track_id	: 'suggested_track_id',
		suggested_artist	: 'suggested_artist',
		current_artist_id	: 'current_artist_id'
	};
	var defaults = generalSuggest.ids;
	
	generalSuggest.SUGGEST_ID_PREFIX = "suggest_entry_";
	generalSuggest.__instance__=null;
	generalSuggest.getInstance = function ()
	{
		if(generalSuggest.__instance__==null)
		{
			generalSuggest.__instance__ = new generalSuggest();
		}
		return generalSuggest.__instance__;
	}

function artist_focus(val) {
        var input_txt = 'Type an artist name';
        var suggested_artist = _e(generalSuggest.ids['suggested_artist']);
        var small_suggest = _e(generalSuggest.ids['small_suggest']);
       
       	small_suggest.style.width = parseInt(suggested_artist.style.width.replace(/&px/gi,""))  - 2;
        if (generalSuggest.ids['small_suggest'].indexOf('sotm') < 0) {
        	small_suggest.style.left = getLeft(suggested_artist)+"px";
        } else if (Config.browserName == 'msie') {
        	small_suggest.style.left = '155px';
        	small_suggest.style.marginTop = '22px';
        	small_suggest.style.width = '180px';
        }
            
		if (val){
			if (_e(generalSuggest.ids['suggested_artist']).value==input_txt) suggested_artist.value = '';
			small_suggest.style.display = "block";
			small_suggest.innerHTML="<div class='typeahead_message'>Start typing an Artist Name</div>";
		}
		else {
			if (suggested_artist.value=='') suggested_artist.value = input_txt;
			small_suggest.style.display = "none";
		}
}
function insert_related_artist(related_artist_id) {
   if (SearchManagerView.getInstance().showLoginConfirm(_e(generalSuggest.ids['suggested_artist']))) return;
	_e('related_artists_container').innerHTML = '<img src="'+Config.baseURL+'images/library/votes/loading.gif" border="0" />';
	_e('suggested_artist').style.background = "#e1e9f6";
	
	//feed fecth data
	SearchManagerView.getInstance().getTempAristsData(related_artist_id+","+_e(generalSuggest.ids['current_artist_id']).value,'add_related_artist');
	
    var url =  Config.baseURL + "index.php?action=insert_related_artist&use_format=json&module=main&add_related_artist_id="+related_artist_id+"&artist_id="+_e(generalSuggest.ids['current_artist_id']).value;
    var rqid=RequestManager.getInstance().createRequest(generalSuggest.getInstance(),url);
	RequestManager.getInstance().startRequest(rqid);
}
/************************************ RELATED ARTISTS **************/
var artistId= null;
var thumb = null;
var ObjReff= null;
function vote_artist(obj_ref,voted_artist_id,artist_Id,thumb_up) {
	
	if (SearchManagerView.getInstance().showLoginConfirm(obj_ref)) return;
	thumb = thumb_up;
	artistId= artist_Id;
	
	var vote_container=_e("vote_container_"+artist_Id);	
	var load_container=	_e("loading_container_"+artist_Id);
	vote_container.style.display = 'none';
	load_container.style.display = 'block';
	var url = Config.baseURL + "index.php?module=main&action=vote_related_artist&use_format=json&artist_id="+artist_Id+"&related_artist_id="+voted_artist_id+"&related_artist_vote="+ (thumb_up ? 1 : -1);
	//feed fecth data
	SearchManagerView.getInstance().getTempAristsData(artist_Id+","+voted_artist_id,'vote_related_artist');
	var rqid=RequestManager.getInstance().createRequest(generalSuggest.getInstance(),url);
		RequestManager.getInstance().startRequest(rqid);
}
function vote_artist_response(response){
            var vote_container=_e("vote_container_"+artistId);	
	        var load_container=	_e("loading_container_"+artistId); 
  			vote_container.style.display = 'block';
			load_container.style.display = 'none';

			if(thumb) {
				//vote for artist
				if (_e("thumbup_"+artistId).className != "thumb_up_selected") {
				    adjust_related_votes(1);   
				}
				_e("thumbup_"+artistId).className = "thumb_up_selected";
				_e("thumbdown_"+artistId).className = "thumb_down_default";
				
			} else {
				//vote against artist
			    if (_e("thumbdown_"+artistId).className != "thumb_down_selected") {
				    adjust_related_votes(-1);   
				}
			     
				_e("thumbup_"+artistId).className = "thumb_up_default";
				_e("thumbdown_"+artistId).className = "thumb_down_selected";
		}
}
function adjust_related_votes(v) {
   var votes = parseInt(_e('rel_artist_votes_'+artistId).innerHTML);
   _e('rel_artist_votes_'+artistId).innerHTML = votes + (v);  
}var videoCheckTimeout = null;
var playingTrackId = null;
var contet_player_running = false;
var Track_Id=null;

function playerObject() {
    this.setProviderLogo = function() {}
	this.setCrtRecordingId = function() {}
    this.onClipEnd = function (){
       setTimeout("closeContextPlayer()",50);
	   //closeContextPlayer();
	}
}
var contextPlayerJsListObject = new playerObject();   

function openContextPlayer(trackId, objref, popupVoteOther)
{
	Track_Id=trackId;
    contet_player_running = true;
    if (typeof(isOpenSocial) == 'undefined') {
        isOpenSocial = false;
    }
    if (typeof(popupVoteOther) == 'undefined') {
    	var popupVoteOther = false;
    }
	if(typeof(trackId)=="undefined")
	{
		return;
	}
	try {
	    _e("contextPlayerContainer").innerHTML;
	    clearInterval(videoCheckTimeout);
	} catch (e) {
	    var container = createContextPlayerContainer(popupVoteOther);
		document.body.appendChild(container);
		
	}
        
	try { if (popupVoteOther) nowPlayingOtherId = trackId; } catch(e) { trace(e); }
	
    	try {
	var playerDiv = _e("contextPlayerContainer");
	var coords = getVisibleAreaCoords();
	var topDiff = isOpenSocial?10:getTop(objref)-50;
	
	if (!isOpenSocial){
	if (Config.browserName == "msie") {
	   topDiff = getTop(objref);
	}  
    if ( (coords.bottomY - getTop(objref)) < 413) {
       topDiff -= 250; 
    }
	}
    //set up player position
        playerDiv.style.top = topDiff + 'px';
        playerDiv.style.left = (isOpenSocial?200:parseInt(coords.bottomX/2-175))+"px";
	    playerDiv.style.display = "block";
	    // fetch track data
	    getPlayerTrackData(trackId);
	       
	    //switch play buttons
	    switch_play_buttons(trackId,playingTrackId);
	   
    	playingTrackId = trackId;
	//add drag and drop support to container
	    var drag = new Drag();
        drag.makeDragable(_e('contextPlayerContainer'));
    	} catch (e) {} 
}

function switch_play_buttons(ObjTo,Objfrom) {
    var play_buttons = new Array("playing_button.gif","play_button2.gif");
     try {
          if (ObjTo == Objfrom) return;
           if (ObjTo)   _e('img_track_'+ObjTo).src   =  Config.baseURL + "images/library/"+play_buttons[0]; 
           if (Objfrom) _e('img_track_'+Objfrom).src =  Config.baseURL + "images/library/"+play_buttons[1];
     } catch (e) {}
}

function closeContextPlayer(){
	var playerDiv = _e("contextPlayerContainer");
	    playerDiv.style.display= "none";
	var player = _e("playerDiv");
	    player.innerHTML = "";
   	    switch_play_buttons(null,playingTrackId);
   	    playingTrackId = null;
		clearInterval(videoCheckTimeout);
		contet_player_running = false;
}

function createContextPlayer(trackId,player_service_url){
         
   try {
   var player = new SWFObject(Config.playerURL+"ultimate_player.swf?serviceUrl="+encodeURIComponent('http://www.qloud.com/api/index.php?pn=track_sources')+"&jsListObject=contextPlayerJsListObject&config_url="+Config.playerURLENC+"config_qloud_330.xml&track_id="+trackId+"&on_end_function=closeContextPlayer&givepoints_URL=" + player_service_url + (Config.browserName == "msie" ? '&is_IE=1':''), "playingNowVideo", "329", "280", "7.0.0.0", "#ffffff", true);
       
       player.addParam("allowScriptAccess", "always");
       player.addParam("allowFullScreen", "true");
       player.addParam("wmode", "transparent");
       player.addParam("quality", "high");
       player.write("playerDiv");
   } catch (e) {
       //new swfobject http://code.google.com/p/swfobject/wiki/documentation
       var flashvars = {};
       var params = {};
       var attributes = {};
         flashvars.serviceUrl = encodeURIComponent(Config.baseURL + 'api_dev/index.php?pn=track_sources');
         flashvars.jsListObject = 'contextPlayerJsListObject';
         flashvars.trackId = trackId;
         flashvars.givepoints_URL = player_service_url
         if  (Config.browserName == "msie") flashvars.is_IE = 1;
        
        params.allowScriptAccess = "always";
        params.wmode = "transparent";
        params.quality = "high";        
        var attributes = {
          id: "dynamicContent",
          name: "dynamicContent"
        };
               
        
       swfobject.embedSWF(Config.baseURL+"flashPlayer/flashPlayer.swf", "player_new", "329", "280", "8.0.0",null, flashvars, params, attributes);
       
   }
     // videoCheckTimeout=setInterval("playTrack("+trackId+")",1000);
}

function playTrack(trackId) {
    var videoPlayerRef=_e("playingNowVideo");
		try {
		switch(Config.browserName)
		{
			case "msie":				
				if(typeof videoPlayerRef != 'object')
				{			
					return;
				}
		
			break;
			default:
				if(typeof videoPlayerRef!= 'function')
				{			
					return;
				}
				
			break;
		}	
		} catch (e) { 
		    return;        
		}	
	    clearInterval(videoCheckTimeout);
        videoPlayerRef=_e("playingNowVideo");
	    try{
	    	videoPlayerRef.playTrack(trackId);
	    }
	    catch(e){
	    	return;
	    }
	 

}
function createContextPlayerContainer(popupVoteOther){
  var contextPlayerContainer = _c('div');
      contextPlayerContainer.id = "contextPlayerContainer";
      contextPlayerContainer.className = "contextPlayerContainer";
  var closeDiv = _c('div');  
      closeDiv.className = "closeDiv";
  var closeA = _c('a');
      closeA.href="javascript:void(0)";
      closeA.onclick = function closeClickHandler() {closeContextPlayer(); return false;};
      closeA.innerHTML="Close";      
      closeDiv.appendChild(closeA);
      contextPlayerContainer.appendChild(closeDiv);
  var playerContainer = _c('div');  
      playerContainer.className = "playerContainer";
  var playerDiv = _c('div');  
      playerDiv.className = "playerDiv";
      playerDiv.id = "playerDiv";
      playerDiv.innerHTML = '<div id="player_new"><center><p><a href="http://www.adobe.com/go/getflashplayer" taget="_blank"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" boder="0" /></a></p></center></div>';
      playerContainer.appendChild(playerDiv);
      
      playerContainer.innerHTML += show_player_track_data();
      playerContainer.innerHTML += show_player_footer(popupVoteOther);
      playerContainer.innerHTML += show_player_actions();
      contextPlayerContainer.appendChild(playerContainer);
 
   return contextPlayerContainer;
}
function _c(elm) {
    return document.createElement(elm);
}
function show_player_track_data () {
    return '<div class="vrongVideoDiv" style="background:#EEEEEE;height:34px;line-height:17px;">'+
			'<span><a id="song_link" href="javascript:void(0)" target="_blank">Track Name</a> by <a id="artist_link" href="javascript:void(0)" target="_blank">Artist Name</a><br />'+
			'Album: <a id="album_link" href="javascript:void(0)" target="_blank">Album Name</a>'+
			'</span>'+
		'</div>';
}
function show_player_footer (popupVoteOther) {
    return '<div class="vrongVideoDiv"><div style="float: left;">&nbsp;</div>'+
			((popupVoteOther == true)
				? '<div style="float: right; margin-top: 2px;">Wrong Video? <a href="javascript:void(0)" id="vote_different" onclick="showOtherCP_G('+Track_Id+');return false;">Vote for a different version</a></div>'
				: '<div style="float: right; margin-top: 2px;">Wrong Video? <a href="javascript:void(0)" id="vote_different" onclick="SearchManagerView.getInstance().pausePlayer();">Vote for a different version</a></div>'
			)+'<div style="clear: both;"></div></div>';
}
function show_player_actions() {
	 var cookie=SearchManagerView.getInstance().checkCookie("_ps_auth"+SearchManagerView.getInstance().siteId);
	 var show="display:none;";
	 if(cookie=="true"){show='';}
    return '<div class="vrongVideoDiv" style="padding-top:2px; padding-bottom:2px; line-height:11px;">'+
			'<span>&nbsp;&nbsp;Actions: </span>'+
			'<a href="javascript:void(0)" title="Add to Library"  ><img src="'+Config.baseURL+'images/library/action_add.gif" vspace="1px" align="absmiddle" border="0" id="add_to_library"></a><span id="crtPoweredButton" style="display:none;"></span>'+
			'<span>&nbsp;|&nbsp;</span>'+
    		'<a href="#" title="Buy" id="crtITunes" ><img src="'+Config.baseURL+'images/library/action_buy.gif" vspace="2px" align="absmiddle" border="0"></a>'+
    		'<span>&nbsp;|&nbsp;</span>'+
    		'<a href="#" title="Buy this ringtone" id="crtRingTonesVendor" target="_blank"><img src="'+Config.baseURL+'images/library/buyringtone.jpg" vspace="1px" align="absmiddle" border="0"></a>'+
    		'<span style="'+show+'">&nbsp;|&nbsp;</span>'+
    		'<a id="share_fb" href="javascript:void(0);" class="fb_share_button"  title="Share with your friends." style="text-decoration:none;width:24px;color:#004A62;'+show+'">Share</a>'+
    		'</div>';
}
 


function getPlayerTrackData(trackId) {
   resetPlayerValues();
   try {
    var url = Config.baseURL + "index.php?action=getContextPlayerData&track_id="+trackId +"&use_format=json&module=main" ;
        if (isOpenSocial) {
            makeCachedRequest(url,trackDataPlayer_handler,null,0);
        } else {
            var rqid=RequestManager.getInstance().createRequest(new trackDataPlayer_handler(),url);
		RequestManager.getInstance().startRequest(rqid);
        }
   } catch (e) {
	trace(e);
   } 
}

    
function trackDataPlayer_handler(response) {
 if (isOpenSocial) {
    try {
       var retValue = response.data;
       getPlayerTrackDataResponse(retValue);
    }   catch (e) {
    
    } 
 }  
    this.handleResponse = function (managerIndex){
    var response = eval('('+RequestManager.getInstance().getRequestObj (managerIndex).xmlRequestObject['responseText']+')');
    getPlayerTrackDataResponse(response);
 }    
}
 

function getPlayerTrackDataResponse (response){
    
    
     //create container   
    createContextPlayer(playingTrackId,response.content.gp_URL);
    var data = response;
    var commentsNumber = "";
 
   	try {
  		ARTIST_IMAGE = data.content['track_data']['artist_image'];
  		NOW_PLAYING_TITLE = data.content['track_data']['track'];
  		ARTIST_DETAIL_LINK = Config.baseURL + data.content['embeds']['artist'];
  		ARTIST_NAME = data.content['track_data']['artist'];
  		NOW_PLAYING_ALBUM_LINK = Config.baseURL + data.content['embeds']['album'];
  		NOW_PLAYING_ALBUM_TITLE = data.content['track_data']['album'];
  	} catch(e) { trace(e); }
 
    _e('crtITunes').href = data.content.buylink;
    _e('song_link').innerHTML = data.content['track_data']['track'];
    _e('song_link').href = Config.baseURL + data.content['embeds']['track']; 
    _e('artist_link').innerHTML = data.content['track_data']['artist'];
    _e('artist_link').href = Config.baseURL + data.content['embeds']['artist'];
    _e('album_link').innerHTML = data.content['track_data']['album'];
    _e('album_link').href = Config.baseURL + data.content['embeds']['album'];
    //_e('crtPlaySendSongButton').href = Config.baseURL+'&page=send_song&track_id='+data.content['track_data']['track_id'];  
    _e('vote_different').onclick =function fixTrackHandler()
	{
		showOtherCP_G(data.content['track_data']['track_id']);
		return false;
	}	
   _e('vote_different').href = "javascript:void(0)";  
			var escaped_track = "";
			var escaped_artist = "";
			try
			{
				escaped_artist = data.content['track_data']['artist'].split('\x2B');
				escaped_artist = escaped_artist.join('%2B');
			} catch (e){}
			try
			{
				escaped_track = data.content['track_data']['track'].split('\x2B');
				escaped_track = escaped_track.join('%2B');
			} catch (e){}
			try
			{
				escaped_artist = data.content['track_data']['artist'].split('\x20');
				escaped_artist = escaped_artist.join('+');
			} catch (e){}
			try
			{
				escaped_track = data.content['track_data']['track'].split('\x20');
				escaped_track = escaped_track.join('+');
			} catch (e){}
			
		
    _e('add_to_library').onclick = function a() {
        SearchManagerView.getInstance().showAddToLibraryConfirm(data.content['track_data']['track_id'],_e('add_to_library'),{'track':escape(data.content['track_data']['track']),'artist': escape(data.content['track_data']['artist'])});
        return false;
        
    }
    _e('share_fb').onclick = function share_fb() {
    	return	fbs_click(Config.baseURL+"qloud_share.php?page=song&track_id="+data.content['track_data']['track_id']);
               
    }

    _e('crtRingTonesVendor').href = "http://offers.thumbplay.com/offers/1058/artisttitle?thpartist="+escaped_artist+"&thptitle="+escaped_track;
    /*_e('fixTrackLink').onclick = function b() {
        var videoPlayerRef=_e("playingNowVideo");
         	
     	if(!videoPlayerRef) {
		  return;		
		}
		try {
		  videoPlayerRef.SetVariable("/actionObject:actionType","pause");
		} catch (e){}		
    }*/
    
}
function resetPlayerValues() {
    _e('crtITunes').href = "javascript:void(0)";
    _e('song_link').innerHTML = 'Track';
    _e('song_link').href = "javascript:void(0)"; 
    _e('artist_link').innerHTML = 'Artist';
    _e('artist_link').href = "javascript:void(0)";
    _e('album_link').innerHTML = 'Album';
    _e('album_link').href = "javascript:void(0)";
     _e('add_to_library').onclick = function a() {return false;}
    _e('share_fb').onclick = function share_fb() {return false;}
    _e('crtRingTonesVendor').href = "javascript:void(0)";
    _e("playerDiv").innerHTML = '';
     
}
        	

/* Simple Drag function */
function Drag() {
    this.makeDragable = function (objReff)
	{
		if(Config.browserName=="msie")
		{
			objReff.attachEvent("onmousedown",dragMouseDownHandler);
			objReff.attachEvent("onmouseover",dragMouseOverHandler);
		}
		else
		{
			objReff.addEventListener("mousedown",dragMouseDownHandler,false);
			objReff.addEventListener("mouseover",dragMouseOverHandler,false);
		}
		dragObjectReff = objReff;
	}
}
var dragingNow = false;
var initialMouseX;
var initialMouseY; 
var initialObjectX;
var initialObjectY; 
var dragObjectReff;
  
function dragMouseDownHandler(e)  {
	   if(!e) e = window.event;
	   var objReff = getEventSrc(e);
	      
	   if (objReff.id != "contextPlayerContainer") {
	          return false;
	   }
	    dragingNow = true;
	    initialMouseX = MouseMonitor.getInstance().getX();
	    initialMouseY = MouseMonitor.getInstance().getY();  
	    
	    var x = getLeft(objReff);
	    var y = getTop(objReff);
	    
	    initialObjectX = x;
	    initialObjectY = y;
	    
    }
    function dragMouseUpHandler(e)
    {
        if(!e) e = window.event;
	   var objReff = getEventSrc(e);
	      dragingNow = false;
	    if (typeof(objReff) == 'function') {
	          objReff.onclick =  function a () { return false;} 
	    }
	   if (objReff.id != "contextPlayerContainer") {
	          return false;
	   }
       objReff.style.cursor = "";     
    }    
    function dragMouseMoveHandler(e)
    {
        if (dragingNow == true) {
           if(!e) e = window.event;
	       var objReff = getEventSrc(e);
            disableSelection();
            var currentX = MouseMonitor.getInstance().getX();
		    var currentY = MouseMonitor.getInstance().getY();
            
            var xDiff = initialMouseX - currentX;
		    var yDiff = initialMouseY - currentY;

    		dragObjectReff.style.left = (initialObjectX - xDiff ) + "px";
		    dragObjectReff.style.top =  (initialObjectY - yDiff ) + "px";
        }
    }
    function dragMouseOverHandler (e) {
       if(!e) e = window.event;
	   var objReff = getEventSrc(e);
	    objReff.style.cursor = "";
	   if (objReff.id != "contextPlayerContainer") {
	          return false;
	   }
	   objReff.style.cursor = "move";
    }
    function disableSelection(){
    	switch (Config.browserName){
			case 'msie':

					if 	(document.selection) document.selection.empty();
				break;
			case 'firefox':
				window.getSelection().removeAllRanges();
				break;
			case 'safari':
				break;
    	}
    }
    
 
if(Config.browserName=="msie")
{
	document.attachEvent("onmouseup",dragMouseUpHandler);
	document.attachEvent("onmousemove",dragMouseMoveHandler);
}
else
{
	window.addEventListener("mouseup",dragMouseUpHandler,false);
	window.addEventListener("mousemove",dragMouseMoveHandler,false);
} 
 
/* Mouse Monitor Widget */
function MouseMonitor()
{
	var x=0;
	var y=0;
	var selfObj=this;
	
	this.getX=function()
	{
		return x;
	}
	
	this.getY=function()
	{
		return y;
	}
	
	this.setPositions=function(e)
	{
		if(!e) e = window.event;
		
		if (document.documentElement && document.documentElement.scrollTop)
			x = document.documentElement.scrollTop;
		else if (document.body)
			x = document.body.scrollTop;
			
		if (document.documentElement && document.documentElement.scrolLeft)
			y = document.documentElement.scrollLeft;
		else if (document.body)
			y = document.body.scrollLeft;			
			
		x = e.clientX + x;			
		y = e.clientY + y;			
			
	}	
	
}

MouseMonitor.__instance__=null;
MouseMonitor.getInstance = function()
{
	if(MouseMonitor.__instance__==null)
	{
		MouseMonitor.__instance__=new MouseMonitor();
	}
	return MouseMonitor.__instance__;
}
MouseMonitor.moveEventHandler=function(e)
{	
	if (contet_player_running) {
	var tmp=e;
	MouseMonitor.getInstance().setPositions(tmp);
}
}
if(Config.browserName=="msie")
{
	document.attachEvent("onmousemove",MouseMonitor.moveEventHandler);
}
else
{
	document.addEventListener("mousemove",MouseMonitor.moveEventHandler,false);
}
function disabletext(e){
return false
}

function reEnable(){
return true
}

//if the browser is IE4+
document.onselectstart=function ()
{
	if(!e) e = window.event;
	var objReff = getEventSrc(e);
	if(objReff.id!="playingNowVideo")
	{
		return false;
	}
}

//if the browser is NS6
if (Config.browserName=="msie"){
document.onmousedown=disabletext;
document.onclick=reEnable;
}var player_obj='';

function showOtherCP_G(track_id) {
	var message='<div id="no_result" style="padding-top:5px;padding-bottom:5px;color:#656565;text-align:center;"><strong> Sign in above in order to vote for a track.</strong></div>';
	var resp=SearchManagerView.getInstance().showLoginConfirm(_e('fixTrackLink'),message);
	if (resp) return false;
	player_obj=	"	<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http:/fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\" name=\"playingNowVideoVote\" width=\"329\" height=\"280\" align=\"middle\" id=\"playingNowVideoVote\" >" + 
  		"			  <param name=\"AllowScriptAccess\" value=\"always\" />" + 
  		"			  <param name=\"allowFullScreen\" value=\"true\" />" + 
  		"			  <param name=\"movie\" value=\""+Config.playerURL+"ultimate_player.swf?serviceUrl="+encodeURIComponent('http://www.qloud.com/api_dev/index.php?pn=track_sources')+"&config_url="+Config.playerURLENC+"config_qloud_330.xml&jsListObject=playingNowVideoVote&givepoints_URL=http%3A%2F%2Fwww.qloud.com%2Fapi%2Findex.php%3Fpn%3Dtrack%26method%3Dunauthenticatedplay%26network_id%3D11&network_id=11\" />" + 
  		"			  <param name=\"quality\" value=\"high\" />" + 
  		"			  <param name=\"bgcolor\" value=\"#FFFFFF\" />" + 
  		"			  <param name=\"wmode\" value=\"transparent\" />" + 
  		"			  <embed src=\""+Config.playerURL+"ultimate_player.swf?serviceUrl="+encodeURIComponent('http://www.qloud.com/api_dev/index.php?pn=track_sources')+"&config_url="+Config.playerURLENC+"config_qloud_330.xml&jsListObject=playingNowVideoVote&givepoints_URL=http%3A%2F%2Fwww.qloud.com%2Fapi%2Findex.php%3Fpn%3Dtrack%26method%3Dunauthenticatedplay%26network_id%3D11&network_id=11\" width=\"329\" height=\"280\" align=\"middle\" quality=\"high\" bgcolor=\"#FFFFFF\" type=\"application/x-shockwave-flash\" pluginspage=\"http:/www.macromedia.com/go/getflashplayer\" swliveconnect=\"true\" wmode=\"transparent\" name=\"playingNowVideoVote\" id=\"playingNowVideoVote_embed\"  AllowScriptAccess=\"always\" allowFullScreen=\"true\"/>" + 
  		"			</object>" ;
  	var windowContent = "<div class=\"content\">" + 
  		"	<div style=\"position:relative;top:-5px;right:0px;bottom:-10px;z-index:4000;font-size:8pt;text-align:right;\"><a style=\"color:#42598E;text-decoration:none;\" href=\"javascript:void(0);\" onclick=\"closeVoteOtherPopup();return false;\">Close</a></div>" + 
  		"		<div class=\"playing_now_main\" id=\"vote_playing_now_main\" style=\"height:377px;border:0px;z-index:3500;\">" + 
  		"		  <div class=\"dlg_bg\" id=\"deleteRecordingDialog\">" + 
  		"			<div class=\"content\">" + 
  		"				<div style=\"display:block; position: relative; padding:5px;padding-top:0;\">" + 
  		"					<font style=\"font-size:11px; color:#111111;\">This will notify a Qloud admin of the bad recording and it will be removed accordingly.</font>" + 
  		"					<div style=\"height: 3px;\"></div>" + 
  		"					<font class=\"filesize\" style=\"color:#4D4D4D\"><strong>Note:</strong> if your reason for removal does not match one of the following, please do not continue with this process.</font>" + 
  		"					<div style=\"height: 3px;\"></div>" + 
  		"					<div style=\"margin-left:5px;\">" + 
  		"					      <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"main_table main_table_popup\" style=\"color:#111111;\">" + 
  		"				  <tr>" + 
  		"				    <td valign=\"middle\"><input style=\"margin:0px 5px;height:16px;\" id=\"mym_dead_link\" name=\"type\" type=\"radio\" value=\"dead_link\" checked=\"checked\" /></td>" + 
  		"				    <td valign=\"middle\">Videos does not play (dead link)</td>" + 
  		"				  </tr>" + 
  		"				  <tr>" + 
  		"				    <td valign=\"middle\"><input style=\"margin:0px 5px;height:16px;\" id=\"mym_amateur\" name=\"type\" type=\"radio\" value=\"amateur\" /></td>" + 
  		"				    <td valign=\"middle\">Not the correct artist (amateur performers)</td>" + 
  		"				  </tr>" + 
  		"				  <tr>" + 
  		"				    <td valign=\"middle\"><input style=\"margin:0px 5px;height:16px;\" id=\"mym_image\" name=\"type\" type=\"radio\" value=\"image\" /></td>" + 
  		"				    <td valign=\"middle\">No video (just an image)</td>" + 
  		"				  </tr>" + 
  		"				</table>" + 
  		"					</div>" + 
  		"					<div style=\"height: 23px; margin-top: 6px; padding-left: 29px;\">" + 
  		"						<input type=\"hidden\" id=\"selectedRecordingForDelete\" value=\"0\"><a  href='javascript:void(0)' onclick='SearchManagerView.getInstance().sendDeleteRecordingMessage(); return false;' style='color:#ffffff;margin:0;padding:0;'><img border=0 src='http://www.qloud.com/images/library/popup_send_button.gif' /></a>&nbsp;<a href='javascript:void(0)' onclick='SearchManagerView.getInstance().hideDeleteRecordingDialog(); return false;' style='color:#ffffff;margin:0;padding:0;margin-left:10px;'><img border=0 src='http://www.qloud.com/images/library/popup_close_button.gif' /></a>" + 
  		"					</div>" + 
  		"				</div>" + 
  		"			</div>" + 
  		"		  </div>" + 
  		"		  <div class=\"clearfix_ie\" style=\"clear:both\"></div>" + 
  		"		  <div style=\"position:relative\">" + 
  		"		    <div class=\"player_container\">" + 
  		"		      <div class=\"swf_cont\" id=\"vote_player\">" +player_obj+
  	
  		"		      </div>" + 
  		"		      <div class=\"track_info\" style=\"top: 290px; left: 0px; width: 331px;\">		" + 
  		"				<div class=\"img_container\"><img src=\"\" id='album_image_voted' height='50' width='50' border=\"none\"/></div>" + 
  		"				<div style=\"float:left; width:250px;\">		" + 
  		"					<div style=\"float:left\">" + 
  		"					<div id=\"track_name_voted\"></div>" + 
  		"						<div style=\"float:left\">by <a id=\"artist_name_voted\" href=\"\"></a></div>" + 
  		"						<div style=\"clear:both;padding-top:3px;height:18px;font-size:11px; overflow: hidden; line-height: 18px;text-align:left;\">from the album <a id=\"album_name_voted\" href=\"\" ></a></div>" + 
  		"					</div>" + 
  		"					<div style=\"float:right; padding-top: 5px;width:35px;\">" + 
  		"						<a id=\"crtBuyButton_voted\" target=\"_blank\" href='#' style=\"color:#42598E;text-decoration:none;position:absolute;right:10px;\" title=\"Buy\"><img src='http://www.qloud.com/images/library/action_buy.gif' alt='Buy'  border=\"none\" /> Buy</a>" + 
  		"					</div>			" + 
  		"				</div>" + 
  		"				<div class=\"clearfix_ie\" style=\"clear:both\"></div>		" + 
  		"			</div>" + 
  		"		    </div>" + 
  		"		    <div class=\"popular_songs_container\" style=\"height:358px;top:4px;width:330px;\">" + 
  		"		      <div class=\"title\" style=\"border-top:0px;\">Other Available recordings<br />" + 
  		"		 			<span style=\"font-weight:normal;\">Please choose the best recording for this song</span>" +
  		"				</div>" + 
  		"			  	<div style=\"padding-left:6px;margin-bottom:0pxpadding:0px;\"> " + 
  		"					<div class=\"box_row clearfix\" style=\"padding:5px 5px 0px 5px;\">" + 
  		"						<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" class=\"mytable\" >" + 
  		"							<tr>" + 
  		"								<td width=\"20\" valign=\"top\">" + 
  		"									<img src=\"http://www.qloud.com/images/library/play_button2.gif\" border=\"0\" />" + 
  		"								</td>" + 
  		"								<td valign=\"top\">" + 
  		"									<font class=\"filesize\">Click the \"Play\" button to sample the recording.</font>" + 
  		"								</td>				" + 
  		"							</tr>" + 
  		"							<tr>" + 
  		"								<td width=\"20\" valign=\"top\">" + 
  		"									<img src=\"http://www.qloud.com/images/library/thumbs_up_on.gif\" border=\"0\" />" + 
  		"								</td>" + 
  		"								<td valign=\"top\">" + 
  		"									<font class=\"filesize\">Click the \"Thumbs up\" to vote for the best.</font>" + 
  		"								</td>				" + 
  		"							</tr>" + 
  		"							<tr>" + 
  		"								<td width=\"20\" valign=\"top\">" + 
  		"									<img src=\"http://www.qloud.com/images/library/delete.gif\" border=\"0\" align=\"absmiddle\" style=\"padding-left:1px;padding-top: 3px;\"/>" + 
  		"								</td>" + 
  		"								<td valign=\"top\">" + 
  		"									<font class=\"filesize\">Click the \"Remove\" button if the recording<br />is wrong or doesn&rsquo;t play.</font>" + 
  		"								</td>				" + 
  		"							</tr>" + 
  		"						</table>			" + 
  		"					</div>" + 
  		"		     <div id=\"voted_songs_container\" class=\"voted_other_songs_container\"></div>" + 
  		"			    	<div class=\"clearfix\" style=\"line-height:15px; margin-left:5px; margin-bottom:8px; padding:0px 0px 0px 5px; font-size:9pt;\">" + 
  		"						<strong>Can&rsquo;t find your favorite song version listed?</strong><br />" + 
  		"						Submit the URL link to share with others:" + 
  		"						<table width=\"100%\" cellpadding=\"3\" cellspacing=\"0\" class=\"mytable\" style=\"margin-left:-5px;\">" + 
  		"							<tr>" + 
  		"								<td valign=\"middle\"><input type=\"text\" class=\"inputtext\" name=\"the_url\" style=\"width:200px;\" id=\"saveFavoriteURL\"/></td>" + 
  		"								<td valign=\"middle\"><input type=\"hidden\" name=\"palyingFavTrackId\" id=\"palyingFavTrackId\" value=\""+track_id+"\"/><input type=\"image\" name=\"Submit\" src=\"http://www.qloud.com/images/library/submit.gif\" alt=\"Submit\" align=\"absmiddle\" onclick=\"SearchManagerView.getInstance().saveFavoriteURL(this); return false;\"/></td>" + 
  		"							</tr>" + 
  		"						</table>" + 
  		"				   </div>" + 
  		"		    </div>" + 
  		"		    </div>" + 
  		"		  </div>" + 
  		"		</div>" + 
  		"</div>";

  	var xCnt = document.getElementById('orContainerCnt');
  	
  	xCnt.innerHTML = windowContent;
  	OtherRecTrackData(track_id)
	SearchManagerView.getInstance().voteDifferentVersionPopup(track_id);
	if(_e('contextPlayerContainer'))
	{
		closeContextPlayer();
	}
	SearchManagerView.getInstance().pausePlayer();
  	document.getElementById('overlay').style.height = '100%';
		document.getElementById('overlay').style.display = '';
		trace(xCnt);
		return false;
	if(e('vote_player')){		
		_e('vote_player').innerHTML=player_obj;
	}	
	
	}
function OtherRecTrackData(trackId) {
   try {
    var url = Config.baseURL + "index.php?action=getContextPlayerData&track_id="+trackId +"&use_format=json&module=main";
             var rqid=RequestManager.getInstance().createRequest(new OtherRecTrackData_handler(),url);
    		RequestManager.getInstance().startRequest(rqid);
        
   } catch (e) {
      
   } 
}

function OtherRecTrackData_handler(response) {
 this.handleResponse = function (managerIndex){
    var response = eval('('+RequestManager.getInstance().getRequestObj (managerIndex).xmlRequestObject['responseText']+')');
    getOtherRecTrackDataResponse(response);
 }    
} 

function getOtherRecTrackDataResponse (response){
     //create container   
   // createContextPlayer(playingTrackId,response.content.gp_URL);
 
    var data = response;
    var track_data=data.content['track_data'];
    tempData=data.content['track_data'];
    SearchManagerView.getInstance().tempTrackData=data.track_data;
   
  	_e('crtBuyButton_voted').href=data.content.buylink;
  	_e('album_image_voted').src= data.content['track_data']['artist_image'];
  	_e('track_name_voted').innerHTML= data.content['track_data']['track'];
  	_e('artist_name_voted').href= Config.baseURL + data.content['embeds']['artist'];
  	_e('album_name_voted').href= Config.baseURL + data.content['embeds']['album'];
  	_e('artist_name_voted').innerHTML= data.content['track_data']['artist'];
  	_e('album_name_voted').innerHTML= data.content['track_data']['album'];  	
}

this.closeVoteOtherPopup = function(mainHide) {
	SearchManagerView.getInstance().pausePlayerVote();
	_e('overlay').style.display='none';
	if (typeof mainHide == 'undefined') var mainHide = false;
	if (mainHide) { _e('vote_playing_now_main').style.display = 'none'; }
	return false;
}
/**
* SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
*
* SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
*/
if (typeof deconcept == "undefined")
{
	var deconcept = new Object ();
}if (typeof deconcept.util == "undefined")
{
	deconcept.util = new Object ();
}if (typeof deconcept.SWFObjectUtil == "undefined")
{
	deconcept.SWFObjectUtil = new Object ();
}deconcept.SWFObject = function (_1, id, w, h, _5, c, _7, _8, _9, _a)
{
	if ( ! document.getElementById)
	{
		return;
	}this.DETECT_KEY = _a?_a : "detectflash";
	this.skipDetect = deconcept.util.getRequestParameter (this.DETECT_KEY);
	this.params = new Object ();
	this.variables = new Object ();
	this.attributes = new Array ();
	if (_1)
	{
		this.setAttribute ("swf", _1);
	}if (id)
	{
		this.setAttribute ("id", id);
	}if (w)
	{
		this.setAttribute ("width", w);
	}if (h)
	{
		this.setAttribute ("height", h);
	}if (_5)
	{
		this.setAttribute ("version", new deconcept.PlayerVersion (_5.toString ().split (".")));
	}this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion ();
	if ( ! window.opera&&document.all&&this.installedVer.major > 7)
	{
		deconcept.SWFObject.doPrepUnload = true;
	}if (c)
	{
		this.addParam ("bgcolor", c);
	}var q = _7?_7 : "high";
	this.addParam ("quality", q);
	this.setAttribute ("useExpressInstall", false);
	this.setAttribute ("doExpressInstall", false);
	var _c = (_8) ?_8 : window.location;
	this.setAttribute ("xiRedirectUrl", _c);
	this.setAttribute ("redirectUrl", "");
	if (_9)
	{
		this.setAttribute ("redirectUrl", _9);
	}
};
deconcept.SWFObject.prototype = {
	useExpressInstall : function (_d)
	{
		this.xiSWFPath = ! _d?"expressinstall.swf" : _d;
		this.setAttribute ("useExpressInstall", true);
	}, setAttribute : function (_e, _f)
	{
		this.attributes [_e] = _f;
	}, getAttribute : function (_10)
	{
		return this.attributes [_10];
	}, addParam : function (_11, _12)
	{
		this.params [_11] = _12;
	}, getParams : function ()
	{
		return this.params;
	}, addVariable : function (_13, _14)
	{
		this.variables [_13] = _14;
	}, getVariable : function (_15)
	{
		return this.variables [_15];
	}, getVariables : function ()
	{
		return this.variables;
	}, getVariablePairs : function ()
	{
		var _16 = new Array ();
		var key;
		var _18 = this.getVariables ();
		for (key in _18)
		{
			_16 [_16.length] = key + "=" + _18 [key];
		}return _16;
	}, getSWFHTML : function ()
	{
		var _19 = "";
		if (navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length)
		{
			if (this.getAttribute ("doExpressInstall"))
			{
				this.addVariable ("MMplayerType", "PlugIn");
				this.setAttribute ("swf", this.xiSWFPath);
			}_19 = "<embed type=\"application/x-shockwave-flash\" src=\"" + this.getAttribute ("swf") + "\" width=\"" + this.getAttribute ("width") + "\" height=\"" + this.getAttribute ("height") + "\" style=\"" + this.getAttribute ("style") + "\"";
			_19 += " id=\"" + this.getAttribute ("id") + "\" name=\"" + this.getAttribute ("id") + "\" ";
			var _1a = this.getParams ();
			for (var key in _1a)
			{
				_19 += [key] + "=\"" + _1a [key] + "\" ";
			}var _1c = this.getVariablePairs ().join ("&");
			if (_1c.length > 0)
			{
				_19 += "flashvars=\"" + _1c + "\"";
			}_19 += "/>";
		} else
		{
			if (this.getAttribute ("doExpressInstall"))
			{
				this.addVariable ("MMplayerType", "ActiveX");
				this.setAttribute ("swf", this.xiSWFPath);
			}_19 = "<object id=\"" + this.getAttribute ("id") + "\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"" + this.getAttribute ("width") + "\" height=\"" + this.getAttribute ("height") + "\" style=\"" + this.getAttribute ("style") + "\">";
			_19 += "<param name=\"movie\" value=\"" + this.getAttribute ("swf") + "\" />";
			var _1d = this.getParams ();
			for (var key in _1d)
			{
				_19 += "<param name=\"" + key + "\" value=\"" + _1d [key] + "\" />";
			}var _1f = this.getVariablePairs ().join ("&");
			if (_1f.length > 0)
			{
				_19 += "<param name=\"flashvars\" value=\"" + _1f + "\" />";
			}_19 += "</object>";
		}return _19;
	}, write : function (_20)
	{
		if (this.getAttribute ("useExpressInstall"))
		{
			var _21 = new deconcept.PlayerVersion ([6, 0, 65]);
			if (this.installedVer.versionIsValid (_21) && ! this.installedVer.versionIsValid (this.getAttribute ("version")))
			{
				this.setAttribute ("doExpressInstall", true);
				this.addVariable ("MMredirectURL", escape (this.getAttribute ("xiRedirectUrl")));
				document.title = document.title.slice (0, 47) + " - Flash Player Installation";
				this.addVariable ("MMdoctitle", document.title);
			}
		}if (this.skipDetect || this.getAttribute ("doExpressInstall") || this.installedVer.versionIsValid (this.getAttribute ("version")))
		{
			var n = (typeof _20 == "string") ?document.getElementById (_20) : _20;
			n.innerHTML = this.getSWFHTML ();
			return true;
		} else
		{
			if (this.getAttribute ("redirectUrl") != "")
			{
				document.location.replace (this.getAttribute ("redirectUrl"));
			}
		}return false;
	}
};
deconcept.SWFObjectUtil.getPlayerVersion = function ()
{
	var _23 = new deconcept.PlayerVersion ([0, 0, 0]);
	if (navigator.plugins&&navigator.mimeTypes.length)
	{
		var x = navigator.plugins ["Shockwave Flash"];
		if (x&&x.description)
		{
			_23 = new deconcept.PlayerVersion (x.description.replace ( / ([a - zA - Z] | \s) + /, "").replace ( / (\s + r | \s + b [0 - 9] +) /, ".").split ("."));
		}
	} else
	{
		if (navigator.userAgent&&navigator.userAgent.indexOf ("Windows CE") >= 0)
		{
			var axo = 1;
			var _26 = 3;
			while (axo)
			{
				try
				{
					_26 ++;
					axo = new ActiveXObject ("ShockwaveFlash.ShockwaveFlash." + _26);
					_23 = new deconcept.PlayerVersion ([_26, 0, 0]);
				}catch (e)
				{
					axo = null;
				}
			}
		} else
		{
			try
			{
				var axo = new ActiveXObject ("ShockwaveFlash.ShockwaveFlash.7");
			}catch (e)
			{
				try
				{
					var axo = new ActiveXObject ("ShockwaveFlash.ShockwaveFlash.6");
					_23 = new deconcept.PlayerVersion ([6, 0, 21]);
					axo.AllowScriptAccess = "always";
				}catch (e)
				{
					if (_23.major == 6)
					{
						return _23;
					}
				}try
				{
					axo = new ActiveXObject ("ShockwaveFlash.ShockwaveFlash");
				}catch (e)
				{
				}
			}if (axo != null)
			{
				_23 = new deconcept.PlayerVersion (axo.GetVariable ("$version").split (" ")[1].split (","));
			}
		}
	}return _23;
};
deconcept.PlayerVersion = function (_29)
{
	this.major = _29 [0] != null?parseInt (_29 [0]) : 0;
	this.minor = _29 [1] != null?parseInt (_29 [1]) : 0;
	this.rev = _29 [2] != null?parseInt (_29 [2]) : 0;
};
deconcept.PlayerVersion.prototype.versionIsValid = function (fv)
{
	if (this.major < fv.major)
	{
		return false;
	}if (this.major > fv.major)
	{
		return true;
	}if (this.minor < fv.minor)
	{
		return false;
	}if (this.minor > fv.minor)
	{
		return true;
	}if (this.rev < fv.rev)
	{
		return false;
	}return true;
};
deconcept.util = {
	getRequestParameter : function (_2b)
	{
		var q = document.location.search || document.location.hash;
		if (_2b == null)
		{
			return q;
		}if (q)
		{
			var _2d = q.substring (1).split ("&");
			for (var i = 0; i < _2d.length; i ++)
			{
				if (_2d [i].substring (0, _2d [i].indexOf ("=")) == _2b)
				{
					return _2d [i].substring ((_2d [i].indexOf ("=") + 1));
				}
			}
		}return "";
	}
};
deconcept.SWFObjectUtil.cleanupSWFs = function ()
{
	var _2f = document.getElementsByTagName ("OBJECT");
	for (var i = _2f.length - 1; i >= 0; i --)
	{
		_2f [i].style.display = "none";
		for (var x in _2f [i])
		{
			if (typeof _2f [i][x] == "function")
			{
				_2f [i][x] = function ()
				{
				};
			}
		}
	}
};
if (deconcept.SWFObject.doPrepUnload)
{
	if ( ! deconcept.unloadSet)
	{
		deconcept.SWFObjectUtil.prepUnload = function ()
		{
			__flash_unloadHandler = function ()
			{
			};
			__flash_savedUnloadHandler = function ()
			{
			};
			window.attachEvent ("onunload", deconcept.SWFObjectUtil.cleanupSWFs);
		};
		window.attachEvent ("onbeforeunload", deconcept.SWFObjectUtil.prepUnload);
		deconcept.unloadSet = true;
	}
}if ( ! document.getElementById&&document.all)
{
	document.getElementById = function (id)
	{
		return document.all [id];
	};
}var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject;
var SWFObject = deconcept.SWFObject;
function copy(inElement) {
    copyToClipboard(inElement,inElement.value);
  if (inElement.createTextRange) {
    var range = inElement.createTextRange();
    if (range && BodyLoaded==1)
      range.execCommand('Copy');
  } else {
    var flashcopier = 'flashcopier';
    if(!document.getElementById(flashcopier)) {
      var divholder = document.createElement('div');
      divholder.id = flashcopier;
      document.body.appendChild(divholder);
    }
    document.getElementById(flashcopier).innerHTML = '';
    var divinfo = '<embed src="'+Config.baseURL+'flashPlayer/_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(inElement.value)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
    document.getElementById(flashcopier).innerHTML = divinfo;
  }
}
    function copyToClipboard (objReff,url)
    {
		var msg = "<b class='w_title'>&nbsp;&nbsp;Copy URL</b><div class='content'> The link: "+trim_string(url,58)+" <br /> <span>was copied to Clipboard</span> <br/></div>" +
		        "<div style='margin: 10px 22px 0px 22px; height:2px;'><img src='"+Config.baseURL+ "images/library/popup_gray_bar.jpg'/></div><a class='a_button_new' href = 'javascript:void(0)' style='color:#FFFFFF' onclick='hidePopup()'><img border=0 src='"+Config.baseURL+ "images/library/popup_close_button.gif' /></a>";
		showPopup(msg,objReff,"left");
	}

    function showPopup (content,reffObj,align)
	{
		_e('background_holder').style.display = "block";
		_e('the_popup').style.display = "block";
		_e('the_popup').innerHTML = "<div class='hide'><a href = 'javascript:void(0)' onclick='hidePopup()'><img border=0 src='"+Config.baseURL+ "images/library/hide_welcome_btn.gif' /></a></div>"+content;
		_e('popup_arrow').style.display = "block";
		
		switch(align)
		{
			case "right" :
				_e('the_popup').style.left = "";
				_e('the_popup').style.width = "325px"; 
				_e('the_popup').style.left = (getLeft(reffObj)+25-325)+"px";
				_e('the_popup').style.top = (getTop(reffObj)+25)+"px";
				
				_e('background_holder').style.left = "";
				_e('background_holder').style.width = "325px"; 
				_e('background_holder').style.left = (getLeft(reffObj)+25-325)+"px";
				_e('background_holder').style.top = (getTop(reffObj)+25)+"px";
				
				_e('popup_arrow').style.left = "";
				_e('popup_arrow').style.left = (getLeft(reffObj)+9-30)+"px";
				_e('popup_arrow').style.top = (getTop(reffObj)+10)+"px";
			break;
			case "left" :
				_e('the_popup').style.right = "";
				_e('the_popup').style.width = "325px"; 
				_e('the_popup').style.left = (getLeft(reffObj)-10)+"px";
				_e('the_popup').style.top = (getTop(reffObj)+25)+"px";
				
				_e('background_holder').style.right = "";
				_e('background_holder').style.width = "325px"; 
				_e('background_holder').style.left = (getLeft(reffObj)-10)+"px";
				_e('background_holder').style.top = (getTop(reffObj)+25)+"px";	
							
				_e('popup_arrow').style.right = "";
				_e('popup_arrow').style.left = (getLeft(reffObj)+5)+"px";
				_e('popup_arrow').style.top = (getTop(reffObj)+10)+"px";
			break;
			case "bottom" :
				_e('the_popup').style.right = "";
				_e('the_popup').style.width = "325px"; 
				_e('the_popup').style.left = (getLeft(reffObj)-10)+"px";
				_e('the_popup').style.top = (getTop(reffObj) - 125)+"px";
				
				_e('background_holder').style.right = "";
				_e('background_holder').style.width = "325px"; 
				_e('background_holder').style.left = (getLeft(reffObj)-10)+"px";
				_e('background_holder').style.top = (getTop(reffObj) - 125)+"px";	
							
				_e('popup_arrow').style.right = "";
				_e('popup_arrow').style.left = (getLeft(reffObj)+5)+"px";
				_e('popup_arrow').style.top = (getTop(reffObj) - 115)+"px";
			break;  
		}
		return false;
	}
	function hidePopup()
	{
		_e('background_holder').style.display = "none";
		_e('the_popup').style.display = "none";
		_e('popup_arrow').style.display = "none";
		_e('the_popup').innerHTML = "";
	}
    
    function return_JSON(str) {
        return eval('('+str+')');
    }
    function set_provider(pname,pageLink)
	{	
	    var link=_e("playing_video_url");	
		if (link) {
   		      link.href=pageLink;		
		      link.innerHTML=pname;
		}
	}

function Caller() {
	this.setProviderLogo = function(response) {
	    
	
	}
	this.setCrtRecordingId = function() {}
	this.onClipEnd = function(val) {
		this.playNextTrack();
	}
	this.playNextTrack =  function () {
	   
	   var nextEntry = this.getNextTrackData();
	   if (nextEntry != null) {
	    	if (SearchManagerView.getInstance().currentPage != 'other_recordings') {
			   var the_id = nextEntry.track_id; 
			} else {
			   var the_id = nextEntry.recording_id; 
			}
	    	  this.makePlay(the_id);
	    	  
	    }
	} 
	this.getNextEntry = function () {
	   if (tracksList==null || tracksList.length==0) return false;
	   var found = false;
    	for (var i in tracksList) {
    		if (found) return tracksList[i];
    		if (parseInt(tracksList[i])==parseInt(currentSongTrackId)) found = true;
    	}
	   return tracksList[0];
    }
    this.getNextTrackData = function ()
	{
		var found = false;
		for(i in tracksList)
		{
			if(i == "pagination") continue;
			if(found == true)
			{
				return tracksList[i];
			}
			
			if (SearchManagerView.getInstance().currentPage != 'other_recordings') {
			   var the_id = tracksList[i].track_id; 
			} else {
			   var the_id = tracksList[i].recording_id; 
			}
			if(the_id == currentSongTrackId)
			{
				found = true;
			}
		}
		
		//if we are here we return the first in the list
		return tracksList[0];
	}
	this.getEmbedTrackData = function (trackId)
	{
		for(i in tracksList)
		{
			if(i == "pagination") continue;
			if(tracksList[i].track_id == trackId)
			{
                return tracksList[i];				
			}
		}
		
		//if we are here we return the first in the list
		return tracksList[0];
	}
	
	this.doActualPlay = function doActualPlay(track_id)
	{
		videoCheckTimeout=setInterval("jsListObjects.makePlay("+track_id+")",1800);	
	}

    this.pausePlayer = function()
	{
		try {
			var videoPlayerRef=_e("playingNowVideo"+(Config.browserName=="firefox"?"_embed":""));
			if(!videoPlayerRef)	{ return; }
			videoPlayerRef.pauseTrack();
		} catch (e) { trace("PausePlayer: " + e); }
	}
   this.makePlay =  function(track_id) {
           try {
               if (currentSongTrackId != track_id) {
                   _e('img_track_'+track_id).src =  Config.baseURL+ "images/song_page/playing_button.gif"; 
                   _e('img_track_'+currentSongTrackId).src = Config.baseURL+ "images/song_page/play_button2.gif";
           }
           //update permalink
           var embeds = this.getEmbedTrackData(track_id);
            if (_e('permalink') && embeds.embed_url) {
               _e('permalink').value = embeds.embed_url;
            }
            if (_e('share_link_fb') && embeds.embed_url) {
             //  _e('share_link_fb').href = embeds.embed_url;
            }
            if (_e('vote_different') ) {
              	_e('vote_different').onclick = function fixTrackHandler()
				{
					showOtherCP_G(track_id);
					return false;
				}	
            }
          } catch (e) {
          }
    
          videoPlayerRef=_e("playingNowVideo"+(Config.browserName=="firefox"?"_embed":""));
           try {
        		switch(Config.browserName)
        		{
        			case "msie":				
        				if(typeof videoPlayerRef != 'object')
        				{			
        					return;
        				}
        				
        			break;
        			default:
        				if(typeof videoPlayerRef!= 'function')
        				{			
        					return;
        				}
        				
        			break;
        		}	
        		} catch (e) { return;}	
        		clearInterval(videoCheckTimeout);
           
           videoPlayerRef=_e("playingNowVideo"+(Config.browserName=="firefox"?"_embed":""));
           
          // videoPlayerRef.SetVariable("/actionObject:actionParams",track_id+"");

           if (SearchManagerView.getInstance().currentPage != 'other_recordings') {
              // videoPlayerRef.SetVariable("/actionObject:actionType","play");
              try{		
				videoPlayerRef.playTrack(track_id+"");
				}
				catch(e){trace("error"+track_id);
					this.doActualPlay(track_id);
					//videoCheckTimeout = setInterval("jsListObjects.makePlay("+track_id+")",2000);
			   }
              
           } else {    
		      // videoPlayerRef.SetVariable("/actionObject:actionType","play_recording");
		        try{		
				videoPlayerRef.playRecording(track_id+"");
				}
				catch(e){trace("error"+track_id);
					//this.makePlay(track_id);
			   }
           }    	
		

           currentSongTrackId =  track_id;
        }
}


var jsListObjects= new Caller();
