﻿/*   ---------------------------------------------------------------------------
function which renders either values from course calendar sign-up button
or renders place, course type and course date select boxes.
Function can be used with a section (afsnit) tailored to provide a category
Optional parameters are location ('or' for danish område), course type ('kt' for kursusType), and course date ('kd' for kursusDato), '
and these parameters are used if and only if kkid is in the URL (kursusKategoriID)
 */

function renderSelectBoxes(paramOr, paramKt, paramKd){
    
    var paramKategory  = document.getElementById('onlinetilmeldingKategoryName').innerHTML;
    
    //create some elements on the page in which to put courselocation, type and date
    document.write("<div class='sblayoutfieldwrapper'><div id='orWrapper'></div></div><div class='sblayoutfieldwrapper'><div id='ktWrapper'></div></div><div class='sblayoutfieldwrapper'><div id='kdWrapper'></div></div><div class='sblayoutfieldwrapper'><div id='resetCourse'></div></div>");

    //if the user comes to the page after having selected a particular course in the course calendar
    //write those values to indicate to the user which course they selected
    //and give them a reset button
   //kursustypeFraDatabase has {system.request.url.kkid} as standard value, so it isn't necessary to set otherwise
    if (document.location.href.indexOf('kkid')>-1) {
    
	  //references to hidden fields places, type and dato
	  var placesSelectHidden = document.getElementById('placesSelectHidden');
	  var courseTypeSelectHidden = document.getElementById('courseTypeSelectHidden');
	  var courseDateHidden = document.getElementById('courseDateHidden');
	   var kursustypeFraDatabase = document.getElementById('kursustypeFraDatabase');


	   var orWrapper = document.getElementById('orWrapper');
	  var ktWrapper = document.getElementById('ktWrapper');
	  var kdWrapper = document.getElementById('kdWrapper'); 
	  var resetCourse = document.getElementById('resetCourse');	  
	  
	  
		orWrapper.innerHTML = ("<div class='sblabel'>Område</div><div class='sbcontent' id='placesSelect'>"+decodeURI(paramOr)+"</div>");
		placesSelectHidden.value =  decodeURI(paramOr);	 
		
		ktWrapper.innerHTML = ("<div class='sblabel'>Kursustype</div><div class='sbcontent' id='courseTypeSelect'>"+decodeURI(paramKt)+"</div>");
		courseTypeSelectHidden.value =  decodeURI(paramKt);  
		
		kdWrapper.innerHTML = ("<div class='sblabel'>Startdato</div><div class='sbcontent' id='courseDateSelect'>"+decodeURI(paramKd)+"</div>");
		courseDateHidden.value =  decodeURI(paramKd);

	  
    	  
    	  //resetCourse.innerHTML = ("<br /><p><a href='#' onclick='resetURL(); return false;' target='_top'>vælg et andet kursus</a></p>");
    	  //this line changed from calling resetURL function, to just being a history -1, because customer requested that enduser is redirected to course calendar
	  resetCourse.innerHTML = ("<br /><p><a href='#' onclick='window.history.back(); return false;' target='_top'>vælg et andet kursus</a></p>");
    
	//If area predefined, draw Area name and fill KT with courses
    }else if(paramOr != ''){
    	
    	var orWrapper = document.getElementById('orWrapper');
    	var kdWrapper = document.getElementById('kdWrapper');
    	var placesSelectHidden = document.getElementById('placesSelectHidden');
    	var courseDateHidden = document.getElementById('courseDateHidden');
    	orWrapper.innerHTML = ("<div class='sblabel'>Område</div><div class='sbcontent' id='placesSelect'>"+paramOr+"</div>");
		placesSelectHidden.value =  paramOr;	 

		getKursusType(paramOr, 'alle');
		
		kdWrapper.innerHTML = ("<div class='sblabel'>Startdato</div><div class='sbcontent'><select style='width:350px;'><option></option></select></div>");
		
	//otherwise, render the first select box for area
    } else {
    
	  getPlaceNames(paramKategory);
    
    }
}

//little function that just resets the URL to be without kkid, so the select boxes are rendered
function resetURL(){
  currentURL = window.location.toString();
  newURL =  currentURL.substring(0, currentURL.indexOf('?'));
  window.location = newURL;
}

/* ---------------------------------------------------------------------------
This function creates the first location select box, and sets placeholders for number two and three
*/
function getPlaceNames(paramKategory){

    //ajax call made simple courtesy of Tangora, json object parsed with eval
    //page 170 is a kursusKalendar database page which takes a parameter
    //page 177 is for all courses  
    
    if (paramKategory == 'alle'){
		 var placesJson = tsAjax.innerHTML("/page177.aspx?rndkey="+new Date().getTime());
    }else{
		 var placesJson = tsAjax.innerHTML("/page170.aspx?kk="+paramKategory+"&rndkey="+new Date().getTime());	  
    }
    
	var places = eval(placesJson);  
    
    
    
    //references wrappers written in renderSelectBoxes() function
    var orWrapper = document.getElementById('orWrapper');
    var ktWrapper = document.getElementById('ktWrapper');
    var kdWrapper = document.getElementById('kdWrapper'); 
     
	
    //create a couple of arrays, one to get everything, one to put in only unique values
     var comparisonPlaceNames = new Array();
     var relevantPlaceNames = new Array();
     var relPN = [];
   
     //get all the place names (ignore missing data)
    for (var x in places.records){
    	if (places.records[x].categoryname92 != ''){
    		comparisonPlaceNames.push(places.records[x].categoryname92);
    	}
    }
    
    //check if the next place name is unique (not equal to the previous), and put unique values in array
    /*
    for (var i=0; i<comparisonPlaceNames.length; i++){
    	if (comparisonPlaceNames[i] != comparisonPlaceNames[i-1]){
    		relevantPlaceNames.push(places.records[i].categoryname92);
    	}
    }
    */
    for(var i=0;i<comparisonPlaceNames.length;i++)
    {
	if (relPN[comparisonPlaceNames[i]]==null)
	{
	  relPN[comparisonPlaceNames[i]] = comparisonPlaceNames[i];
	}
    }
    for(var x in relPN)
    {
	relevantPlaceNames.push(x);
    }
    
   // alert (comparisonPlaceNames+' ~¨:¨~ '+relevantPlaceNames);
    
    
    //populate the first space for select box with values for place, and put placeholder content in the place of the other two																     
    var options = "<option value='vælg'>vælg</option>";
    for (var i=0; i<relevantPlaceNames.length; i++){
	   options+="<option value=\""+relevantPlaceNames[i]+"\">"+relevantPlaceNames[i]+"</option>";
    } 
    
   //references to hidden fields places, type and dato
    var placesSelectHidden = document.getElementById('placesSelectHidden');
    var courseTypeSelectHidden = document.getElementById('courseTypeSelectHidden');
    var courseDateHidden = document.getElementById('courseDateHidden');
    
   //and hidden field with recordid which is the value of the date select box
    var kursustypeFraDatabase = document.getElementById('kursustypeFraDatabase');
    
    if (placesSelectHidden && courseTypeSelectHidden && courseDateHidden) {
    	  orWrapper.innerHTML ="<span class='vdlabel'><label for='placesSelect'>Vælg et kursussted</label></span><div class='vdcontent'><select onchange='removeRecordid(); getKursusType(this.value, \""+paramKategory+"\")' style='width:350px;' id='placesSelect' name='placesSelect'>"+options+"</select></div>";
    	  ktWrapper.innerHTML = ("<div class='sblabel'>Kursustype</div><div class='sbcontent'><select style='width:350px;'><option></option></select></div>");
    	  kdWrapper.innerHTML = ("<div class='sblabel'>Startdato</div><div class='sbcontent'><select style='width:350px;'><option></option></select></div>");
    	  if (placesSelectHidden.value != '') {
    	    document.getElementById('placesSelect').value = placesSelectHidden.value; 
    	    getKursusType(placesSelectHidden.value, paramKategory);
    	  }
    	  if (courseTypeSelectHidden.value != '') {
    	    document.getElementById('courseTypeSelect').value = courseTypeSelectHidden.value; 
    	    //getKursusType(placesSelectHidden.value, paramKategory);
    	  }
    	  if (kursustypeFraDatabase.value != '' && (document.getElementById('courseDateSelect'))) {
    	    document.getElementById('courseDateSelect').value = kursustypeFraDatabase.value; 
    	    //getKursusType(placesSelectHidden.value, paramKategory);
    	  }
    } else {
	  orWrapper.innerHTML ="<span class='vdlabel'><label for='placesSelect'>Vælg et kursussted</label></span><div class='vdcontent'><select onchange='removeRecordid(); getKursusType(this.value, \""+paramKategory+"\")' style='width:350px;' id='placesSelect' name='placesSelect'>"+options+"</select></div>";  
	  ktWrapper.innerHTML = ("<div class='sblabel'>Kursustype</div><div class='sbcontent'><select style='width:350px;'><option></option></select></div>");
	  kdWrapper.innerHTML = ("<div class='sblabel'>Startdato</div><div class='sbcontent'><select style='width:350px;'><option></option></select></div>");
    } 
	
    
    
}
/* ---------------------------------------------------------------------------
This function creates the second course type select box
*/
function getKursusType(paramWhere, paramKategory){

	
	var regions = {
		'TUC-Syd' : 1,
		'TUC-Vest' : 1,
		'TUC-Midt': 1,
		'Brøndby': 1,
		'TUC-København': 1
	};
	
     //first, put value into placesSelectHidden

	//references to hidden fields places, type and dato
    var placesSelectHidden = document.getElementById('placesSelectHidden');
    var courseTypeSelectHidden = document.getElementById('courseTypeSelectHidden');
    var courseDateHidden = document.getElementById('courseDateHidden');
    
    var kursustypeFraDatabase = document.getElementById('kursustypeFraDatabase'); 
    
    
    if (placesSelectHidden && courseTypeSelectHidden && courseDateHidden) {  
	     placesSelectHidden.value = paramWhere;
    }
    
    
    
	 //second, do all the rest

     //choose either universal non-category specific page, or category specific page
   if (paramKategory == 'alle'){
	   if(regions[paramWhere] != undefined){
		   var coursesJson = tsAjax.innerHTML("/page5136.aspx?or="+paramWhere+"&rndkey="+new Date().getTime());
	   }else{
		   var coursesJson = tsAjax.innerHTML("/page179.aspx?or="+paramWhere+"&rndkey="+new Date().getTime());
	   }
    }else{
	  var coursesJson = tsAjax.innerHTML("/page171.aspx?kk="+paramKategory+"&or="+paramWhere+"&rndkey="+new Date().getTime());	  
    }
   var courses = eval(coursesJson);


   //references wrappers written in renderSelectBoxes() function
    var orWrapper = document.getElementById('orWrapper');
    var ktWrapper = document.getElementById('ktWrapper');
    var kdWrapper = document.getElementById('kdWrapper');
     var kursustypeFraDatabase = document.getElementById('kursustypeFraDatabase');
     
  //if the user has chosen to reset search by chosing 'choose' ('vælg')
  if (paramWhere == 'vælg'){
    ktWrapper.innerHTML = ("<div class='sblabel'>Kursustype</div><div class='sbcontent'><select style='width:350px;'><option></option></select></div>");
    kdWrapper.innerHTML = ("<div class='sblabel'>Startdato</div><div class='sbcontent'><select style='width:350px;'><option></option></select></div>");
    kursustypeFraDatabase.value =   '';
    return;
  }

 // alert (paramWhere + ' : '+paramKategory);
   
  
  
    
    //create a couple of arrays, one to get everything, one to put in only unique values
     var comparisonCourseNames = new Array();
     var relevantCourseNames = new Array();
     var relCN = [];
   
     //get all the place names (ignore missing data)
    for (var x in courses.records){
    	if (courses.records[x].field1 != ''){
    		comparisonCourseNames.push(courses.records[x].field1);
    	}
    }
    
    //check if the next place name is unique , and put unique values in array
    for(var i=0;i<comparisonCourseNames.length;i++)
    {
	if (relCN[comparisonCourseNames[i]]==null)
	{
	  relCN[comparisonCourseNames[i]] = comparisonCourseNames[i];
	}
    }
    for(var x in relCN)
    {
	relevantCourseNames.push(x);
    }
    
    
    
    
    
    
    //ktWrapper.innerHTML = ("<div class='sblabel'>Kursustype</div><div class='sbcontent'>"+relevantCourseNames+"</div>");
  
    //populate the first space for select box with values for place, and put placeholder content in the place of the other two
		var options = "<option value='vælg'>vælg</option>";
    for (var i=0; i<relevantCourseNames.length; i++){
	   options+="<option value=\""+relevantCourseNames[i]+"\">"+relevantCourseNames[i]+"</option>";
    } 
    
    
    if (placesSelectHidden && courseTypeSelectHidden && courseDateHidden) {
	  ktWrapper.innerHTML ="<span class='vdlabel'><label for='courseTypeSelect'>Vælg et kursustype</label></span><div class='vdcontent'><select onchange='removeRecordid(); getKursusDate(this.value, \""+paramWhere+"\", \""+paramKategory+"\")' style='width:350px;' id='courseTypeSelect' name='courseTypeSelect'>"+options+"</select></div>";
	  if (courseTypeSelectHidden.value != '') {
	    document.getElementById('courseTypeSelect').value = courseTypeSelectHidden.value;
	    getKursusDate(courseTypeSelectHidden.value, paramWhere, paramKategory);
	  }
    } else {
	  ktWrapper.innerHTML ="<span class='vdlabel'><label for='courseTypeSelect'>Vælg et kursustype</label></span><div class='vdcontent'><select onchange='removeRecordid(); getKursusDate(this.value, \""+paramWhere+"\", \""+paramKategory+"\")' style='width:350px;' id='courseTypeSelect' name='courseTypeSelect'>"+options+"</select></div>";
   }

}
 /* ---------------------------------------------------------------------------
This function creates the second course type select box
*/
function getKursusDate(paramKursusType, paramWhere, paramKategory){
	//alert (paramKursusType+' : '+paramWhere+' : '+paramKategory);
	
	
	//first, put value into placesSelectHidden

	//references to hidden fields places, type and dato
    var placesSelectHidden = document.getElementById('placesSelectHidden');
    var courseTypeSelectHidden = document.getElementById('courseTypeSelectHidden');
    var courseDateHidden = document.getElementById('courseDateHidden');
    
    if (placesSelectHidden && courseTypeSelectHidden && courseDateHidden) {  
	     placesSelectHidden.value = paramWhere;
	     courseTypeSelectHidden.value = paramKursusType;
	     
    }
    
    //second, all the rest
	
	   //choose either universal non-category specific page, or category specific page
	if (paramKategory == 'alle'){
		 var datesJson = tsAjax.innerHTML("/page180.aspx?or="+paramWhere+"&kt="+paramKursusType+"&rndkey="+new Date().getTime());
    }else{
		 var datesJson = tsAjax.innerHTML("/page173.aspx?kk="+paramKategory+"&or="+paramWhere+"&kt="+paramKursusType+"&rndkey="+new Date().getTime());	  
    }
	 var dates = eval(datesJson);
	
	//references wrappers written in renderSelectBoxes() function
    var orWrapper = document.getElementById('orWrapper');
    var ktWrapper = document.getElementById('ktWrapper');
    var kdWrapper = document.getElementById('kdWrapper');
    var kursustypeFraDatabase = document.getElementById('kursustypeFraDatabase');
    
    //if the user has chosen to reset search by chosing 'choose' ('vælg')
  if (paramKursusType == 'vælg'){
    kdWrapper.innerHTML = ("<div class='sblabel'>Startdato</div><div class='sbcontent'><select style='width:350px;'><option></option></select></div>");
    kursustypeFraDatabase.value =   '';
    return;
  }
    
    
    //create a couple of arrays, one to get all date values, which we know are unique    
    //and an array for the record ids of the courses
     var relevantDateNames = new Array();
     var courseRecordIds = new Array();
   
     //get all the dates (ignore missing data)
    for (var x in dates.records){
    	if (dates.records[x].field3 != ''){
    	 //var dateToDate = new Date(dates.records[x].field3);
    	 //var formattedDate =  dateToDate.getDate()+'-'+dateToDate.getMonth()+'-'+dateToDate.getYear();
    	   var formattedDate = dates.records[x].field3;
    	   formattedDate = formattedDate.substring(0, formattedDate.indexOf(' '));
    		relevantDateNames.push(formattedDate);
    	}
    }
   // alert (relevantDateNames[0].getDate()+'-'+relevantDateNames[0].getMonth()+'-'+relevantDateNames[0].getYear());
    
    //get all the place names (ignore missing data)
    for (var x in dates.records){
    		courseRecordIds.push(dates.records[x].id);
    }
    
  
    
    //put the record id's in 
	
	var options = "<option value='vælg'>vælg</option>";
	for (var i=0; i<relevantDateNames.length; i++){
	     options+="<option value=\""+courseRecordIds[i]+"\">"+relevantDateNames[i]+"</option>";
	} 
    
    
    
    if (placesSelectHidden && courseTypeSelectHidden && courseDateHidden) {
	  kdWrapper.innerHTML ="<span class='vdlabel'><label for='courseDateSelect'>Vælg et startdato</label></span><div class='vdcontent'><select onchange='getKursusRid(this.value, this.options[selectedIndex].text, \""+paramKursusType+"\", \""+paramWhere+"\", \""+paramKategory+"\")' style='width:350px;' id='courseDateSelect' name='courseDateSelect'>"+options+"</select></div>";
	  if (courseDateHidden.value != '') {
	    document.getElementById('courseDateHidden').value = courseDateHidden.value;
	    
	    var paramRecordId = document.getElementById('kursustypeFraDatabase').value; 
	    getKursusRid(paramRecordId, courseDateHidden.value, paramKursusType, paramWhere, paramKategory);
	  }
    } else {
	  kdWrapper.innerHTML ="<span class='vdlabel'><label for='courseDateSelect'>Vælg et startdato</label></span><div class='vdcontent'><select onchange='getKursusRid(this.value, this.options[selectedIndex].text, \""+paramKursusType+"\", \""+paramWhere+"\", \""+paramKategory+"\")' style='width:350px;' id='courseDateSelect' name='courseDateSelect'>"+options+"</select></div>";
   }
    
    
    
    

}

/*
after the last (date) select box has been set by user, set the recordid
*/
function getKursusRid(paramRecordId, paramDate,paramKursusType, paramWhere, paramKategory)  {

	  //references to hidden fields places, type and dato
    var placesSelectHidden = document.getElementById('placesSelectHidden');
    var courseTypeSelectHidden = document.getElementById('courseTypeSelectHidden');
    var courseDateHidden = document.getElementById('courseDateHidden');
    
    if (placesSelectHidden && courseTypeSelectHidden && courseDateHidden) {  
	    courseDateHidden.value = paramDate;
	     placesSelectHidden.value = paramWhere;
	     courseTypeSelectHidden.value = paramKursusType;
    }



     var kursustypeFraDatabase = document.getElementById('kursustypeFraDatabase');  
     //alert (kursustypeFraDatabase);
	 var kursusSamledeDetaljer = document.getElementById('kursusSamledeDetaljer');
	 
    kursustypeFraDatabase.value =   paramRecordId;  
    kursusSamledeDetaljer.value =   paramWhere+', '+paramKursusType+', '+paramDate;
    
	 //if the user has chosen to reset search by chosing 'choose' ('vælg')
    if (paramRecordId == 'vælg'){
    	kursustypeFraDatabase.value =   '';
    	return;
    }  
    
    //if (document.location.href.indexOf('debug')>-1) {   }
    
   // alert (kursusSamledeDetaljer.value+' - your courses record id (in kursustypefradatabase) is: '+kursustypeFraDatabase.value+' and I\'m putting it here: '+ kursustypeFraDatabase) ;
    
    
   //

   /* EDITED BY RUNE MEMBORG (rum@tangora.dk) 01.03.2010
	
	The following method is listed in /html/fecthemail.js
   */
   
   rumAddEmailToForm(paramRecordId); 
   
}


function removeRecordid () {
  var kursustypeFraDatabase = document.getElementById('kursustypeFraDatabase'); 
  kursustypeFraDatabase.value = '';
}


/* ---------------------------------------------------------------------------
End custom  select box in course sign-up javascripts
*/

/* moving of undermenu from sitelayout to sidelayout */
function moveUndermenu(){

var undermenuContainer = document.getElementById('mergefield_navigation_level2');
var newUndermenuContainer = document.getElementById('undermenuSidelayout');

   if (undermenuContainer && newUndermenuContainer)
   {
     Tangora.DOM.MoveElement('mergefield_navigation_level2', 'undermenuSidelayout');
     undermenuContainer.style.display = "block";
   }
}


//unfinished function in pseudoscript											    
function sendDownloadForm(){

   //initiate a string to put in 'materialeNavn' input
  //loop through all inputs with name 'materiale'
  //get its id, so we can find its label later
	 //if radiobox is checked (not a html attribute I guess, but rather a state that is registered somehow else?)
	     //loop through and find h3tags in the corresponding label (there'll be just one h3)
		   //take h3 value, and add it to a materialeNavn string
	    //end label loop
	//end if
  //end material input loop
  //put that string with all the h3 values, and put them in  the input with id 'materialeNavn'
  
  window.document.forms.listform4.submit();
  
}