﻿//Tangora - CIBE2009 shopping baseket - function to choose number of products
function checkNumberKey(e){
  if (!e)e=window.event;
  if ((e.keyCode >= 48 && e.keyCode<=57) || (e.keyCode>=96 && e.keyCode<=105) || (e.keyCode>=33 && e.keyCode<=40) || (e.keyCode == 8)) {
    return true;
  }  
  else {
    CancelBubble(e);
    return false;
  }    
}

function calculatePrice(paramTheNumber){

  var lineId = paramTheNumber.id;
  var theLineIdObject = document.getElementById(lineId);
  var selectedNumber = new Number(paramTheNumber.value);
  if (isNaN(selectedNumber)) {
    theLineIdObject.value = 0;
    return;
  } 
  
  var firstUnderscore = lineId.indexOf("_");
  var lastUnderscore = lineId.lastIndexOf("_") + 1;
  var indexOfComma = lineId.lastIndexOf(",");
  var itemPrice = lineId.substring(lastUnderscore,indexOfComma);
  itemPrice=itemPrice.replace('.','').replace(',','.');
  var itemId = lineId.substring(firstUnderscore+1, lastUnderscore-1);

  var totalLinePrice = selectedNumber * itemPrice;
  var totalPriceTarget = document.getElementById('howMuch_'+itemId);
  totalPriceTarget.innerHTML = xFormatNumber(totalLinePrice)+',00';
  
}

function xFormatNumber(num){
	num = num.toString();
	while (num.match(/^-?\d\d{3}/)){
		num = num.replace(/(\d)(\d{3}(\.|,|$))/, '$1\.$2');
	}
	return num;
}


function findProdsToAddToBasket(paramTheButton, pageId){

  var hiddenLink = paramTheButton.parentNode.previousSibling.firstChild.firstChild.href;
  var inputs = Tangora.DOM.GetCollectionByClassName(document, 'input', 'howMany');
  
  //var pageId = '{system.page.id}';
  
  var itemIdConcat = '';
  var theNumberSelectedConcat  = '';
  
  for (var i = 0; i<inputs.length; i++){
  var theNumberSelected = inputs[i].value;
   if (theNumberSelected != '0'){
	var lineId = inputs[i].id;
	var firstUnderscore = lineId.indexOf("_");
	var lastUnderscore = lineId.lastIndexOf("_") + 1;
	var itemId = lineId.substring(firstUnderscore+1, lastUnderscore-1);
	
	itemIdConcat+=(itemId+'<,[].>');
	theNumberSelectedConcat+=(theNumberSelected+';');
	//alert ('items: '+itemIdConcat +', numbers: '+ theNumberSelectedConcat);
	//cibeDoAddToBasket (itemId,theNumberSelected, pageId);
    }
  }
	cibeDoAddToBasket (itemIdConcat,theNumberSelectedConcat, pageId);
	//setTimeout(document.location = hiddenLink,550);
	document.location = hiddenLink;
}



function cibeDoAddToBasket(productid,count,pageId) {

  //list id 300064 and not 30061?
  URL='/page'+pageId+'.aspx?isbasket=1&pageid='+pageId+'&listid=-300064&action=add&closeatonce=1&productid='+productid+'&count='+count;
    if (document.getElementById ('MiniBasketPageId')) {
	URL=URL+'&minibasket=2&minibasketpageid='+document.getElementById ('MiniBasketPageId').innerHTML+'&rnd='+RandomName(4);
    }
  tsAjax.innerHTML(URL,'tsAjax','default',null,null,AddToBasketDone);

}

//AddToBasketDone and Showbaseket automatically generated
/*
function AddToBasketDone() {
  if (tsAjax.storage['default'].ajaxObj.readyState==4) {
    if (document.getElementById ('MiniBasketPageId')) {
	var obj=document.getElementById ('MiniBasketFrame');
	obj.src='page'+document.getElementById ('MiniBasketPageId').innerHTML+'.aspx?isbasket=1&pageid='+document.getElementById ('MiniBasketPageId').innerHTML+'&listid=-300064&minibasketbgload=1&rnd='+RandomName(4);
    }
}
}
function ShowBasket() {
  URL='/page1439.aspx?isbasket=1&pageid=1439&listid=-300061';
  location.replace (URL);
}
*/





/*function for nordiske markedsdage 2008 
sets hidden 'navn' field with concatenated fornavn and efternavn fields from external user udvidelsesliste*/
function populateHiddenName(){
	var fullNameField = document.getElementById("user_50");
	var firstNameField = document.getElementById("user_2824");
	var lastNameField = document.getElementById("user_2825");
	fullNameField.value = firstNameField.value + " " + lastNameField.value;
	//if (document.location.href.indexOf('debug')>-1) alert('debugging > '+fullNameField.value);
}


/* funtion for klimakongress hideshow - tilføjet af Tangora 09/04-08 */
function showHideElement(paramThis){
var targetDiv = paramThis.nextSibling;
var targetImg = paramThis.firstChild;
if (targetDiv.className == 'showHideContentHidden'){
targetDiv.className = 'showHideContentShown';
targetImg.src = '/media/system/arrowOpen.gif';
}else if (targetDiv.className == 'showHideContentShown'){
targetDiv.className = 'showHideContentHidden';
targetImg.src = '/media/system/arrowClosed.gif';
}
return false;
}/* end funtion for klimakongress hideshow */

/*custom function tangora for nsnmwn 
which duplicates username (always an email)
and puts it into a hidden email field*/

function duplicateEmail(){
var sourceEmail = document.getElementById("user_10");
var targetEmail = document.getElementById("user_160");
targetEmail.value = sourceEmail.value;
//if (document.location.href.indexOf('debug')>-1) alert('debugging > '+targetEmail.value);
}

/*custom function tangora for nsnmwn 
which duplicates startdato value
and puts it into a hidden slutdato field*/

function duplicateStartdato(){
var sourceDato= document.getElementById("booking_1000");
var targetDato = document.getElementById("booking_1010");
targetDato.value = sourceDato.value;
}



/*custom function tangora for nsnmwn 
empties basket before adding new item
so you can only have one at a time*/

function NewAddToBasket(itemID, pageID){
//alert("/page"+pageID+".aspx?isbasket=1&pageid="+pageID+"&listid=-300021&action=emptybasket");
tsAjax.innerHTML ("/page"+pageID+".aspx?isbasket=1&pageid="+pageID+"&listid=-300049&action=emptybasket");
AddToBasket(itemID);
}



/*	
	ClientScript udviklet for Culturing A/S til www.BridgingCopenhagen.com 
	af Tangora Software A/S		
	
	NOTE: addHandlers bliver kaldt fra sidste celle i det avancerede layout for formularen på side 1 og 3. Side 3 har desuden 13 hidden IFRAMES med id IF0-IF12
		
*/

function resetPasswordFields() {
	if (document.forms.nokiacmdprofile) {
		var p1 = document.forms.nokiacmdprofile.idpassword;
		var p2 = document.forms.nokiacmdprofile.idpassword2;
		if (p1 && p2) {
			p1.id="idpassword_1";
			var new1 = document.createElement("INPUT");
			new1.id="idpassword";
			new1.type="password";
			new1.value=p1.value;
			new1.name=p1.name;
			new1.size=p1.size;
			new1.title=p1.title;
//			new1.style=p1.style;
			p1.parentNode.insertBefore(new1,p1);
			p1.parentNode.removeChild(p1);

			p2.id="idpassword2_1";
			var new2 = document.createElement("INPUT");
			new2.id="idpassword2";
			new2.type="password";
			new2.value=p2.value;
			new2.name=p2.name;
			new2.size=p2.size;
			new2.title=p2.title;
//			new2.style=p2.style;
			p2.parentNode.insertBefore(new2,p2);
			p2.parentNode.removeChild(p2);
		}
	}
}

window.addEvent (window, "onload", removeCreditCardHolder);
window.addEvent (window, "onload", resetPasswordFields);


function removeCreditCardHolder() {
	if (document.getElementById('shoppinglist_1283')) {
		document.getElementById('shoppinglist_1283').value = "";
	}
}

function connectFormAndBasket() {
	var cfv = GetCookieValue ("bridging","formvalue");
	var fld = document.getElementById("shoppinglist_1567").value = cfv;
}

// Generic event handler that handles the difference between IE style and Gecko style event handlers
function addEvent(element, eventname, func) {
	if(window.addEventListener) {    
		if (eventname=="onclick") {eventname="click"}
		if (eventname=="onload") {eventname="load"}
		element.addEventListener(eventname, func, false);
	} else if (element.attachEvent) {
		element.attachEvent(eventname, func)
	}
}

// Adds handlers according the page in question (page in the formula)
function addHandlers(page) {
	var frm = document.forms.BridgingCopenhagen;
	if (page==1) {
		// Adds handlers to enable/disable all controls based on the Affiliate
		var coll = frm.affiliate;
		//addEvent(coll[0], "onclick", function () {pageActivator(0)});
		//addEvent(coll[1], "onclick", function () {pageActivator(1)});
		//pageActivator(1);
		//disableAffiliate();
		frm.next.disabled=false;
	} else if (page==3) {
		// Adds handlers to ensure the correct flow based on the various selections 
		toemKurv(); // empty the basket in case of multiple orders
		
		addEvent(frm.full_participation,"onclick",function () {testFull()});
		addEvent(frm.par_6,"onclick",function () {updateState()});
		addEvent(frm.par_7,"onclick",function () {updateState()});
		addEvent(frm.par_8,"onclick",function () {updateState()});
     
		// Add handlers to produce the selectbox relationship
		ccc1 = new DualCombo('ccc1',frm.mon_sess,frm.mon_sess_2);
		ccc2 = new DualCombo('ccc2',frm.tue_sess1,frm.tue_sess1_2);
		ccc3 = new DualCombo('ccc3',frm.tue_sess2,frm.tue_sess2_2);
		ccc4 = new DualCombo('ccc4',frm.tue_sess3,frm.tue_sess3_2);
		ccc5 = new DualCombo('ccc5',frm.tue_ses4,frm.tue_ses4_2);
		ccc6 = new DualCombo('ccc6',frm.wed_ses5,frm.wed_ses5_2);
		
		// Set up preliminary state
		updateState();
	} else if (page==211) {
		var frm = document.forms.rediger211;
		addEvent(frm.extrafield2823,"onchange",function() {CountryChange()});
	} else if (page==215) {
		var frm = document.forms.rediger215;
		addEvent(frm.extrafield2940,"onchange", function () {NokiaBGroupChange()});
		addEvent(frm.extrafield2823,"onchange",function () {CountryChangeSequel()});
		NokiaBGroupChange();
	} else if (page==218) {
		var frm = document.forms.rediger218;
		addEvent(frm.extrafield2940,"onchange", function () {NokiaBGroupChange()});
		NokiaBGroupChange();
	} else if (page==224) {
		var frm = document.forms.nokiacmdprofile;
		frm.state.disabled=true;
		addEvent(frm.country,"onchange",function () {CountryChangeSequel2()});
	} else if (page==225) {
		var frm = document.forms.nokiacmdprofile;
		frm.state.disabled=true;
		addEvent(frm.country,"onchange",function () {CountryChangeSequel2()});
		addEvent(frm.businessgroup,"onchange", function () {NokiaBGroupChange2()});
		NokiaBGroupChange2();
	}
}

function CountryChange()
{
	var frm = document.forms.rediger211;
	var countryfield = frm.extrafield2823;
	var statefield = frm.extrafield2946;
	
	statefield.disabled = (countryfield.options[countryfield.selectedIndex].value != "239");
}

function CountryChangeSequel()
{
	var frm = document.forms.rediger215;
	var countryfield = frm.extrafield2823;
	var statefield = frm.extrafield2946;
	
	statefield.disabled = (countryfield.options[countryfield.selectedIndex].value != "239");
}

function CountryChangeSequel2()
{
	var frm = document.forms.nokiacmdprofile;
	var countryfield = frm.country;
	var statefield = frm.state;
	
	statefield.disabled = (countryfield.options[countryfield.selectedIndex].value != "239");
}

function NokiaBGroupChange() {
	var frm = document.forms.rediger215;
	if (!frm) frm = document.forms.rediger218;
	var groupField = frm.extrafield2940;
	var selectedGroup = groupField.options[groupField.selectedIndex].text;
	var buArr = [];
	var buField = frm.extrafield2941;
	var salField = frm.extrafield2942;
	if (typeof(nokiaOptions1)=="undefined") {
		nokiaOptions1 = new Array();
		for (var i=0;i<buField.options.length;i++) {
			nokiaOptions1[buField.options[i].text] = buField.options[i].value;
		}
	}
	switch (selectedGroup) {
		case "CMO/MP" :
			buArr = new Array("MP SMO Europe", "MP SMO Global", "MP Business Group","MP & CMO Europe marketing","MP Marketing Global & CMO Marketing other than Europe","CMO Europe Sales","CMO Product Mgmnt, Business Dev & Channel Dev, Global & Europe","CMO Sales & Mktg MEA","CMO Sales & Mktg APAC","CMO Sales & Mktg Americas","CMO Sales & Mktg Latin America");
			break;
		case "M" : 
			buArr = new Array("Sales & channel mgmt","Multimedia Experiences ME","Multimedia Computers MC","Convergence Produts CP","Strategy and Technology","Marketing");
			break;
		case "ES" :
			buArr = new Array("Americas - Sales & Marketing","APAC - Sales & Marketing","Greater China Sales & Marketing","EMEA - Sales & Marketing","Global Channel","UK/Ireland Sales","E & SE Sales","Nordics Sales","Germany/Alps Sales","Italy Sales");
			break;
		case "NET" :
			buArr = new Array("NET-wide functions","Core","Radio","Services","APAC","China","WE","CEMEA","NAM","LAM","Vodafone");
			break;
		case "TP" :
			buArr = new Array("TP");
			break;
		case "SRO" :
			buArr = new Array("MSM","FN");
			break;
		case "NHO" :
			buArr = new Array("NHO");
			break;
		case "NVO" :
			buArr = new Array("NVO");
			break;
		case "Comms" :
			buArr = new Array("Comms");
			break;
		case "Industry & Financial analysts" :
			buArr = new Array("Industry & Financial analysts");
			break;
	}
	var count = buField.options.length;
	for (var i=0;i	<= count;i++) {
		buField.options[count-i]=null;
		salField.options[count-i]=null;
	}
	for (var i=0; i<buArr.length;i++) {
		var opt = document.createElement("OPTION");
		opt.text = buArr[i];
		opt.value= nokiaOptions1[opt.text];
		buField.options[i] = opt;
		var opt = document.createElement("OPTION");
		opt.text = buArr[i];
		opt.value= nokiaOptions1[opt.text];
		salField.options[i] = opt;
	}
}

function NokiaBGroupChange2() {
	var frm = document.forms.nokiacmdprofile;
	var groupField = frm.businessgroup;
	var selectedGroup = groupField.options[groupField.selectedIndex].text;
	var buArr = [];
	var buField = frm.businessunit;
	var salField = frm.subarealevel;
	if (typeof(nokiaOptions1)=="undefined") {
		nokiaOptions1 = new Array();
		for (var i=0;i<buField.options.length;i++) {
			nokiaOptions1[buField.options[i].text] = buField.options[i].value;
		}
	}
	switch (selectedGroup) {
		case "CMO/MP" :
			buArr = new Array("MP SMO Europe", "MP SMO Global", "MP Business Group","MP & CMO Europe marketing","MP Marketing Global & CMO Marketing other than Europe","CMO Europe Sales","CMO Product Mgmnt, Business Dev & Channel Dev, Global & Europe","CMO Sales & Mktg MEA","CMO Sales & Mktg APAC","CMO Sales & Mktg Americas","CMO Sales & Mktg Latin America");
			break;
		case "M" : 
			buArr = new Array("Sales & channel mgmt","Multimedia Experiences ME","Multimedia Computers MC","Convergence Produts CP","Strategy and Technology","Marketing");
			break;
		case "ES" :
			buArr = new Array("Americas - Sales & Marketing","APAC - Sales & Marketing","Greater China Sales & Marketing","EMEA - Sales & Marketing","Global Channel","UK/Ireland Sales","E & SE Sales","Nordics Sales","Germany/Alps Sales","Italy Sales");
			break;
		case "NET" :
			buArr = new Array("NET-wide functions","Core","Radio","Services","APAC","China","WE","CEMEA","NAM","LAM","Vodafone");
			break;
		case "TP" :
			buArr = new Array("TP");
			break;
		case "SRO" :
			buArr = new Array("MSM","FN");
			break;
		case "NHO" :
			buArr = new Array("NHO");
			break;
		case "NVO" :
			buArr = new Array("NVO");
			break;
		case "Comms" :
			buArr = new Array("Comms");
			break;
		case "Industry & Financial analysts" :
			buArr = new Array("Industry & Financial analysts");
			break;
	}
	var count = buField.options.length;
	for (var i=0;i	<= count;i++) {
		buField.options[count-i]=null;
		salField.options[count-i]=null;
	}
	for (var i=0; i<buArr.length;i++) {
		var opt = document.createElement("OPTION");
		opt.text = buArr[i];
		opt.value= nokiaOptions1[opt.text];
		buField.options[i] = opt;
		var opt = document.createElement("OPTION");
		opt.text = buArr[i];
		opt.value= nokiaOptions1[opt.text];
		salField.options[i] = opt;
	}
}

function evaluateForm() {
	// When the form is submittet the various selections is added to the basket
	var frm = document.forms.BridgingCopenhagen;
	var p6 = frm.par_6;
	var p7 = frm.par_7;
	var p8 = frm.par_8;
	var full = frm.full_participation;   
   	var xtraNights = frm.xtra_nights;
	if (full.checked) {
		PutIKurv(4);
		if (xtraNights) {
			if (xtraNights.selectedIndex>0) {
				PutIKurv(14,xtraNights.selectedIndex);
			}
		}
	}
	if (p6.checked) {
		PutIKurv(5);
	}
	if (p7.checked) {
		PutIKurv(6);
	}
	if (p8.checked) {
		PutIKurv(7);
	}
	var hotels = frm.hotel;
	if (hotels[0].checked) {
		PutIKurv(9);	
	}
	if (hotels[1].checked) {
		PutIKurv(10);	
	}
	if (hotels[2].checked) {
		PutIKurv(11);	
	}
	if (hotels[3].checked) {
		PutIKurv(12);	
	}
	var dinner = frm.dinner_6_7;
	if (dinner.checked) {
		PutIKurv(8);	
	}
	// Set at grace period to ensure that all transactions has been committed
	window.setTimeout(proceed,4000);
}

function proceed() {
	// Post the form
	var frm = document.forms.BridgingCopenhagen;
	frm.submit();
}

function handleRadioState(e, state) {
	// Set state on a Radio group
	for (var i=0;i<e.length;i++) {
		e[i].disabled=state;
	}
}

function updateState() {
	// Sets the current state based on current selections
	var frm = document.forms.BridgingCopenhagen;
	var p6 = frm.par_6;
	var p7 = frm.par_7;
	var p8 = frm.par_8;
	var full = frm.full_participation;
   	var xtraNights = frm.xtra_nights;


	if (p6.checked || p7.checked || p8.checked) {
		full.disabled=true;
		if (xtraNights) xtraNights.selectedIndex=0;
		if (xtraNights) xtraNights.disabled=true;
	} else {
		full.disabled=false;
		if (xtraNights) xtraNights.disabled=false;
	}

	updateHotelState();
	updateBreakoutState();
}

function updateBreakoutState() {
	// Sets the state of the breakout sessions
	var frm = document.forms.BridgingCopenhagen;
	var p6 = frm.par_6;
	var p7 = frm.par_7;
	var p8 = frm.par_8;
	var full = frm.full_participation;
	if (full.checked) {
		frm.mon_sess.disabled=false;
		frm.mon_sess_2.disabled=false;
		frm.tue_sess1.disabled=false;
		frm.tue_sess1_2.disabled=false;
		frm.tue_sess2.disabled=false;
		frm.tue_sess2_2.disabled=false;
		frm.tue_sess3.disabled=false;
		frm.tue_sess3_2.disabled=false;
		frm.tue_ses4.disabled=false;
		frm.tue_ses4_2.disabled=false;
		frm.wed_ses5.disabled=false;
		frm.wed_ses5_2.disabled=false;
	} else {
		frm.mon_sess.disabled=true;
		frm.mon_sess_2.disabled=true;
		frm.tue_sess1.disabled=true;
		frm.tue_sess1_2.disabled=true;
		frm.tue_sess2.disabled=true;
		frm.tue_sess2_2.disabled=true;
		frm.tue_sess3.disabled=true;
		frm.tue_sess3_2.disabled=true;
		frm.tue_ses4.disabled=true;
		frm.tue_ses4_2.disabled=true;
		frm.wed_ses5.disabled=true;
		frm.wed_ses5_2.disabled=true;
	}
	if (p6.checked) {
		frm.mon_sess.disabled=false;
		frm.mon_sess_2.disabled=false;
	}
	if (p7.checked) {
		frm.tue_sess1.disabled=false;
		frm.tue_sess1_2.disabled=false;
		frm.tue_sess2.disabled=false;
		frm.tue_sess2_2.disabled=false;
		frm.tue_sess3.disabled=false;
		frm.tue_sess3_2.disabled=false;
		frm.tue_ses4.disabled=false;
		frm.tue_ses4_2.disabled=false;
	}
	if (p8.checked) {
		frm.wed_ses5.disabled=false;
		frm.wed_ses5_2.disabled=false;
	}
}

function updateHotelState() {
	// Sets the legal selections for the hotel state.
	var frm = document.forms.BridgingCopenhagen;
	var p6 = frm.par_6;
	var p7 = frm.par_7;
	var p8 = frm.par_8;
	var hotels = frm.hotel;
	hotels[0].disabled=true;
	hotels[1].disabled=true;
	hotels[2].disabled=true;
	hotels[3].disabled=true;
	if (p6.checked) {
		hotels[0].disabled=false;
		hotels[1].disabled=false;
	}
	if (p7.checked) {
		hotels[1].disabled=false;
		hotels[2].disabled=false;
	}
	if (p8.checked) {
		hotels[2].disabled=false;
		hotels[3].disabled=false;
	}
}

function testFull() {
	// Set the states, if full participation is selected or deselected
	var frm = document.forms.BridgingCopenhagen;
	var e = frm.full_participation;   
	var xtraNights = frm.xtra_nights;

	if (e.checked) {	
		frm.par_6.checked=false; frm.par_6.disabled=true;
		frm.par_7.checked=false; frm.par_7.disabled=true;
		frm.par_8.checked=false; frm.par_8.disabled=true;
		frm.dinner_6_7.checked=false; frm.dinner_6_7.disabled=true;
		frm.hotel[0].checked=false;
		frm.hotel[1].checked=false;
		frm.hotel[2].checked=false;
		frm.hotel[3].checked=false;
		if (xtraNights) xtraNights.disabled=false;
		handleRadioState(frm.hotel, true);
	} else {
		frm.par_6.disabled=false;
		frm.par_7.disabled=false;
		frm.par_8.disabled=false;
		frm.dinner_6_7.disabled=false;
		if (xtraNights) xtraNights.selectedIndex=0;
		if (xtraNights) xtraNights.disabled=true;
		handleRadioState(frm.hotel, false);
	}
	updateState();
}

function disableAffiliate()
{
	var frm = document.forms.BridgingCopenhagen;
	var elms = frm.affiliate;
	elms[0].disabled = true;
	elms[1].disabled = true;
}

function pageActivator(i) {
	// Enables all controls if Affiliate is regional, and disables all if HQ
	var frm = document.forms.BridgingCopenhagen;
	if(i==0) {
	//if(i==1) {
		
		frm.lastname.disabled=true;
		frm.firstname.disabled=true;
		frm.call.disabled=true;
		frm.title.disabled=true;
		handleRadioState(frm.categor,true);
		frm.address.disabled=true;
		frm.postal.disabled=true;
		frm.country.disabled=true;
		frm.city.disabled=true;
		frm.phone.disabled=true;
		frm.mobile.disabled=true;
		frm.fax.disabled=true;
		frm.initials.disabled=true;
		frm.email.disabled=true;
		frm.ass_name.disabled=true;
		frm.ass_email.disabled=true;
		handleRadioState(frm.partici_before,true);
		handleRadioState(frm.bring_posters,true);
		frm.next.disabled=true;
	} else {
		frm.lastname.disabled=false;
		frm.firstname.disabled=false;
		frm.call.disabled=false;
		frm.title.disabled=false;
		handleRadioState(frm.categor,false);
		frm.address.disabled=false;
		frm.postal.disabled=false;
		frm.country.disabled=false;
		frm.city.disabled=false;
		frm.phone.disabled=false;
		frm.mobile.disabled=false;
		frm.fax.disabled=false;
		frm.initials.disabled=false;
		frm.email.disabled=false;
		frm.ass_name.disabled=false;
		frm.ass_email.disabled=false;
		handleRadioState(frm.partici_before,false);
		handleRadioState(frm.bring_posters,false);
		frm.next.disabled=false;
	}
}	

function PutIKurv(productid,count) {
	// Uses a hidden IFRAME to put the productid in the basket
	var URL = "";
	if (count) URL='/page191.aspx?isbasket=1&pageid=191&listid=-300015&action=add&closeatonce=0&productid='+productid+'&count='+count;
	else URL = '/page191.aspx?isbasket=1&pageid=191&listid=-300015&action=add&closeatonce=0&productid='+productid;
	var IFX = document.getElementById("IF"+productid);
	IFX.src=URL;
}

function toemKurv() {
	// Uses a hidden IFRAME to empty the basket
	var URL = "http://bridgingcopenhagen.com/page199.aspx?isbasket=1&pageid=199&listid=-300015&orgorderid=0&action=emptybasket";	
	var IF0 = document.getElementById("IF0");
	IF0.src=URL;
}


function DualCombo(aid, c1,c2) {
	
	/*
		Related mutually exclusive combobox class
		
		Parameter list:
			aid = A alphanumeric value that is the same as the global variable reference (see example below)
			c1  = A reference to the first selectbox
			c2  = A reference to the second selectbox
		
		Example:
			ccc1 = new DualCombo('ccc1',frm.mon_sess,frm.mon_sess_2);
	*/

	this.name = aid;
	this.cmb1 = c1;
	this.cmb2 = c2;   
	this.options = []; // Array of select options

	this.change = _change;
	this.init = _init;
	this.removeItem = _removeItem;   
	this.getRealIndex = _getRealIndex;
	this.restoreAllItems = _restoreAllItems;

	function _init() {
		// Hooks up the eventhandlers and stores the options of both selectboxes
		var myname = this.name;
		this.cmb1.onchange=function() {eval(myname+".change(this,'"+myname+"')")};
		this.cmb2.onchange=function() {eval(myname+".change(this,'"+myname+"')")};
		for (var i=0;i<this.cmb1.options.length;i++) {
			this.options[0,i]=this.cmb1.options[i];
			this.options[1,i][this.cmb2.name]=this.cmb2.options[i];
		}
	}	
   
	function _getRealIndex(cmb,index) {
		// Fetches the index as it would have been if all items was available
		if (index==0) return 0;
		var txt = cmb.options[index].text;
		for (var i=0;i<this.options.length;i++) {
			if (txt==this.options[i].text) return i;
		}
	}
   
	function _removeItem(cmb1,cmb2) {		
		// cmb1 = the combo selected in, cmb2 = the combo to remove from		
		var idx = this.getRealIndex(cmb2,cmb2.selectedIndex);
		this.restoreAllItems(cmb2);
		var removeIdx = this.getRealIndex(cmb1,cmb1.selectedIndex);
		if (removeIdx<idx && removeIdx!=0) idx-=1;	    
		if (cmb1.selectedIndex!=0) {
			cmb2.options[removeIdx]=null;			
		}
		cmb2.selectedIndex=idx;		
	}		
	
	function _restoreAllItems(cmb) {
		// Copies all the original items back to the selectbox			
		for(var i=cmb.options.length;i>0;i--) {
			cmb.options[i] = null;
		}	
		cmb.selectedIndex=-1;
		var idx = 0;
		if (cmb.name==this.cmb2.name) idx=1;
		for(var i=1;i<this.options.length;i++) {
			var opt = document.createElement("OPTION");
			opt.text = this.options[i].text;			
			cmb.options[i] = opt;
		}
	}

	function _change(o, dc) {
		// Event handler called on selectbox change
		var me = eval(dc);
		if (o.name==me.cmb1.name) {
			me.removeItem(me.cmb1, me.cmb2);
		} else {
			me.removeItem(me.cmb2, me.cmb1);
		}
	}
	
	this.init();
}

// Cookie manipulation functions

function SetCookieValue (name, key, value) {
	var argv = SetCookieValue.arguments;	 
	var argc = SetCookieValue.arguments.length;	
	var expires	= (argc	> 3) ? argv[3]:	null;  
	var path = (argc > 4) ?	argv[4] : null;	 
	var domain = (argc > 5)	? argv[5] : null;  
	var secure=(argc > 6) ?	argv[6] : false;  
	
	// read previous state
	var state=GetCookie(name);

	// no cookie?
	if (!state) {
		state="";
	} 
	// remove identifier if already set
	var pos=state.indexOf("&"+key+"=");
	if (pos>=0) {
		var pos2=state.indexOf("&", pos+1);
		if (pos2== -1) {
			pos2=state.length;
		}
		state=state.substr(0,pos)+state.substr(pos2);
	}
	
	// add new value
	if (typeof(value)!="undefined") {
		state+="&"+key+"="+escape(value);
	}

	// set cookie
	document.cookie	= name + "=" + state +	
		((expires == null) ? ""	: ("; expires="	+ expires.toGMTString())) +	
		((path == null)	? "" : ("; path=" +	path)) +  
		((domain ==	null) ?	"" : ("; domain=" +	domain)) +	  
		((secure ==	true) ?	"; secure" : "");
}

function SetCookie (name, value) {	
	var	argv = SetCookie.arguments;	 
	var	argc = SetCookie.arguments.length;	
	var	expires	= (argc	> 2) ? argv[2]:	null;  
	var	path = (argc > 3) ?	argv[3]	: null;	 
	var	domain = (argc > 4)	? argv[4] :	null;  
	var	secure=(argc > 5) ?	argv[5]	: false;  
	document.cookie	= name + "=" + escape (value) +	
		((expires == null) ? ""	: ("; expires="	+ expires.toGMTString())) +	
		((path == null)	? "" : ("; path=" +	path)) +  
		((domain ==	null) ?	"" : ("; domain=" +	domain)) +	  
		((secure ==	true) ?	"; secure" : "");
}

function GetCookie (name) {	 
	var	arg	= name + "=";  
	var	alen = arg.length;	
	var	clen = document.cookie.length;
	var i = 0;  
	while (i < clen) {	  
		var	j =	i +	alen;	 
		if (document.cookie.substring(i, j)	== arg)		 
		return getCookieVal	(j);	
		i =	document.cookie.indexOf(" ", i)	+ 1;	
		if(i ==	0) break;	
	}  
	return null;
}

function GetCookieValue (name, key) {
	var state=GetCookie(name);
	if (state) {
		var str="&"+key+"=";
		var pos=state.indexOf(str);
		if (pos>=0) {
			var pos2=state.indexOf("&", pos+1);
			if (pos2== -1) {
				pos2=state.length;
			}
			// remove prefix (key)
			pos+=str.length;
			return state.substr(pos, pos2-pos);
		}
	}
	return null;
}

function DeleteCookie (name) {	
	var	exp	= new Date();  
	exp.setTime	(exp.getTime() - 1);  
	var	cval = GetCookie (name);  
	document.cookie	= name + "=" + cval	+ "; expires=" + exp.toGMTString();
}

function getCookieVal(offset) {
	var	endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1) {
		endstr = document.cookie.length;
	}
	return unescape(document.cookie.substring(offset, endstr));
}

function getParam(paramName, valueStr) {

 // get value of paramName, pass url as valueStr 

 if (typeof(valueStr=='undefined')){

  valueStr = window.location.search;

 }

 var expr = eval("/[\\?|\\&]" + paramName + "=(.*?)\\&/");
 regex = new RegExp(expr);
 regex.global=true;
 regex.ignoreCase=true;

 // fix by NIS start
 var match = regex.exec(valueStr+'&'); 
 if (match != null) return RegExp.$1;
 return "";
 // fix by NIS end
}

function TableBuilder(strID)
{
	this.Element = document.createElement("table");
	this.Element.appendChild(document.createElement("tbody"));
	this.Element.id = strID;
	this.Columns = new Array();
	this.TextDisplayMode = "title";

	this.Init = function()
	{
		var tr = document.createElement("tr");
		
		var td = document.createElement("td");
		tr.appendChild(td);

		for(var i = 0; i < this.Columns.length; i++)
		{
			var td = document.createElement("td");
			td.innerHTML = this.Columns[i].Text;
			td.id = "tableheader_" + this.Columns[i].ID;
			td.className = "tableheader";
			tr.appendChild(td);
		}

		this.Element.tBodies[0].appendChild(tr);
	}

	this.AddColumn = function(strText, strID)
	{
		var c = new TableColumn(strID, strText);
		this.Columns.push(c);
	}

	this.AddRow = function(strID, strTitle, arrTours)
	{
		var row = document.createElement("tr");

		var td = document.createElement("td");
		td.innerHTML = strTitle;
		td.className = "tableheader";
		row.appendChild(td);

		var marker = 0;
		var counter = 0;
		var markerLimit = 9;

		var markedCells = new Array();
		var markedIntervals = new Array();
		var markedTitles = new Array();
		var markedClasses = new Array();

var index = 0;

		var cName = "";

		for(var i = 0; i < arrTours.length; i++)
		{
			markedCells.push(arrTours[i].split("$")[0]);
			markedIntervals.push(arrTours[i].split("$")[1]);
			markedTitles.push(arrTours[i].split("$")[2]);
			markedClasses.push(arrTours[i].split("$")[3]);
		}

		for(var i = 0; i < this.Columns.length; i++)
		{
			var td = document.createElement("td");
			td.id = strID + "_" + this.Columns[i].ID;

			if(marker == 0)
			{
				index = SearchArray(markedCells,this.Columns[i].ID);

				if(index > -1)
				{
					cName = "markedcell ";
					cName += (markedClasses[index] != "") ? markedClasses[index] : "counter" + index;	
					td.className = cName;

					if(this.TextDisplayMode == "title"  || this.TextDisplayMode == "both")
					{
						td.title = markedTitles[index];
					}
					else if(this.TextDisplayMode == "text" || this.TextDisplayMode == "both")
					{
						td.innerHTML = markedTitles[index];
					}

					marker++;
					markerLimit = markedIntervals[index];
				}
			}
			else if(marker >= markerLimit)
			{
				index = SearchArray(markedCells,this.Columns[i].ID);

				if(index > -1)
				{
					td.className = cName;

					if(this.TextDisplayMode == "title"  || this.TextDisplayMode == "both")
					{
						td.title = markedTitles[index];
					}
					else if(this.TextDisplayMode == "text" || this.TextDisplayMode == "both")
					{
						td.innerHTML = markedTitles[index];
					}

					marker = 1;
				}
				else
				{
					marker = 0;
				}
			}
			else if(marker < markerLimit)
			{
				td.className = cName;

				if(this.TextDisplayMode == "title"  || this.TextDisplayMode == "both")
				{
					td.title = markedTitles[index];
				}
				else if(this.TextDisplayMode == "text" || this.TextDisplayMode == "both")
				{
					td.innerHTML = markedTitles[index];
				}

				marker++;
			}

			row.appendChild(td);
		}

		this.Element.tBodies[0].appendChild(row);
	}
}

function TableColumn(strID, strTxt)
{
	this.ID = strID;
	this.Text = strTxt;
}

function SearchArray(sourceArr, strFind)
{
	for(var i = 0; i < sourceArr.length; i++)
	{
		if(sourceArr[i]==strFind) return i;
	}

	return -1;
}

//Grafisk-varevisning - tilføjet af TS-MSO 10-07-2008
function TableBuilder2(strID)
{
	this.Element = document.createElement("table");
	this.Element.appendChild(document.createElement("tbody"));
	this.Element.style.width = "100%";

	this.Element.id = strID;
	this.Element.className = "section";
	this.Columns = new Array();
	this.Columns[0] = new TableColumn("","");
	this.Rows = new Array();
	this._timerID = null;
	this.CurrentHoverDiv = null;

	this.Init = function()
	{

	}

	this.AddColumn = function(strLabel, strID)
	{
		var c = new TableColumn(strID, strLabel);
		this.Columns.push(c);
	}

	this.AddRow= function(strLabel,strPersons,arrItems)
	{
		var tr = new TableRow(strLabel,strPersons,arrItems);
		this.Rows.push(tr);
	}

	this.ImgOnMouseOverHandler = function(e)
	{
		if(!e) e = window.event;
		var srcElm = (window.event) ? window.event.srcElement : e.target;
		roomTable.CurrentHoverDiv = srcElm.previousSibling;

		if((roomTable.CurrentHoverDiv && srcElm == roomTable.CurrentHoverDiv) || srcElm.tagName == "DIV") return false;

		var elms = Tangora.DOM.GetCollectionByClassName("meetingroom_table","div","hover_div");

		for(var i = 0; i < elms.length; i++)
		{
			elms[i].style.display = "none";
		}

		roomTable.CurrentHoverDiv.style.display = "block";
		roomTable.ClearHideTimer();
	}

	this.HideHoverDiv = function(e)
	{
		roomTable.CurrentHoverDiv.style.display = "none";
	}

	this.ImgOnMouseOutHandler = function(e)
	{
		roomTable._timerID = window.setTimeout(roomTable.HideHoverDiv,1000);
	}

	this.ClearHideTimer = function()
	{
		window.clearTimeout(roomTable._timerID);
	}

	this.ImgOnClickHandler = function(e)
	{
		var s = (window.event) ? window.event.srcElement : e.target;
		AddToBasket2(s.itemID,1);
	}

	this.Render = function()
	{
		var tr = document.createElement("tr");
		tr.className = "header_row";
		var td = null;

		for(var i = 0; i < this.Columns.length; i++)
		{
			td = document.createElement("td");
			td.innerHTML = this.Columns[i].Text;
			if(i==0) td.style.width = "20%";
			tr.appendChild(td);
		}

		this.Element.childNodes[0].appendChild(tr);

		for(var i = 0; i < this.Rows.length; i++)
		{
			tr = document.createElement("tr");

			for(var x = 0; x < this.Columns.length; x++)
			{
				var img = document.createElement("img");

				td = document.createElement("td");
				if(i==0) td.style.width = "8%";

				if(x == 0)
				{
					td.className = "rowheader";
					td.innerHTML = this.Rows[i].Label;
					td.style.verticalAlign = "top";
					td.style.paddingTop = "25px";
				}
				else
				{
					td.id = "cell_" + this.Rows[i].ArrRecIDs[x-1];
					td.itemID = this.Rows[i].ArrRecIDs[x-1];
					td.style.verticalAlign = "top";
					img.itemID = this.Rows[i].ArrRecIDs[x-1];
					
					var bgUrl = this.Rows[i].ArrItemIDs[x-1] + "_";
					var div = null;

					if(this.Rows[i].ArrMarked[x-1] == 1)
					{
						td.className = "marked";

						if(this.Rows[i].ArrTexts[x-1] != "")
						{
							bgUrl += "3";

							div = document.createElement("div");
							div.innerHTML = this.Rows[i].ArrTexts[x-1];
							div.style.fontSize = "8px";
							div.style.fontFamily = "verdana";
							div.style.textTransform = "uppercase";
							div.style.textAlign = "center";
							//td.appendChild(div);
							//td.className += " own";

							//img.onmouseover = this.ImgOnMouseOverHandler;
							//img.onmouseout = this.ImgOnMouseOutHandler;
							//div.onmouseover = this.ClearHideTimer;
						}
						else
						{
							bgUrl += "3";
						}
					}
					else
					{
						Tangora.Events.AddHandler(img,"onclick",this.ImgOnClickHandler);
						bgUrl += "1";
					}
					
					
					img.src = "/media/" + bgUrl + ".jpg";
					td.appendChild(img);

					if(div != null)
					{
						td.appendChild(div);
						div = null;
					}
				}

				tr.appendChild(td);
			}

			this.Element.childNodes[0].appendChild(tr);
		}
	}
}

function TableRow(strLabel, arrItems)
{
	this.Label = strLabel;
	this.ArrRecIDs = new Array();
	this.ArrItemIDs = new Array();
	this.ArrTexts = new Array();
	this.ArrMarked = new Array();
	
	var tmp = arrItems.split("¤");

	for(var i = 0; i < tmp.length; i++)
	{
		var iAtt = tmp[i].split("$");

		this.ArrRecIDs.push(iAtt[0]);
		this.ArrItemIDs.push(iAtt[1]);
		this.ArrTexts.push(iAtt[2]);
		this.ArrMarked.push(iAtt[3]);
	}
}

function RemoveRoomSiblingTopicTool()
{
	this.TargetElementId = "";
	this.RoomNumber = 0;
	this.BookingDate = "";
	this.BookingTime = "";
	this.Debug = true;

	this.Init = function()
	{
		var targetElement = document.getElementById(this.TargetElementId);
		if(!targetElement)
		{
			if(this.Debug) alert("Target element not found (\"" + this.TargetElementId + "\")");
			return;
		}

		var topic = this.GetSiblingRoomTopic();

		for(var i = 0; i < targetElement.options.length; i++)
		{
			if(this.Debug) alert(targetElement.options[i].innerHTML + "=" + topic);

			if(targetElement.options[i].innerHTML == topic)
			{
				targetElement.removeChild(targetElement.options[i]);
				break;
			}
		}
	}

	this.GetSiblingRoomTopic = function()
	{
		var url = location.protocol + "//" + location.host + "/page1411.aspx?";
		url += "bookingdate=" + encodeURIComponent(this.BookingDate);
		url += "&bookingtime=" + encodeURIComponent(this.BookingTime);
		url += "&roomnr=" + this.RoomNumber;
		url += "&rndkey=" + Math.random(10);
		
		if(this.Debug) alert(url);

		var topic = tsAjax.innerHTML(url);

		return topic;
	}
}



/*
	Check form. Jens - InTouch
*/


function Validator(frmname)
{
    this.formobj=document.forms[frmname];
	if(!this.formobj)
	{
	  alert("BUG: couldnot get Form object "+frmname);
		return;
	}
	if(this.formobj.onsubmit)
	{
	 this.formobj.old_onsubmit = this.formobj.onsubmit;
	 this.formobj.onsubmit=null;
	}
	else
	{
	 this.formobj.old_onsubmit = null;
	}
	this.formobj.onsubmit=form_submit_handler;
	this.addValidation = add_validation;
	this.setAddnlValidationFunction=set_addnl_vfunction;
	this.clearAllValidations = clear_all_validations;
}
function set_addnl_vfunction(functionname)
{
  this.formobj.addnlvalidation = functionname;
}
function clear_all_validations()
{
	for(var itr=0;itr < this.formobj.elements.length;itr++)
	{
		this.formobj.elements[itr].validationset = null;
	}
}
function form_submit_handler()
{
	for(var itr=0;itr < this.elements.length;itr++)
	{
		if(this.elements[itr].validationset &&
	   !this.elements[itr].validationset.validate())
		{
		  return false;
		}
	}
	if(this.addnlvalidation)
	{
	  str =" var ret = "+this.addnlvalidation+"()";
	  eval(str);
    if(!ret) return ret;
	}
	return true;
}
function add_validation(itemname,descriptor,errstr)
{
	if(!this.formobj)
	{
		alert("BUG: the form object is not set properly");
		return;
	}//if
	var itemobj = this.formobj[itemname];

    if(itemobj.length && isNaN(itemobj.selectedIndex) )
    //for radio button; don't do for 'select' item
	{
		itemobj = itemobj[0];
	}	
	if(!itemobj)
	{
		alert("BUG: Couldnot get the input object named: "+itemname);
		return;
	}
	
	if(!itemobj.validationset)
	{
		itemobj.validationset = new ValidationSet(itemobj);
	}
	itemobj.validationset.add(descriptor,errstr);
}
function ValidationDesc(inputitem,desc,error)
{
    this.desc=desc;
	this.error=error;
	this.itemobj = inputitem;
	this.validate=vdesc_validate;
}
function vdesc_validate()
{
 if(!validateInput(this.desc,this.itemobj,this.error))
 {
    this.itemobj.focus();
		return false;
 }
 return true;
}
function ValidationSet(inputitem)
{
    this.vSet=new Array();
	this.add= add_validationdesc;
	this.validate= vset_validate;
	this.itemobj = inputitem;
}
function add_validationdesc(desc,error)
{
  this.vSet[this.vSet.length]= 
  new ValidationDesc(this.itemobj,desc,error);
}
function vset_validate()
{
   for(var itr=0;itr<this.vSet.length;itr++)
	 {
	   if(!this.vSet[itr].validate())
		 {
		   return false;
		 }
	 }
	 return true;
}
/*  checks the validity of an email address entered 
*   returns true or false 
*/ 
function validateEmail(email)
{
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
	var regexp_user=/^\"?[\w-_\.]*\"?$/;
	if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
	var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
	if(splitted[2].match(regexp_domain) == null) 
	{
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
	}// if
	return true;
    }
return false;
}

function TestComparison(objValue,strCompareElement,strvalidator,strError)
{
   var bRet=true;
   var objCompare=null;
   if(!objValue.form)
   {
	alert("BUG: No Form object!");
	  return false
   }
   objCompare = objValue.form.elements[strCompareElement];
   if(!objCompare)
   {
     alert("BUG: Element with name"+strCompareElement+" not found !");
     return false;
   }
   if(strvalidator != "eqelmnt")
   {
	if(isNaN(objValue.value)) 
	{ 
	  alert(objValue.name+": Should be a number "); 
	  return false; 
	}//if 
	if(isNaN(objCompare.value)) 
	{ 
	  alert(objCompare.name+": Should be a number "); 
	  return false; 
	}//if 	  
   }//if
   var cmpstr="";
   switch(strvalidator)
   {
	 case "eqelmnt": 
			{
			   if(objValue.value != objCompare.value)
			   {
 	 			cmpstr = " should be equal to ";
				bRet = false;
			   }//if
			   break;
			}//case
		case "ltelmnt":
			{
			if(eval(objValue.value) >= eval(objCompare.value)) 
				{
				 cmpstr =  " should be less than "; 
				 bRet = false;					
				}
			  break;
			}//case
		case "leelmnt":
			{
				if(eval(objValue.value) >  eval(objCompare.value)) 
				{
				 cmpstr =  " should be less than or equal to"; 
				 bRet = false;					
				}
			  break;
			}//case		
		case "gtelmnt":
			{
				if(eval(objValue.value) <=  eval(objCompare.value)) 
				{
				 cmpstr =  " should be greater than"; 
				 bRet = false;					
				}
			  break;
			}//case
		case "geelmnt":
			{
				if(eval(objValue.value) < eval(objCompare.value)) 
				{
				 cmpstr =  " should be greater than or equal to"; 
				 bRet = false;					
				}
			  break;
			}//case
   }//switch
   if(bRet==false)
   {
	if(!strError || strError.length==0)
	  {
	    strError = objValue.name + cmpstr + objCompare.value; 
	  }//if
	  alert(strError);
   }//if
   return bRet;
}
function TestSelMin(objValue,strMinSel,strError)
{
    var bret = true;
	var objcheck = objValue.form.elements[objValue.name];
	var chkcount =0;
	if(objcheck.length)
	{
		for(var c=0;c < objcheck.length;c++)
		{
		   if(objcheck[c].checked == "1")
		   {
		     chkcount++;
		   }//if
		}//for
	}
	else
	{
	  chkcount = (objcheck.checked == "1")?1:0;
	}
	var minsel = eval(strMinSel);
	if(chkcount < minsel)
	{
		if(!strError || strError.length ==0) 
		{ 
			strError = "Please Select atleast"+minsel+" check boxes for"+objValue.name;  
		}//if										   
		alert(strError); 
		bret = false;
	}
	return bret;
}

function TestDontSelectChk(objValue,chkValue,strError)
{
    var pass=true;
	var objcheck = objValue.form.elements[objValue.name];
    if(objcheck.length)
	{
		var idxchk=-1;
		for(var c=0;c < objcheck.length;c++)
		{
		   if(objcheck[c].value == chkValue)
		   {
		     idxchk=c;
			 break;
		   }//if
		}//for
		if(idxchk>= 0)
		{
		  if(objcheck[idxchk].checked=="1")
		  {
		    pass=false;
		  }
		}//if
	}
	else
	{
		if(objValue.checked == "1")
		{
			pass=false;
		}//if
	}//else
	if(pass==false)
	{
     if(!strError || strError.length ==0) 
	  { 
	  	strError = "Can't Proceed as you selected "+objValue.name;  
	  }//if			  
	  alert(strError);
	  
	}
    return pass;
}

function TestRequiredInput(objValue,strError)
{
 var ret = true;
    if(eval(objValue.value.length) == 0) 
    { 
	 if(!strError || strError.length ==0) 
	 { 
	   strError = objValue.name + " : Required Field"; 
	 }//if 
	 alert(strError); 
	 ret=false; 
    }//if 
return ret;
}

function TestMaxLen(objValue,strMaxLen,strError)
{
 var ret = true;
    if(eval(objValue.value.length) > eval(strMaxLen)) 
    { 
	if(!strError || strError.length ==0) 
	{ 
	  strError = objValue.name + " : "+ strMaxLen +" characters maximum "; 
	}//if 
	alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
	ret = false; 
    }//if 
return ret;
}

function TestMinLen(objValue,strMinLen,strError)
{
 var ret = true;
    if(eval(objValue.value.length) <  eval(strMinLen)) 
    { 
	if(!strError || strError.length ==0) 
	{ 
	  strError = objValue.name + " : " + strMinLen + " characters minimum  "; 
	}//if		   
	alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
	ret = false;   
    }//if 
return ret;
}

function TestInputType(objValue,strRegExp,strError,strDefaultError)
{
   var ret = true;

    var charpos = objValue.value.search(strRegExp); 
    if(objValue.value.length > 0 &&  charpos >= 0) 
    { 
     if(!strError || strError.length ==0) 
	{ 
	  strError = strDefaultError;
	}//if 
	alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
	ret = false; 
    }//if 
 return ret;
}

function TestLessThan(objValue,strLessThan,strError)
{
var ret = true;
	  if(isNaN(objValue.value)) 
	  { 
	    alert(objValue.name+": Should be a number "); 
	    ret = false; 
	  }//if 
	  else
	  if(eval(objValue.value) >=  eval(strLessThan)) 
	  { 
	    if(!strError || strError.length ==0) 
	    { 
		strError = objValue.name + " : value should be less than "+ strLessThan; 
	    }//if		   
	    alert(strError); 
	    ret = false;		     
	   }//if   
return ret;	    
}

function TestGreaterThan(objValue,strGreaterThan,strError)
{
var ret = true;
     if(isNaN(objValue.value)) 
     { 
	 alert(objValue.name+": Should be a number "); 
	 ret = false; 
     }//if 
	 else
     if(eval(objValue.value) <=  eval(strGreaterThan)) 
	{ 
	  if(!strError || strError.length ==0) 
	  { 
	    strError = objValue.name + " : value should be greater than "+ strGreaterThan; 
	  }//if		   
	  alert(strError); 
	  ret = false;
	}//if  
return ret;	     
}

function TestRegExp(objValue,strRegExp,strError)
{
var ret = true;
    if(!objValue.value.match(strRegExp)) 
    { 
	if(!strError || strError.length ==0) 
	{ 
	  strError = objValue.name+": Invalid characters found "; 
	}//if										   
	alert(strError); 
	ret = false;			 
    }//if 
return ret;
}


//*  Checks each field in a form 
function validateInput(strValidateStr,objValue,strError) 
{ 
    var ret = true;
    var epos = strValidateStr.search("="); 
    var  command  = ""; 
    var  cmdvalue = ""; 
    if(epos >= 0) 
    { 
     command  = strValidateStr.substring(0,epos); 
     cmdvalue = strValidateStr.substr(epos+1); 
    } 
    else 
    { 
     command = strValidateStr; 
    } 

    switch(command) 
    { 
	  case "req": 
	  case "required": 
	   { 
		   ret = TestRequiredInput(objValue,strError)
	     break;		 
	   }
	  case "maxlength": 
	  case "maxlen": 
	    { 
			 ret = TestMaxLen(objValue,cmdvalue,strError)
		 break; 
	    }
	  case "minlength": 
	  case "minlen": 
	     { 
			 ret = TestMinLen(objValue,cmdvalue,strError)
		 break; 
	     }
	  case "alnum": 
	  case "alphanumeric": 
	     { 
				ret = TestInputType(objValue,"[^A-Za-z0-9]",strError, 
						objValue.name+": Only alpha-numeric characters allowed ");
				break; 
	     }
	  case "alnum_s": 
	  case "alphanumeric_space": 
	     { 
				ret = TestInputType(objValue,"[^A-Za-z0-9\\s]",strError, 
						objValue.name+": Only alpha-numeric characters and space allowed ");
				break; 
	     }		   
	  case "num": 
	  case "numeric": 
	     { 
		    ret = TestInputType(objValue,"[^0-9]",strError, 
						objValue.name+": Only digits allowed ");
		    break;		   
	     }
	  case "alphabetic": 
	  case "alpha": 
	     { 
		    ret = TestInputType(objValue,"[^A-Za-z]",strError, 
						objValue.name+": Only alphabetic characters allowed ");
		    break; 
	     }
	  case "alphabetic_space": 
	  case "alpha_s": 
	     { 
		    ret = TestInputType(objValue,"[^A-Za-z\\s]",strError, 
						objValue.name+": Only alphabetic characters and space allowed ");
		    break; 
	     }
	  case "lt": 
	  case "lessthan": 
	   { 
    		ret = TestLessThan(objValue,cmdvalue,strError);
		  break; 
	   }
	  case "gt": 
	  case "greaterthan": 
	   { 
			ret = TestGreaterThan(objValue,cmdvalue,strError);
		break; 
	   }
	  case "regexp": 
	   { 
			ret = TestRegExp(objValue,cmdvalue,strError);
	     break; 
	   }
	  case "dontselect": 
	   { 
			 ret = TestDontSelect(objValue,cmdvalue,strError)
		 break; 
	   }
		case "selmin":
		{
			ret = TestSelMin(objValue,cmdvalue,strError);
			break;
		}

		//Comparisons
		case "eqelmnt": 
		case "ltelmnt":
		case "leelmnt":
		case "gtelmnt":
		case "geelmnt":
		{
		    return TestComparison(objValue,cmdvalue,command,strError);
    		break;
		}
    }//switch 
    return ret; 
}

/* TANGORA NWHOTELS 2011 GORUP RETAIL AND CREW */
function NW() {

	var clicked = false;
	var productid = '';
	var selectAmount = null;
	var min = 0;
	var max = 9999;

	this.Init = function (idproduct) {
		$elm('arrival').onchange = nwhotels.LoadMinAmount;
		$elm('departure').onchange = nwhotels.LoadMinAmount;
		HideNormalButton();
		productid = idproduct;
		selectAmount = $elm('productcount' + productid);
		min = Number(selectAmount.options[selectAmount.selectedIndex].value);
	}

	function HideNormalButton() {
		var elm = $elms('.numberselect a');
		if (elm.length > 0) {
			elm[0].style.display = 'none';
		}
	}

	this.LoadMinAmount = function () {


		for (var o = selectAmount.options.length - 1; o > -1; o--) {
			selectAmount.options[o] = null;
		}
		var arrivalElm = $elm('arrival');
		var departureElm = $elm('departure');

		var arrivaldate = SplitDate(arrivalElm.options[arrivalElm.selectedIndex].text);
		var arrivalid = arrivalElm.options[arrivalElm.selectedIndex].value;
		var departuredate = SplitDate(departureElm.options[departureElm.selectedIndex].text);
		var departureid = departureElm.options[departureElm.selectedIndex].value;

		var ArrDate = new Date(arrivaldate[2], arrivaldate[1] - 1, arrivaldate[0]);
		var DepDate = new Date(departuredate[2], departuredate[1] - 1, departuredate[0]);

		var ids = '0';
		if (ArrDate < DepDate) {
			var start = arrivalElm.selectedIndex;
			var end = departureElm.selectedIndex;
			var endid = departureElm.options[departureElm.selectedIndex].value;
			if (start === end || end === 4) {
				end++;
			}

			var counter = start;
			for (var i = start; i < end; i++) {
				var hid = arrivalElm.options[i].value;
				if (i === counter) {
					ids = hid;
				} else {
					ids += ',' + hid;
				}
			}
		}

		var data = $ts.ajax({
			url: '/page2371.aspx?hotelids=' + ids,
			type: 'GET',
			async: false
		});

		data = eval(data);
		if (data.records.length > 0) {
			max = Number(data.records[0].Beholdning);
		}

		if (min <= max && max < 9999) {
			for (var s = min; s <= max; s++) {
				var opt = $ts.createElement('option');
				opt.text = s;
				opt.value = s;
				try {
					selectAmount.add(opt, null);
				} catch (ex) {
					selectAmount.add(opt);
				}
			}
		} else {
			var opt = $ts.createElement('option');
			opt.text = min;
			opt.value = max;
			try {
				selectAmount.add(opt, null);
			} catch (ex) {
				selectAmount.add(opt);
			}
		}
	}

	function SplitDate(strDate) {
		var splitdate = [];

		var temp = strDate.split(' ');
		var temp1 = temp[0].split('-');

		splitdate[0] = Number(temp1[0]);
		splitdate[1] = Number(temp1[1]);
		splitdate[2] = Number(temp1[2]);

		return splitdate;
	}

	this.Book = function (pageid) {
		var stop = false;
		if (!clicked) {
			clicked = true;
			var arrivalElm = $elm('arrival');
			var departureElm = $elm('departure');
			var amountElm = $elm('productcount' + productid);
			var count = amountElm.options[amountElm.selectedIndex].value;

			var arrivaldate = SplitDate(arrivalElm.options[arrivalElm.selectedIndex].text);
			var arrivalid = arrivalElm.options[arrivalElm.selectedIndex].value;
			var departuredate = SplitDate(departureElm.options[departureElm.selectedIndex].text);
			var departureid = departureElm.options[departureElm.selectedIndex].value;

			var ArrDate = new Date(arrivaldate[2], arrivaldate[1] - 1, arrivaldate[0]);
			var DepDate = new Date(departuredate[2], departuredate[1] - 1, departuredate[0]);

			if (ArrDate < DepDate) {
				var start = arrivalElm.selectedIndex;
				var end = departureElm.selectedIndex;
				var endid = departureElm.options[departureElm.selectedIndex].value;
				//if (start === end || end === 4) {
				//	end++;
				//}
				var ids = '';
				var counter = start;
				for (var i = start; i <= end; i++) {
					var hid = arrivalElm.options[i].value;

					if (i === counter) {
						ids = hid;
					} else {
						ids += ',' + hid;
					}

					$ts.ajax({
						url: '/page' + pageid + '.aspx?isbasket=1&pageid=' + pageid + '&listid=-300177&action=add&productid=' + hid + '&count=' + count + '&nojs=1',
						type: 'GET',
						async: false
					});
				}



				var data = $ts.ajax({
					url: '/page2371.aspx?hotelids=' + ids,
					type: 'GET',
					async: false
				});

				data = eval(data);

				if (data.records.length > 0) {
					max = Number(data.records[0].Beholdning);
				}
				if (count > max) {
					stop = true;
					if (min <= max && max < 9999) {
						for (var s = min; s <= max; s++) {
							var opt = $ts.createElement('option');
							opt.text = s;
							opt.value = s;
							try {
								selectAmount.add(opt, null);
							} catch (ex) {
								selectAmount.add(opt);
							}
						}
					} else {
						var opt = $ts.createElement('option');
						opt.text = max;
						opt.value = max;
						try {
							selectAmount.add(opt, null);
						} catch (ex) {
							selectAmount.add(opt);
						}
					}
				}

				if (stop) {
					alert('The selected number of rooms superseeds the number of rooms available!');
				} else {
					document.location.href = '/page' + pageid + '.aspx?isbasket=1&pageid=' + pageid + '&listid=-300177&orgorderid=0';
				}

			} else {
				alert('Departure date must occur after arrival date!');
			}
			clicked = false;
		}
	}
}

var nwhotels = new NW();
