var xmlManager;
var playerManager;
var TITLE = document.title;
var maxplayerposition="PT0.000S";//24hours
var frontendUrl;
var assetUrl;
var settingsXml;
var pageXml;
var playerManager;
var clientname;

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}



function init(){
 
        
 window.setTimeout(load,0);
 //load();
 }

function setStatus(text,add){

  if(add){
   document.title+=" "+ text;
   window.status+=" "+text;
   if(document.getElementById("status")!=undefined){
      document.getElementById("status").innerHTML=" "+text;
   } 
  }
  else{
   document.title=TITLE+" "+text;
   window.status=text;

   if(document.getElementById("status")!=undefined){
      document.getElementById("status").innerHTML=text;
   } 
  }
  
}

function tellFriend(sender, email, content){
						    var serverUrl="/framework";
						    //alert(sender);
						   // alert(email);
						    //alert(content);
							var parameters1 = new SOAPClientParameters();
							parameters1.add("email",email);
							parameters1.add("contnents",content);
							parameters1.add("senders",sender);
    						SOAPClient.invoke("/framework/user", "tellFriend" , parameters1, false,tellfriendCallback);
						    //alert("Soap Sent");
					}
				function tellfriendCallback(o, soapResponse){
						if (o instanceof Error) {
							alert(o.message);
							return;
						}
						alert ("Email sent");
					}	       




function hasRole(roles,constantcollection,callback){
	  var pl = new SOAPClientParameters();			    
      pl.add("roles",roles);      	  
      pl.add("constantcollection",constantcollection);
	  SOAPClient.invoke(manager.frameworkappUrl+"/ws", "hasRole" , pl, true, callback );  
	}
	
function checkLogin(){
 
      hasRole(new Array(), "PUBLICACCOUNTROLES", checkLoginCallback);      
     
}
    
   
    
function checkLoginCallback(o, soapResponse){

	  if (o==false || o=="false" || o instanceof Error) {
	  	 
          deleteCookie("login");
	   } 
      
      var login = getCookie("login");
      var xslparameters = new Array();
      if(login!=undefined){
		  xslparameters.push(new XSLParam("login",login));          
	  }
	  xslparameters.push(new XSLParam("switch","loginstatebox"));                
      manager.renderTransformation('boxLogin','xsl/login.xsl',xslparameters );      

	}
		
function openWebcast(bName){
 
    var pl = new SOAPClientParameters();
	pl.add("broadcastName", bName);		
	
	
		SOAPClient.invoke(manager.frameworkappUrl+"/user", "openWebcast" , pl, true, 
						        
						        
						         function(o, soapResponse){
						         
						     
												 if (o instanceof Error) {		
												     window.status="Fout: "+o.message;
													if(o.message.indexOf("NotAllowedException")>-1 || o.message.indexOf("404")>-1){
													        document.getElementById('video').innerHTML='';
												     		alert("U moet inloggen om de webcast te bekijken, u wordt nu automatisch doorgestuurd naar het inlogscherm.");
												     		window.location = "../../myaccount.html";
													}
												else if(o.message.indexOf("PreQuestionformNotFoundException")>-1){
												            document.getElementById('video').innerHTML='';
												     		alert("U moet eerst de pretoets doen, u wordt nu automatisch doorgestuurd naar de pretoets.");
												     		var qId = soapResponse.getElementsByTagName("id")[0].firstChild.nodeValue;
												     		var url = manager.frameworkappUrl+"/restful-user?method=getMyQuestionFormAnswers&questionformId="+qId+"&xsltemplate=xsl/pretoets.xsl&base="+document.location.href;
														    //window.open(url,null,"scrollbars=yes,resizable=yes,height=600,width=450,status=yes,toolbar=no,menubar=no,location=no");
														    document.getElementById("pretoetsIframeDiv").style.display="block";
														    pretoetsIframe.location.href=url;
														    
														    document.getElementById("boxWrapper").style.display="none";
														    
														    pretoetsIframe.style.display="block";		
										     				//window.location = "../../index.html";
												     		
													}
													else{
														 alert(o.message);
													 }

												 }

											var sliderposition =  soapResponse.getElementsByTagName("sliderposition")[0];
											 
										     if(  sliderposition != undefined)   {
										       var newPos=new Duration().validDuration(sliderposition.firstChild.nodeValue).Seconds();
										       
										         manager.getBroadcastNode().setAttribute("offset",newPos);
										         maxplayerposition=sliderposition.firstChild.nodeValue;//player may not go further then this position
										       
										     }
										
										}
						        
						        
						        );
	
	
						        	
}


function finalize(){


 
}

function loadstylesheet(stylesheet){

 


if(document.createStyleSheet) {

document.createStyleSheet(stylesheet);

}

else {

var styles = "@import url(' "+stylesheet+" ');";

var newSS=document.createElement('link');

newSS.rel='stylesheet';
newSS.href=stylesheet;
//newSS.href='data:text/css,'+escape(styles);

document.getElementsByTagName("head")[0].appendChild(newSS);

}



}

function load(){ 


 try{


 

 xmlManager = new XmlManager();
 manager =  new EventManager();
 manager.frameworkappUrl="/framework";
 frontendUrl = manager.getParam("frontendUrl");
 assetUrl = manager.getParam("assetUrl");
 //alert(assetUrl);
 if(assetUrl ==undefined || assetUrl==""){
    assetUrl=getCookie("assetUrl");
 }
 
 page = manager.getParam("page")==""?"home":manager.getParam("page");


renderPage(frontendUrl,page)
    //window.setTimeout("renderPage(frontendUrl,page)",0);
 
     
  	liveCheck();
  

}
catch(e){
 setStatus("Fout: "+e.message,true);
}


}

function addXml(sourceurl, dest){
 var xml;
 xml = xmlManager.getDomFromFile(sourceurl+"?"+new Date().getTime());    
 if(xml!=undefined){
	 dest.documentElement.appendChild(xml.documentElement.cloneNode(true));
 }
 
}



function renderPage(frontendUrl, page){

 xmlManager = new XmlManager();
 manager =  new EventManager();
 manager.frameworkappUrl="/framework";
 frontendUrl = manager.getParam("frontendUrl");
 assetUrl = manager.getParam("assetUrl");
 var liveXml = xmlManager.getDomFromFile(frontendUrl+"/assets/live.xml?"+new Date().getTime());
 
 
 if(liveXml!=undefined && liveXml.getElementsByTagName("broadcast")[0]!=undefined){
	 
	  
	 setCookie("assetUrl","assets/"+liveXml.getElementsByTagName("broadcast")[0].getAttribute("name"));
	 if(assetUrl ==undefined || assetUrl=="" || assetUrl==null){
    		assetUrl= "assets/"+liveXml.getElementsByTagName("broadcast")[0].getAttribute("name");
 	}
	 
}

 
 
 if(assetUrl ==undefined || assetUrl==""){
    assetUrl=getCookie("assetUrl");
 }






 setStatus("0% Interface geinitialiseerd...");

 var eventsXml;
 var xslparameters = new Array();
	 
	 
 pageXml = xmlManager.getDomFromFile(frontendUrl+"/conf/"+page+".xml?"+new Date().getTime());    
 setStatus("10% Pagina inhoud geladen...");
 addXml(frontendUrl+"/conf/settings.xml", pageXml);    
 settingsXml = xmlManager.getDomFromFile(frontendUrl+"/conf/settings.xml");    
 if(settingsXml.getElementsByTagName("clientname")[0]){
    clientname = settingsXml.getElementsByTagName("clientname")[0].firstChild.nodeValue;

 }
 setStatus("20% Settings zijn geladen...");


  

 if(page == 'videoarchive' || page == 'videolive'){
 	 
 	 if(assetUrl.substr(0,1) !="/" && assetUrl.indexOf("http://")==-1){
	    assetUrl=frontendUrl+"/"+assetUrl;
	 }
	 //test for offset
    var startIndex =  assetUrl.indexOf("?offset");
    //alert("Start is at:" + startIndex);
    if(startIndex != -1){
    	assetUrl = assetUrl.substring(0,startIndex);
    }
    //alert(assetUrl);
	 xslparameters.push(new XSLParam("assetUrl",assetUrl));
     addXml(assetUrl+"/xml/broadcast.xml", pageXml);    
     addXml(assetUrl+"/xml/topics.xml", pageXml);    
     addXml(assetUrl+"/settings.xml", pageXml);    
     if(page == 'videoarchive'){
        eventsXml = xmlManager.getDomFromFile(assetUrl+"/xml/events.xml"+"?"+new Date().getTime());  
        manager.initArchiveEvents(eventsXml,"default");
        pageXml.documentElement.appendChild(manager.eventsXml.documentElement.cloneNode(true));    

     }
     else{ //live
        //addXml(assetUrl+"/xml/lastevents.xml", pageXml)
        manager.initLiveEvents(assetUrl+"/xml/lastevents.xml","default");;    
     }

     manager.xml=pageXml;
     manager.assetFolder=assetUrl;

 }
 


 setStatus("75% Pagina content is geladen...");
 

 

 if(pageXml.getElementsByTagName("stylesheet")[0]!=undefined){
	stylesheet=pageXml.getElementsByTagName("stylesheet")[0].firstChild.nodeValue;
	 if(stylesheet.substr(0,1) !="/" && stylesheet.indexOf("http://")==-1){
	    stylesheet=frontendUrl+"/"+stylesheet;
	 }

	 loadstylesheet(stylesheet);
 }
 
if(settingsXml.getElementsByTagName("streamname")[0]){
    streamname = settingsXml.getElementsByTagName("streamname")[0].firstChild.nodeValue;

 }else{
    streamname = "default";
 }
//alert(streamname);


xslparameters.push(new XSLParam("frontendUrl",frontendUrl));
xslparameters.push(new XSLParam("page",page));
xslparameters.push(new XSLParam("streamname",streamname));

if(assetUrl == undefined || assetUrl==""){
    xslparameters.push(new XSLParam("refposition",1));
}else{
    var startIndexHda =  assetUrl.indexOf("hda");
    //alert("Start is at:" + startIndex);
    	if(startIndexHda != -1 && page == 'videolive'){
    		var randomNum = Math.floor(Math.random()*3 + 1);
			xslparameters.push(new XSLParam("refposition",randomNum));
    	}else{
    		xslparameters.push(new XSLParam("refposition",1));
    	}
}




var content = manager.renderTransformation("content","xsl/"+page+".xsl",xslparameters,pageXml);
if(content==undefined){

     document.getElementById("noxslparsererror").style.display="block";


}

// manager.renderInterface(settingsXml); 
// manager.renderInterface(pageXml);
 


  javascripts = pageXml.getElementsByTagName("javascript");
  
  for(var i=0;i<javascripts.length;i++){
      try{
		js = xmlManager.getStringFromDom(javascripts[i].firstChild).replace("<![CDATA[","");
		js = js.replace("]]>","");
        eval(js);
      }
      catch(e){
         setStatus(e);  
      }
  }

  setStatus("90% loading player.");  
  
  var player = document.getElementById("wmplayer");
  playerManager  = new WindowsMediaManager(player);
  manager.playerManager=playerManager;
  
  var offset = manager.getParam("offset");

  if(offset!="" ){
    playerManager.go(offset);
  }

 

  setStatus("100% klaar...");  

  
  
  if(pageXml.getElementsByTagName("windowtitle")[0]!=undefined){  
    setStatus(pageXml.getElementsByTagName("windowtitle")[0].firstChild.nodeValue);
  }
  else{
    setStatus("");
  }
  
}



var liveLink="#";

function goLive(){

	var liveXml = xmlManager.getDomFromFile(frontendUrl+"/assets/live.xml?"+new Date().getTime());   
	settingsXml = xmlManager.getDomFromFile(frontendUrl+"/conf/settings.xml");    
		 if(settingsXml.getElementsByTagName("clientname")[0]){
		    clientname = settingsXml.getElementsByTagName("clientname")[0].firstChild.nodeValue;
		
		 }
	 if(liveXml!=undefined && liveXml.getElementsByTagName("broadcast")[0]!=undefined){
	 
	 	//href=frontendUrl+"/assets/"+liveXml.getElementsByTagName("broadcast")[0].getAttribute("name");
	 	//window.location=href;
		window.location= "http://www.bestuuronline.nl/bol/?frontendUrl=accounts/" + clientname + "&page=videolive";
	 }
	 
	 
	 
}

function search(sForm){

		var	query="";	
		
		
		
		
		pbox=document.getElementById('partySelect');
		sbox=document.getElementById('speakerSelect');
		bbox=document.getElementById('broadcastSelect');
		querys=new Array();
		//sForm.domain.value="speaker";
		if(sForm.filter.value!=""){
	    q = ''+sForm.filter.value+"*";
		z="(broadcast.name:"+q+") (event.topic.namefull:"+q+") (event.topic.nameshort:"+q+") (event.speaker.firstname:"+q+") (event.speaker.lastname:"+q+") (event.speaker.party.name:"+q+") (event.comment:"+q+") (event.speaker.function.name:"+q+")";	
		//z="broadcast.name:te* event.topic.shortname:te*";
		querys.push(""+z+"");
		}
		
		if(sbox && sbox.selectedIndex>0){
		lastname=sbox.options[sbox.selectedIndex].value.split(",")[0]
		firstname=sbox.options[sbox.selectedIndex].value.split(",")[1];
		querys.push("event.speaker.lastname:("+trim(lastname)+")");
		querys.push("event.speaker.firstname:("+trim(firstname)+")");
		}
		if(bbox && bbox.selectedIndex>0){
		querys.push("broadcast.name:\""+bbox.options[bbox.selectedIndex].value+ "\"");
		}
		if(pbox && pbox.selectedIndex>0){
		  querys.push('event.speaker.party.name:"'+pbox.options[pbox.selectedIndex].value+'"');
		  //querys.push('function:"'+pbox.options[pbox.selectedIndex].value+'"');   
		}
		
	       
		for(i = 0 ; i <querys.length;i++){
	      
				if( i == 0 ){	
						query = "("+querys[i]+")";
				}
				else{
						query +=" AND (" + querys[i]+")";
				}			
		}
		

	   	url = manager.frameworkappUrl+'/restful-ws?method=searchLucenda&query='+query+'&userprincipal='+clientname;	   	
	   	
	   	xmlManager.getDomFromUrl(url,function(resp){
	   	
	   	         var xslparameters = new Array();
	   	         xslparameters.push(new XSLParam("frontendUrl",frontendUrl));
	   	        
	   	         manager.renderTransformation('searchresults','xsl/searchresults.xsl',xslparameters,resp );      
	   	         
	   	         
	   	}
	   	
	   	);
	   	
        setCookie("searchurl", url);		
	    
        return false;

	
	}
	
function trim(value) {
return value.replace(/^\s+|\s+$/,'');
}

function liveCheck(){


if(document.getElementById("livelink")!=undefined){
	 var liveXml = xmlManager.getDomFromFile(frontendUrl+"/assets/live.xml?"+new Date().getTime());   
	
	 if(liveXml!=undefined && liveXml.getElementsByTagName("broadcast")[0]!=undefined){
	 
	 
	 setCookie("assetUrl","assets/"+liveXml.getElementsByTagName("broadcast")[0].getAttribute("name"));
	 
	 	href="?frontendUrl="+frontendUrl+"&page=videolive";
	 
	 	document.getElementById("livelink").href=href;
	 	document.getElementById("livelink").innerHTML= xmlManager.getStringFromDom(settingsXml.getElementsByTagName("livebroadcast")[0].firstChild);	 		 	
	 	if(document.getElementById("livelink").className="_blank"){
	 	   document.getElementById("livelink").target="_blank";
	 	}
	 
	 }
	 else{  
	    
	 	document.getElementById("livelink").innerHTML= xmlManager.getStringFromDom(settingsXml.getElementsByTagName("nobroadcast")[0].firstChild);
	 	document.getElementById("livelink").href="#";
	 }
 }
 window.setTimeout("liveCheck()",5000);
}
    

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

/*
Function written by Lammert Postma / lammert@noterik.nl (last update: 31 okt 2005)
What does it do: It sets the selected div visible and changes the classname of the TD specified
Variable: 	divName = name of div to set Visible
			tdName = name of td to change Class to Act
			allDiv = determine the group of div's you want to combine
			allTab = determine the tabs (id of td)
*/
function setTab(divName,tdName){
    var allDiv = new Array('info_intro','info_agenda','info_reageer','info_help','info_documenten');
	var allTab = new Array('tabIntro','tabAgenda','tabReageer','tabHelp','tabDocumenten');

	for(var i=0;i<allDiv.length;i++){
		if(allDiv[i]== divName)	{	
			MM_showHideLayers(allDiv[i],'','show')
			if(document.getElementById(allTab[i])!=undefined){
			  document.getElementById(allTab[i]).className = "tabAct";			
			}
		}
		else{
		
			MM_showHideLayers(allDiv[i],'','hide')	
			if(document.getElementById(allTab[i])!=undefined){
			  document.getElementById(allTab[i]).className = "tabPas";			
			}
		}
	}
}




window.onload = init;
window.onunload = finalize;


