//JavaScript function for Living Faith Church.
//
//

var videoCount = 0;
var churchMediaObjectsRef = '';
var htmlNodes = new Array();
//Loads the table of data(church-media-content.html) for the video to be streamed/served.
function ajaxFunction()
{
	var xmlhttp;
	if (window.XMLHttpRequest)
	  {
	  // code for IE7+, Firefox, Chrome, Opera, Safari
	  xmlhttp=new XMLHttpRequest();
	  }
	else if (window.ActiveXObject)
	  {
	  // code for IE6, IE5
	  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	else
	  {
	  alert("Your browser does not support XMLHTTP!");
	  }

	  // Event Handler - EventListener
	  xmlhttp.onreadystatechange = function()
	  {
		  if (xmlhttp.readyState == 4) // 4: The Request is complete
		  {


			  //parse the responseText and build javascript objects out of it.
			  var content = xmlhttp.responseText;

			    var delimiter = 'LINK -->';
			    var rwDelim = '</td>';
			    var rwStart = '<td>';
			  var linkCount = countLinks(delimiter, content);
			  //Store away the totalVideo Count here
			  videoCount = linkCount;

         var iterationStartPoint = 0;
         var churchMediaObjects = new Array();

         for(k=0;k<linkCount;k++){
			  var start = content.indexOf(delimiter,iterationStartPoint);
			  var parsedIndex = start+delimiter.length-2;

			 //the data container
			 mediaObject = new Object();
			    //Loop through all N fields and store data in object
			    for(i=0; i<11;i++){

			      charIndex = content.indexOf(rwDelim,parsedIndex);
				  //isolate text to work on
				  line = content.substring(parsedIndex,charIndex);
				  //remove string <td> wrappers
				  idx = line.indexOf(rwStart);
				  line = line.substring(idx+rwStart.length);

				  //remove string <td> wrappers

				  //Now figure out which property to populate
				  if(i==0){//is TITLE
				     mediaObject.title = line;
				  }
				  else if(i==1){//is DATE
					 mediaObject.date = line;
				  }
				  else if(i==2){//is SPEAKER
				     mediaObject.speaker = line;
				  }
				  else if(i==3){//is LENGTH
					 mediaObject.length = line;
				  }
				  else if(i==4){//is UStream NAME
				     mediaObject.ustreamname = line;
				  }
				  else if(i==5){//is UStream ID
					 mediaObject.ustreamid = line;
				  }
				  else if(i==6){//is UStream LINK
				     mediaObject.link = line;
				  }
				  else if(i==7){//is Thumbnail
					 mediaObject.thumbnailurl = line;
				  }
				  else if(i==8){//is Media type
					 mediaObject.mediatype = line;
				  }
				  else if(i==9){//is Media type
						 mediaObject.customvideo = line;
				  }
				  else if(i==10){//is Summary description type
						 mediaObject.summary = line;
				  }


				  //Now move to next line
				  parsedIndex = charIndex + rwDelim.length;

			    }//end of looping through all the fields.
			    mediaObject.generatedHtml ="";

 				  //Move iterator along for next object
 				  iterationStartPoint = parsedIndex;
                   //store object in array
				  churchMediaObjects[k] = mediaObject;

		    } //end of loop for N number of media objects.

     var imageList = '';
     for(l=0;l<churchMediaObjects.length;l++){
       a = churchMediaObjects[l];
       var node="title:"+a.title+"\n";
           node+="date:"+a.date+"\n";
           node+="speaker:"+a.speaker+"\n";
           node+="length:"+a.length+"\n";
           node+="ustreamname:"+a.ustreamname+"\n";
           node+="ustreamid:"+a.ustreamid+"\n";
           node+="link:"+a.link+"\n";
           node+="thumbnailurl:"+a.thumbnailurl+"\n";
           node+="mediatype:"+a.mediatype+"\n";
           node+="customvideo:"+a.customvideo+"\n";
           node+="summary:"+a.summary+"\n";
           imageList = imageList + a.thumbnailurl+" ";
     }

     //Now call method to populate FieldArea in HTML PAGE with Set Name
     churchMediaObjectsRef = churchMediaObjects;

     //go through the Array and build html segment for each object and store in that object
    populateContentArea(churchMediaObjects);

		  }
	  }

    //Request the file with all the meta data
	xmlhttp.open("GET","church-media-content.html",true);
	xmlhttp.send(null);

}

function countLinks(delimiter, content){
   var count = 0;
   var pointer = 0;
   while(pointer < content.length){
     pointer = content.indexOf(delimiter, pointer);
     if(pointer > -1){
       count++;
       pointer = pointer + delimiter.length;
     }else {
       pointer = content.length + 1;
     }

   }
   return count;
}

function populateContentArea(churchMediaObjectArray){

	var generatedHtml = "";
    //take each object and stuff it in HTML
    for(i=0;i<churchMediaObjectArray.length;i++){
        a = churchMediaObjectArray[i];

      var node = '';
      if(a.customvideo.toUpperCase()=='NA'){//if it's not customvideo then it's from ustream.
          node ='<embed name="'+a.ustreamname+'" id="'+a.ustreamid+'" flashvars="viewcount=true&amp;autoplay=false&amp;brand=embed&amp;"';
          node+=' height="250" width="300" allowfullscreen="true" allowscriptaccess="always" wmode="transparent" ';
          node+=' src="'+a.link+'" type="application/x-shockwave-flash" />';
      }
      a.generatedHtml = node;
      htmlNodes[i] = node;
    }
    //reassing?

    //Now that we have all the data, go through and build the html elements from the content parsed.
    //Locate 'video-area', 
      //populate 'vieo-selection'
    var x=document.getElementById("video-selection");

    //Build HTML video selection content and load it into page
    var htmlValue = '<table border="0" cellspacing="0" cellpadding="0">';

    for(m=0;m<churchMediaObjectArray.length;m++){
       data = churchMediaObjectArray[m];
       churchMediaObjects = churchMediaObjectsRef;
       data = churchMediaObjects[m];

       //Need to generate the links
	   var row = '<tr onmouseOver="style.backgroundColor=';
       row+="'#FFFFFF';"; row+='" onmouseOut="style.backgroundColor='; row+="'white';"; row+='"> ';

       var rowData = '<td onClick="loadVideo('+"'Video-"+ m +"');"+'" ';
	rowData+='style="background: url('+data.thumbnailurl+') no-repeat; height:55px; width:55px ;"></td>';
   	rowData+='<td onClick="loadVideo('+"'Video-"+ m +"');"+'" ><a style="text-decoration: none;" href="javascript:loadVideo('+ "'Video-"+ m +"');"+'" >&nbsp;';
	rowData+= data.summary+'</a></td></tr>';
	
	htmlValue+= row+rowData;

    }
    //now close table and html segment
     htmlValue+="</table>";

     //insert generatedHtml into the video-selection element
     x.innerHTML = htmlValue;

   //Now load the first video
   loadVideo("Video-0");

}

    function loadVideo(key)
    {
     //locate the churchMediaObject
     churchMediaObjects = churchMediaObjectsRef;
       //extract index
       var index = key.substring(key.indexOf('-')+1);

     if(index>churchMediaObjects.length){
    	 return;//bail .. somehow we got a bad index.
     }
     media = churchMediaObjects[index];


     //if(media.generatedHtml = ''){ //is custom video
     if(htmlNodes[index].length == 0){ //is custom video
    	 //load new video area
         //This line must be inserted as placeholder.
         video2= '<a style="display:block;width:300px;height:250px" id="player"> </a>';
    	 document.getElementById('video-area').innerHTML = video2;
    	 //Call flowplayer flash embedding script
    	 var videolink = "'"+media.customvideo+"'";
         var arg = "{config: { clip:"+"'"+media.customvideo+"',plugins: { controlbar:null } }}";

//    	 flashembed("player", "flowplayer/flowplayer-3.1.0.swf", {config: {
//         clip: "'"+media.customvideo+"'",
//         plugins: {
//           controlbar:null
//         }
//         }});
    	 flashembed("player", "flowplayer/flowplayer-3.1.0.swf", arg);
//    	 clip:'video/xmen-origins-wolverine2.fv4',
    	 //clip: videolink,
    	 //load new summary
    	 document.getElementById('summary').value = media.summary;

     }else{
         //load new video area
    	 //document.getElementById('video-area').innerHTML = media.generatedHtml;
    	 document.getElementById('video-area').innerHTML = htmlNodes[index];
     }

    }

