// globale variabelen voor video afmetingen
// deze worden gebruikt voor het resizen van video
var defaultWidth = 0;
var defaultHeight = 0;
var isAppleDevice = ( navigator.userAgent.match(/iPhone/i) || 
                      navigator.userAgent.match(/iPad/i) || 
                      navigator.userAgent.match(/iPod/i) );

function historyChange(newLocation, historyData) 
{
	if( newLocation )
	{
		var historyMsg = (typeof historyData == "object" && historyData != null
			? historyStorage.toJSON(historyData)
			: historyData
		);
		dourl( newLocation, historyData, 'history' );
	}
}

function loadFlowplayer()
{
	var elem = document.getElementById( 'VideoPlayer' );
	
	if ( elem )
	{
		var videoUrl = elem.getAttribute('target');		
		var codedPart = videoUrl.split( "sp=" );
	 	var firstPart = escape( codedPart[0] );
		var trailer = encodeURIComponent( codedPart[1] );
	 	var urlEncoded = firstPart;
	 	if( codedPart[1]  )
	 		urlEncoded +=  "sp=" + trailer;
	 	
	 	if( isAppleDevice )
	 	{
	 		var videoFrame = document.createElement("iframe");
	 		videoFrame.setAttribute("id", "VideoPlayer");
	 		videoFrame.setAttribute("src", "pages/html5.php?target=" + urlEncoded);
	 		videoFrame.setAttribute("frameborder", "0");
	 		videoFrame.setAttribute("style", "margin: 0px; padding: 0px;");
	 		elem.parentNode.replaceChild(videoFrame, elem);
	 		return;
	 	}
	
		$f(  "VideoPlayer", "swf/flowplayer.unlimited-3.2.7.swf",
		{ 
			key: "433ef875e2008173f8a",
			
			logo: {
				url: '../images/logo_trans.png',
				fullscreenOnly: false,
				displayTime: 5,
				fadeSpeed: 1000,
				top: 10,
				right: 10
			},
			
		    canvas: {
		    	   backgroundColor: '#000000',
		    	   backgroundGradient: 'none'
		    },
			
			clip: 
			{ 
				url: urlEncoded,
		        provider: 'pseudo',
		        scaling: 'fit',
		        
		        onStart: function(clip)
	            {
	                var w = parseInt(clip.metaData.width, 10);
	                var h = parseInt(clip.metaData.height, 10);
	                var player = document.getElementById('VideoPlayer');
	                var container = document.getElementById('video-container');
	                
	                // kleine video's worden 4x vergroot
	                if( w < 320 )
	                {
	                	w = w * 2;
	                	h = h * 2;
	                }
	                
	                defaultWidth = w;
	                defaultHeight = h;
	                
	                if(player && container)
	                {
	                    container.style.width =  w + "px";
	                    container.style.height = (h+24) + "px";
	                    player.style.width =  w + "px";
	                    player.style.height = h + "px";
	                } 
	                
	            } 
		    },
			
		    screen:
		    {
		    	height: "100pct",
		    	top:0
		    },
			
		    plugins:
		    { 
				controls:
				{
					"borderRadius":"0px",
					"timeColor":"#ffffff",
					"slowForward":true,
					"bufferGradient":"none",
					"backgroundColor":"rgba(0, 0, 0, 0.5)",
					"volumeSliderGradient":"none",
					"slowBackward":false,
					"timeBorderRadius":20,
					"time":true,
					"progressGradient":"none",
					"height":30,
					"volumeColor":"rgba(221, 238, 68, 1)",
					"tooltips":
					{
						"marginBottom":5,
						"volume":true,
						"scrubber":true,
						"buttons":false
					},
					"opacity":1,
					"fastBackward":false,
					"timeFontSize":13,
					"volumeSliderColor":"#ffffff",
					"border":"0px",
					"bufferColor":"#a3a3a3",
					"buttonColor":"#ffffff",
					"mute":true,
					"autoHide":
					{
						"enabled":true,
						"hideDelay":500,
						"mouseOutDelay":500,
						"hideStyle":"fade",
						"hideDuration":400,
						"fullscreenOnly":true
					},
					"backgroundGradient":"none",
					"width":"100pct",
					"sliderBorder":"1px solid rgba(128, 128, 128, 0.7)",
					"display":"block",
					"buttonOverColor":"#ffffff",
					"fullscreen":true,
					"timeBgColor":"rgb(0, 0, 0, 0)",
					"scrubberBarHeightRatio":0.2,
					"bottom":0,
					"stop":false,
					"sliderColor":"#000000",
					"zIndex":1,
					"scrubberHeightRatio":0.6,
					"tooltipTextColor":"#ffffff",
					"spacing":
					{
						"time":6,
						"volume":8,
						"all":2
					},
					"sliderGradient":"none",
					"timeBgHeightRatio":0.8,
					"volumeSliderHeightRatio":0.6,
					"timeSeparator":" ",
					"name":"controls",
					"volumeBarHeightRatio":0.2,
					"left":"50pct",
					"tooltipColor":"rgba(0, 0, 0, 0)",
					"playlist":false,
					"durationColor":"#b8d9ff",
					"play":true,
					"fastForward":true,
					"timeBorder":"0px solid rgba(0, 0, 0, 0.3)",
					"progressColor":"rgba(221, 238, 68, 1)",
					"volume":true,
					"scrubber":true,
					"volumeBorder":"1px solid rgba(128, 128, 128, 0.7)",
					"builtIn":false,
					"margins":[2,6,2,12]
				},
				
			    pseudo:
		        { 
		            url: 'swf/flowplayer.pseudostreaming-3.2.7.swf'          
		        } 
		    }
		});	
	}
}

function loadLiveFlowplayer()
{
	var elem = document.getElementById( 'VideoPlayer' );
	
	if ( elem )
	{
		var videoUrl = elem.getAttribute('target');
		var sp = elem.getAttribute('alt');
		
	 	if( isAppleDevice )
	 	{
	 		/* De streamnaam van de live uitzending wordt opgevraagd bij de Wowza Server */
	 		xmlhttp = new XMLHttpRequest();
	 		var httpUrl = videoUrl.replace("rtmp://", "http://");
	 		httpUrl = httpUrl.replace("1935\/", "1935\/publishstreams?mp=");
	 		xmlhttp.open("POST", httpUrl, true);
	 		xmlhttp.onreadystatechange = loadAppleLivestream;
	 		xmlhttp.send(null);
	 		return;
	 	}
		
		$f( "VideoPlayer", "swf/flowplayer.unlimited-3.2.7.swf", 
		{ 
			key: "433ef875e2008173f8a",
			
			logo: {
				url: '../images/logo_trans.png',
				fullscreenOnly: false,
				displayTime: 5,
				fadeSpeed: 1000,
				top: 10,
				right: 10
			},
			
			clip: 
			{ 
		        url: 'first',
		        connectionArgs: [sp],
		        live: true, 
		        provider: 'rtmp',
		        scaling: 'fit',
		        
		        onStart: function(clip)
	            {
	                var w = parseInt(clip.metaData.width, 10);
	                var h = parseInt(clip.metaData.height, 10);
	                var player = document.getElementById('VideoPlayer');
	                var container = document.getElementById('video-container');
	                
	                // kleine video's worden 4x vergroot
	                if( w < 320 )
	                {
	                	w = w * 2;
	                	h = h * 2;
	                }
	                
	                defaultWidth = w;
	                defaultHeight = h;
	                
	                if(player && container)
	                {
	                    container.style.width =  w + "px";
	                    container.style.height = (h+24) + "px";
	                    player.style.width =  w + "px";
	                    player.style.height = h + "px";
	                } 
	                
	            } 
		    },
		    
		    screen:
		    {
		    	height: "100pct",		    	
		    	top:0
		    },
		    
		    canvas: {
		    	   backgroundColor: '#000000',
		    	   backgroundGradient: 'none'
		    },
		 
		    plugins:
		    { 
				controls:
				{
			    	"borderRadius":"0px",
			    	"timeColor":"#ffffff",
			    	"slowForward":true,
			    	"bufferGradient":"none",
			    	"backgroundColor":"rgba(0, 0, 0, 0.5)",
			    	"volumeSliderGradient":"none",
			    	"slowBackward":false,
			    	"timeBorderRadius":20,
			    	"time":true,
			    	"progressGradient":"none",
			    	"height":30,
			    	"volumeColor":"rgba(221, 238, 68, 1)",
			    	"tooltips":
			    	{
			    		"marginBottom":5,
			    		"volume":true,
			    		"scrubber":true,
			    		"buttons":false
			    	},
			    	"opacity":1,
			    	"fastBackward":false,
			    	"timeFontSize":13,
			    	"volumeSliderColor":"#ffffff",
			    	"border":"0px",
			    	"bufferColor":"#a3a3a3",
			    	"buttonColor":"#ffffff",
			    	"mute":true,
			    	"autoHide":
			    	{
			    		"enabled":true,
			    		"hideDelay":500,
			    		"mouseOutDelay":500,
			    		"hideStyle":"fade",
			    		"hideDuration":400,
			    		"fullscreenOnly":true
			    	},
			    	"backgroundGradient":"none",
			    	"width":"100pct",
			    	"sliderBorder":"1px solid rgba(128, 128, 128, 0.7)",
			    	"display":"block",
			    	"buttonOverColor":"#ffffff",
			    	"fullscreen":true,
			    	"timeBgColor":"rgb(0, 0, 0, 0)",
			    	"scrubberBarHeightRatio":0.2,
			    	"bottom":0,
			    	"stop":false,
			    	"sliderColor":"#000000",
			    	"zIndex":1,
			    	"scrubberHeightRatio":0.6,
			    	"tooltipTextColor":"#ffffff",
			    	"spacing":
			    	{
			    		"time":6,
			    		"volume":8,
			    		"all":2
			    	},
			    	"sliderGradient":"none",
			    	"timeBgHeightRatio":0.8,
			    	"volumeSliderHeightRatio":0.6,
			    	"timeSeparator":" ",
			    	"name":"controls",
			    	"volumeBarHeightRatio":0.2,
			    	"left":"50pct",
			    	"tooltipColor":"rgba(0, 0, 0, 0)",
			    	"playlist":false,
			    	"durationColor":"#b8d9ff",
			    	"play":true,
			    	"fastForward":true,
			    	"timeBorder":"0px solid rgba(0, 0, 0, 0.3)",
			    	"progressColor":"rgba(221, 238, 68, 1)",
			    	"volume":true,
			    	"scrubber":true,
			    	"volumeBorder":"1px solid rgba(128, 128, 128, 0.7)",
			    	"builtIn":false,
			    	"margins":[2,6,2,12]
				},
		    	
		        rtmp:
		        { 
		            url: 'swf/flowplayer.rtmp-3.2.3.swf', 
		            netConnectionUrl: videoUrl,
		            connectionArgs: [sp]
		        } 
		    } 
		});
	}
}

function loadAppleLivestream()
{
	if (xmlhttp.readyState == 4)
	{
		var xmlDoc;
		
		if(xmlhttp.responseXML)
			xmlDoc = xmlhttp.responseXML;
		else if(xmlhttp.responseText)
		{
			var xmlData = xmlhttp.responseText;			
			var parser = new DOMParser();
			xmlDoc = parser.parseFromString(xmlData,"text/xml");
		}
		
		if(!xmlDoc)
			return false;
		
	    var streamTags = xmlDoc.getElementsByTagName("StreamName");
	    var streamName = "";
	    	    
	    if(streamTags)
	    {
	    	for(i = 0; i < streamTags.length; i++ )
	    	{
	    		var tagValue = streamTags.item(i).firstChild.nodeValue;	    		
	    		if( tagValue != null && tagValue != "first" )
	    		{
	    			streamName = tagValue;	    			
	    			break;
	    		}	
	    	}	
	    }	    
	    
	    if(streamName != "")
	    {
	    	var elem = document.getElementById( 'VideoPlayer' );
	    	var videoUrl = elem.getAttribute('target');
	    	var sp = elem.getAttribute('alt');
	    
	    	videoUrl = videoUrl.replace("rtmp://", "http://") + "/" + streamName + "/playlist.m3u8";
 		
	    	// TODO: Geauthenticeerd kijken via Ipad/Iphone
	    	
	    	var videoFrame = document.createElement("iframe");
	    	videoFrame.setAttribute("id", "VideoPlayer");
	    	videoFrame.setAttribute("src", "pages/html5.php?target=" + videoUrl );	    	
	    	videoFrame.setAttribute("frameborder", "0");
	    	videoFrame.setAttribute("style", "margin: 0px; padding: 0px;");
	    	elem.parentNode.replaceChild(videoFrame, elem);
	    }	
	}
}

// resize 50%
function resizeSmall()
{
	if(defaultWidth==0||defaultHeight==0)
		return false;
	
	var container = document.getElementById('video-container');
	var player = document.getElementById('VideoPlayer');
		
	player.style.width = parseInt( defaultWidth * 0.5) + "px";
	player.style.height = parseInt(defaultHeight * 0.5) + "px";
	container.style.width = parseInt(defaultWidth * 0.5) + "px";
	container.style.height = parseInt((defaultHeight * 0.5) + 24) + "px";
	
	return false;
}

// resize 100%
function resizeMedium()
{
	if(defaultWidth==0||defaultHeight==0)
		return false;
	
	var container = document.getElementById('video-container');
	var player = document.getElementById('VideoPlayer');
		
	player.style.width = defaultWidth + "px";
	player.style.height = defaultHeight + "px";
	container.style.width = defaultWidth + "px";
	container.style.height = (defaultHeight + 24) + "px";
	
	return false;
}

// resize 150%
function resizeBig()
{
	if(defaultWidth==0||defaultHeight==0)
		return false;
	
	var container = document.getElementById('video-container');
	var player = document.getElementById('VideoPlayer');
	
	player.style.width = parseInt(defaultWidth * 1.5) + "px";
	player.style.height = parseInt(defaultHeight * 1.5) + "px";
	container.style.width = parseInt(defaultWidth * 1.5) + "px";
	container.style.height = parseInt((defaultHeight * 1.5) + 24) + "px";
	
	return false;
}

function dourl( url, temptitel, targetDiv ) 
{
	var refer = document.location.href.split( "?" );
	if( refer[1] )
	{
		var trailer = refer[1].split( "#" );
		var modUrl = refer[0] + "?" + trailer[1];

		if( trailer[1] )
		{
			document.location.href = modUrl;
		}
	}
	
	var geturl = url;
	
	if( sparms != "" )
	{
		geturl = geturl + "&sp=" + sparms;
	}
	
	var input = document.getElementById( 'zoek_data' ).value;
	var idx = document.getElementById('zoek_term').selectedIndex;
	var txt = document.getElementById('zoek_term').options[idx].value;
	
	writeSessionCookie('lasturltitel', temptitel);
	writeSessionCookie('lasturl', url);
	writeSessionCookie('zoekwaarde', input );
	writeSessionCookie('zoekterm', txt  );
	
	var destmain = document.getElementById( 'mainbody' );
	var desttitel = document.getElementById('maintitel');
	var destfooter = document.getElementById('statusline');
 	desttitel.innerHTML = temptitel;
	destmain.innerHTML = 'Even geduld a.u.b....';
	var hnd = createHTTPHandler();
	hnd.open('GET', 'pages/'+geturl, true);
	hnd.onreadystatechange=function() 
	{
		if (hnd.readyState==4) 
		{
     		var titel = hnd.getResponseHeader('X-Titel');
     		var footer = hnd.getResponseHeader('X-Footer');
      		if ((titel) && (titel != '#')) 
      		{
        		desttitel.innerHTML = titel;
      		}
       		if ((footer) && (footer != '#')) 
      		{
        		destfooter.innerHTML = footer;
      		}
      		else
      			destfooter.innerHTML = '&nbsp;';
      			
      		destmain.innerHTML = hnd.responseText;
      		if (url.substring(0, 12)=='kerk.php?mp=')
       		{
	        	checklive(url.substring(12));
      		}
      		sortables_init();
      		
			var isSafari = false;
			if( navigator.userAgent.toLowerCase().indexOf('safari') > -1 )
			{
				isSafari = true;
			}
			
			if( isSafari == false )
			{
				if( url.substring(0, 12) != 'kerk.php?mp=' )
				{
						// Store the new contents in the cache, except if we're here due
						// to a deeplink
						dhtmlHistory.add( url, temptitel );
				}
			}
			
			// VIDEO SPECIFIEK
			if( url.search('fn') >= 0  )  // Filenaam opgegeven, dus het is een archief
			{
				if( url.search('flv') >=0 )	// Flash archief
				{
					loadFlowplayer(); 
				}
				else if ( url.search('asf') >= 0 )
				{
					// do nothing
				}
			}	
			else
			{
				loadLiveFlowplayer(); 
			}
			
    	}
  	};
  	hnd.send(null);
}

function doASurl( asId, kerknaam) 
{
	var destmain = document.getElementById('mainbody');
	var desttitel = document.getElementById('maintitel');
  	var destfooter = document.getElementById('statusline');
  	
  	desttitel.innerHTML  = kerknaam + '&nbsp';
  	destfooter.innerHTML = '&nbsp;';
	
  destmain.innerHTML = 	"<b><center>Opnames van<br/>" + kerknaam + "</center></b>" +
     	"<iframe height='380' width='100%' " +
 		"frameborder='0' borderwidth='0' borderheight='0' " + 
 		"src='http://media.audioserver.nl/mp3/recorder.php?id=" + asId + "'>" +
		"</iframe>" +
		"<table rules='none' frame='void' border='0' style='border-style: none; background-image: none; float: none; text-align: left; vertical-align: top;'>" +
		"<tbody><tr>" +
		"<td style='border-style: none; height: 20%; background-image: none; vertical-align: top; text-align: left;'><br /></td>" +
		"<td style='border-style: none; height: 20px; background-image: none; vertical-align: top; text-align: left;'><span style='font-weight: bold;'>Legenda:</span></td>" +
		"</tr><tr>" +
		"<td>" +
 		"<img width='20' vspace='0' hspace='0' height='20' border='0' title='Afspelen' src='http://audioserver.nl/images/stories/play.gif' /></td>" +
 		"<td style='border-style: none; height: 20px; background-image: none; vertical-align: top; text-align: left;'>" +
 		"Klik op deze knop om een opname direct af te spelen" + 
 		"</td></tr>" +
 		"<td style='vertical-align: top;'>" +
 		"<img width='20' vspace='0' hspace='0' height='20' border='0' title='Download' src='http://audioserver.nl/images/stories/download.gif' />" +
 		"</td><td style='vertical-align: top;'>" +
 		"Klik op deze knop om een opname op te slaan." +
 		"</td></tr></tbody></table>";
 }

function doform(theform, url, temptitle) {
  var str = '';
  for (i = 0; i < theform.elements.length; i++) {
    fe = theform.elements[i];
    switch (fe.type) {
      case 'text':
      case 'select-one':
      case 'hidden':
      case 'password':
      case 'textarea':
        str += fe.name+'='+encodeURI(fe.value)+'&';
        break;
      case 'checkbox':
      case 'radio':
        if (fe.checked) {
          str += fe.name+'='+encodeURI(fe.value)+'&';
        }
        break;
    }
  }
  dourl(url+"?"+str, temptitle, 'mainbody' );
}

function gaprov(afkorting, volledigenaam) 
{
  	dourl('prov.php?pr='+afkorting, 'Kerken in '+volledigenaam, 'mainbody' );
}

function gaOnline()
{
  	dourl('prov.php?pr=ONLINE', 'Online kerken', 'mainbody' );
}

function gaDenom( naam )
{
	dourl('prov.php?pr=denom=' + naam, 'Kerken op denominatie ' + naam, 'mainbody' );
}

function gaBeeld( naam )
{
	dourl('prov.php?pr=beeld=' + naam, 'Kerken die beeld uitzenden ' + naam, 'mainbody' );
}

function gakerk(mountpoint, kerknaam ) 
{
	// http://media.audioserver.nl/mp3/recorder.php?id=722
	if( mountpoint.substring(0, 3)=='AS_' )
	{
		var asMount = mountpoint.substring( 3, 10 );
		if( asMount < 100000 )
			doASurl( asMount, kerknaam );
		else
		{
			dourl('kerk.php?mp=AS'+asMount, ' ', 'mainbody' );
		}	
	}
	else
	{
 		dourl('kerk.php?mp='+mountpoint, ' ', 'mainbody' );
	}
}

function addInputSubmitEvent(input, zoekterm) 
{
    input.onkeydown = function(e)
    {
        e = e || window.event;
        if (e.keyCode == 13)
        {
        	var term = input.value;
         	writeSessionCookie('zoekwaarde', term );
 			if( term.length == 0 )
    			dourl('prov.php?pr=' + zoekterm + '=' + term , 'Zoek op alle ' + zoekterm + 'en in Nederland', 'mainbody' );
    		else
    			dourl('prov.php?pr=' + zoekterm + '=' + term , 'Zoek op ' + zoekterm + ' ' + term, 'mainbody' );
 			input.value = term;
 			return false;
        }
     };
}

function openForm( zoekterm )
{
	var input = document.getElementById( 'zoek_data'  );
 
    if( zoekterm == "gaBeeld" )
    	gaBeeld();
    else if( zoekterm == "gaOnline" )
    	gaOnline();
    
    else
    {
	        addInputSubmitEvent(input, zoekterm );
		 	input.focus();
    }
}

function loadplayer() 
{	
	document.getElementById('player').innerHTML='<object name="sIKNPlayer" id="sIKNPlayer" '+
    'classid="clsid:1FEC8B6F-250A-4293-B12C-67A7EF0B758A" '+
    'codebase="/ocx/sIKNPlayer.cab#version=2,0,1,3" '+ 
    'align="justify" height="61" hspace="0" vspace="0" width="183"/>'; 
}

function IsIE () 
{
	return navigator.userAgent.toLowerCase().indexOf('msie') + 1;
}

function addEvent(obj, eventType,fn, useCapture) 
{
  if (obj.addEventListener) 
  {
    obj.addEventListener(eventType, fn, useCapture);
    return true;
  } 
  else 
  {
    if (obj.attachEvent) 
    {
      var r = obj.attachEvent("on"+eventType, fn);
      return r;
    }
  }
}

function getCookieValue (cookieName) 
{
  var exp = new RegExp (escape(cookieName) + "=([^;]+)");
  if (exp.test (document.cookie + ";")) 
  {
    exp.exec (document.cookie + ";");
    return unescape(RegExp.$1);
  }
  else return false;
}

function writeSessionCookie(cookieName, cookieValue) 
{
  document.cookie = escape(cookieName) + "=" + escape(cookieValue) + "; path=/";
}

function createHTTPHandler()
{
  var httphandler = false;
  /*cc_on @*/
  /*@if (@_jscript_version >= 5) */
  try {
  	httphandler=new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
  	  httphandler=new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
    	httphandler=false;
    }
  }
  /* @end @*/
  if (! httphandler && typeof XMLHttpRequest!='undefined') 
  {
    try 
    {
      httphandler = new XMLHttpRequest();
    } 
    catch (e) 
    {
      httphandler=false;
    }
  }
  if (!httphandler && window.createRequest) 
  {
    try 
    {
      httphandler = window.createRequest();
    } 
    catch (e) 
    {
      httphandler=false;
    }
  }
  return httphandler;
}


 function clearInput( value, id )
 {
 	var elem = document.getElementById( id );
 	
 	if( value == elem.value )
 	{
 		elem.value = '';
 	}
 }
