var xmlDoc;
var jspf;
var tracks;
var firstLoad = "NO";
var scrollvar = 0;
var playingNo = 0;
var responseXML;
var tabsXML = "No";
var xmlhttp;
var XMLtype;
var responseXML = "No";
var numTracks;
var currentPosition;
var otherPosition;
var currentState;
var captchaHash;
var direction;
var dest;
var scrolling = false;
var browser;
var news_comment;
var anon_name;
var reloadComment = false;
var playCount = 0;

function getUpdate(typ, pr1, pr2, pid)
{
  if(typ == 'time')
  {
    otherPosition = pr1;
	currentPosition = pr2;
  }
  if(typ == 'state')
  {
    currentState = pr1;

		if((currentState==1) && (currentPosition==0) && (otherPosition>1))
		{
			//alert(otherPosition);
			if(otherPosition>12){
			otherPosition=0;
			
			play(playingNo + 1);
			}else{
			sendEvent("dragplayer","next");
			}
		}
  }
}

function doXML()
{
//load xml file
// code for IE
if (window.ActiveXObject)
{
browser="IE";
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(responseXML);
doComments();
}
// code for Mozilla, etc.
else if (document.implementation &&
document.implementation.createDocument)
{
browser="mozilla";
  var parser=new DOMParser();
  xmlDoc=parser.parseFromString(responseXML,"text/xml");
	doComments();
}
else
{
alert('Your browser cannot handle this script');
}
}

function doComments()
{

        var lists = xmlDoc.getElementsByTagName('comments_list');
            var comments = lists[0].getElementsByTagName('comment');
            var listHTML = "<pre>";
        for (var x=0;x<comments.length;x++) {
                var commentText = comments[x].getElementsByTagName('comment_text')[0].firstChild.nodeValue;
				if(!comments[x].getElementsByTagName('comment_from')[0].firstChild){commentFrom="anonymous"}else{
				var commentFrom = comments[x].getElementsByTagName('comment_from')[0].firstChild.nodeValue;
				}
				listHTML = listHTML + "<p>" + commentFrom + ":</p>" + commentText + "\n\n";
		}				
		var listHTMLarr = listHTML.split(" ");
		for (var x=0;x<listHTMLarr.length;x++) {
		if(listHTMLarr[x].length > 30){
			var carefulTags = listHTMLarr[x].split("<");
			for (var y=0;y<carefulTags.length;y++) {
				if(carefulTags[y].length > 30){
					listHTMLarr[x] = listHTMLarr[x].substr(0, 30) + "<br>" + listHTMLarr[x].substr(30);
				}
			}
			}
		listHTML = listHTMLarr.join(" ") + "</pre>";
		if(comments.length==0){
		listHTML = "<p>There are no comments....</p>";
		}
		}
		document.getElementById("commentsbox").className = "commentsbox1";
		document.getElementById("commentsbox").innerHTML = listHTML;
}


function loadXMLDoc(url, XMLtypevar)
{
XMLtype=XMLtypevar;
xmlhttp=null;
// code for Mozilla, etc.
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest()
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=state_Change
  xmlhttp.open("GET",url,true)
  xmlhttp.send(null)
  }
else
  {
  alert("Your browser does not support XMLHTTP.")
  }
}
function state_Change()
{
// if xmlhttp shows "loaded"
if (xmlhttp.readyState==4)
  {
  // if "OK"
  if (xmlhttp.status==200)

    {
	responseXML = xmlhttp.responseText;
	if (XMLtype=="comments"){
		doXML();
	}
	if (XMLtype=="commform"){
		document.getElementById("commentsbox").className = "commentsbox2";
		var hashStart = responseXML.indexOf('Hash" value="')+13;
		captchaHash = responseXML.substring(hashStart, hashStart+40);
		document.getElementById("commentsbox").innerHTML = '<html><head></head><body><div id="cake"><p><form action="javascript:postComment();" method="post" name="newscomments"><textarea id="news_comment" name="news_comment" rows="7" cols="25"></textarea><br>Name: <input id="anon_name" name="anon_name" maxlength="100" size="20"><br><br><img src="/news/showCaptcha.cfm?hashReference=' + captchaHash + '" /><br>Enter the text you see above:<br> <input id="captchatext" type="text" name="captchatext" size="6" /> <input type=submit value="post comment" name="mode"></form></p></div></body></html>'
		if (reloadComment==true){
			document.getElementById("anon_name").value = anon_name;
			document.getElementById("news_comment").innerHTML = news_comment;
			reloadComment=false;
		}
	} else {
		//seperate tabs from rest of xml
		tabsXML = responseXML.substring(responseXML.indexOf("<tab>"),responseXML.lastIndexOf("</tab>")+6);
		responseXML = responseXML.substring(0,responseXML.indexOf("<tab>")) + responseXML.substring(responseXML.lastIndexOf("</tab>")+6, responseXML.length);
		doneXML();
	}
    }
  else
    {
    alert("Problem retrieving XML data");
    }
  }
}

function postComment(){
anon_name =	document.getElementById("anon_name").value;
news_comment = document.getElementById("news_comment").value;
var captchatext = document.getElementById("captchatext").value;
var vidParam = tracks[playingNo].playerurl.split("=");

if(captchatext == ""){
	alert("Please enter the characters you see in the image");
}else{
	if(anon_name == ""){
		alert("Please enter a name");
	}else{
		if(news_comment == ""){ 
			alert("Please enter a comment");
			}else{
				var commentHttp;
				commentHttp=null;

				// code for Mozilla, etc.
				if (window.XMLHttpRequest)
				  {
				  commentHttp=new XMLHttpRequest()
				  }
				// code for IE
				else if (window.ActiveXObject)
				  {
				  commentHttp=new ActiveXObject("Microsoft.XMLHTTP")
				  }
				  
				if (vidParam[0]=="newsid"){
					commentHttp.open('POST',"/news/comments.cfm",false);
				}else{
					commentHttp.open('POST',"/articles/comments.cfm",false);
					}

				commentHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				commentHttp.send("captchaHash="+captchaHash+"&news_comment="+news_comment+"&anon_name="+anon_name+"&captchatext="+captchatext+"&"+vidParam[0]+"="+vidParam[1]+"&mode=go");

				var strResult=commentHttp.responseText;
				//document.getElementById('commentsbox').innerHTML='<textarea id="reslut" rows=7 cols=25></textarea>';
				//document.getElementById('reslut').innerHTML=strResult;
				if(strResult.indexOf("WORD VERIFICATION")>0){
					alert("please enter the characters you see in the image");
					var leHref = document.getElementById("postlink").getAttribute("href");
					reloadComment = true;
					loadXMLDoc(leHref.substring(leHref.indexOf("http://"),leHref.indexOf("', '")), "commform");
				}else{
				loadXMLDoc("comments_xml.cfm?" + tracks[playingNo].playerurl, "comments"); 
				}
			}
		}
	}


 
}

function scrollNow(direction){
var el = document.getElementById("face");
st = el.scrollLeft;
if (direction == "l"){
st = st - 10;
} else {
st = st + 10;
}
el.scrollLeft=st;
}

function scrollit(direction){
if (scrolling==false){
	if (direction == "l"){
	scrollvar = setInterval("scrollNow('l')", 30);
	} else {
	scrollvar = setInterval("scrollNow('r')", 30);
	}
}
}

function stopscroll(){
clearInterval(scrollvar);
}

function doTabs() {
var tabs = new Array();
var tabString = " ";
tabs = tabsXML.split('<tab>');
for(x=0;x<tabs.length;x++)  {
	tabString = tabString + '<a href="javascript:reloadPlay(\'' + tabs[x].substring(tabs[x].indexOf("<url>")+5,tabs[x].indexOf("</url>")) + '\')">'+ tabs[x].substring(tabs[x].indexOf("<title>")+7,tabs[x].indexOf("</title>")) +"</a> &nbsp;"
}
document.getElementById("listhandle").innerHTML = '<a style="color:black;"></a>'; //tabString;
}

function doneXML() {
//doTabs();
loadXML();
	var playLine = '<TABLE cellPadding="0" width="100">'
	numTracks = tracks.length+1
	 for(x=0;x<tracks.length;x++)  {
		var titleStr = new String();
		titleStr = tracks[x].title;
		if (null == titleStr) {titleStr = "cake";}
		if (titleStr.length > 25) {
		titleStr = titleStr.substr(0,22) + '...'
		} else {
		titleStr = tracks[x].title
		}
		var playLine1 = '<td valign="top" id="boxe"><TABLE height = 112 id="boxe" onclick="" class="playlistlo" onmouseover="this.className = \'playlisthi\';" onmouseout="this.className = \'playlistlo\';">';
		var playLine2 = '<TR id="boxe"><TD valign="top" id="box"><a id="txt' + x + '" title="'+ tracks[x].title +'" href="javascript:play(' + x + ')"><IMG id="thumbImg' + x + '" width=90 height=68 src="' + tracks[x].thumbnailimage + '" onmouseout="this.className = \'playlistpiclo\';" onmouseover="this.className = \'playlistpic\';" border="1">';
		var playLine3 = '\n' + titleStr;
		var playLine4 = '<br>' + tracks[x].duration;
		var playLine5 = '</a></TD></TR></TABLE></td>';
		if(tracks[x].playerurl=="ADVERT"){}else{
		playLine = playLine + playLine1 + playLine2 + playLine3  + playLine5;
		}
	}
	document.getElementById("face").innerHTML = playLine;
	var el = document.getElementById("face");
	st = el.scrollLeft;
	st = 0;
	el.scrollLeft=st;
	if (firstLoad=="YES") { createPlayer(tracks[0].location, tracks[0].posterimage, false, true); firstLoad = "NO"; }
	if(tracks[playingNo].playerurl=="ADVERT"){document.getElementById("commbelow").innerHTML = ""}else{
		loadXMLDoc("comments_xml.cfm?" + tracks[playingNo].playerurl, "comments");
		if (tracks[playingNo].playerurl.indexOf("news")<0){
		document.getElementById("commbelow").innerHTML = '<div>' + '<a id="postlink" href="' + "javascript:loadXMLDoc('http://www.sonicstate.com/articles/comments.cfm?" + tracks[playingNo].playerurl + "', 'commform');" + '">post a comment</a></div><div><a href="http://www.sonicstate.com/articles/article.cfm?id=' + tracks[playingNo].playerurl.split("=")[1] + '">view article</a></div>';
		}else{
		document.getElementById("commbelow").innerHTML = '<div>' + '<a id="postlink" "href="' + "javascript:loadXMLDoc('http://www.sonicstate.com/news/comments.cfm?" + tracks[playingNo].playerurl + "', 'commform');" + '">post a comment</a></div><div><a href="http://www.sonicstate.com/news/shownews.cfm?newsid=' + tracks[playingNo].playerurl.split("=")[1] + '">view article</a></div>';
		}
	}
}

function loadXML()
{
var xmlDoc = XSPF.XMLfromString(responseXML);
jspf = XSPF.toJSPF(xmlDoc);
tracks = jspf.playlist.track;
}

var thePlayer;
var thePlayerRoot;
var theList;
var theListRoot;

var theItem;
var selFile;


function loadPlay(file,idx) { 
	theItem=idx;
	selFile=file;
	createPlayer(selFile);
	setTimeout("play()",1100);
};

function initialize(vid_id) {
	thePlayer = document.getElementById("playerhandle");
	theList = document.getElementById("listhandle");
	thePlayerRoot  = document.getElementById("playerroot");
	theListRoot  = document.getElementById("listroot");
	firstLoad = "YES";
	reloadPlay(vid_id);
	
}

function sendEvent(swf,typ,prm) { 
  thisMovie(swf).sendEvent(typ,prm); 
}


function thisMovie(swf) {
  if(navigator.appName.indexOf("Microsoft") != -1) {
    return window[swf];
  } else {
    return document[swf];
  }
}

function createPlayer(theFile, theImg, start, icons) {
	var s1 = new SWFObject("sonicplayer.swf","dragplayer","480","390","7");
	s1.addParam("allowfullscreen", "true");
	//alert(theFile);
	s1.addVariable("file", theFile);
	s1.addVariable("width", "480");
	s1.addVariable("height", "390");
	s1.addVariable("displaywidth", "480");
	s1.addVariable("displayheight", "370");
	s1.addVariable('showdigits', 'true');
	s1.addVariable('overstretch','fit');
    s1.addVariable('enablejs', 'true');
    s1.addVariable('javascriptid', 'mpl');
	s1.addVariable("frontcolor","0xFFFFFF");
	s1.addVariable("backcolor","0x000000");
	s1.addVariable("linktarget","_blank");
	s1.addVariable("lightcolor","0xEEEEEE")
	if (start) s1.addVariable("autostart", "true");
	if (! icons) s1.addVariable("showicons", "false");
	if (theImg != "") s1.addVariable("image", theImg);
	s1.write("placeholder");
	//alert(document.getElementById("playerroot").innerHTML);
}

function play(number) {
playCount = playCount + 1;
if(!(document.getElementById("thumbImg" + playingNo)==null)){
if (browser=="IE"){
document.getElementById("thumbImg" + playingNo).style.setAttribute("cssText","border: 0px solid red;");
document.getElementById("txt" + playingNo).style.setAttribute("cssText","color: white;");
}else{
document.getElementById("thumbImg" + playingNo).setAttribute("style","border: 0px solid red;");
document.getElementById("txt" + playingNo).setAttribute("style","color: white;");
}
}
playingNo=number;
loadXMLDoc("comments_xml.cfm?" + tracks[playingNo].playerurl, "comments"); 
	if (tracks[playingNo].playerurl.indexOf("news")<0){
	document.getElementById("commbelow").innerHTML = '<div>' + '<a id="postlink" href="' + "javascript:loadXMLDoc('http://www.sonicstate.com/articles/comments.cfm?" + tracks[playingNo].playerurl + "', 'commform');" + '">post a comment</a></div><div><a href="http://www.sonicstate.com/articles/article.cfm?id=' + tracks[playingNo].playerurl.split("=")[1] + '">view article</a></div>';
	}else{
	document.getElementById("commbelow").innerHTML = '<div>' + '<a id="postlink" href="' + "javascript:loadXMLDoc('http://www.sonicstate.com/news/comments.cfm?" + tracks[playingNo].playerurl + "', 'commform');" + '">post a comment</a></div><div><a href="http://www.sonicstate.com/news/shownews.cfm?newsid=' + tracks[playingNo].playerurl.split("=")[1] + '">view article</a></div>';
	}
var el = document.getElementById("face")
dest = (playingNo * el.scrollWidth/(numTracks)) - 400;
if(dest > el.scrollLeft){
	direction="r";
}else{
	direction="l";
}
if (scrolling==true){stopscroll();}
scrolling=true;
scrollvar = setInterval("waitingScroll(direction, dest)", 50);
if (browser=="IE"){
document.getElementById("thumbImg" + number).style.setAttribute("cssText","border: 1px solid red;");
document.getElementById("txt" + number).style.setAttribute("cssText","color: red;");
}else{
document.getElementById("thumbImg" + number).setAttribute("style","border: 1px solid red;");
document.getElementById("txt" + number).setAttribute("style","color: red;");
}
var cakestr = "pigs";
cakestr = String(tracks[number].location);
caketwo = cakestr.substring(cakestr.lastIndexOf("/")+1, cakestr.lastIndexOf("."));
cakestr = "c=" + playCount + "%26v=" + caketwo;
createPlayer("vplay.cfm?" + cakestr, tracks[number].posterimage, true, true);
//createPlayer(tracks[number].location, tracks[number].posterimage, true, true);
}

function waitingScroll(direction, dest){
var el = document.getElementById("face");
//alert(Math.abs(dest-el.scrollLeft));
if(Math.abs(dest-el.scrollLeft)<=20){
stopscroll();
scrolling=false;
}
if (el.scrollLeft==0){
stopscroll();
scrolling=false;
}
if ((el.scrollLeft+800)==el.scrollWidth){
stopscroll();
scrolling=false;
}
scrollNow(direction);
}


function reloadPlay(url) {
	url = url.replace(/,/,"&");
	loadXMLDoc(url); //+ url);
	//loadXMLDoc("http://127.0.0.1/sonic/moo.php?num=500");
	//loadXMLDoc("http://www.sonicstate.com/tv/box_play.cfm?");

}