///
/// <name>
/// 	void checkParent()
/// </name>
/// <description>
/// 	Indien de Portal parameter op 1 staat: Include de HOPortal-stylesheet en zet de hidden menu list om in een selectbox
/// </description>
///
function checkParent()
{
	// Vervang stylesheet
	var stylesheet = document.getElementById("style");
	if(getPortal()=="1")
	{
		// Bestaande stylesheet overrulen met HOPortal stylesheet
		stylesheet.href = "_include/css/HoPortal.css";

		// Pulldown met hoofdmenu tonen
		convertListToSelectbox();

		// Login IFrame anders layouten
		//ChangeLayoutLoginIFrame();
	}
	
	if(getPortal()=="2")
	{
		// Bestaande stylesheet overrulen met HOPortal stylesheet
		stylesheet.href = "_include/css/HoPortal2.css";		
	}
}


///
/// <name>
/// 	void checkForPortal()
/// </name>
/// <description>
/// 	Indien de Portal parameter op 1 staat: Verander de layout van het LoginIFrame
/// </description>
///
function checkForPortal()
{
	if(getPortal()=="1")
	{
	 ChangeLayoutLoginIFrame();
	}
}



///
/// <name>
/// 	void ChangeLayoutLoginIFrame()
/// </name>
/// <description>
/// 	Verandert de layout van het LoginIFrame: de links Inloggen en Uitloggen worden niet getoond 
///	en de achtergrondkleur en kleur van de link Mijn account wordt aangepast
/// </description>
///
function ChangeLayoutLoginIFrame()
{
	var loginIFrame = document.getElementById("fraLogin");
	if (loginIFrame != null)
	{
		var theBGColor = "White";
		var theLinkColor = "Black";

		// Document en Body in LoginIFrame pakken en achtergrondkleur aanpassen
		var theDoc = window.frames.fraLogin.document;
		var theBody = theDoc.body;
		theBody.style.backgroundColor = theBGColor;

		// Mijn account-link: gewoon zichtbaar
		var lnkMijnGegevens = theDoc.getElementById("lnkMijnGegevens"); 
		if (lnkMijnGegevens != null)
		{
			lnkMijnGegevens.style.color = theLinkColor;
			lnkMijnGegevens.style.backgroundColor = theBGColor;
		}

		// Uitloggen-link: onzichtbaar
		var lnk = theDoc.getElementById("lnk"); 
		if (lnk != null)
		{
			lnk.style.visibility = 'hidden';
		}

		// Inloggen-link: onzichtbaar
		var lnkAanmelden = theDoc.getElementById("lnkAanmelden");
		if (lnkAanmelden != null)
		{
			lnkAanmelden.style.visibility = 'hidden';
		}

		// Pipe tussen de linkjes: onzichtbaar			
		var lblMiddle = theDoc.getElementById("lblMiddle"); 
		if (lblMiddle != null)
		{
			lblMiddle.style.visibility = 'hidden';
		}			
	}
}



///
/// <name>
/// 	void convertListToSelectbox()
/// </name>
/// <description>
/// 	Maakt van de hidden div met list items een select box
/// 	Gebaseerd op: http://andrescholten.nl/index.php/een-select-element-spiderbaar-maken/
/// </description>
/// <todo>
/// 	- Checken welke option actief is
/// 	- De UL/LI bij moduleDefault moet hidden worden, omdat Selectbox daarvoor in de plaats komt
/// </todo>
///
function convertListToSelectbox()
{
	var hiddenMenu = document.getElementById("hiddenMenu");
	var menuList = document.getElementById("menuList");
	
	if(menuList != null)
	{
	  var menuItems = menuList.getElementsByTagName("li");

	  var dezePagina = zoekWebpage(window.location.href);
	  dezePagina = dezePagina.substring(0, 13);

	  var selectedItem = 0;
  	
	  // Alleen een Selectbox maken als de DIV en UL aanwezig zijn en er meer dan 1 menu item is
	  if (hiddenMenu != null && menuList != null && menuItems != null && menuItems.length > 1)
	  {
		  // Maak een Selectbox
		  sel = document.createElement("select");
  		
		  for (var j = 0; j < menuItems.length; j++)
		  {
		    opt = document.createElement("option");
		    par = menuItems[j].getElementsByTagName("a")[0];
		    var href = par.getAttribute('href');
  		  
		    if (zoekWebpage(href).substring(0, 13) == dezePagina)
		    {
		  	  opt.setAttribute("selected","selected");
		    }

		    // Value van de option wordt het tabindex-attribuut		  
		    opt.value = par.getAttribute('tabindex') + '|' + href;

		    opt.appendChild(document.createTextNode(par.firstChild.nodeValue));
		    sel.appendChild(opt);
		  }

		  // Properties Selectbox
		  sel.onchange = function() { goToPage(); }
		  sel.className = 'menuSelectbox';
		  sel.id = 'sel';
  		
		  // Maak een button
		  btn = document.createElement("input");
		  btn.setAttribute('type', 'button');
		  btn.setAttribute('value', '>');
		  btn.className = 'btnSelectbox';
		  btn.onclick = function() { goToPage(); }

		  // Vervang de menuList door de selectbox en button
		  menuList.parentNode.insertBefore(sel, menuList);
		  menuList.parentNode.insertBefore(btn, menuList);
		  menuList.parentNode.removeChild(menuList);
	  }
	}
}

function zoekWebpage(url)
{
	var webpage = '';
	
	var beginPos = url.indexOf("webpage") - 5;
	
	// Eventueel eindPos bepalen, indien &
	var eindPos;
	var ampersant = url.indexOf("&");
	
	if (ampersant != -1)
	{
		eindPos = ampersant;
	}
	else
	{
		eindPos = url.length;
	}

	if (beginPos != -1)
	{
		webpage = url.substring(beginPos, eindPos);
	}

	return webpage;
}

///
/// <name>
/// 	void goToPage()
/// </name>
/// <description>
/// 	Voert de javascripts uit om vanuit de selectbox "sel" naar een bepaalde pagina te gaan
/// 	Dit is min of meer een kopie van de OnMouseDown, onMouseUp en href acties die in de hoofdmenu-table zitten.
/// </description>
///
function goToPage()
{
	var selectBox = document.getElementById("sel");
	selectValue = selectBox.options[selectBox.selectedIndex].value;
	selectName = selectBox.options[selectBox.selectedIndex].text;
	
	var iframe = document.getElementById("CdContentIframe");

	if (selectValue != 'kies')
	{
		arrValue = selectValue.split('|');
		
		selectValue = parseInt(arrValue[0]);
		var moduleName = 'module_' + String(selectValue+1);
		var href = arrValue[1];

		swapMenu(moduleName,'clear',2,'module');
		swapMenu(moduleName,'click',2,'module');
		swapMenu('start','clear',0,'start');
		swapMenu(-1,'clear',3,'unit');
		swapMenu(-1,'clear',5,'compoundItem');
		swapText(selectName,'contentHeader');
		swapMenu('mod_menu_' + selectValue,'click',1,'menu');

		iframe.src = href;
	}
}
	
///
/// <name>
/// 	void changeSrc(string, string)
/// </name>
/// <description>
///	Indien niet in Portal:
/// 	Deze functie voorziet de iframe waarin de PDF wordt geladen van de juiste URL naar die PDF.
/// 	Het wel/niet meenemen van de PDFPage parameter hangt af van de url waarmee de pagina geopend wordt,
/// 	namelijk of de te openen HTML webpage overeen komt met de naam van de HTML webpage die in de URL van de pagina staat.
/// 	Deze kan namelijk verschillen aangezien de URL van de pagina vanuit de portal kan worden veranderd (via zoekresultaat),
/// 	terwijl de naam van de te openen HTML webpage binnen de Additional wordt geregeld. Als deze pagina's verschillen is de 
/// 	PdfPage parameter niet van toepassing voor de betreffende PDF.
///	
/// </description>
///
function changeSrc(source, frameId)
{
	var pdfPage = '';

	// Locatie van de HTML pagina waarin het PDF-IFrame zit
	var selfLocation = String(self.location);	
	//var topLocation = String(top.location);
	var pos = selfLocation.lastIndexOf("/") + 1;
	var thePage = selfLocation.substring(pos);
	
	// Locatie van de hoofd-pagina (gedeelte van URL-Parameter vanaf "&Page=")
	//thePage2 = getPageFromPageParameter();
	
	// Alleen de PDFPage parameter gebruiken indien de webpage van de hoofdpagina gelijk is aan de webpage waar de iframe in zit
	//if ((thePage2.length >= thePage.length) && (thePage2.substring(0,thePage.length) == thePage))
	//Vereenvoudigd: alleen als de huidige page dezelfde is als die in de querystring van de top-url  moet de pdfPage gebruikt worden.
	//if (topLocation.indexOf(thePage) != -1)
	//{
		pdfPage = "#page=" + getPdfPage();
	//}

	// Source van Iframe veranderen (met evt. pdfPage parameter)
	var url = source + pdfPage;
	
	var iframe = document.getElementById(frameId);
	iframe.src = url;
}

///
/// <name>
/// 	string getPageFromPageParameter()
/// </name>
/// <description>
/// 	Geeft de naam van de HTML webpage uit de Page parameter van de url van de pagina terug
/// </description>
///
function getPageFromPageParameter()
{
	// Locatie van de hoofd-pagina (gedeelte van URL-Parameter vanaf "&Page=")	
	// GetPortalLocationSearchSubstring is een functie die in de DNN PaboPortal.js te vinden is.
	// Eerst checken of de functie wel bestaat, want het kan zijn dat de additional niet in een portal geopend wordt
	if(typeof top.parent.GetPortalLocationSearchSubstring == 'function')
	{
		topLocation = top.parent.GetPortalLocationSearchSubstring();
	}
	else
	{
		// Bestaat NIET!
		return '';
	}
	
	var strZoek = "&Page=";
	var pos = topLocation.indexOf(strZoek);
	
	var thePage = '';
	if (pos > -1)
	{
		pos += strZoek.length;
		thePage = topLocation.substring(pos);
	}
	return thePage
}

///
/// <name>
/// 	string getPdfPage()
/// </name>
/// <description>
/// 	Geeft de waarde van de PdfPage parameter uit de url van de pagina terug
/// </description>
///
function getPdfPage() {  
    var query = self.parent.location.search.substring(1);  
    
    var vars = query.split("&");  
    for (var i=0;i<vars.length;i++) {    
        var pair = vars[i].split("=");    
        if (pair[0] == "PdfPage") {    
            return pair[1];    
        }  
     } 
     return "1";
}

///
/// <name>
/// 	string getPortal()
/// </name>
/// <description>
/// 	Geeft de waarde van de Portal parameter uit de url van de pagina terug
/// </description>
///
function getPortal() 
{ 
	try
	{
		var query = self.location.search.substring(1);
	}
	catch(err)
	{
		alert(err.toString());
	}

	var vars = query.split("&");
	for (var i=0;i<vars.length;i++)
	{
		var pair = vars[i].split("=");
		if (pair[0] == "Portal") {
		    return pair[1];
		}
	}
	return "0";
}

function checkRightColumn()
{
	if(getPortalFromParent()=="1")
  {
    document.getElementById("RightColumn").style.display = "none";
  }
}

function getPortalFromParent() 
{ 
	try
	{
		var query = parent.location.search.substring(1);
	}
	catch(err)
	{
		alert(err.toString());
	}

	var vars = query.split("&");
	for (var i=0;i<vars.length;i++)
	{
		var pair = vars[i].split("=");
		if (pair[0] == "Portal") {
		    return "1";
		}
	}
	return "0";
}
