/* ____________________________________ openAuth - no dependencies */ 

/* __________________________ JSON script object */ 
/*constructor function for creating a new scriptJSON object*/
var scriptJSON = function (fullUrl) {
	this.fullUrl = fullUrl; 
	this.scriptId = 'scriptId' + this.scriptCounter++;
	this.noCacheIE = '&noCacheIE=' + (new Date()).getTime();
	this.documentHead = document.getElementsByTagName("head").item(0);	
}
scriptJSON.prototype = {
	constructor : scriptJSON,
	scriptCounter : 1,
	buildScriptTag : function () {
		this.scriptTag = document.createElement("script");
		this.scriptTag.setAttribute("type", "text/javascript");
		this.scriptTag.setAttribute("charset", "utf-8");
		this.scriptTag.setAttribute("src", this.fullUrl + this.noCacheIE);
		this.scriptTag.setAttribute("id", this.scriptId);
	},
	removeScriptTag : function () {
		this.documentHead.removeChild(this.scriptTag);  
	},
	addScriptTag : function () {
		this.documentHead.appendChild(this.scriptTag);
	}
}



//Cross Promo
var d=document; var w=window;var docHg;
var range=400;
var cod_arr=new Array();
var arrLen = 0;
var modSpan = 6;
var currId = 0;
var opt = {
	ae:function(o,et,fn){if(o.addEventListener)o.addEventListener(et,fn,false);else if(o.attachEvent)o.attachEvent("on"+et,fn);},
	gt:function(t,o){o=o?o:document;return o.getElementsByTagName(t)},
	gc:function(c,t,s,o){var r=new Array();var os=opt.gt(t,o);for(var i=0,j=0,l=os.length;i<l;i++){var sc = s + os[i].className + s;if(sc.indexOf(s+c+s)!=-1){r[j] = os[i];j++;}}return r;},
        nview:function(obj,i) {
                if (obj.loaded==null) {
                    obj.loaded=0;
                }
                if (obj.loaded==0) {

                    if(document.all) {
                        var relTop=obj.offsetParent.offsetTop-(w.scrollY||d.documentElement.scrollTop);
                    } else {
                        var relTop=obj.offsetTop-(w.scrollY||d.documentElement.scrollTop);
                    }

                    if((relTop-docHg-20)<range) {
                      var codUrl=opt.gt('a',obj)[0].href;
                      opt.xhr(codUrl,obj,i);
                    }
                }
        },
        doCod:function(){
                var l=cod_arr.length;
                for (var i=0;i<l;i++) {
                        opt.nview(cod_arr[i],i);
                }
        },
        xhr:function(u,obj,i){
                obj.loaded=1;
                var f,r,m='GET';
                f=function(){if(r.readyState>3)opt.update(obj,r,i);}
                r= window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
                r.onreadystatechange=f;
                r.open(m,u,1);
                r.setRequestHeader('content-type','text/xml');
                r.send('');
        },
        update:function(obj,r,i) {
                if(r.status==200){
                        obj.innerHTML=r.responseText;
                } else {obj.loaded=0;}
                     
				if(document.getElementById('crs_quigoMod')!=null)
				{
					var the_object;
					var quigo_id = document.getElementById('crs_quigoMod');
					var q_ad='';
					var myJSONObject = quigo_id.innerHTML;
					the_object = eval("(" + myJSONObject + ")");;
					

							if(the_object.response.statusCode!="200"){
							q_ad='<p class="dn">Quigo status code: '+the_object.response.statusCode+", status text: "+the_object.response.statusText+"</p>";
							}
							else{
								q_ad+='<H3 style="color:#000;font-weight:bold;width:auto;border-bottom:1px solid #eee;">Sponsored Links</H3>';
								

								

								var list_n=the_object.response.data.numResults;
								for(var k=0;k<list_n;k++)
								{
									q_ad+='<div class="sponser" style="float:left;width:388px;"><div class="sponpg"><div class="sponHdr" style="margin-top:.63em;font-size:13px;">';
									q_ad+='<a target="_blank" style="color:#2965AD;font-weight:bold;font-size:12px;" href="'+the_object.response.data.listing[k].targetUrl+'" title="'+the_object.response.data.listing[k].title+'">'+the_object.response.data.listing[k].title+'</a>';
									

									q_ad+='</div><div class="sponCont">';
									q_ad+='<a target="_blank" style="color:#000;margin-bottom:.5em;font-size:11px;" href="'+the_object.response.data.listing[k].targetUrl+'" title="'+the_object.response.data.listing[k].title+'">'+the_object.response.data.listing[k].description+'</a>';
									q_ad+='</div><div class="sponLnk">';
									q_ad+='<a target="_blank" style="color:#000;font-size:11px;margin-bottom:.5em;" href="'+the_object.response.data.listing[k].targetUrl+'" title="www.'+the_object.response.data.listing[k].domain+'">www.'+the_object.response.data.listing[k].domain+'</a></div>';
									q_ad+='</div></div>';
									

								}
								q_ad+='<div class="sponFtr" style="float:right;width:100px;"><a href="http://aol.adsonar.com/admin/advertisers/indexPl.jsp" target="_blank">Buy a link here</a></div>';
								quigo_id.style.display="block";
							}


					quigo_id.innerHTML=q_ad.trim();
					

				}
                
                if(document.getElementById('footerad')!=null)
					{
						if(set_ad==true)
						{
							var tmp=document.getElementById('footerad');
							 var x_ad = tmp.getElementsByTagName('script');   
							 var test="";
							 var srcobj=document.createElement('script');
							   for( var i=0; i < x_ad.length; i++)
							   {  
								     if(x_ad[i].src!="")
									 {
										
										srcobj.src=x_ad[i].src;
										if(is_IE)
										{
										eval(srcobj.src);
										}
										
									 }
									 if(x_ad[i].text!="")
									 {
										var txtobj=document.createElement('script');
										txtobj.text=x_ad[i].text;
										test+=txtobj.text;
										if(is_IE)
										{
										eval(txtobj.text);
										}
										
									 }
									 
							   }
							
							  if(!is_IE)
								{
								   var txtobj2=document.createElement('script');
								   txtobj2.text=test;
								   document.getElementById('footerad').innerHTML=null;;
								   document.getElementById('footerad').appendChild(srcobj);
								   document.getElementById('footerad').appendChild(txtobj2);
								}
							  
							set_ad=false;
						}
					
					}
					if (document.getElementById("cp-ads")) {
    					document.getElementById("cp-ad-" + Math.floor(Math.random() * 3)).style.display = "block";
					}

        },
        init:function() {
                        cod_arr=opt.gc('cod','div','',document);
                        docHg=w.innerHeight||d.documentElement.offsetHeight;
                        opt.doCod();
                        opt.ae(window,'scroll',opt.doCod);
        },
        res:function(){
                docHg=w.innerHeight||d.documentElement.offsetHeight;
                opt.doCod();
        }

}
opt.ae(window,'resize',opt.res);
opt.ae(window,'load',opt.init);

function countCartridges() {
   var cartCount = 0;
   end = false;
   do {
      if(document.getElementById('cart'+cartCount)) {
         cartCount++;
      } else {
         end = true;
      }
   } while (end == false)
   arrLen = cartCount;
}

function showCartridges( startId ) {
  if(arrLen == 0) {
    countCartridges(); 
  }
  var i,j;
  for (i=0,j=startId; i < modSpan; i++,j++) {
     var strCart = j%arrLen;
     document.getElementById('cartridge'+i).innerHTML = document.getElementById('cart'+strCart).innerHTML;
  }
}

function isModFetched (modId) {
  if(document.getElementById('cart'+modId).innerHTML.length>0) {
      return true;
  } else {
      return false;
  }
}

function nextCartridge () {
  if(arrLen == 0) {
     countCartridges(); 
  }
  currId = currId + 1;
  if ( !isModFetched( (currId+modSpan)%arrLen ) ) {
      fetchModule((currId+modSpan)%arrLen);
  }
  showCartridges(currId);
}

function prevCartridge () {
  if(arrLen == 0) {
    countCartridges(); 
  }  
  if(currId!=0) {
      currId = currId - 1
  } else {
      currId=arrLen-1;
  }

  if ( !isModFetched( (currId+modSpan)%arrLen ) ) {
      fetchModule((currId+modSpan)%arrLen);
  }
  showCartridges(currId);
}
// Crosspromo end



function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

addLoadEvent(leftNav);
addLoadEvent(ttComma);

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}
function leftNav(){
var myRegExp = /\.com\/tag\//;
    var artistNavMusicRef = document.getElementById("artistNavMusic");
	if (location.href.search(myRegExp) != -1 && artistNavMusicRef.getElementsByTagName("li")[0]){
		document.getElementById("artistNav").style.display="block";
		var navArtistHref = artistNavMusicRef.getElementsByTagName("li")[0].getElementsByTagName("a")[0].href;
		navArtistName = navArtistHref.replace(/http...music.aol.com.artist.([^/]+).[^/]+/g, "$1");
		var _navArtistName = navArtistName; 
		navArtistName = navArtistName.replace(/-/," ");
		
		var navArtistName = document.createTextNode(navArtistName);
		var navArtistNameH4 = document.createElement("H4");
		navArtistNameH4A = document.createElement("A");
		navArtistNameH4A.setAttribute("href", navArtistHref);
		navArtistNameH4A.appendChild(navArtistName);
		navArtistNameH4.appendChild(navArtistNameH4A);

		artistNavMusicRef.insertBefore(navArtistNameH4, artistNavMusicRef.firstChild);
		var spinartnavLi = artistNavMusicRef.getElementsByTagName("li");
		for(var b=0; b<spinartnavLi.length; b++){
			spinartnavLi[b].innerHTML = spinartnavLi[b].innerHTML.replace(/\(\)/g, "")
		}
		var songLyricLi = document.createElement("li");
		songLyricLi.innerHTML = '<a target="_blank" title=" Lyrics" href="http://www.metrolyrics.com/'+_navArtistName+'-lyrics.html">Song Lyrics</a>' ;
		spinartnavUl = artistNavMusicRef.getElementsByTagName("ul")[0];
		spinartnavUl.insertBefore(songLyricLi , spinartnavLi[parseInt(spinartnavLi.length/2)]);

		}
}
function displayLISelection(currLI) { 
	if (document.getElementById("tourTrackerWidget")){
		var ttWhen = document.getElementsByName("tb-when")[0];
		ttWhen.value = currLI.getElementsByTagName("A")[0].innerHTML;
		var ttWhen = getElementsByClassName(document, "div", "dropDownWhen")[0];
		ttWhen.style.display = "none";
	}
}
function showDropDown() {
	var ttWhen = getElementsByClassName(document, "div", "dropDownWhen")[0];
	ttWhen.style.display = "block";
}
function ttComma () {
if (document.getElementById("ttTopArtists")) {
  var lstcommaReplace = document.getElementById("ttTopArtists").innerHTML.replace(/\,\s$/,'');
  document.getElementById("ttTopArtists").innerHTML = lstcommaReplace;
}
}





/*______________________________________________search_______________________________*/
function GlobalFooterSearch(options) {
    this.options = options;
    this.searchTextBox = options.searchTextBox;
    this.searchButton = options.searchButton;
    this.formName = options.formName;
    this.searchDefaultText = options.searchDefaultText;
    this.searchTextBox.value = this.searchDefaultText;
    this.keyPresssed = false;
    this.attachSearchTextEvents();
    this.attachSearchActions();
};   
GlobalFooterSearch.prototype = {   
    constructor : GlobalFooterSearch,
    bind : function(fnMethod){
        var objSelf = this;
        return(
            function(){
                return(fnMethod.apply(objSelf, arguments));
            }
        );
    },   
   
    crossBrowserEvnt : function (e) {
		if (!e) {var e = window.event;}
    	if (e.target) {targ = e.target;}
   	 	else if (e.srcElement) {targ = e.srcElement;}
    	if (targ.nodeType == 3) {targ = targ.parentNode;}        
		return targ;
	},
    attachSearchTextEvents : function(){
         this.searchTextBox.onclick = this.bind(function(e){
            if(this.keyPresssed != true){
				this.searchTextBox.value = "";
            }
         });
         this.searchTextBox.onblur = this.bind(function(e){
             if(this.searchTextBox.value == ""){
				this.searchTextBox.value = this.searchDefaultText;
				this.keyPresssed = false;
            }
        });
        this.searchTextBox.onkeypress = this.bind(function(e){
			this.keyPresssed = true;
         });
    },      
    attachSearchActions : function () {
        this.searchButton.onclick = this.bind(function(e){        
			if(this.keyPresssed == true){		
				this.searchQuery = this.searchTextBox.value;          
				this.formName.onsubmit();
	            }
        });         
        this.formName.onsubmit = this.bind(function(e){              
           
			if (!e) {			
				e = window.event;
			}
            if (e.preventDefault) {			    
				e.preventDefault();
            }
            else if (window.event && window.event.returnValue) {
				window.eventReturnValue = false;
            } else { e.returnValue = false;}            
           
		   if(this.keyPresssed == true && this.searchTextBox.value != ""){           
            this.searchQuery = this.searchTextBox.value;
			document.location.href = this.doSearch();}
		   
        });
    }, 
    doSearch : function () {
        var searchQuery = this.searchQuery.toLowerCase();
        var searchUrl = "/search/?q=" + encodeURIComponent(this.searchQuery);
        return searchUrl;
    }
};