/*openAuth*/
var openAuthObj = {
	token: null,
	loggedIn: false,
	userId: null,
	referer: ""
}
function JSONscriptRequest(fullUrl) {
	this.fullUrl = fullUrl; 
	this.noCacheIE = '&noCacheIE=' + (new Date()).getTime();
	this.headLoc = document.getElementsByTagName("head").item(0);
	this.scriptId = 'JscriptId' + JSONscriptRequest.scriptCounter++;
}
JSONscriptRequest.scriptCounter = 1;
JSONscriptRequest.prototype.buildScriptTag = function () {
	this.scriptObj = document.createElement("script");
	this.scriptObj.setAttribute("type", "text/javascript");
	this.scriptObj.setAttribute("charset", "utf-8");
	this.scriptObj.setAttribute("src", this.fullUrl + this.noCacheIE);
	this.scriptObj.setAttribute("id", this.scriptId);
}
JSONscriptRequest.prototype.removeScriptTag = function () {
	this.headLoc.removeChild(this.scriptObj);  
}
JSONscriptRequest.prototype.addScriptTag = function () {
	this.headLoc.appendChild(this.scriptObj);
}
var doGetToken = {
	getToken: function(){
		if (domElems.loginStatus()){
			reqUrlA = "https://api.screenname.aol.com/auth/getToken?devId=so1U8R9vYazMbUna&f=json&c=doGetToken.gotToken";
			JSONReqA = new JSONscriptRequest(reqUrlA);
			JSONReqA.buildScriptTag();
			JSONReqA.addScriptTag();	
		}	
},
	gotToken: function(jsonObj){
	if (jsonObj.response.statusCode != 200){
			openAuthObj.loggedIn = false;
			domElems.makeLoginLink();
	}
	else {
		openAuthObj.loggedIn = true;
		openAuthObj.token = jsonObj.response.data.token.a;
		JSONReqA.removeScriptTag();

    	if (openAuthObj.token){
			doGetInfo.getInfo();
			}
		}
	},
	sns: function (){
		if (document.getElementById("sns")){
			sns.calls.getToken();
		}
	}
}
var doGetInfo = {
	getInfo: function(){
		reqUrlB = "https://api.screenname.aol.com/auth/getInfo?a="+openAuthObj.token+"&devId=so1U8R9vYazMbUna"+openAuthObj.referer+"&f=json&c=doGetInfo.gotInfo";
		JSONReqB = new JSONscriptRequest(reqUrlB);
		JSONReqB.buildScriptTag();
		JSONReqB.addScriptTag();	
	},
	gotInfo: function(jsonObjB){
		if (jsonObjB.response.statusCode != 200) {
			alert("Please Log In Again");
			domElems.makeLoginLink();
		} else {
			openAuthObj.userId = jsonObjB.response.data.userData.loginId;
			domElems.hideLoginLink();
			domElems.makeLogOutLink();
		}
	}
}
var domElems = {
	loginStatus: function (){return document.getElementById("loginStatus")},
	makeLoginLink: function(){
		if (domElems.loginStatus()){
			if (document.getElementById('sns_screenname') && document.getElementById('sns_password')){
			}
			var loginLink = document.createElement("SPAN");
			loginLink.setAttribute("id", "loginLink"); 			
			loginLink.onclick = function (){
				var loginUrl = "http://api.screenname.aol.com/auth/login?devId=so1U8R9vYazMbUna&f=qs&succUrl=http://music.aol.com/blog/sns/login.html";				
				domElems.makeIframe(loginUrl)
			}
			var loginText = document.createTextNode("Sign In / Register"); 
			loginLink.appendChild(loginText); 
			domElems.loginStatus().appendChild(loginLink);
		}
	},
	makeLogOutLink: function(){
		if (domElems.loginStatus() && openAuthObj.userId && (!(document.getElementById("logoutLink")))){
			var loggedInText = document.createTextNode("Logged In: ");
			var userName = document.createElement("span");   
			userName.setAttribute("id", "userName"); 	
			var userNameText = document.createTextNode(openAuthObj.userId); 
			userName.appendChild(userNameText);
			domElems.loginStatus().appendChild(loggedInText);
			domElems.loginStatus().appendChild(userName);
			var logoutLink = document.createElement("SPAN");
			logoutLink.style.cursor = "pointer";
			logoutLink.setAttribute("id", "logoutLink");
			logoutLink.onclick = function (){
				var logoutUrl = "https://api.screenname.aol.com/auth/logout?a="+openAuthObj.token+"&devId=so1U8R9vYazMbUna&doSNSLogout=1&f=qs&succUrl=http://music.aol.com/blog/sns/logout.html";				
				domElems.makeIframe(logoutUrl)
			}	
			var logoutText = document.createTextNode(" | Log Out"); 
			logoutLink.appendChild(logoutText); 
			domElems.loginStatus().appendChild(logoutLink);	
		}
	},
	makeIframe: function(ifrmURL){
		var openAuthIframe = document.getElementById("openAuthIframe")
		openAuthIframe.style.display="block";
		var closeMe = document.createElement("DIV");    
		closeMe.setAttribute("id", "closeMe"); 
		var closemelink = document.createElement("A");
		closemelink.setAttribute("href", "#");
		closemelink.onclick = function (){
			document.getElementById("openAuthIframe").style.display="none";
		}
		var closemeimg = document.createElement('img');
		closemeimg.src="http://www.blogsmithmedia.com/www.spinner.com/media/closeme.jpg";
		closemelink.appendChild(closemeimg);	
		closeMe.appendChild(closemelink);
		openAuthIframe.appendChild(closeMe);
		ifrm = document.createElement("IFRAME");	
		ifrm.setAttribute("frameborder","0");
		ifrm.src = ifrmURL; 
		ifrm.style.border= "0px";
		ifrm.setAttribute("frameborder", "0"); 
		ifrm.style.backgroundColor = "#fff";
		openAuthIframe.appendChild(ifrm);
	},
	hideLoginLink: function(){
		while (domElems.loginStatus().firstChild) 
		 {
			domElems.loginStatus().removeChild(domElems.loginStatus().firstChild);
		 };
	},
	hideLogOutLink: function(){
		while (domElems.loginStatus().firstChild) 
		 {
			domElems.loginStatus().removeChild(domElems.loginStatus().firstChild);
		 };
	},
	hideIframe: function(){
		if (document.getElementById("openAuthIframe")){
			var openAuthIframe = document.getElementById("openAuthIframe");
			openAuthIframe.style.display="none";
			while (openAuthIframe.firstChild) {
    				openAuthIframe.removeChild(openAuthIframe.firstChild);
			}
		}
	},
	clearForm: function(){
		if (document.getElementById('cmtuinfo_sns')){
			var snsInput = getElementsByClassName(document, "input", "formtext");
			for(a=0; a<snsInput.length; a++) {
				snsInput[a].value = '';
			}
		}
	}
}
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 addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}
addLoadEvent(doGetToken.getToken);


function searchState(initDiv) {
		var tmpLst = document.getElementById(initDiv).getElementsByTagName('h4');	
		for (var i=0; i<tmpLst.length; i++) {
			tmpLst[i].onclick = search_tab_slctSte;
			tmpLst[i].onmouseover = searchHighLight;
			tmpLst[i].onmouseout = searchHighLightOff;			
		}	
}

function searchHighLight() { this.className = "hoveredOverTab"; }
function searchHighLightOff() { this.className = ''; }
function search_tab_slctSte() {

		var elemToKill = document.getElementById('selectedTab');
		var oldNodeTxt = document.getElementById('selectedTab').innerHTML;

		var newNode = document.getElementById('selectedTab').cloneNode(true);
		newH4 = document.createElement('h4');
		newH4.innerHTML = oldNodeTxt;
		
		this.parentNode.insertBefore(newH4, elemToKill);
		elemToKill.parentNode.removeChild(elemToKill)
		this.parentNode.insertBefore(newNode, this);
		this.parentNode.removeChild(this);
		newNode.innerHTML = this.innerHTML;
		searchState('searchTabs');
		searchb = this.innerHTML;
		bb_dosrchby('bb_topform',links);
		
}
function doSrchOmni(term,type){
    var s_account="aolsvc,aolmus"
   s_265.prop20=term;
    s_265.prop21=type+": clicked";
   s_265.t();
}
function bb_dosrchby(sFo, links) {
  eval('var sFormObj = document.'+ sFo);
  var searchQuery = sFormObj.query.value.toLowerCase();
  if(searchQuery == "" || searchQuery == defaultSrchTxtVal.toLowerCase()) return;
  // do srch

  doSrchOmni(searchQuery,searchb);

  // var url = links[searchb.toLowerCase().replace(" ","")];
   var url = "http://music.aol.com/blog/search/?q=";
  url = url + escape(searchQuery).replace(/\+/g,'%2b');
  location.href = url;
}


var links = new Object;
var defaultSrchTxtVal = 'Search for artists, videos, songs and albums';
links.AOLMusicBlog = 'http://music.aol.com/blog/search/?q=';
searchb='AOLMusicBlog';

function searchStateF(initDivF) {
		var tmpLstF = document.getElementById(initDivF).getElementsByTagName('h4');	
		for (var i=0; i<tmpLstF.length; i++) {
			tmpLstF[i].onclick = search_tab_slctSteF;
			tmpLstF[i].onmouseover = searchHighLightF;
			tmpLstF[i].onmouseout = searchHighLightOffF;			
		}	
}

function searchHighLightF() { this.className = "hoveredOverTabF"; }
function searchHighLightOffF() { this.className = ''; }
function search_tab_slctSteF() {

		var elemToKillF = document.getElementById('selectedTabF');
		var oldNodeTxtF = document.getElementById('selectedTabF').innerHTML;
		var newNodeF = document.getElementById('selectedTabF').cloneNode(true);
		newH4F = document.createElement('h4');
		newH4F.innerHTML = oldNodeTxtF;
		this.parentNode.insertBefore(newH4F, elemToKillF);
		elemToKillF.parentNode.removeChild(elemToKillF)
		this.parentNode.insertBefore(newNodeF, this);
		this.parentNode.removeChild(this);
		newNodeF.innerHTML = this.innerHTML;
		searchStateF('searchTabsF');
		searchbF = this.innerHTML;
		bb_dosrchbyF('bb_topformF',linksF);
		
}
function bb_dosrchbyF(sFoF, linksF) {
  eval('var sFormObjF = document.'+ sFoF);
  var searchQueryF = sFormObjF.queryF.value.toLowerCase();
  if(searchQueryF == "" || searchQueryF == defaultSrchTxtValF.toLowerCase()) return;
  // do srch
  doSrchOmniF(searchQueryF,searchbF);
  var urlF = linksF[searchbF.toLowerCase().replace(" ","")];
  urlF = urlF + escape(searchQueryF).replace(/\+/g,'%2b');
  location.href = urlF;
}
function doSrchOmniF(term,type){
    var s_account="aolsvc,aolmus"
   s_265.prop20=term;
    s_265.prop21=type+": clicked";
   s_265.t();
}


function srchSub(ref) {
	var frm=p_o("search");
	var queryval = frm.aolMusicSearch.value.trim();
	queryval = queryval.replace( /\+/, " ");
	newurl = ref.href + queryval;
	window.open(newurl,'');
	return false;
}

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)
}