<!--
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 isArray(obj) {
	if (obj.constructor.toString().indexOf("Array") == -1) return false;
	else return true;
}

function leapYear(dayobj, monthobj, yearobj) {
	var t3=0;
	var cur_select=dayobj.selectedIndex;
	if (monthobj.options[1].selected) {
		if (yearobj.options[yearobj.selectedIndex].value%4==0) t3=29;
		else t3=28;
	} else if(monthobj.options[8].selected || monthobj.options[3].selected || monthobj.options[5].selected || monthobj.options[10].selected) t3=30;
	else t3=31;
	for(i=0; i<dayobj.options.length; i++) {
		dayobj.options[i]=null;
	}
	for (var i=0; i < t3 ; i++) {
		var x=String(i + 1);
		if (i < 9) x=String(0) + x;
		dayobj.options[i] = new Option(x);
	}
	if (cur_select > t3) cur_select=t3 -1;
	dayobj.selectedIndex=cur_select;
}

function textLimit (field, maxlength, strID) {
	var objSpan=document.getElementById(strID);
	var len=field.value.length;
	if (len  > maxlength) {
			field.value=field.value.substring(0, maxlength);
	}
	var left=maxlength-field.value.length;
	if (left == 1) objSpan.innerHTML = String(left) + " character left.";
	else objSpan.innerHTML = String(left) + " characters left.";
}

var _lastImg=0;

function img2Field (field_id, img, id) {
	var avatar_id_field;
	avatar_id_field=document.getElementById(field_id);
	avatar_id_field.value=id;
	img.style.borderStyle="solid";
	img.style.borderColor="#D55C00";
	if (_lastImg != 0 && _lastImg != img) { 
		_lastImg.style.borderStyle="solid";
		_lastImg.style.borderColor="#F5E9CF";
	}
	_lastImg=img;
}

function openpopup(popurl, width, height, name){
	if (width==null) width=635;
	if (height==null) height=510;
	if (name==null) name='';
	var winpops=window.open(popurl,name,"width="+width+",height="+height);
}

// ajax functions
function AjaxClass() {
	var tagId='';
	var httpRequest=false;
	var url='';
	this.makeRequest=MakeRequest;
	this.setUrl=SetUrl;
	this.getResponse=GetResponse;
	this.postResponse=PostResponse;
	this.postSubmit=PostSubmit;
	this.setInnerHtml=SetInnerHtml;
	this.handleResponse=HandleResponse;
	this.abort=Abort;

	function MakeRequest(argurl) {
		url=argurl;
		if (!httpRequest) {
			if (window.XMLHttpRequest) { // Mozilla, Safari,...
				httpRequest = new XMLHttpRequest();
				if (httpRequest.overrideMimeType) {
					httpRequest.overrideMimeType('text/xml');
				}
			} else if (window.ActiveXObject) { // IE
				try {
					httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					try {
						httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (e) {}
				}
			}
		}
		return httpRequest;
	}
	
	function SetUrl(argurl) {
		url=argurl;
	}
	
	function GetResponse(param) {
		if (param != '') {
			if (url.indexOf('?')== -1) {
				url=url + '?' + param;
			} else {
				url=url + '&' + param;
			}
		}
		httpRequest.open('GET', url, true);
		httpRequest.send(null);
	}
	
	function PostResponse(param) {
		httpRequest.open('POST', url, true);
		// httpRequest.setRequestHeader('Host', 'localhost');
		httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpRequest.setRequestHeader("Content-length", param.length);
		httpRequest.setRequestHeader("X-Referer", document.location);
		httpRequest.setRequestHeader("Connection", "close");
		httpRequest.send(param);
	}
	
	function PostSubmit(formObj) {
		var postarr, poststr, elem, name, value;
		postarr=new Array();
		for(i=0; i<formObj.elements.length; i++) {
			value='';
			elem=formObj.elements[i];
			name=elem.name;
			if (elem.type=='radio') {
				if (elem.checked) {
					value=encodeURIComponent(elem.value);
					postarr[postarr.length] = name + "=" + value;
				}
			} else if (elem.type=='select-multiple') {
				for(j=0; j<elem.options.length; j++) {
					if (elem.options[j].selected) {
						value=encodeURIComponent(elem.options[j].value);
						postarr[postarr.length] = name + "=" + value;
					}
				} 
			} else if (elem.type=='select') {
				value=encodeURIComponent(elem.options[elem.selectedIndex].value);
				postarr[postarr.length] = name + "=" + value;
			} else if (elem.type=='checkbox') {
				if (elem.checked) {
					postarr[postarr.length] = name + "=" + encodeURIComponent(elem.value);
				}
			} else if (elem.value) {
				value=encodeURIComponent(elem.value);
				postarr[postarr.length] = name + "=" + value;
			}
		}
		poststr=postarr.join('&');
		this.postResponse(poststr);
	}
	
	function SetInnerHtml(tag) {
		var target, timeup=false;
		tagId=tag;
		// tim=setTimeout('timeup=true;', _small_timeout);
		httpRequest.onreadystatechange = function() {
			target=document.getElementById(tagId);
			if (httpRequest.readyState == 4) {
				if (httpRequest.status == 200) {
					target.innerHTML=httpRequest.responseText;
					// clearInterval(tim);
					return true;
				} else {
					target.innerHTML='Server not responding - please try again.';
				}
				httpRequest=null;
			}
		}
	}
	
	function HandleResponse(func) {
		var tim, timeup=false;
		// tim=setTimeout('timeup=true;', _small_timeout);
		httpRequest.onreadystatechange = function() {
			if (httpRequest.readyState == 4) {
				if (httpRequest.status == 200) {
					func(httpRequest.responseText);
					// clearInterval(tim);
				} else if (timeup) {
					func('');
					// alert('Server not responding - please try again');
				}
			}
		}
	}
	
	function Abort() {
		if (httpRequest && httpRequest.readyState > 0 && httpRequest.readyState < 4) {
			httpRequest.abort();
		}
	}
}

function aTxt(url, name) {
	var ao=new AjaxClass();
	ao.makeRequest(url);
	ao.setInnerHtml(name);
	ao.getResponse('');
}

function loginRefresh(win) {
	var ao, req, rep;
	ao=new AjaxClass();
	req=ao.makeRequest('/login_periodic.php');
	req.onreadystatechange = function() {
		if (req.readyState==4) {
			if (req.status==200) {
				if (req.responseText=='L') {
					window.location.reload(true);
				} else {
					rep=setTimeout('loginRefresh()', 15000);
				}
			} else {
				rep=setTimeout('loginRefresh()', 15000);
			}
			req=null;
			ao=null;
		}
	}
	ao.getResponse();
}

function contentRefresh(url, name, startId) {
	this.url=url;
	this.name=name;
	this.lastId=startId;
	this.getContent=getContent;
	
	function getContent() {
		var ao, httpRequest, result, target, obj, queryChar;
		ao=new AjaxClass();
		if (this.url.indexOf('?')== -1) {
			queryChar='?';
		} else {
			queryChar='&';
		}
		fullurl=this.url + queryChar + 'last_id=' + encodeURI(this.lastId);
		target=document.getElementById(this.name);
		obj=this;
		httpRequest=ao.makeRequest('');
		httpRequest.onreadystatechange = function() {
			if (httpRequest.readyState == 4) {
				if (httpRequest.status == 200) {
					if (httpRequest.responseText != '') {
						result=httpRequest.responseText.split('~|@');
						target.innerHTML=result[0];
						obj.lastId=result[1];
					}
				} 
				httpRequest=null;
				ao=null;
			}
		}
		httpRequest.open('GET', fullurl, true);
		httpRequest.send(null);
	}	
}

function toggleMsg(message_id, full) {
	var target, ao, httpReq;
	target=document.getElementById('message_' + message_id);
	if (full) {
		target.innerHTML='<img src="/layout_images/loading_circle.gif">';
		ao=new AjaxClass();
		httpReq=ao.makeRequest('');
		httpReq.onreadystatechange = function() {
			if (httpReq.readyState == 4) {
				if (httpReq.status == 200) {
					target.innerHTML=httpReq.responseText;
				}
				httpReq=null;
				ao=null;
			}
		}
		httpReq.open('POST', '/msg/get_message.php', true);
		httpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpReq.setRequestHeader("Content-length", "1");
		httpReq.setRequestHeader("X-Referer", document.location);
		httpReq.send('message_id=' + message_id);
	} else {
		target.innerHTML='<img src="/layout_images/i_open.gif" border="0" align="left" onMouseUp="toggleMsg(\'' + message_id + '\', true)">';
	}
} 

function Chat(form_id, span_id, div_id, getUrl, postUrl) {
	this.form_id=form_id;
	this.span_id=span_id;
	this.div_id=div_id;
	this.getUrl=getUrl;
	this.postUrl=postUrl;
	this.init=initChat;
	this.submit=chatSubmit;
	this.refresh=chatRefresh;
	this.abort=abort;
	
	function initChat() {
		this.getUrl=(this.getUrl==null)?'/im/im_get_messages.php':this.getUrl;
		this.postUrl=(this.postUrl==null)?'/im/im_put_message':this.postUrl;
		this.lastScrollTop= -1;
		this.last_id=0;
		this.isPosting=false;
		this.isGetting=false;
		this.blocked=0;
		this.chatAO=new AjaxClass();
		this.chatRequest=this.chatAO.makeRequest('');
		this.divarr=new Array();
		this.refresh();
		if (document.forms[this.form_id].elements['msg']) {
			document.forms[this.form_id].elements['msg'].setAttribute('autocomplete','off');
		}
	}
	
	function abort() {
		this.chatRequest=null;
		this.chatAO=null;
		this.divarr=null;
	}
	
	function chatSubmit() {
		var msg, submit;
		var url=this.postUrl;
		var chatObj=this;
		var targ=document.getElementById(this.span_id);
		var box=document.getElementById(this.div_id);
		var req=this.chatRequest;
		var lastScrollTop=this.lastScrollTop;
                if (url.indexOf('?') == -1) {
		    url=url + '?last_id=' + this.last_id;
                } else {
		    url=url + '&last_id=' + this.last_id;
                }
		msg=document.forms[this.form_id].elements['msg'];
		if (msg.value=='') {
			return false
		}
		submit=document.forms[this.form_id].elements['Submit'];
		submit.disabled=true;
		this.chatAO.setUrl(url);
		this.chatAO.postSubmit(document.forms[this.form_id]);
		if (!this.isGetting) {
			this.isPosting=true;
			this.chatRequest.onreadystatechange = function() {
				var results, text;
				if (req.readyState==4) {
					try {
						req.status;
					}
					catch(e) {
						return;
					}
					if (!chatObj.isGetting) {
						if (req.status==200) {
							chatObj.isPosting=false;
							text=req.responseText;
							if (text != '') {
								results='';
								results=text.split('~|@');
								if (results.length > 1) {
									targ.innerHTML=targ.innerHTML + results[1];
									box.scrollTop=box.scrollHeight;
									chatObj.lastScrollTop=box.scrollTop;
									chatObj.last_id=results[0];
								} 
							}
						}
					}
				}
			}
		} else {
			if (this.blocked > 3) {
				this.blocked=0;
				this.isGetting=false;
			}
			this.blocked=this.blocked + 1;
		}
		msg.value='';
		submit.disabled=false;
                msg.focus();
		return false;
	}
	
	function chatRefresh(url) {
		var url=this.getUrl;
		var chatObj=this;
		var targ=document.getElementById(this.span_id);
		var box=document.getElementById(this.div_id);
		var req=this.chatRequest;
		if (!this.isPosting) {
			this.isGetting=true;
			this.chatAO.setUrl(url);
			this.chatAO.getResponse('last_id=' + this.last_id);
			req.onreadystatechange = function() {
				var results, updateBox, text;
				if (req.readyState==4) {
					try {
						req.status;
					}
					catch(e) {
						return;
					}
					if (!chatObj.isPosting) {
						if (req.status==200) {
							chatObj.isGetting=false;
							text=req.responseText;
							if (text != '') {
								results='';
								results=text.split('~|@');
								if (results.length > 1) {
									targ.innerHTML=targ.innerHTML + results[1];
									if (box.scrollTop < chatObj.lastScrollTop) {
										updateBox=false;
									} else {
										updateBox=true;
									}
									if (updateBox) {
										box.scrollTop=box.scrollHeight;
										chatObj.lastScrollTop=box.scrollTop;
									}
									chatObj.last_id=results[0];
								} 
							}
						}
					}
				}
			}
		} else {
			if (this.blocked > 3) {
				this.blocked=0;
				this.isPosting=false;
			}
			this.blocked=this.blocked + 1;
		}
	}
}	

function contentToggle(open, img, id, url, pref) {
	var image=document.getElementById(img);
	var zone=document.getElementById(id);
	if (open < 1) {
		userPref(pref, 0);
		zone.innerHTML='';
		image.innerHTML='<img src="/layout_images/tt_box_open.gif" onmouseup="contentToggle(1, \'' + img + '\', \'' + id + '\', \'' + url + '\', \'' + pref + '\')">';
		return true;
	}
	image.innerHTML='<img src="/layout_images/loading_circle.gif" height="20" width="20">';
	userPref(pref, 1);
	var ao=new AjaxClass();
	var httpReq=ao.makeRequest('');
	httpReq.onreadystatechange = function() {
		if (httpReq.readyState == 4) {
			if (httpReq.status == 200) {
				image.innerHTML='<img src="/layout_images/tt_box_close.gif" onmouseup="contentToggle(0, \'' + img + '\', \'' + id + '\', \'' + url + '\', \'' + pref + '\')">';
				zone.innerHTML=httpReq.responseText;
			}
			httpReq=null;
			ao=null;
		}
	}
	httpReq.open('GET', url, true);
	httpReq.send('');
	return true;
}

function loopToggle(open, img, id, url, pref, looper, chatObj) {
	var image=document.getElementById(img);
	var zone=document.getElementById(id);
	var loop=eval(looper);
	var chatStr='';
	if (chatObj != null) {
		chatStr=", '" + chatObj + "'";
	}
	if (open < 1) {
		userPref(pref, 0);
		clearInterval(loop);
		zone.innerHTML='';
		if (chatObj != null) {
			var chatter=eval(chatObj);
			chatter.abort();
		}
		image.innerHTML='<img src="/layout_images/tt_box_open.gif" onmouseup="loopToggle(1, \'' + img + '\', \'' + id + '\', \'' + url + '\', \'' + pref + '\', \'' + looper + '\'' + chatStr + ')">';
		return true;
	}
	image.innerHTML='<img src="/layout_images/loading_circle.gif" height="20" width="20">';
	userPref(pref, 1);
	var ao=new AjaxClass();
	var httpReq=ao.makeRequest('');
	httpReq.onreadystatechange = function() {
		if (httpReq.readyState == 4) {
			if (httpReq.status == 200) {
				image.innerHTML='<img src="/layout_images/tt_box_close.gif" onmouseup="loopToggle(0, \'' + img + '\', \'' + id + '\', \'' + url + '\', \'' + pref + '\', \'' + looper + '\'' + chatStr + ')">';
				zone.innerHTML=httpReq.responseText;
			}
			httpReq=null;
			ao=null;
		}
	}
	httpReq.open('GET', url, true);
	httpReq.send('');
	return true;
}

function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return dc.substring(begin + prefix.length, end);
}

function parseCookieString(query) {
	var vars=query.split(escape("&"));
	var arr=new Array();
	for (var i=0;i<vars.length;i++) {
		var pair = vars[i].split(escape("="));
		arr[pair[0]]=pair[1];
	}
	return arr;
}

function createCookieString(arr) {
	var outarr=new Array();
	var j=0;
	for(i in arr) {
		outarr[j]=i + '=' + arr[i];
		j++;
	}
	return outarr.join("&");
}

function findUser() {
	var screen_name=document.getElementById('screen_name').value;
	var ao=new AjaxClass();
	var httpReq=ao.makeRequest('/ringtones/search_screen_name.php');
	httpReq.onreadystatechange=function() {
		if (httpReq.readyState==4) {
			if (httpReq.status==200) {
				var resparr=httpReq.responseText.split('~|@');
				document.getElementById('recipient').innerHTML=resparr[0];
				document.getElementById('confirmation').innerHTML=resparr[1];
				document.getElementById('screen_name').value=resparr[2];
			}
			httpReq=null;
			ao=null;
		}
	}
	httpReq.open('GET', '/ringtones/search_screen_name.php?name=' + encodeURI(screen_name), true);
	httpReq.send('');
}

function memberAlerts() {
    aTxt('/profile_includes/member_alerts.php', 'member_alerts');
    setInterval("aTxt('/profile_includes/member_alerts.php', 'member_alerts')", 10000);
}

function confirmBox(msg, target) {
    if (confirm(msg)) {
	window.location=target;
    }
}

function loadReviews(musicId, index) {
	aTxt('/profile_includes/get_reviews.php?music_id=' + musicId + '&index=' + index, 'review_block');
}
//-->