var req;
var req2;
var strSearchContent;


function purchaseMusicWindow(item) {
	var width  = 325;
	var height = 325;
	var left   = (screen.width  - width)/2;
	var top    = (screen.height - height)/2;
	var params = 'width='+width+', height='+height;
	params += ', top='+top+', left='+left;
	params += ', directories=no';
	params += ', location=no';
	params += ', menubar=no';
	params += ', resizable=no';
	params += ', scrollbars=no';
	params += ', status=no';
	params += ', toolbar=no';
	
	var url = '/purchaseWindow.php';
	item = item.split('-');
	url += '?' + item[0] + '=' + item[1];

	purchaseWindow = window.open(url,'purchaseWindow',params);
	if (window.focus) {purchaseWindow.focus()}
	return false;
}

function showHideKeywords()
{
	var objUL = document.getElementById('keywords');
	var obj = document.getElementById('more-keywords');
	
	if (objUL.className == 'minimized')
	{
		objUL.className = 'maximized';
		obj.className = 'maximized';
		obj.innerHTML = 'Show Only Top Keywords';
	}
	else
	{
		objUL.className = 'minimized';
		obj.className = 'minimized';
		obj.innerHTML = 'Show All Keywords';		
	}
	setKeywordsCookie(obj.className);
}

function setKeywordsCookie(keywordsState) {
  document.cookie = 'keywords=' + keywordsState + '; expires=Thu, 2 Aug 2101 20:47:11 UTC; path=/';
}
 
function playStopMusic(theSong, theObj, type) {
	theObj = document.getElementById(theObj);
	if (type == 'mini') {
		var fo = new FlashObject('/mp3player.swf','mpl','17','20','7');
	} else {
		var fo = new FlashObject('/mp3player.swf','mpl','190','20','7');
	}
	fo.addParam('allowfullscreen','true');
	fo.addParam('allowscriptaccess','true');
	fo.addVariable('file','/player.php?song=' + theSong);
	fo.addVariable('height','20');
	if (type == 'mini') {
		fo.addVariable('width','17');
	} else {
		fo.addVariable('width','190');
	}
	fo.addVariable('frontcolor','0xed9621');
	fo.addVariable('lightcolor','0x69ae3d');
	fo.addVariable('showdigits','false');
	if (type == 'mini') {
		fo.addVariable('showvolume','false');
	}
	fo.addVariable('shuffle','false');
	fo.addVariable('smoothing','false');
	fo.addVariable('usecaptions','false');
	fo.addVariable('usefullscreen','false');
	fo.addVariable('usekeys','false');
	
//	var tempString = 'fo.write(\'' + theObj + '\')';
//	eval(tempString);
	fo.write(theObj);
}
  
function openLyrics(songID)
{
	window.open("/lyrics/" + songID, "lyrics", "width=400,height=400,scrollbars=1,status=0,screenX=300,screenY=300");
}

function expandCollapseKeywords(obj) {
	if (obj.className == 'keywords-off') {
		obj.className = 'keywords-on';
	} else {
		obj.className = 'keywords-off';
	}
}

function Search() {
  location.replace('search.php?q=' + document.getElementById('txtSearchText').value);
	return false;
}

// search stuff
function xmlRequest() {
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.isDOM = true;
		return req;
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		return req;
	} else 
		return null;
}

function isXMLReady(xmlObject) {
	return (xmlObject.readyState == 4 && xmlObject.status == 200);
}

function RunSearch(strQuery,blnDisplaySearchingText,blnIsSearchTextKeyword) {
	if (blnDisplaySearchingText) 
	{
		document.getElementById('searchkeywords').innerHTML = '<h1 class="searching">Searching Keywords...</h1>';
		document.getElementById('searchcontent').innerHTML = '<h1 class="searching">Searching Content...</h1>';
	}

	strSearchContent = strQuery;
 	SearchKeywordSend(strQuery);
}

function SearchKeywordSend(strQuery)
{
	try
	{
		var url = '/search_keywords.php?q=' + encodeURIComponent(strQuery);
		req = xmlRequest();
		
		var strPost = '';
		
		req.onreadystatechange = SearchKeywordReturn;
		req.open('POST',url,true);
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
		req.send(strPost);
	}
	catch (e)
	{
		alert('error sending keyword search for "' + strQuery + '"\n\n' + e.description);
	}

}

function SearchContentSend(strQuery)
{
	try
	{
		var url = '/search_content.php?q=' + encodeURIComponent(strQuery);
		req = xmlRequest();
		
		var strPost = '';
		
		req.onreadystatechange = SearchContentReturn;
		req.open('POST',url,true);
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
		req.send(strPost);
	}
	catch (e)
	{
		alert('error sending keyword search for "' + strQuery + '"\n\n' + e.description);
	}
}


function SearchKeywordReturn()
{
	if (isXMLReady(req))
	{
		var AjaxResponse = req.responseText;

		if (AjaxResponse.length == 0)
		{
			document.getElementById('searchkeywords').style.display = "none";
		}
		else
		{
			document.getElementById('searchkeywords').innerHTML = req.responseText;	
			document.getElementById('searchkeywords').style.display = "block";
		}
		
	  
	  SearchContentSend(strSearchContent);
	}
}

function SearchContentReturn()
{
	if (isXMLReady(req))
	{
	  document.getElementById('searchcontent').innerHTML = req.responseText;	
	}
}

function showComments(StoryID) {
	var obj = document.getElementById('comments');
	if (obj.className == 'off') {
	  //obj.className = 'on';
	  var date = new Date();

		var ticks = date.getTime();
	  // ajax out to story_comments.php?
	  var url = '/story_comments.php?SID=' + encodeURIComponent(StoryID) + '&T=' + ticks;
	  req = xmlRequest();
		req.onreadystatechange = showCommentsReturn;
		req.open('POST',url,true);
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
		req.send('');
	}
}

function showCommentsReturn()
{
	if (isXMLReady(req))
	{
		var xmldoc = req.responseXML;
		if (xmldoc) {
			var NumComments = GetNodeData(xmldoc,'NUMCOMMENTS');
			var CommentText = GetNodeData(xmldoc,'COMMENTTEXT');
			var obj = document.getElementById('comments');
			obj.innerHTML = CommentText;
			obj.className = 'on';
			
			var ReadCommentLink = "";
			if (parseInt(NumComments) > 0)
			{
				ReadCommentLink = "<a href=\"#comments-anchor\" onClick=\"showComments(" + STORYID + ");\" />Read Comments (" + NumComments + ")</a>";
			}
			else
			{
				ReadCommentLink = "Read Comments (" + NumComments + ")";
			}
			document.getElementById("readcommentslink").innerHTML = ReadCommentLink;
			
			
		}
	}

}

function GetNodeData(objXML,strNode) {
	var node = objXML.getElementsByTagName(strNode).item(0);
	return node.firstChild.data;
}

function EnableCommentSubmit()
{
	var comment = document.getElementById("comment_comment").value;
	if (comment.length == 0)
	{
		document.getElementById("btnSubmit").disabled = true;
	}
	else
	{
		document.getElementById("btnSubmit").disabled = false;
	}
}

function SubmitComments(StoryID)
{
	document.getElementById("btnSubmit").disabled = true;
	var name = document.getElementById("comment_name").value;
	var email = document.getElementById("comment_email").value;
	var website = document.getElementById("comment_website").value;
	var comment = document.getElementById("comment_comment").value;
	
	var Post = "name=" + encodeURIComponent(name);
	Post += "&email=" + encodeURIComponent(email);
	Post += "&website=" + encodeURIComponent(website);
	Post += "&comment=" + encodeURIComponent(comment);
	
	  var date = new Date();

		var ticks = date.getTime();	
	
	var url = '/story_comments.php?SID=' + encodeURIComponent(StoryID) + '&T=' + ticks;
	
	req = xmlRequest();
	req.onreadystatechange = showCommentsReturn;
	req.open('POST',url,true);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	req.send(Post);
}

function CommentNotSpam(StoryID,CommentID)
{
	var Post = "NotSpamID=" + encodeURIComponent(CommentID);
  var date = new Date();
	var ticks = date.getTime();	
	
	var url = '/story_comments.php?SID=' + encodeURIComponent(StoryID) + '&T=' + ticks;
	req = xmlRequest();
	req.onreadystatechange = showCommentsReturn;
	req.open('POST',url,true);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	req.send(Post);
}

// cookie stuff
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=/";

}



function readCookie(name)

{

	var nameEQ = name + "=";

	var ca = document.cookie.split(';');

	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;

}



function eraseCookie(name)

{

	createCookie(name,"",-1);

}

function searchSelectedText() {
  if (document.getSelection) {
    var str = document.getSelection();
    if (window.RegExp) {
      var regstr = unescape("%20%20%20%20%20");
      var regexp = new RegExp(regstr, "g");
      str = str.replace(regexp, "");
    }
    if (str != '') {
      showSearchSelectedBox(str);
    } else {
        hideSearchSelectedBox();
    }
  } else if (document.selection && document.selection.createRange) {
    var range = document.selection.createRange();
    var str = range.text;
    if (str != '') {
      showSearchSelectedBox(str);
    } else {
        hideSearchSelectedBox();
    }
  }
}

function showSearchSelectedBox(searchText) {
  var selObj = document.getElementById('searchselectedtext');
  selObj.className = 'on';
  selObj.style.top = (tempY - 5) + 'px';
  selObj.style.left = (tempX + 20) + 'px';
  document.getElementById('selectedtexttosearch').innerHTML = searchText;
}

function hideSearchSelectedBox() {
    document.getElementById('searchselectedtext').className = 'off';
//    document.getElementById('selectedtexttosearch').innerHTML = '';
}

var IE = document.all?true:false
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmouseup = getMouseXY;

var tempX = 0
var tempY = 0

function getMouseXY(e) {
  if (IE) {
    tempX = event.clientX + document.body.scrollLeft;
    tempY = event.clientY + document.body.scrollTop;
  } else {
    tempX = e.pageX;
    tempY = e.pageY;
  }  
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  

//  alert(tempX + ',' + tempY);
  return true;
}

function autoSearch(isChecked) {
  if (isChecked) {
    searchSelectedAction();
  }
}

function searchSelectedAction() {
  if (document.location.href.indexOf('lyrics') >= 0) {
    window.opener.document.location.href = '/search/' + URLEncode(document.getElementById('selectedtexttosearch').innerHTML);
    window.close();
  } else {
  document.location.href = '/search/' + URLEncode(document.getElementById('selectedtexttosearch').innerHTML);
  }
}

function loadAlbumBook(theAlbum) {
	   var fo = new FlashObject("/book.swf", "albumBook", "759", "600", "6", "#F2F2F1", true);
	   fo.addVariable("album", theAlbum);
	   fo.write("artwork");
}



function RetrieveOrderFromPage(OrderNumber)
{
	var currentTime = new Date();
	//var url = "order_viewer.php?" + encodeURIComponent(currentTime);
	var myurl = "/orderviewer.php?t=" + encodeURIComponent(currentTime);

	var post = "order_number=" + encodeURIComponent(OrderNumber);
	post += "&search=N";

	req = xmlRequest();
	req.onreadystatechange = LoadOrder;
	req.open('POST',myurl,true);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	req.send(post);	
}

function RetrieveOrderFromSearch(OrderNumber,BillingZip)
{
	document.getElementById("ordercontents").innerHTMl = "Searching for order " + OrderNumber;

	var currentTime = new Date();

	var url = "/orderviewer.php?t=" + encodeURIComponent(currentTime);
	var post = "order_number=" + encodeURIComponent(OrderNumber);
	post += "&zip=" + encodeURIComponent(BillingZip);
	post += "&search=Y";
	req = xmlRequest();
	req.onreadystatechange = LoadOrder;
	req.open('POST',url,true);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	req.send(post);	
}

function LoadOrder()
{
	if (isXMLReady(req))
	{
		//var xmldoc = req.responseXML;
		//var text = req.responseText;
		document.getElementById("ordercontents").innerHTML = req.responseText;
	}

}

function SearchOrders()
{
	var OrderNumber = document.getElementById("order_number").value;
	var BillingZip = document.getElementById("billing_zip").value;
	if ((OrderNumber.length > 0) && (BillingZip.length > 0))
	{
		RetrieveOrderFromSearch(OrderNumber,BillingZip);
	}


}

	var FindNode = function(xmldoc,nodeName) {
    //return _ResponseXML.selectSingleNode("Response/" + nodeName);
    
		var objC = xmldoc.firstChild;
		while(objC) {
			if(objC.nodeName == nodeName)
				return objC;
			
			objC = objC.nextSibling;
		}		
		return null;    
    
	}
	
	var NodeInnerHtml = function(node)
	{
		var html = CleanXML(node);
		html = html.substring(html.indexOf(">") + 1);
		html = html.substring(0,html.lastIndexOf("</"));
		return html;
	}
	
	var CleanXML = function(node) { 
		//first get the xml, different in IE and mozilla
		var strXML = "";

		if(typeof(XMLSerializer) != "undefined") 	{
			var xmlSerializer = new XMLSerializer();
			// serialize
			strXML = xmlSerializer.serializeToString(node);
		}	
		
		if(typeof(node.xml)	!= "undefined")
			strXML = node.xml;

		return CleanString(strXML);				
	}	
	
	
	
	var CleanString = function(str)
	{
		// replaces "&amp;" with &, and also get's rid of any CDATA tags.
		rExp = /&amp;/gi;
		str = str.replace(rExp, "&");

		rExp = /<!\[CDATA\[/gi;
		str = str.replace(rExp, "");

		rExp = /\]\]>/gi;
		str = str.replace(rExp, "");

		return str;
	
	}
