var plstat = 0

var counter = 0
var INTERVAL_BETWEEN_CLIPS = 1 // seconds

function bodyInit()
{

	checkstat();

	wmPlayer = document.player1;
	wmSeeker = new Seeker(document.getElementById("seekerBar"));
	wmPlayerContainerElem = document.getElementById("playerContainer");
	setInterval(doPosition, 100);

	setInterval(checkClip, 1000);

	//RegisterEventObservers();
}

// this is the function which is called timely to check whether the present clip has finished playing or not

function checkClip() {
	
	// check if the current player state is playing 
	// if we get a ready state for longer and the auto image is visible, then we can go for auto_play

	if(!parent.xstream_cliplist) {
		return;
	}
	
	var player = (navigator.userAgent.indexOf("Opera") == -1) ? document.player1 : document.getElementById("player1");
	
	if(player.playState == 10 && parent.xstream_cliplist.document.getElementById("auto_afspil_img").style.visibility == "visible" && counter++ == INTERVAL_BETWEEN_CLIPS) {
			
			counter = 0;
			
			auto_play();
		
	}
	
}

//////////////////// auto play ///////////////////


function getURLVar(urlVarName) {

	
	if(checkBrowser() == "IE")	
   		var urlHalves = String(parent.xstream_player.document.getElementById("player1").URL).toLowerCase().split('?');
   	else
   		var urlHalves = String(parent.xstream_player.document.player1.URL).toLowerCase().split('?');
   var urlVarValue = '';
   if(urlHalves[1]){
      var urlVars = urlHalves[1].split('&');
      for(var i=0; i<=(urlVars.length); i++){
         if(urlVars[i]){
            var urlVarPair = urlVars[i].split('=');
            if (urlVarPair[0] && urlVarPair[0] == urlVarName.toLowerCase()) {
               urlVarValue = urlVarPair[1];
            }
         }
      }
   }
   return urlVarValue;
} 

// this function is responsible for fetching the nextID in the array and if there is no ID then it means we need to change the page :)

function fetchNextID(clip_list_array, prevID) {
	
	for(i = 0; i < clip_list_array.length; i++) {
		
		if(clip_list_array[i] == prevID && i < clip_list_array.length -1 )
			return clip_list_array[++i];
		else if(clip_list_array[i] == prevID && i == clip_list_array.length - 1) 
			return "CHANGE";
			
		
	}
	
}

// check if the prevID exists

var nextIDsame = false;

function checkIfprevIDexists(clip_list_array, prevID) {
	
	for(i = 0; i < clip_list_array.length; i++) {
		
		// check if we find the prevID in the clip list 
		
		if(prevID == clip_list_array[i])
			return prevID;
			
	}
	
	nextIDsame = true;
	
	return clip_list_array[0];
	
}


function auto_play() {
	
	
	// now we have access to xstream cliplist which gives us access to the hidden variables we need for looping
	// to move the logic of the manage_clip_play_new to this page
	
	// fetch the values we need here
		
	// to fetch the ID of the currently played video we make a search to the URL
	
	//alert(parent.xstream_player.document.getElementById("player1").URL);

	
	var clips_per_page = parent.xstream_cliplist.document.getElementById("clips_per_page").value;
	var clips_remaining_per_page = parent.xstream_cliplist.document.getElementById("clips_remaining_per_page").value;
	
	// the current page would be changed when the clip list is loaded again on page change from the cliplist
	var current_page = parent.xstream_cliplist.document.getElementById("current_page").value;
	var catID = parent.xstream_cliplist.document.getElementById("categoryID").value;
	var search_term = parent.xstream_cliplist.document.getElementById("search_term").value;
	var total_pages = parent.xstream_cliplist.document.getElementById("total_pages").value;
	var clip_list = parent.xstream_cliplist.document.getElementById("clip_list").value;
	var clip_list_complete = parent.xstream_cliplist.document.getElementById("clip_list_complete").value;
	
	//alert("current page :: "+current_page+" categoryID :: "+categoryID+" search term :: "+search_term+" total_pages :: "+total_pages+" clip_list "+clip_list+" clip_list_complete :: "+clip_list_complete);

	
	// now we need to keep track of the prevID and the nextID where nextID is the ID of the clip to be played
	
	if(parent.xstream_cliplist.document.getElementById("auto_afspil_img").style.visibility == "visible") {
		
		
		// the id below is the clip played at the moment and is the pivotal point for where we are in the cliplist
		prevID = getURLVar("ID[]");
		
		// now we need to check the nextID which is the next 1 to this in the clip_list
		
		var clip_list_array = clip_list.split(' ');

		// we check if the prevID is not in the clip list loaded then we could fetch the first id as the prevID
		
		prevID = checkIfprevIDexists(clip_list_array, prevID);
		
		
		// loop over the array and find the nextID
		var nextID = fetchNextID(clip_list_array, prevID);
		
		if(nextIDsame) // this means we have to play the first clip in the reloaded cliplist which is the second or third and so on spage in the cliplist
			nextID = prevID;
		
		if(nextID == "CHANGE") 
			current_page++;
		
		
				if(nextID == "CHANGE")  {
						
					if(parseInt(current_page) < parseInt(total_pages)) {	
						
						//alert("current page :: "+current_page+" total pages :: "+total_pages);
						
						if(search_term.length == 0) {
							
							//alert("we dont have the search term");
							
							// set the search result text as well
							//parent.xstream_cliplist.document.getElementById("searchresult").innerHTML = "* Søkeresultat: *";	
							parent.xstream_cliplist.location = "mediamaker_cliplist.php?offset="+current_page+"&selectCategoryId="+catID+"&visible=yes";
						
						}
						else {
							//alert("we have the search term :: "+search_term);
							parent.xstream_cliplist.location = "mediamaker_cliplist.php?offset="+current_page+"&selectCategoryId="+catID+"&visible=yes&srctext="+search_term;
						}

						timeDelay = setTimeout("auto_play()",2000);
						
					}

				} 
				
				else if(nextID != "CHANGE") {
					
					parent.xstream_cliplist.document.getElementById("kliplist_div1_"+prevID).style.background = '#F7F8F9';

					parent.xstream_cliplist.document.getElementById("kliplist_div1_"+prevID).onmouseout = MEout;
					
					parent.xstream_cliplist.document.getElementById("kliplist_div1_"+prevID).onmouseover = MEover;

					parent.xstream_cliplist.document.getElementById("kliplist_div1_"+nextID).style.background = '#DFE7F1';

					parent.xstream_cliplist.document.getElementById("kliplist_div1_"+nextID).onmouseout = MEout_next;

					parent.xstream_cliplist.document.getElementById("kliplist_div1_"+nextID).onmouseover = MEover_next;
					
					parent.xstream_cliplist.window.scrollTo(0,100);
					
					parent.xstream_player.location = "mediamaker_player.php?id="+nextID+"&selectCategoryId="+catID;
										
					
					
				} // if we still have pages left
				
				
	
		
		
		
	}
		
	
	
	/*http_request = '';

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...

		http_request = new XMLHttpRequest();

	} else if (window.ActiveXObject) { // IE

		http_request = new ActiveXObject("Microsoft.XMLHTTP");

	}
	// callback

	
	http_request.onreadystatechange = function() {

		if (http_request.readyState == 4) {

			if (http_request.status == 200){

				//alert(http_request.responseText);

				response = http_request.responseXML;
					
				if(parent.xstream_cliplist.document.getElementById("auto_afspil_img").style.visibility == "visible") {
									
					tags = extractTagsFromResponse(response);

					autoplay = tags[5];

					if(autoplay == "yes") {
						
						prevID = tags[0];
						nextID = tags[1];
						current_page = tags[2];
						total_pages = tags[3];
						catID = tags[4];

						searchterm = tags[6];
						
						// here we also need to check
						// if the nextID is empty and we have more pages yet
						// refresh the cliplist page with the appropriate query string
						// then call this same method again
						
						
						if(nextID == "changepage")  {
								
							
							if(parseInt(current_page) < parseInt(total_pages)) {	
								
								if(searchterm.length == 0) {
									
									// set the search result text as well
									//parent.xstream_cliplist.document.getElementById("searchresult").innerHTML = "* Søkeresultat: *";	
									parent.xstream_cliplist.location = "mediamaker_cliplist.php?offset="+current_page+"&selectCategoryId="+catID+"&visible=yes";
								
								}
								else
									parent.xstream_cliplist.location = "mediamaker_cliplist.php?offset="+current_page+"&selectCategoryId="+catID+"&visible=yes&searchterm="+searchterm;

								timeDelay = setTimeout("auto_play()",2000);
								
							}

						}
						
						else if(nextID != "changepage") {
							
							parent.xstream_cliplist.document.getElementById("kliplist_div1_"+prevID).style.background = '#F7F8F9';

							parent.xstream_cliplist.document.getElementById("kliplist_div1_"+prevID).onmouseout = MEout;
							
							parent.xstream_cliplist.document.getElementById("kliplist_div1_"+prevID).onmouseover = MEover;

							parent.xstream_cliplist.document.getElementById("kliplist_div1_"+nextID).style.background = '#DFE7F1';

							parent.xstream_cliplist.document.getElementById("kliplist_div1_"+nextID).onmouseout = MEout_next;

							parent.xstream_cliplist.document.getElementById("kliplist_div1_"+nextID).onmouseover = MEover_next;
							
							parent.xstream_cliplist.window.scrollTo(0,100);
							
							//window.frames["yahoo"].scrollTo(0,100);
							
							//parent.window.frames["xstream_cliplist"].scroll(0,100);
							
							parent.xstream_player.location = "mediamaker_player.php?id="+nextID+"&selectCategoryId="+catID;
												
							
							
							// check if we need to mute the sound							
							
						} // if we still have pages left

					} // if autoplay is yes

				} // if autoplay image is visible :)

			}

		}

	}

	http_request.open('POST', 'manage_clip_play_new.php', true);

	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

	http_request.send('increment=yes&visible=yes');

	return false;  */

}


// method to handle IE and other browsers xml DOM response handling

function extractTagsFromResponse(response) {

	tags = new Array();

	//browser = checkBrowser();

	/*if(browser == "IE") {

		len = response.getElementsByTagName('result')[0].childNodes.length;
		// extract the tags simply here
		prevID = response.getElementsByTagName('result')[0].childNodes[0].firstChild.data;
		nextID = response.getElementsByTagName('result')[0].childNodes[1].firstChild.data;
		current_page = response.getElementsByTagName('result')[0].childNodes[2].firstChild.data;
		total_pages = response.getElementsByTagName('result')[0].childNodes[3].firstChild.data;
		catID = response.getElementsByTagName('result')[0].childNodes[4].firstChild.data;
		autoplay = response.getElementsByTagName('result')[0].childNodes[5].firstChild.data;

		if(len > 7) {

			searchterm = response.getElementsByTagName('result')[0].childNodes[6].firstChild.data;

		} else {

			searchterm = "";

		}

	} else { */

		// here we should check for the txt node or the element node

		searchterm = "";

		for(i = 0; i < response.getElementsByTagName('result')[0].childNodes.length; i++) {

			if(response.getElementsByTagName('result')[0].childNodes[i].nodeType == 3) // TEXT_NODE
			continue;
			else if(response.getElementsByTagName('result')[0].childNodes[i].nodeType == 1) { // ELEMENT_NODE

				// check for the node name and store in the variable
				switch(response.getElementsByTagName('result')[0].childNodes[i].nodeName) {

					case "prevID" : prevID = response.getElementsByTagName('result')[0].childNodes[i].firstChild.data; break;
					case "nextID" : nextID = response.getElementsByTagName('result')[0].childNodes[i].firstChild.data; break;
					case "current_page" : current_page = response.getElementsByTagName('result')[0].childNodes[i].firstChild.data; break;
					case "total_pages" : total_pages = response.getElementsByTagName('result')[0].childNodes[i].firstChild.data; break;
					case "selectCategoryID" : catID = response.getElementsByTagName('result')[0].childNodes[i].firstChild.data; break;
					case "autoplay" : autoplay = response.getElementsByTagName('result')[0].childNodes[i].firstChild.data; break;
					case "searchterm" : searchterm = response.getElementsByTagName('result')[0].childNodes[i].firstChild.data; break;
					case "mute" : mu = response.getElementsByTagName('result')[0].childNodes[i].firstChild.data; break;
						
				} 


			}
		}

	//}

	tags[0] = prevID;
	tags[1] = nextID;
	tags[2] = current_page;
	tags[3] = total_pages;
	tags[4] = catID;
	tags[5] = autoplay;
	tags[6] = searchterm;
	
	tags[7] = mu;

	return tags;

}

function checkBrowser() {

	if(navigator.userAgent.indexOf("MSIE") != -1) {

		return "IE";

	} else {

		return "Mozilla";

	}

}

function MEout() {

	this.style.backgroundColor = "#F7F8F9";
		
}

function MEover() {
	
	this.style.backgroundColor = "#DFE7F1";
	
}

function MEout_next() {
	
	this.style.backgroundColor = "#DFE7F1";

}

function MEover_next() {
	
	this.style.backgroundColor = "#DFE7F1";

}


//////////////////////////////////////////////////

function danskState(_stateString)  {
	var stateString = _stateString;
	stateString= stateString.replace('Buffering','Henter');
	stateString= stateString.replace('Playing','Spiller av');
	stateString= stateString.replace('Afspiller','Spiller av');
	stateString= stateString.replace('Connecting','Forbinder');
	stateString= stateString.replace('complete','Ferdig');
	stateString= stateString.replace('færdig','Ferdig');
	stateString= stateString.replace('Færdig','Ferdig');
	stateString= stateString.replace('ready','klar');
	stateString= stateString.replace('Ready','Klar');
	stateString= stateString.replace('Paused','Pause');
	stateString= stateString.replace('to media','med klip');
	stateString= stateString.replace('Stopped','Stoppet');
	stateString= stateString.replace('Stopped','Stoppet');
	stateString= stateString.replace('Sekund','s');
	stateString= stateString.replace('sekund','s');
	stateString= stateString.replace('Second','s');
	stateString= stateString.replace('second','s');
	
	return stateString;
}


// check stat fixed lil bit as the elements used here are for media player in IE

function checkstat(){
	
	try {
	
		if(checkBrowser() == "IE") {
			divState.innerHTML = danskState( document.player1.status );
			dura.innerHTML = player1.currentMedia.DurationString;
		}
		
		plstat = player1.playState;
		if (plstat >= 2 && plstat <= 5){
			if(checkBrowser() == "IE") 
				loca.innerHTML = player1.controls.currentPositionString;
			document.getElementById('player1').uiMode = "none";
		}	else{
			if(checkBrowser() == "IE") 
				loca.innerHTML = "00:00";
			document.getElementById('player1').uiMode = "none";
		}
		setTimeout("checkstat()",1000);
	}
	catch (Exception)
	{

		//alert("dansk state error");
		//alert(Exception.message);
		
	}
}

function Seeker(barElem) {
	
	this.barElem = barElem;
	this.setPct = function(percentage) {
		//this.barElem.style.width = (percentage + "%");
	}
}

function playMe() {	
	//if(wmv_splash!='undefined') {
	//wmv_splash.className = 'wmv_splash_class1';
	//}
	
  	if(document.player1 == null) {
  		return;
  	}
  	
  	soundNoMute();
	player1.controls.play();
	infoPolle(); 
	countClip();
}

function pauseMe() {
  if (document.player1 != null)
	 	
		  player1.controls.pause();
		
}

function stopMe() {
	
  if (document.player1 != null) {
	
		player1.controls.stop();

		//if(wmv_splash!='undefined') {
		//	wmv_splash.className = 'wmv_splash_class2';	
		//}
  }
}

function rewindMe() {
	
  if (document.player1 != null) {
	
		//player1.controls.fastReverse();
		player1.controls.stop();
		player1.controls.play();
  }
}


function fullMe() {
  
	  if (document.player1 != null)
		document.player1.fullscreen=true;
  
}

function doSeekerClick() {
	
		if (player1.currentMedia) {
			var seekerBg = document.getElementById("seekerBg");   
			var frac = event.offsetX / seekerBg.offsetWidth;
			player1.controls.currentPosition = frac * player1.currentMedia.duration;
	
	}
}

function soundNoMute(){
 if (document.player1 != null) {
   	player1.settings.Mute = false;
   	document.getElementById("mute").src = './images/player/mute_out.jpg';    
 } 
}

function soundDoMute(){
 if (document.player1 != null) {
   	player1.settings.Mute = true;
   	document.getElementById("mute").src = './images/player/mute_now.jpg';    
 } 
}

function soundMuteAutomatisk() {

	img = document.getElementById("mute");
	
	if (document.player1 != null) {
   
	 	if (!document.player1.settings.Mute) {
	 		
	   	document.player1.settings.Mute = true;
	   	img.src = './images/player/mute_now.jpg';
	   	
	   	// alter the onmouseout and onmouseover events
	   	
	   	img.onmouseover = null;
	   	img.onmouseout = null;
	   	
	   	saveMuteAndVolume("mute", "Y");
	   	
	   	}
   
	}
	
	setInterval("setMuteTimely()", 200);
	
}

function setMuteTimely() {
	
	img = document.getElementById("mute");
	
	if(img.src.indexOf("mute_now") != -1) {
		
		document.player1.settings.Mute = true;
		
	}	
}

function soundMute(img){
	
	if (document.player1 != null) {
   
 	if (player1.settings.Mute==false) {
   	
   	player1.settings.Mute = true;
   	img.src = './images/player/mute_now.jpg';
   	
   	// alter the onmouseout and onmouseover events
   	
   	img.onmouseover = null;
   	img.onmouseout = null;
   	
   	saveMuteAndVolume("mute", "Y");
   	
   } else {
   	player1.settings.Mute = false;
   	img.src = './images/player/mute_out.jpg';
   	
   	img.onmouseover = function() {
   		
   		img.src = './images/player/mute_now.jpg';
   	}
   	
   	img.onmouseout = function() {
   		
   		img.src = './images/player/mute_out.jpg';
   		
   	}
   	
   	saveMuteAndVolume("mute", "N");
   	
   }
 } 

}

function FetchVolLevel(coop_num) {

  var my_num;
  
  coop_num = parseInt(coop_num);
  
  switch(coop_num) {
  	case 0: my_num = 0;break
    case 10: my_num = 1;break
    case 20: my_num = 2;break
    case 30: my_num = 3;break
    case 40: my_num = 4;break
    case 50: my_num = 5;break
    case 60: my_num = 6;break
    case 70: my_num = 7;break
    case 80: my_num = 8;break
    case 90: my_num = 9;break
    case 100: my_num = 10;break            
  }

  return(my_num);
}

function doSound(number) 
{
	if(document.player1 == null)
    return;
	
    if (number > 10 || number < 0)
	return;

	soundNoMute();
    AdjustVol(number);
}

function soundInc() 
{
	if(document.player1 == null)
    return;

    var ImgObj = document.getElementById('vollevel');   
  	var TmpStr = ImgObj.innerHTML;
  	
  	TmpStr = TmpStr.replace("%", "");
  	
  	var fetch_vol = FetchVolLevel(TmpStr);
  	
    Numb = fetch_vol * 1;
	Numb = Numb + 1;

      if (Numb > 10)
	  return;

    AdjustVol(Numb);
}

function soundDec() 
{
	if(document.player1 == null)
    return;

    var ImgObj = document.getElementById('vollevel');    
  	var TmpStr = ImgObj.innerHTML;
  	
  	TmpStr = TmpStr.replace("%", "");
  	
  	var fetch_vol = FetchVolLevel(TmpStr);
  	
    Numb = fetch_vol * 1;
	Numb = Numb - 1;

      if (Numb < 0)
	  return;

    AdjustVol(Numb);
}

function doPosition() {
	
	if (! (wmPlayer && wmPlayer.currentMedia && wmPlayer.controls))
	return;

	if( document.all ) {
		var dur = wmPlayer.currentMedia.duration;
		if (dur == 0 || pos == 0)	{
			wmSeeker.setPct(0);
			document.getElementById("seekerBar").style.width = "0%";
			document.getElementById("seekerText").innerText = "";
	
		}	else	{
			var pct = 0;
			var pos = wmPlayer.controls.currentPosition;
			pct = pos / dur * 100;
			wmSeeker.setPct(pct);
			document.getElementById("seekerBar").style.width = pct+"%";
	
			// 		****** tidsangivelse i seekbar ******
			//		document.getElementById("seekerText").innerText = formatSecs(pos) + " / " + formatSecs(dur);
		}
	}
}

function formatSecs(secs) {
	mins = parseInt(secs / 60);
	secs = parseInt(secs % 60);
	if (secs < 10)
		secs = "0" + secs;
		return "" + mins + ":" + secs;
}

function AdjustVol(aNumb) {

	var VolLevel
	
	// we could save the volume number!!!
	
	
  switch(aNumb) {
  	case 0: VolLevel = 0;break
    case 1: VolLevel = 10;break
    case 2: VolLevel = 20;break
    case 3: VolLevel = 30;break
    case 4: VolLevel = 40;break
    case 5: VolLevel = 50;break
    case 6: VolLevel = 60;break
    case 7: VolLevel = 70;break
    case 8: VolLevel = 80;break
    case 9: VolLevel = 90;break
    case 10: VolLevel = 100;break            
  }
  document.player1.settings.volume = VolLevel;
//      alert("seeker.js linie 277"); 
 	//alert(document.getElementById("vollevelImg"));
 	
	document.getElementById("vollevelImg").src = './images/player/volume/vol' + aNumb + '.gif';
	
	saveMuteAndVolume("volume", aNumb);
  
	//if (aNumb == 0) {
	//document.getElementById("mute").src = './images/player/mute_now.jpg'; }
}

//	function formatClipDuration(clip)
//	{
//	var duration = (clip.outTime - clip.inTime) / 1000;
//	return formatSecs(duration);
//	}

// this method is used to save the values for the player
// choice = volume, mute
// value = number (volume) , true/false (mute)

function saveMuteAndVolume(choice, value) {
		
		http_request = '';

			if (window.XMLHttpRequest) { // Mozilla, Safari, ...

			    http_request = new XMLHttpRequest();

			} else if (window.ActiveXObject) { // IE

			    http_request = new ActiveXObject("Microsoft.XMLHTTP");

			}
// callback

	http_request.onreadystatechange = function() {

	if (http_request.readyState == 4) {

            if (http_request.status == 200){
				
				
			}

		}

	}

	http_request.open('POST', 'savemuteandvolume.php', true);

	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	http_request.send('choice='+choice+'&value='+value);
	
	return false; 

}

