var selectedBranches = new Array();
var selectedHoofdfunctionaliteiten = new Array();
var selectedPakketten = new Array();

//////////////////////////////////////////////
/* LISTS */
//////////////////////////////////////////////

// BrancheList
function addToBrancheList(id) {
	var tmpBranches = new Array();
	var removed = false;
			
	for (i=0;i<selectedBranches.length;i++)
	{
		if (selectedBranches[i] != id) {
			tmpBranches.push(selectedBranches[i]);
		} else {
			removed = true;
		}
	}
	if (!removed) {
		tmpBranches.push(id);			
	}
	selectedBranches = tmpBranches;
}

function getSelectedBranches() {
	return selectedBranches.toString();
}

// HoofdfunctionaliteitenList
function addToHoofdfunctionaliteitList(id) {
	var tmpHoofdfunctionaliteiten = new Array();
	var removed = false;
			
	for (i=0;i<selectedHoofdfunctionaliteiten.length;i++)
	{
		if (selectedHoofdfunctionaliteiten[i] != id) {
			tmpHoofdfunctionaliteiten.push(selectedHoofdfunctionaliteiten[i]);
		} else {
			removed = true;
		}
	}
	if (!removed) {
		tmpHoofdfunctionaliteiten.push(id);			
	}
	selectedHoofdfunctionaliteiten = tmpHoofdfunctionaliteiten;
}
function getSelectedHoofdfunctionaliteiten() {
	return selectedHoofdfunctionaliteiten.toString();
}

// PakkettenList
function addToPakketList(id) {
	var tmpPakketten = new Array();
	var removed = false;
			
	for (i=0;i<selectedPakketten.length;i++)
	{
		if (selectedPakketten[i] != id) {
			tmpPakketten.push(selectedPakketten[i]);
		} else {
			removed = true;
		}
	}
	if (!removed) {
		if (tmpPakketten.length < 4) {
			tmpPakketten.push(id);
		} else {
			document.getElementById('vergelijk'+id).checked = '';
			alert('U kunt maximaal 4 pakketten selecteren');
		}			
	}
	selectedPakketten = tmpPakketten;
	
}
function getSelectedPakketten() {
	return selectedPakketten.toString();
}


//////////////////////////////////////////////
/* EVENTS */
//////////////////////////////////////////////
var resultListSortDir = "asc"
function onClickSortResultList() {
	$('togglerresultWrapperOut').click()
	// set new sortorder
	resultListSortDir = (resultListSortDir == "asc") ? "desc" : "asc"
	// set title
	document.getElementById("sortResultList").title = ( "Resultaat " + ( (resultListSortDir == "desc") ? "oplopend" : "aflopend" ) + " sorteren" )
	// build arguments
	var oArgs = new Object()
	oArgs.branche_ids = getSelectedBranches()
	oArgs.hoofdfunctionaliteit_ids = getSelectedHoofdfunctionaliteiten()
	oArgs.pakketDetailUrl = _pakketDetailUrl
	oArgs.gfxFolder = _gfxfolder
	oArgs.sortdir = resultListSortDir
	// send request
	DWREngine._execute(_framework + "ajax/pakket.cfc", null, "showList", oArgs, cbOnClickSortResultList)
}
function cbOnClickSortResultList(ajax_response) {
	document.getElementById("resultList").innerHTML = ajax_response;
	setTimeout("$('togglerresultWrapperIn').click()", 600);
}

// Clicking on a Branche
function onClickBranche(brancheid) {
	$('togglerHoofdfunctionaliteitOut').click();
	
	// check wether it is on the result page 
	if (document.location.href.indexOf('result') > 0) {
		$('togglerresultWrapperOut').click();
	}
	
	addToBrancheList(brancheid);
	getSelectedBranches();
	
	// selected hoofdfunctionaliteiten gets overwritten by the AJAX call, so clear it.
	selectedHoofdfunctionaliteiten = new Array();
	
	countResults();
	
	// check wether it is on the homepage or result page 
	if (document.location.href.indexOf('result') > 0)
		DWREngine._execute(_framework + "ajax/hoofdfunctionaliteitenlijst.cfc", null, "showResultPage", getSelectedBranches(), _websiteId, onClickBrancheCompleted);		
	else if (document.location.href.indexOf('wizard') > 0)
		DWREngine._execute(_framework + "ajax/hoofdfunctionaliteitenlijst.cfc", null, "showWizardPage", getSelectedBranches(), _websiteId, onClickBrancheCompleted);
	else
		DWREngine._execute(_framework + "ajax/hoofdfunctionaliteitenlijst.cfc", null, "show", getSelectedBranches(), _websiteId, onClickBrancheCompleted);
	
}
function onClickBrancheCompleted(ajax_response) {
	document.getElementById("homeHoofdfunctionaliteitAjaxContent").innerHTML = ajax_response["htmlcontent"];
	// check wether it is on the result page 
	if (document.location.href.indexOf('wizard') < 0) {
		if (ajax_response["lst_hoofdfunctionaliteitenids"] != '') {
			arr_hoofdfunctionaliteitenids = ajax_response["lst_hoofdfunctionaliteitenids"].split(",");
			for (i=0;i<arr_hoofdfunctionaliteitenids.length;i++) {
				id = arr_hoofdfunctionaliteitenids[i];
				uitklappeninstellen(id);
			}
		}
	}
	setTimeout("$('togglerHoofdfunctionaliteitIn').click()",600);
}

// Clicking on a Hoofdfunctionaliteit
function onClickHoofdfunctionaliteit(hoofdfunctionaliteitid) {
	// check wether it is on the homepage or result page 
	if (document.location.href.indexOf('result') > 0) {
		$('togglerresultWrapperOut').click();
	}
	
	addToHoofdfunctionaliteitList(hoofdfunctionaliteitid);
	getSelectedHoofdfunctionaliteiten();
	
	countResults();
}

// Clicking on Vergelijk button
function onClickVergelijk() {
	if (selectedPakketten.length < 2) {
		alert('U dient minimaal twee systemen te vergelijken');
		return false;
	} else if (selectedPakketten.length > 4) {
		alert('U kunt maximaal vier systemen vergelijken');
		return false;
	}
	
	document.getElementById('vergelijkForm').action = 'vergelijk?pakketten=' + getSelectedPakketten();
	document.getElementById('vergelijkForm').submit();
	return false;
}

//////////////////////////////////////////////
/* OTHER FUNCTIONS */
//////////////////////////////////////////////

// deze is nodig voor de homepage voor het uitklappen van de hoofdfunctionaliteitgroepen na een AJAX call
function uitklappeninstellen(id) {
	eval('var HFSmySlide'+id+' = new Fx.Slide("HFStoggleDiv'+id+'")');
	eval('HFSmySlide'+id+'.hide()');
	$('HFStoggler'+id).addEvent('click', function(e){
		e = new Event(e);
		eval('HFSmySlide'+id+'.toggle()');
		e.stop();
		
		if (document.getElementById("arrowHome"+id).src.substring(document.getElementById("arrowHome"+id).src.length-8) == 'down.gif') {
			document.getElementById("arrowHome"+id).src = _gfxfolder+'arrow_home.gif';
		} else {
			document.getElementById("arrowHome"+id).src = _gfxfolder+'arrow_home_down.gif';
		}
	});
}

// Count the amount of found Pakketsystemen
function countResults() {
	DWREngine._execute(_framework+"ajax/pakket.cfc", null, "getFoundNumber", getSelectedBranches(), getSelectedHoofdfunctionaliteiten(), countResultsCompleted);
}
function countResultsCompleted(ajax_response) {
	// update counters
	var aContainers = new Array("flashcontent", "flashcontentTop")
	for (var i=0; i<aContainers.length; i++) {
		if ( document.getElementById(aContainers[i] + "Wrapper") ) {
			oWrapper = document.getElementById(aContainers[i] + "Wrapper")
			while(oWrapper.childNodes.length > 0) {
				oWrapper.removeChild(oWrapper.childNodes[0])
			}
			_div = document.createElement("div")
			_div.setAttribute("id", aContainers[i])
			oWrapper.appendChild(_div)
			// reinit flash
			swfobject.embedSWF(_swfURL+ajax_response, aContainers[i], "50", "24", "8.0.0", false, flashvars, params, attributes);
		}
	}
	// check wether it is on the result page 
	if (document.location.href.indexOf('result') > 0) {
		getResults();
	}
	// check wether it is on the wizard 
	if (document.location.href.indexOf('wizard') > 0) {
		document.getElementById('resultAantalHidden').innerHTML = ajax_response;
	}
}

// Get the found Pakketsystemen
function getResults() {
	DWREngine._execute(_framework+"ajax/pakket.cfc", null, "showList", getSelectedBranches(), getSelectedHoofdfunctionaliteiten(), _pakketDetailUrl, _gfxfolder, getResultsCompleted);
}
function getResultsCompleted(ajax_response) {
	document.getElementById("resultList").innerHTML = ajax_response;
	setTimeout("$('togglerresultWrapperIn').click();",600);	
}

var alreadyDownloading = false;
// Download the factsheet
function getFactSheet(pakket_id) {
	if (!alreadyDownloading) { 
		alreadyDownloading = true;
		document.getElementById("loading").style.display = 'block';
		DWREngine._execute(_framework+"ajax/pakket.cfc", null, "getFactsheetUrl", pakket_id, getFactSheetCompleted);
	} else {
		alert("De PDF wordt aangemaakt, even geduld alstublieft");
	}
}
function getFactSheetCompleted(ajax_response) {
	alreadyDownloading = false;
	document.getElementById("loading").style.display = 'none';
	window.open(ajax_response);
}

// switch tab on pakket_detail
var currentTab = null;
function switchTab(tabId) {
	if (currentTab != null) {
		$('tabButtonOut'+currentTab).click();
		document.getElementById('labeltab'+currentTab).className = 'Tab';
	}
	
	setTimeout("switchTabHelper("+tabId+","+currentTab+")",600);
	document.getElementById('labeltab'+tabId).className = 'TabActive';
	
	currentTab = tabId;
}

function switchTabHelper(show,hide) {
	$('tab'+show).style.display = 'block';
	if (hide != null && hide != show) {
		$('tab'+hide).style.display = 'none';
	}
	$('tabButtonIn'+show).click();
}

function setTabWidth() {
	// set the rest of the tab-border with javascript... otherwise we don't know the width it should be.
	myWidth = document.getElementById("allTabs").offsetWidth;
	document.getElementById("restTab").style.width = 984 - myWidth + 'px';
}

function gotoResult(url) {
	if ( document.getElementById("excludeHoofdfunctionaliteiten") != undefined ) {
		if ( (getSelectedBranches().length > 0 && getSelectedHoofdfunctionaliteiten().length > 0) || (getSelectedBranches().length > 0 && getSelectedHoofdfunctionaliteiten().length == 0 && document.getElementById("excludeHoofdfunctionaliteiten").checked == true) ) {
			document.location.href = url;
		} else {
			alert("U dient minstens 1 branche en 1 systeemkenmerk te selecteren.\nU kunt er ook voor kiezen om de systeemkenmerken bewust buiten beschouwing te laten.\nPlaats hiervoor een vinkje bij de gelijknamige optie.");
		}
	} else {
		if ( getSelectedBranches().length > 0 ) {
			document.location.href = url;
		}
	}
}

// Wizard
var currentQuestion = 1;

function gotoQuestion(question, drempelwaarde, action_url) {
	$('togglerOut').click();
	
	// never go to result if the 'previous question' button has been clicked.
	if (currentQuestion < question) {
		// if the amount of found pakketten rearches a certain value or there are no more questions, then go to the result page.
		if ((document.getElementById('resultAantalHidden').innerHTML <= drempelwaarde) || (document.getElementById('hoofdfunctionaliteitvraag'+question) == undefined && question > 2)) {
			gotoResult(action_url);
			return;
		}
	}
	
	// set the big question number
	document.getElementById('wizardHeader').innerHTML = question + '';
			
	// set question number label
	document.getElementById('TabQuestion').innerHTML = 'Vraag ' + question;
	
	// set question label
	switch (question) {
		case 1:
			// set tab value
			document.getElementById('question').innerHTML = 'In welke branchecategori&euml;n valt uw onderneming?';
			
			// hide back button
			document.getElementById('backButton').style.display = 'none';
			
			break;
		case 2:
			document.getElementById('question').innerHTML = 'In welke branche(s) bent u actief?';
			
			// show back button
			document.getElementById('backButton').style.display = 'block';
			
			// hide container for vraag 3 and up
			document.getElementById('homeHoofdfunctionaliteitAjaxContent').style.display = 'none';
			
			// hide the submit button
			document.getElementById('resultButton').style.display = 'none';
			
			break;
		case 3:
			// show container for vraag 3 and up
			document.getElementById('homeHoofdfunctionaliteitAjaxContent').style.display = 'block';
			
			// show the submit button
			document.getElementById('resultButton').style.display = 'block';
			
			// set tab value
			document.getElementById('question').innerHTML = document.getElementById('hoofdfunctionaliteitvraag' + question).innerHTML;
		default:
			// set tab value
			document.getElementById('question').innerHTML = document.getElementById('hoofdfunctionaliteitvraag' + question).innerHTML;
	}
	
	// change the width of the extra tab border
	setTabWidth();
	
	// change the body of the question (the answers)
	document.getElementById('vraag'+currentQuestion).style.display = 'none';
	document.getElementById('vraag'+question).style.display = 'block';
	
	// set next question button label
	document.getElementById('wizardVolgende').innerHTML = 'Naar vraag ' + (question+1);
	
	setTimeout("$('togglerIn').click()",600);
			
	currentQuestion = question;
}

function switchDiv(id) {
	var div = document.getElementById(id);
	if (div.style.display == 'none') {
		div.style.display = 'block';
	} else {
		div.style.display = 'none';
	}
}

// Login Leveranciers
function onLoginLeverancier() {
	var str_args = new Object();
	str_args.website_id = _websiteId
	str_args.website_name = _websiteName
	str_args.usr = document.forms['leverancierloginForm'].usr.value
	str_args.pwd = document.forms['leverancierloginForm'].pwd.value
	DWREngine._execute(_framework + "ajax/leverancier.cfc", null, "loginRCMSUser", str_args, cbonLoginLeverancier);
}
function cbonLoginLeverancier(str_result) {
	if(str_result.errmsg.length == 0) location.href = str_result.redirect_url
	else alert(str_result.errmsg)
}

//pakketten
var cur_tab = 'promo'
var cur_pakket_id = 0
function onClickTab(pakket_id,tabname) {
	var str_args = new Object();
	str_args.pakket_id = pakket_id
	str_args.tabname = tabname
	if (str_args.tabname!=cur_tab) {
		DWREngine._execute(_framework + "ajax/pakket.cfc", null, "showTabContent", str_args, cbonClickTab);
	}
}
function cbonClickTab(str_result) {
		//sDumper(str_result)
		//highlight tab
		document.getElementById('content' + str_result.pakket_id + cur_tab).innerHTML = str_result.html
		document.getElementById('tab' + str_result.pakket_id + str_result.tabname).className = 'TabActive'
		document.getElementById('tab' + str_result.pakket_id + cur_tab).className = 'Tab'
		cur_tab=str_result.tabname
		cur_pakket_id=str_result.pakket_id
}

function Teller(tekstveld,maxlengte) {
    var teller = document.forms[0].elements['teller'];
    if (tekstveld.value.length > maxlengte) { // te lang, inkorten
    tekstveld.value = tekstveld.value.substring(0, maxlengte);
    window.alert('Je hebt het maximale aantal tekens bereikt!');
    teller.value = maxlengte - tekstveld.value.length;
    }
    else {    // update tellerwaarde
    teller.value = maxlengte - tekstveld.value.length;
    }
}
function onClickPakket(pakket_id, readonly) {
	if (pakket_id != cur_pakket_id) {
		document.getElementById('pakketimgarrow_' + pakket_id).src= _gfxfolder + 'arrow_down.gif'
		document.getElementById('pakketimgarrow_' + cur_pakket_id).src= _gfxfolder + 'arrow_blue_white.gif'
		document.getElementById('pakketlinktext_' + pakket_id).innerHTML = _pakketlinktext_hl
		document.getElementById('pakketlinktext_' + cur_pakket_id).innerHTML = _pakketlinktext
		cur_pakket_id = pakket_id
	}
}