﻿/*   ---------------------------------------------------------------------------
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)
*/
var paramCities = '';

function renderSelectBoxes(paramOr, paramKt, paramKd) {

	var paramKategory = document.getElementById('onlinetilmeldingKategoryName').innerHTML;
	var ObjCities = document.getElementById('onlinetilmeldingCityNames');

	paramKategory = paramKategory.replace('<p>', '');
	paramKategory = paramKategory.replace('</p>', '');
	paramKategory = paramKategory.replace('<P>', '');
	paramKategory = paramKategory.replace('</P>', '');

	paramCities = paramCities.replace('<p>', '');
	paramCities = paramCities.replace('</p>', '');
	paramCities = paramCities.replace('<P>', '');
	paramCities = paramCities.replace('</P>', '');

	//Set city filter
	if (ObjCities != null) {
		paramCities = ',' + String(ObjCities.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 = [];
	var relevantPlaceNames = [];
	var relPN = [];

	//get all the place names (ignore missing data)
	for (var x in places.records) {
		if (places.records[x].jsonarea != '') {
			var area = String(places.records[x].jsonarea);
			var city = String(places.records[x].jsoncity);
			//Should we filter on cities?
			if (paramCities !== '') {
				if (paramCities.indexOf(',' + city + ',') > -1) {
					comparisonPlaceNames.push(area);
				}
			} else {
				comparisonPlaceNames.push(area);
			}
		}
	}

	//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].jsonarea);
	}
	}
	*/
	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,
		'TUC-A/S': 1,
		'Aarhus.': 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("/page5182.aspx?or=TUC-København&or2=TUC-Midt&rndkey="+new Date().getTime());
			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].kursusNavn != '') {
			comparisonCourseNames.push(courses.records[x].kursusNavn);
		}
	}

	//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].StartDato != '') {
			//var dateToDate = new Date(dates.records[x].field3);
			//var formattedDate =  dateToDate.getDate()+'-'+dateToDate.getMonth()+'-'+dateToDate.getYear();
			var formattedDate = dates.records[x].StartDato;
			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();

}

function DisplayEducations() {

	var display = false;
	var yes = {};
	var no = {};
	var parentElm = {};
	this.Init = function () {
		var checkElms = $elms('#mergefield40 input');
		var eduElm = $elm('education');

		yes = checkElms[0];
		$elm(yes).onclick = displayEdu.ToggleEducations;
		parentElm = yes.parentNode;
		no = checkElms[1];
		$elm(no).onclick = displayEdu.ToggleEducations;

		var div = $ts.createElement('div');
		div.appendChild(eduElm);

		parentElm.appendChild(div);
		eduElm.style.display = 'none';
	}

	this.ToggleEducations = function () {

		if (yes.checked) {
			$elm('education').style.display = 'block';
			display = true;
		} else {
			$elm('education').style.display = 'none';
			display = false;
		}

	}
}

var displayEdu = new DisplayEducations();

/* TS-RUM FUNCTIONS */

/* HUSKESERVICE */

function RememberService() {

	this.selectedValues = new Array();
	this.hasCloned = new Array();
	this.hasRemoved = false;
}

RememberService.prototype.Init = function () {

	var sendto = $elm('sendbekraeftelsesmail');

	sendto.onchange = tsrum.ChangeEmail;

	this.selectedValues[0] = 0;
	this.hasCloned[0] = false;

	/*var kursus = document.getElementById('Kursus');
	kursus.onmouseup = function (e) {
	var elm = e ? e.target : window.event.srcElement;

	console.log(elm.tagName);

	setTimeout(function () { tsrum.StartCloning(elm); }, 500);
	}*/

	tsrum.AddEvent('Kursus', 'kalendar');

	$.datepicker.setDefaults($.datepicker.regional['da']);
	$("#kalender").datepicker(tsrum.DatePickerOptions());

	$('#Kursus').keypress(function (e) {
		if (e.keyCode == 13) {
			tsrum.CloneCourse('Kursus', 'kalender');
		}
	});

	/*$('#gennemforsel1').click(function () {
		tsrum.RemoveOptions();
	});

	$('#gennemforsel2').click(function () {
		tsrum.AddOptions();
	});*/

	$('#cpr').attr('autocomplete', 'off');
}

RememberService.prototype.ChangeEmail = function () {

	var select = $elm('sendbekraeftelsesmail');

	var selected = select.options[select.selectedIndex].value;

	var myemail = $elm('myemail');

	switch (selected) {
		case '89':
			var email1 = $elm('email1');

			myemail.value = email1.value;

			break;
		case '90':
			var email2 = $elm('email2');

			myemail.value = email2.value;
			break;
	}
}

RememberService.prototype.CloneCourse = function (identifier, kalender) {

	var id = 0;

	tsrum.hasCloned[identifier] = true;

	var max = 100;

	id = Math.floor(Math.random() * max + 1);

	var kalenderid = 'kalender' + id;

	CourseParent = $elm(identifier).parentNode;

	CalendarParent = $elm(kalender).parentNode.parentNode.parentNode.parentNode.parentNode;

	var test = CourseParent.innerHTML.replace('id="' + identifier + '"', 'id="Kursus' + id + '"');
	test = test.replace('id=' + identifier, 'id="Kursus' + id + '"');
	test = test.replace('name="' + identifier + '"', 'name="Kursus' + id + '"');
	test = test.replace('name=' + identifier, 'name="Kursus' + id + '"');

	var test2 = document.createElement('tr');

	var temptd2 = document.createElement('td');
	var temptd3 = document.createElement('td');

	temptd2.innerHTML = test;

	var myregx = kalender

	var re = new RegExp(myregx, 'g');

	var label = $ts.createElement('label',{'className': 'required', 'for': kalenderid});
	label.appendChild(document.createTextNode('Udløbsdato bevis *'));

	var br = $ts.createElement('br');

	var table = $ts.createElement('table', {'cellspacing':'0', 'cellpadding':'0'});
	var tr = $ts.createElement('tr');
	table.appendChild(tr);
	var td = $ts.createElement('td');
	tr.appendChild(td);

	var input = $ts.createElement('input', {'type': 'text', 'id':kalenderid, 'name': kalenderid, 'value': '', 'title': '', 'className': 'required'},{'width': '125px'});
	td.appendChild(input);

	temptd3.appendChild(label);
	temptd3.appendChild(table);

	test2.appendChild(temptd2);
	test2.appendChild(temptd3);

	CourseParent.parentNode.parentNode.insertBefore(test2, CourseParent.parentNode.nextSibling);

	Tangora.Layout.Resize();
	Tangora.Layout.Resize();

	var newselect = $elm('Kursus' + id);

	newselect.selectedIndex = 0;

	//tsrum.AddEvent('Kursus' + id, 'kalendar' + id);

	newselect.onkeypress = function (e) {
		e = e ? e : window.event;

		if (e.keyCode == 13) {
			tsrum.CloneCourse('Kursus' + id, 'kalender' + id);
		}
	}

	newselect.onmouseup = function (e) {
		var elm = e ? e.target : window.event.srcElement;
		setTimeout(function () { tsrum.StartCloning(elm); }, 10);
	}

	var newcal = $elm('kalender' + id)

	newcal.value = '';

	tsrum.selectedValues[id] = 0;

	$('#kalender' + id).datepicker(tsrum.DatePickerOptions());

	return id;
}

RememberService.prototype.RemoveOptions = function () {

	$('select').each(function (index, value) {

		var id = $(this).attr('id');
		if ($('#' + id + ' :selected').val() == '88' || $('#' + id + ' :selected').val() == '87') {
			$(this).parent().parent().hide();
		} else {
			$('#' + id + ' > option').each(function () {
				var value = $(this).val();
				if (value == '88' || value == '87') {
					$(this).remove();
				}
			});
		}
	});

	this.hasRemoved = true;
}

RememberService.prototype.AddOptions = function () {

	if (this.hasRemoved) {

		var optHTML = '<option value="88">EU efteruddannelse for buschauffører</option><option value="87">EU efteruddannelse for godschauffører</option>'

		$('select').each(function (index, value) {
			if (index > 0) {
				$(this).parent().parent().show();
				$(this).append(optHTML);
			}
		});
	}
}

RememberService.prototype.SendForm = function () {

	var newcourse = '';
	var coursecollector = $('#coursecollector');

	coursecollector.val('');
	$('select').each(function (index, value) {

		id = $(this).attr('id');

		if ($(this).parent().parent().is(':visible')) {

			if (id.match(/Kursus/)) {
				var max = id.length;

				var calid = id.substring(6, max);

				var course = $('#' + id + ' :selected').text();
				var coursedate = $('#kalender' + calid).val();

				if (coursedate != '') {
					coursedate = coursedate.substring(0, 5);

					var current = new Date();

					coursedate = coursedate + '-' + current.getFullYear();

					$('#kalender' + calid).val(coursedate);

					newcourse = coursecollector.val() + 'Kursus: ' + course + ' d. ' + coursedate + '<br/>';

					if (calid != '') {
						tsrum.AddCourcesId(id, $('#' + id + ' :selected').val(), coursedate);
					}
				}
				else {
					newcourse = coursecollector.val();
				}
				coursecollector.val(newcourse);
			}
		}
	});
	window.document.forms.listform5220.submit();
}

RememberService.prototype.AddCourcesId = function (id, courseid, date) {

	var courses = $elm('rememberchoices').value;

	var course = id + '|' + courseid + '|' + date;

	if (courses.length > 0) {
		courses = courses + ',' + course;
	} else {
		courses = course;
	}

	$elm('rememberchoices').value = courses;
}

RememberService.prototype.RedrawCourses = function () {

	var courses = $elm('rememberchoices').value;

	$elm('rememberchoices').value = '';

	var newids = new Array();

	if (courses.length > 0) {

		courses = courses.split(',');
		var newid = '';
		for (var i = 0; i < courses.length; i++) {
			newid = '';
			var course = courses[i].split('|');

			var date = (course[2] == 'undefined' ? '' : course[2]);

			date = date.substring(0, 5);

			var current = new Date();

			date = date + '-' + current.getFullYear();

			newid = tsrum.CloneCourse('Kursus' + newid, 'kalender' + newid);

			this.hasCloned[newid] = false;

			$('#Kursus' + newid).val(course[1]);
			$('#kalender' + newid).val(date);

			newids[i] = newid;
		}

		var lastid = newids[0];
		tsrum.CloneCourse('Kursus' + lastid, 'kalender' + lastid);
	}

	/*if ($('#gennemforsel1').is(':checked')) {
		tsrum.RemoveOptions();
	}*/

	var date = $('#kalender').val();

	if (date.length > 0) {
		date = date.substring(0, 5);

		var current = new Date();

		date = date + '-' + current.getFullYear();

		$('#kalender').val(date);
	}
}

RememberService.prototype.StartCloning = function (elm) {

	var id = elm.id;

	var value = elm.options[2].value;

	var max = id.length;

	id = id.substring(6, max);

	var index = id;
	if (id == '') {
		index = 0;
	}

	if (this.selectedValues[index] != value) {

		this.selectedValues[index] = value;

		tsrum.CloneCourse('Kursus' + id, 'kalender' + id);
	}

}

RememberService.prototype.AddEvent = function (course, cal) {

	el = $elm(course);

	if (window.addEventListener) {

		el.addEventListener('mouseup', function () { tsrum.StartCloning(el); }, false);

	} else if (window.attachEvent) {
		el.attachEvent('onmouseup', function () { tsrum.StartCloning(el); });
	}
}

RememberService.prototype.DatePickerOptions = function(){
	var options = {
		showOn: "button",
		buttonImage: "/media/system/calendar-16x16.png",
		buttonImageOnly: true,
		dateFormat: 'dd-mm-yy',
		changeMonth: true,
		changeYear: true,
		buttonText: 'Vælg dato',
		currentText: 'I dag',
		firstDay: 1,
		nextText: '>',
		prevText: '<',
		showWeek: true
	}

	return options;
}

var tsrum = new RememberService();
