// WERA.JS

var DISABLED_COLOR = "silver";

// Försäkring om att alla variabler finns oavsätt om språkfil inkluderats
if(FORM_COMPLETION==null)
	//var FORM_COMPLETION 	= "The form is incomplete\nFill out this field please";
var FORM_COMPLETION 	= "Some required information is missing!\nPlease check:\n-Your name and address\n-Some events (yes/no)\n-Data for hotel accommodation\n (if hotel accommodation is chosen)\n-Data for credit card payment\n (if credit card payment is chosen)\n-Your permission for Internet publication\nof your personal data (if the registration\nform contains this question)";
if(DOUBLE_NAN==null)
	var DOUBLE_NAN			= "Incorrect value";
if(INT_NAN==null)
	var INT_NAN				= "Incorrect value";
if(INT_OUT_OF_RANGE==null)
	var INT_OUT_OF_RANGE	= "Incorrect value\nPlease enter a number between";
if(DATE_FAULT==null)
	var DATE_FAULT			= "Incorrect value.\n\nPlease enter dates in the following formats:\nYYMMDD or\nYYYYMMDD or\n";
if(FORM_RADIO_COMPLETE==null)
	var FORM_RADIO_COMPLETE = "Please chose a radiobutton";
if(MAXIMUM==null)
	var	MAXIMUM				= "A total of";
if(MAX_WORD==null)
	var MAX_WORD			= "words are allowed.\nYou've written";
if(MAX_CHAR==null)
	var MAX_CHAR			= "letters are allowed.\nYou've written";
if(ILLEGAL_HOUR_INTERVAL==null)	
	var ILLEGAL_HOUR_INTERVAL 	= "Incorrect value";
if(ILLEGAL_MINUTE_INTERVAL==null)
	var ILLEGAL_MINUTE_INTERVAL = "Incorrect value";
if(ILLEGAL_TIMEFORMAT==null)
	var ILLEGAL_TIMEFORMAT		= "Incorrect time format\nuse HHMM, HH.MM or HH MM";
if(CARD_EXPIRED==null)
	var CARD_EXPIRED			= "Card has expired";
if(ILLEGAL_EXPIRE_FORMAT==null)
	var ILLEGAL_EXPIRE_FORMAT	= "Incorrect time format\nuse MMYY, MM/YY or MM YY";	
if(ILLEGAL_MONTH_VALUE==null)	
	var ILLEGAL_MONTH_VALUE		= "Incorrect value"	
if(ILLEGAL_CURRENCY_FORMAT==null)	
	var ILLEGAL_CURRENCY_FORMAT = "Incorrect value";
if(ILLEGAL_CREDITCARD_NR==null)
	var ILLEGAL_CREDITCARD_NR	= "Incorrect value";
if(COMPLETE_COGOER==null)	
	var COMPLETE_COGOER			= "Add accompanying persons family name";
if(DECIMAL_SIGN==null)
	var DECIMAL_SIGN = ".";	
if(FUTURE_DATE==null)
	var FUTURE_DATE = 			"Incorrect date.\nThe date has already passed.";
if(ILLEGAL_PERSNR==null)	
	var ILLEGAL_PERSNR = 		"Incorrect value.\nCorrect formats are YYMMDDNNNN or YYMMDD-NNNN";	
if(WRONG_BROWSER==null)	
	var WRONG_BROWSER = 
	  "For this page, we recommend the following browsers:\n" +
	    "\tFor Windows - Internet Explorer 6.0 or later\n" +
      "\tFor Macintosh - Safari 2.0 or later\n" +
      "\tFor all platforms - Firefox 1.0 or later\n" +
    "If you are using another browser, we cannot guarantee\n" +
    "the function in all parts of this page.";
if(ALREADY_SUBMITTED==null)
	var ALREADY_SUBMITTED = 	"The form has been submitted. Please wait for response.";
if(NO_DELT_FEE==null)	
	var NO_DELT_FEE				= "Please choose a registration fee";
if(ILLEGAL_COGOER_COUNT==null)	
	var ILLEGAL_COGOER_COUNT	= "The number of accompanying persons must correspond with the number of accompanying person's fees";
if(NO_ROOMS_BUT_FEE==null)		
	var NO_ROOMS_BUT_FEE		= "Hotel acommodation is missing";
if(NO_HOTEL_FEE==null)
	var NO_HOTEL_FEE			= "Hotel deposit is missing";
if(OMITTED_PAYTYPE==null)	
	var OMITTED_PAYTYPE 		= "You have chosen an alternative payer for some of the activities.\nPlease complete the form with the relevant payment information.";
if(NO_AMOUNT_S2==null)	
	var NO_AMOUNT_S2 			= "You have chosen an alternative payer for some of the activities.\nPlease complete the form with the appropriate number for these activities.";
	
	
if(ERRORTITLE_1==null)
	var ERRORTITLE_1 			= "The 'On-line' Internet registration form is not <BR>available for the moment due to technical <BR>maintenance.";	
if(ERRORTEXT_1==null)	
	var ERRORTEXT_1				= "Please try again later. If not available for some hours, <BR>please contact MCI:<BR>Telephone: +46 8 54 65 15 00<BR>Telefax: +46 8 54 65 15 99<BR>Email: <u><a href='mailto:confirmation-sweden@mci-group.com'>confirmation-sweden@mci-group.com</a></u>";
if(ERRORTITLE_2==null)	
	var ERRORTITLE_2 			= "The 'On-line' Internet registration is now closed<BR>for this conference.";	
if(ERRORTEXT_2==null)	
	var ERRORTEXT_2				= "Please contact the conference secretariat at MCI:<BR>Telephone: +46 8 54 65 15 00<BR>Telefax: +46 8 54 65 15 99<BR>Email: <u><a href='mailto:confirmation-sweden@mci-group.com'>confirmation-sweden@mci-group.com</a></u>";	

if(WRONG_DEP_DATE==null)
	var WRONG_DEP_DATE = "Your hotel departure date must be after your arrival date."

	

var COMPLETE			= FORM_COMPLETION;

var TRACE	= false;		// debug - alert every functionname

var b2=0;

//----------------------------------------
//
// Kallas på onclick på en knapp av typen button (ej submit).
// Som första parameter tar funktionen formulärets id, sedan 
// kan alla fältnamn uppradas som måste vara ifyllda.
// 
// T.ex. <INPUT TYPE="BUTTON"...onClick="ensureOnSubmit('form1','text1','radio1')">
//
function _checkedRadio(collection)
{
if(TRACE) alert("_checkedRadio");
	var size = collection.length;
	var i;
	for(i=0;i<size;i++)
	{
		if(collection[i].checked)
		{		
			return i;
		}
	}	
	COMPLETE = FORM_RADIO_COMPLETE;
	return -1;
}

function _checkedRadioValue(collection)
{
if(TRACE) alert("_checkedRadio");
	var size = collection.length;
	var i;
	for(i=0;i<size;i++)
	{
		if(collection[i].checked)
		{		
			return collection[i].value;
		}
	}	
	COMPLETE = FORM_RADIO_COMPLETE;
	return -1;
}

if(alreadySubmitted==null)
	var alreadySubmitted=false;
 
function ensureOnSubmit(formName)
{	
if(TRACE) alert("ensureOnSubmit");

    if(alreadySubmitted)
    {
    	alert(ALREADY_SUBMITTED);
    	return;
    }
    	

	// kolla först de vilkorligt obligatoriska fälten
	if(!ensureHotelInfo(formName))
		return;
		
	if(!ensureKKInfo(formName))
		return;		
	if(!ensureSettlerInfo(formName))
		return;		
	if(!ensureCogoers(formName))
		return;		
	if(!ensureEvType(formName))	
		return;			
	if(!ensureDoublePayer(formName))	
		return;			


	var i=1;
	if(arguments.length > i-1)
	{
		for(;i<arguments.length;i++)
		{
			if(document.forms[formName].elements[arguments[i]] != null)
			{ 		
				if(
				((document.forms[formName].elements[arguments[i]].type == "text" || document.forms[formName].elements[arguments[i]].type == "textarea") && document.forms[formName].elements[arguments[i]].value == "")
				|| (document.forms[formName].elements[arguments[i]].type == "checkbox" && !document.forms[formName].elements[arguments[i]].checked)
				|| (document.forms[formName].elements[arguments[i]].type == null && (_checkedRadioValue(document.forms[formName].elements[arguments[i]])<0)
				|| (document.forms[formName].elements[arguments[i]].type == "select-one" && (document.forms[formName].elements[arguments[i]].selectedIndex == 0 || document.forms[formName].elements[arguments[i]].value == "")) )
				)
				{
					alert(COMPLETE);
					COMPLETE = FORM_COMPLETION;
					document.forms[formName].elements[arguments[i]].focus();
						
					return;
				}
			}
		}
	}	
	
    alreadySubmitted=true;		
	document.forms[formName].submit();
}

//----------------------------------------
function isDouble(doubleField)
{
if(TRACE) alert("isDouble");
	var doubleCheck = doubleField.value;
	doubleCheck = Number(doubleCheck.replace(/,/g, "\."));
	
	if(!isNaN(doubleCheck))	
		return true;
	else	
	{
		alert(DOUBLE_NAN);
		doubleField.focus();
		return false;
	}
	return true;
}

//----------------------------------------
function isInt(intField)
{
if(TRACE) alert("isInt");
	var intCheck = intField.value;
		
	intCheck = Number(intCheck.replace(/,/g, "\."));
		
	 if(!isNaN(intCheck))	
	 {
		if((intCheck <= -2147483648) || (intCheck >= 2147483647)) 
		{
			alert(INT_OUT_OF_RANGE);
			intField.focus();
			return false;
		}
	}
	else	
	{
		alert(INT_NAN);
		intField.focus();
		return false;
	}
	
	if(parseFloat(intCheck) == parseInt(intCheck))	
		return true;
	else	
	{
		intField.value = parseInt(intCheck);
		alert(INT_NOT_INT);
		intField.focus();
		return false;
	}
	return true;
}

//----------------------------------------
function isInRange(intField,start,stop)
{
if(TRACE) 
	alert("isInRange");
	if(parseInt(intField.value) >= start && parseInt(intField.value) <= stop)
		return true;
	alert(INT_OUT_OF_RANGE + " " + start + "-" + stop);
	intField.value="";	
	intField.focus();
	return false;
}



//------------------------------------------------------------
// Date completion for textboxes by Peter Herber, January 1999
// 	includes the function validDate(day,month)
//	Input exemples:
//	* date 			= '1999-02-20'
//	* internalDateFormat 	= 'YYYY-MM-DD' same format as date
//	* dateFormat 		= 'YYYY/MM/DD' output format
//	* errorMessage = "Valid future dates should be formatted...\nDD or\nMMDD or\nYYYYMMDD or\nYYYY/MM/DD"
// 	* type should be "future" if only future dates are valid
//  	* type should be "past" if only past dates are valid
//------------------------------------------------------------

var DATEFORMAT			= "YYYY-MM-DD";
//var DATE_FAULT			= "Korrekta datum ska skrivas på formen...\nDD eller\nMMDD eller\nYYYYMMDD eller\n";
//------------------------------------------------------------
function isDate(formItem, type)
{
if(TRACE) alert("isDate");
	var date,dtDate, internalDateFormat, dateFormat, errorMessage;
	var month, day;
	
	// The two following lines values can be replaced 
	dateFormat = DATEFORMAT;
	errorMessage = DATE_FAULT + DATEFORMAT;

	dtDate = new Date();
	date="";
	month="";
	day="";
	date = dtDate.getFullYear();

	if(dtDate.getMonth() < 9)
		month += "0" + (dtDate.getMonth() + 1);
	else
		month += (dtDate.getMonth() + 1); 

	date += month;
		  
	if(dtDate.getDate() < 10)
		day += "0" + dtDate.getDate();
	else 
		day += dtDate.getDate(); 
	date += day;	
	internalDateFormat = "YYYYMMDD";
	
	return completeDate(formItem, date, internalDateFormat, dateFormat, errorMessage, type);
}

function completeDate(formItem, date, internalDateFormat, dateFormat, errorMessage, type)
{	
if(TRACE) alert("completeDate");
	var day;
	var month;
	var year;
	day = getDatePart(date, internalDateFormat, "D");
	month = getDatePart(date, internalDateFormat, "M");
	year = getDatePart(date, internalDateFormat, "Y");
	var lDay, lMonth, lYear;
	var ok	= 0;
	var input = formItem.value;
	if(formItem.value.length == 0)
		ok=2;
/// Kommenterar bort alternativ kortare än 6 tecken, enligt kundens önskan
/*	if(formItem.value.length == 2)
	{
		lDay=formItem.value;
		if(validDate(lDay, month, year))
		{
			if(type == "future")
			{
				if(futureDate(year,month,day,year,month,lDay))
				{
					day = lDay;
					ok=1;
				}
			}
			else if (type == "past")
			{
				if(pastDate(year,month,day,year,month,lDay))
				{
					day = lDay;
					ok=1;
				}
			}
			else	
			{
				day = lDay;
				ok=1;
			}		
		}
	}
	if(formItem.value.length == 4)
	{
		lMonth=formItem.value.charAt(0) + formItem.value.charAt(1);
		lDay=formItem.value.charAt(2) + formItem.value.charAt(3);
		if(validDate(lDay,lMonth, year))
		{
			if(type == "future")
			{
				if(futureDate(year,month,day,year,lMonth,lDay))
				{
					day=lDay;
					month=lMonth;
					ok=1;
				}
			}
			else if(type ==  "past")
			{
				if(pastDate(year,month,day,year,lMonth,lDay))
				{
					day=lDay;
					month=lMonth;
					ok=1;
				}
			}
			else
			{
				day=lDay;
				month=lMonth;
				ok=1;
			}
		}
	}
*/
// Slut - bortkommentering
	if(formItem.value.length == 6 || formItem.value.length == 8)
	{
		var offset = formItem.value.length - 6;
		if(formItem.value.length == 6)
		{
			var szTemp=formItem.value.charAt(0) + formItem.value.charAt(1);	
			if(szTemp < "50")
			{
				date = "20" + year;
			}
			lYear=date.charAt(0) + date.charAt(1) + formItem.value.charAt(0) + formItem.value.charAt(1);
		}
		else
		if(formItem.value.length == 8)
			lYear=formItem.value.charAt(0) + formItem.value.charAt(1) + formItem.value.charAt(2) + formItem.value.charAt(3);

		lMonth=formItem.value.charAt(2 + offset) + formItem.value.charAt(3 + offset);
		lDay=formItem.value.charAt(4 + offset) + formItem.value.charAt(5 + offset);

		if(validDate(lDay,lMonth, lYear))
		{
			if(type == "future")
			{
				if(futureDate(year,month,day,lYear,lMonth,lDay))
				{
					day=lDay;
					month=lMonth;
					year = lYear;
					ok=1;
				}
				else
					ok=-2;
			}
			else if(type == "past")
			{
				if(pastDate(year,month,day,lYear,lMonth,lDay))
				{
					day=lDay;
					month=lMonth;
					year = lYear;
					ok=1;
				}
			}
			else
			{
				day=lDay;
				month=lMonth;
				year = lYear;
				ok=1;
			}
		}
		
	}

	if(formItem.value.length == dateFormat.length)
		if(okFormattedDate(formItem.value, dateFormat, year, month, day, type))
			ok=2;
		else 
			ok=-1;
	if(ok > 0)
	{
		if(ok != 2)
		{
			var newValue;
			newValue = formatDate(dateFormat, year, month, day);
			formItem.value = newValue;
		}
		return true;		
	}
	else
	{
		if(ok==-2)
			alert(FUTURE_DATE);
		else
			alert(errorMessage);
		formItem.focus();
		return false;
	}
}

function validDate(day, month, year)
{
if(TRACE) alert("validDate");
	var ok=0;
	if(month >= "01" && month <= "12")
	{
		if(day >= "01" && day <= "31")
		{
			ok=1;
		}		
		if(ok && month == "02")
		{
			var test;
			if(leapYear(year))
				test = "29";
			else
				test = "28";
			if(day > test)
				return 0;
		}
		if(ok && (month == "04" || month == "06" || month == "09" || month == "11"))
		{
			if(day > "30")
				return 0;
		}
	}	
	return ok;
}

function formatDate(dateFormat, year, month, day)
{
if(TRACE) alert("formatDate");
	var iFormat, iPart, cPart, newValue;
	yCount=0;
	cPart="";
	newValue="";

	for(iFormat=0; iFormat < dateFormat.length; iFormat++)
	{
		if(dateFormat.charAt(iFormat)=="Y")
			yCount++;
	}
	if(yCount > year.length)
	{
		var dtTmp = new Date();
		var szTmp = "",szYear;
		szYear = dtTmp.getFullYear();
		szTmp = szYear.charAt(0) + szYear.charAt(1);
		szTmp += year;
		year = szTmp; 
	}

	for(iFormat=0; iFormat < dateFormat.length; iFormat++)
	{
		if(dateFormat.charAt(iFormat) != cPart)
		{
			cPart=dateFormat.charAt(iFormat);
			iPart=0;
		}
		if(cPart == "Y")
			newValue = newValue + year.charAt(iPart);
		else if(cPart == "M")
			newValue = newValue + month.charAt(iPart);
		else if(cPart == "D")
			newValue = newValue + day.charAt(iPart);
		else newValue = newValue + dateFormat.charAt(iFormat);
		iPart++;
	}
	return newValue;
}
 
function futureDate(nowYear, nowMonth, nowDay, year, month, day)
{	
if(TRACE) alert("futureDate");
	if(year < nowYear) 
		return 0;
	if((year == nowYear && month < nowMonth) || (year == nowYear && month == nowMonth && day < nowDay))
		return 0;
	return 1;			
}

function pastDate(nowYear, nowMonth, nowDay, year, month, day)
{	
if(TRACE) alert("pastDate");
	if(year > nowYear) 
		return 0;
	if((year == nowYear && month > nowMonth) || (year == nowYear && month == nowMonth && day > nowDay))
		return 0;
	return 1;
}

function getDatePart(inDate, dateFormat, part)
{
if(TRACE) alert("getDatePart");
	var lTmp;
	var iFormat, cPart;
	lTmp="";
	for(iFormat=0; iFormat < dateFormat.length; iFormat++)
	{
		if(dateFormat.charAt(iFormat) != cPart)
		{
			cPart=dateFormat.charAt(iFormat);
		}
		if(cPart == part)
			lTmp = lTmp + inDate.charAt(iFormat);
	}
	return lTmp;
}

function okFormattedDate(testDate, dateFormat, year, month, day, type)
{
if(TRACE) alert("okFormattedDate");
	var lYear,lMonth,lDay;
	var iFormat, cPart;
	cPart="";
	lYear="";
	lMonth="";
	lDay="";
	for(iFormat=0; iFormat < dateFormat.length; iFormat++)
	{
		if(dateFormat.charAt(iFormat) != cPart)
		{
			cPart=dateFormat.charAt(iFormat);
		}
		if(cPart == "Y")
			lYear = lYear + testDate.charAt(iFormat);
		else if(cPart == "M")
			lMonth = lMonth + testDate.charAt(iFormat);
		else if(cPart == "D")
			lDay = lDay + testDate.charAt(iFormat);
	}
	if(!validDate(lDay,lMonth, lYear))
		return 0;
	if(type == "future")
	 	return futureDate(year,month,day,lYear,lMonth,lDay);	
	if(type == "past")
	 	return pastDate(year,month,day,lYear,lMonth,lDay); 	
	 	
	else return 1;
}
// -- end of date completion ---

// Converts browser date to YYYYMMDD
function convertDate(date)
{
if(TRACE) alert("convertDate");
	var tmpMonth, newDate;
	date = date.toString();
	tmpMonth = date.charAt(4) + date.charAt(5) + date.charAt(6);
	newDate = date.charAt(29) + date.charAt(30) + date.charAt(31) + date.charAt(32);
	if(tmpMonth == "Jan") newDate += "01";
	if(tmpMonth == "Feb") newDate += "02";
	if(tmpMonth == "Mar") newDate += "03";
	if(tmpMonth == "Apr") newDate += "04";
	if(tmpMonth == "May") newDate += "05";
	if(tmpMonth == "Jun") newDate += "06";
	if(tmpMonth == "Jul") newDate += "07";
	if(tmpMonth == "Aug") newDate += "08";
	if(tmpMonth == "Sep") newDate += "09";
	if(tmpMonth == "Oct") newDate += "10";
	if(tmpMonth == "Nov") newDate += "11";
	if(tmpMonth == "Dec") newDate += "12";
	newDate += date.charAt(8) + date.charAt(9);
	return newDate;
}

function leapYear(year)
{
	var yearnr = parseInt(year);
	if((yearnr % 4 == 0) && (yearnr % 100 != 0) || (yearnr % 400 == 0))
		return true;
	return false;	
}

// Dynamisk summering ----------------------------------------------------

function sumThis(formItem,outBoxName,Amount,isRadio,sumName)
{	
if(TRACE) alert("sumThis");
	if(document.forms[0].elements==null || document.forms[0].elements[outBoxName]==null)
		return;
	if(isRadio)
	{	
		var boxName;
		var tmp="E";		
		var len = formItem.name.length;			
		for(var c=1;c<len;c++)
		{
			tmp += formItem.name.charAt(c);
		}
		var size = document.forms[0].elements[tmp].length;
		var collection = document.forms[0].elements[tmp];

		var tmpName;
		for(var c=0;c<size; c++)
		{
		    tmpName = "x" +  collection[c].value
			document.forms[0].elements[tmpName].value = "";
		}
		document.forms[0].elements[outBoxName].value = itoa(Amount,' ');
	}
	else
	{
		if(formItem.type=="checkbox")
		{
			if(!formItem.checked)
				document.forms[0].elements[outBoxName].value = "";
			else	
				document.forms[0].elements[outBoxName].value = itoa(Amount * parseFloat(formItem.value),' ');
		}
		else
		{	
			var val = parseInt(formItem.value);
			if(!(val>=1 && val <100))
			{
				formItem.value = "";
			}
			if(formItem.value != "")
				document.forms[0].elements[outBoxName].value = itoa(Amount * parseFloat(formItem.value),' ');
			else
				document.forms[0].elements[outBoxName].value = "";	
		}
	}
	sumAll(sumName);
}

function sumAll(boxName)
{	
  if(TRACE) alert("sumAll");
  
	// MAC Safari browser strange behaviour
	// document.forms[0].elements[""] returnerar första element som för Receive.csp råkar vara "_ccore_"
	// Skippa summeringen för boxName som är tveksamma.
	
	if(boxName != null && boxName != "" &&
	  document.forms[0].elements != null &&
	  document.forms[0].elements[boxName] != null) 
	{
	  var len = document.forms[0].elements.length;
	  var sum = 0;
	  for(var c=0;c<len;c++)
	  {	
		  if(document.forms[0].elements[c].type == "text" 
		  && document.forms[0].elements[c].name.charAt(0) == 'x'
		  && document.forms[0].elements[c].value != "")
		  {
			  sum += parseFloat(trimValue(document.forms[0].elements[c].value));
			}
	  }
		document.forms[0].elements[boxName].value = itoa(sum,' ');
  }
}

var LOADED =false;
function updateSums()
{
if(TRACE) alert("updateSums");
	if(document.forms[0].elements==null) return;
	var len = document.forms[0].elements.length;
	var sum = 0;
	for(var c=0;c<len;c++)
	{	
		if(document.forms[0].elements[c].type == "radio" 
			&& document.forms[0].elements[c].name.charAt(0) == "F" 
			&& document.forms[0].elements[c].value == "0")
		{
			var l = document.forms[0].elements[c].name.length;			
			var namn = "E";
			if(l>0)
			{
				for(var d=1;d<l;d++)
				{
					namn += document.forms[0].elements[c].name.charAt(d);
				}
			}	
			if(document.forms[0].elements[namn] != null && document.forms[0].elements[namn].value == "")
			{
				document.forms[0].elements[namn].disabled=true;
				document.forms[0].elements[namn].readonly=true;
//				document.forms[0].elements[namn].style.backgroundColor = DISABLED_COLOR;	
			}
			
		}
		
		if(LOADED && document.forms[0].elements[c].type != 'hidden' && document.forms[0].elements[c].disabled==false)
		{		
			document.forms[0].elements[c].focus(); 
		}				
	}	
	if(LOADED && len > 0 && document.forms[0].elements[0].type != 'hidden' && document.forms[0].elements[0].disabled==false)
		document.forms[0].elements[0].focus();	
	if(!LOADED) LOADED=true;		
}

// Blockvis summering
//
//	kräver <input type="hidden" name="z{blocknr}{formItemName}" value="0"> för varje evenemang
// 	resultatet kommer i <input type="text" name="xb{blocknr}">
//  kräver : onChange="sumThisBlock(this,{blocknr},{pris},{radio 1/0},{totalsumboxens namn})"
//
function sumThisBlock(formItem,blockNr,prize,bRadio,totSumName,defaultcount)
{
if(TRACE) alert("sumThisBlock");
	var sumPrefix = "z" + blockNr;
	var myname = formItem.name;
	var testPrefix ="";
	var sumHidden = sumPrefix + formItem.name;
	var blockSumName = "xb" + blockNr;
	var count=0;
	
	count = formItem.value=="" ? 0 : parseInt(formItem.value);
	if(formItem.type=="checkbox")
	{	
		if(document.forms[0].elements[myname].checked)
			document.forms[0].elements[sumHidden].value = itoa(defaultcount * prize,'');
		else	
			document.forms[0].elements[sumHidden].value = "0";
	}
	else if(bRadio)
	{
		document.forms[0].elements[sumHidden].value = itoa(defaultcount * prize,'');
	}
	else	// typen är textbox
	{		
		document.forms[0].elements[sumHidden].value = count * prize;
	}	

	var eSize = document.forms[0].elements.length;	
	var blockSum=0; 
	var testRadio="F" + blockNr;
	var summera=true;
	for(var c=0;c<eSize;c++)
	{
		testPrefix="";
		
		if(document.forms[0].elements[c].type == "hidden") 
		{	
			for(var p=0;p<sumPrefix.length;p++)
			{		
				if(document.forms[0].elements[c].name.length>p)
				{						
					testPrefix+=document.forms[0].elements[c].name.charAt(p);
					
				}
			}
			if(document.forms[0].elements[testRadio] != null)
			{			
				if(document.forms[0].elements[testRadio].value==0)
					summera=false;
			}
							
			if(testPrefix==sumPrefix && summera)
			{		
				blockSum += parseInt(document.forms[0].elements[c].value);
			}
		}
	}		
	document.forms[0].elements[blockSumName].value = itoa(blockSum,' ');	
	sumAll(totSumName);
}

//==================================================================
function updateSpecial(formItem,boxName)
{
if(TRACE) alert("updateSpecial");
	var specSumBoxName, specBlockBoxName, evNo,Size; 
	Size = formItem.name.length;
	evNo="";
	for(i=1;i<Size;i++)
	{
		evNo+=formItem.name.charAt(i);
	}
	specSumBoxName = "E" + evNo;
	specBlockBoxName = "x" + evNo;

	if(formItem.value<=0) // blanka och disable'a
	{
		document.forms[0].elements[specSumBoxName].value = "";
		if(document.forms[0].elements[specBlockBoxName] != null)
			document.forms[0].elements[specBlockBoxName].value = "";
		document.forms[0].elements[specSumBoxName].disabled=true;
		document.forms[0].elements[specSumBoxName].readonly=true;
		if(document.forms[0].elements[boxName] != null)
			sumAll(boxName);	
		// nedanstående rad är ett test
		//document.forms[0].elements[specSumBoxName].focus();	
		document.forms[0].elements[specSumBoxName].style.backgroundColor = DISABLED_COLOR;	
	}
	else	// enable'a
	{
		document.forms[0].elements[specSumBoxName].disabled=false;
		document.forms[0].elements[specSumBoxName].readonly=false;
		if(document.forms[0].elements[boxName] != null)
			sumAll(boxName);
		document.forms[0].elements[specSumBoxName].value = "1";			
		// nedanstående rad är ett test
		document.forms[0].elements[specSumBoxName].focus();				
		document.forms[0].elements[specSumBoxName].style.backgroundColor ="white";	
	}
}

// Dynamisk summering SLUT ------------------------------------------------

function nillFill(inten)
{
	var str = "";
	if(inten > 99)
		str += inten;
	else
	if(inten > 9 && inten <= 99)
	{
		str += "0";
		str += inten;
	}
	else
	if(inten > 0)
	{
		str += "00";
		str += inten;
	}
	else 
		str += "000";

	return str;
} 

function itoa(inten, tkn)
{
if(TRACE) alert("itoa");
	var str="";
	var neg = false;
	if(parseInt(inten) < 0) neg = true;
	if(neg) inten = -inten;
	
	if(tkn == null)tkn = ".";

	if(parseInt(inten/1000) > 0)
	{
		str += itoa(parseInt(inten/1000),tkn);	// recurse
		str += tkn;
		str += nillFill(parseInt(inten%1000));
	}
	else // inten mindre än 1000
		str += inten;
	
	if(neg)
		str = "-"+str;
	return str;		 
}

function trimValue(value)
{
	var str="";
	for(i=0;i<value.length;i++)
	{
		if(value.charAt(i) != ' ')
			str += value.charAt(i);
	}
	return str;
}

function checkLength(formItem, maxLength, words)
{
if(TRACE) alert("checkLength");
	var wordcount=0;
	var text;
	
	text=formItem.value;
	text=text.substring(0,1000);
	formItem.value=text;

	if(words != null)	
	{
		for(i=0;i<text.length;++i)
	    { 
	      if(text.charAt(i)==' ')
	      	wordcount++;
		}  
		if(wordcount>maxLength)
		{
			alert(MAXIMUM + " " + maxLength + " " + MAX_WORD + " " + wordcount);
			formItem.focus();
			return false;		
		}
	}
	else 
	{
		if(text.length>maxLength)
		{
			alert(MAXIMUM + " " + maxLength + " " + MAX_CHAR + " " + text.length);
			formItem.focus();
			return false;
		}
	}
	return true;
}

//	Uppdaterar mellan fält 
//
function updateName(formName)
{
if(TRACE) alert("updateName");
	if(document.forms[formName].elements['DEnamn'] == null 
		|| document.forms[formName].elements['DFnamn'] == null)
		return;
	var straightName="";
	if(document.forms[formName].elements['DEnamn'].value != "" 
		&& document.forms[formName].elements['DFnamn'].value != "")
	{
		straightName = document.forms[formName].elements['DFnamn'].value + " " + 
				document.forms[formName].elements['DEnamn'].value;
	}	
	var twistedName = "";
	if(document.forms[formName].elements['DEnamn'].value != "" 
		&& document.forms[formName].elements['DFnamn'].value != "")
	{
		twistedName = document.forms[formName].elements['DEnamn'].value + ", " + 
				document.forms[formName].elements['DFnamn'].value;	
	}	
								
	_updateNameItemIfBlank(formName,'S1Fakturaadrrad2',straightName,1);
	_updateNameItemIfBlank(formName,'S1Kortinnehavare',twistedName,1);
	_updateNameItemIfBlank(formName,'HKI',twistedName,1);
	
	_updateNameItemIfBlank(formName,'S1Fakturaadrrad1','DForetag',0);	
	_updateNameItemIfBlank(formName,'S1Avdelning','DAvdelning',0);	
	_updateNameItemIfBlank(formName,'S1Postadress','DPostadress',0);
	_updateNameItemIfBlank(formName,'S1Postnr','DPostnr',0);
	_updateNameItemIfBlank(formName,'S1Ort1','DOrt1',0);	
	updateCountry(formName);				
}

// itemName 	- namn på fält som ska uppdateras
// freeValue 	- flagga 0/1 om värdet ska tas 
//					från fältet med namn itemValue (0) 
//					eller om itemValue är strängen som ska sättas (1)
function _updateNameItemIfBlank(formName,itemName,itemValue,freeValue)
{
	var maxlen = 0;
	
	if(document.forms[formName].elements[itemName] != null 
		&& document.forms[formName].elements[itemName].value == "")
	{		
		maxlen=document.forms[formName].elements[itemName].getAttribute("MAXLENGTH");
	
		if((freeValue == null || freeValue== 0) && document.forms[formName].elements[itemValue] == null) return;
		var newValue = (freeValue == null || freeValue== 0)?document.forms[formName].elements[itemValue].value:itemValue;
				
		if(newValue.length>maxlen)
		{
			newValue = newValue.slice(0,maxlen);
		}		
		document.forms[formName].elements[itemName].value = newValue;				
	}
}

//===============================================
//
//	Returns the nr'th word from the string str 
//  using the delimiter del or space
//
function getToken(nr,str,del)
{
if(TRACE) alert("getToken");
	if(del==null || del=="") 
		del = " ";
	var resStr="";
	var wordCount=0;
	var inWord=false;
	var len = str.length;
	for(var i=0;i<len;i++)
	{
		if(!inWord && str.charAt(i) != " " && str.charAt(i) != del)
		{
			wordCount++;
			inWord=true;
		}
		if(inWord)
		{		
			if(str.charAt(i) != " " && str.charAt(i) != del)
			{
				if(wordCount==nr)
				{
					resStr = resStr + str.charAt(i);
				}
			}
			else
			{
				inWord=false;
			}
		}
	}
	return resStr;
}

function isTime(formItem)
{
if(TRACE) alert("isTime");
	var hours, minutes;
	if(formItem.value.length == 0)
		return true;
	if(formItem.value.length == 4)
	{
		hours = formItem.value.charAt(0);
		hours = hours + formItem.value.charAt(1);
		minutes = formItem.value.charAt(2);
		minutes = minutes + formItem.value.charAt(3);		
	}
	else
	{
		hours = getToken(1,formItem.value,".");
		minutes = getToken(2,formItem.value,".");
	}
	if(!isNaN(hours) && !isNaN(minutes) 
		&& hours.length <= 2 && minutes.length <= 2)
	{	
		if(parseInt(hours) < 0 || parseInt(hours) > 23)
		{
			alert(ILLEGAL_HOUR_INTERVAL);
			formItem.focus();
			return false;
		}
		if(parseInt(minutes) < 0 || parseInt(minutes) > 59)
		{
			alert(ILLEGAL_MINUTE_INTERVAL);
			formItem.focus();
			return false;
		}		
	}
	else
	{
		alert(ILLEGAL_TIMEFORMAT);
		formItem.focus();
		return false;		
	}
	if(hours.length == 1) hours = "0" + hours;
	if(minutes.length == 1) minutes = "0" + minutes;
	if(minutes.length == 0) minutes = "00";
	formItem.value = hours + "." + minutes;
	return true;	
}

function truncateZerosFromStart(str)
{
	var size=str.length;
	var szTmp="";
	for(var c=0;c<size;c++)
	{
		if(szTmp=="" && (str.charAt(c)==" " || str.charAt(c)=="0"))
			continue;
		szTmp += str.charAt(c);	
	}	
	str=szTmp;
	return str;
}

function isValidThrough(formItem)
{
if(TRACE) alert("isValidThrough");
	var month, year;
	if(formItem.value.length == 0)
		return true;
	if(formItem.value.length == 4)
	{
		month = formItem.value.charAt(0);
		month = month + formItem.value.charAt(1);
		year = formItem.value.charAt(2);
		year = year + formItem.value.charAt(3);		
	}
	else
	{
		month = getToken(1,formItem.value,"/");
		year = getToken(2,formItem.value,"/");
	}
	if(!isNaN(month) && !isNaN(year) 
		&& month.length <= 2 && year.length <= 2)
	{	
		var iMonth="";	
		iMonth = parseInt(truncateZerosFromStart(month));		
		if(iMonth < 1 || iMonth > 12)
		{
			alert(ILLEGAL_MONTH_VALUE);
			formItem.focus();
			return false;
		}
		dtDate = new Date();
		var cmonth=dtDate.getMonth() + 1;
		var cyear = dtDate.getYear();
		iYear=parseInt(truncateZerosFromStart(year));
		
		if(iYear<100)iYear+=2000;
		if(iYear > cyear || (iYear == cyear && iMonth >= cmonth))
		{		
			if(year.length == 1) year = "0" + year;
			if(month.length == 1) month = "0" + month;
			formItem.value = month + "/" + year;
			return true;
		}
		alert(CARD_EXPIRED);
		formItem.focus();
		return false;	
	}
	else
	{
		alert(ILLEGAL_EXPIRE_FORMAT);
		formItem.focus();
		return false;		
	}	
}

// basefunction for isMoney and isCreditCardNr
function _isSomewhatInt(str,del)
{
	var stillNumeric=true;
	var tmp="";
	var i=1;
	tmp = tmp.replace(/,/g, "\.");
	while(true)
	{
		tmp=getToken(i,str,del);
		if(tmp=="")
			break;
		if(isNaN(tmp))
		{
			stillNumeric=false;
			break;
		}
		i++;
	}
	return stillNumeric;
}

//var ILLEGAL_CURRENCY_FORMAT = "Ogiltigt värde för valuta";
//var ILLEGAL_CREDITCARD_NR	= "Ogiltigt kontokortsnummer";
//var DECIMAL_SIGN = ",";

function isMoney(formItem)
{
if(TRACE) alert("isMoney");
	var decimal="";
	var integer="";
	var tmp = formItem.value;
	if(tmp=="") return true;
	tmp = tmp.replace(/,/g, "\.");
   	var i,j=0;   	         			
   	for(i=0;i<tmp.length;i++)
   	{ 	
   		if(tmp.charAt(i)==".")
   			j=i;
   	}
	if(j>0 && j+3<tmp.length)  						
   		decimal = tmp.substr(j+1,3);	
   	else if(j>0)
   		decimal = tmp.substring(j+1,tmp.length);

   	if(j==0)
   		integer = tmp;
   	else		
   		integer = tmp.substr(0,j);
   		
   	integer = trimValue(integer);	  		
   	if(isNaN(integer) || (j>0 && isNaN(decimal)))
   	{
		alert(ILLEGAL_CURRENCY_FORMAT);
		formItem.focus();
		return false;   	
   	}   			
  		
	formItem.value = itoa(integer," ");
	if(decimal!="") 
		formItem.value = formItem.value + DECIMAL_SIGN + decimal;
	if(!_isSomewhatInt(formItem.value))
	{
		alert(ILLEGAL_CURRENCY_FORMAT);
		formItem.focus();
		return false;
	}
	return true;
}

function isCreditCardNr(formItem)
{
if(TRACE) alert("isCreditCardNr");
	if(!_isSomewhatInt(formItem.value,"-"))
	{
		alert(ILLEGAL_CREDITCARD_NR);
		formItem.focus();
		return false;
	}
	return true;
}

function _getRadioValue(formName, radioName)
{
	if(document.forms[formName].elements[radioName] == null)
		return "";		
	var collection = document.forms[formName].elements[radioName];
	
	var i=0, retStr="";
	var size=collection.length;
	if(size!=null)
	{	
		for(;i<size;i++)
		{	
			if(collection[i].checked)
			{			
				retStr = collection[i].value;
			}
		}
	}
	else
	{
		if(collection.checked)
			retStr = collection.value;
	}
	return retStr;		 
}

function _getRadioIndex(formName, radioName)
{
	if(document.forms[formName].elements[radioName] == null)
		return 0;		
	var collection = document.forms[formName].elements[radioName];
	var i=0, retStr="";
	var size=collection.length;
	for(;i<size;i++)
	{
		if(collection[i].checked)
		{
			return i;
		}
	}
	return 0;		 
}

function _completeItem(formName, formItemName, noalert)
{
	if(document.forms[formName].elements[formItemName] != null)
	{
		if(document.forms[formName].elements[formItemName].value == "")
		{
			document.forms[formName].elements[formItemName].focus();
			if(noalert!=1) 
				alert(FORM_COMPLETION);
			return false;
		}
	}
	return true;
}

function ensureDoublePayer(formName)
{
	if(b2!=0)
	{
		// Kolla att betalningssätt finns för betalare 2 
		var choise = _getRadioValue(formName, 'S2T');	
		if(choise=="" || choise =="NO")
		{
			alert(OMITTED_PAYTYPE);
			return false;
		}
	}
	return true;
}

function ensureHotelInfo(formName)
{
if(TRACE) alert("ensureHotelInfo");

	var hotelChoise = _getRadioValue(formName, 'HC');
	
	if(hotelChoise!=null && hotelChoise!="" && hotelChoise!="-1")
	{
		var fields="HA HD HR";
		var field;	
		var i=1;
		field=getToken(1,fields);
		while(field != "")
		{	
			if(field=="HR")
			{			
				if((document.forms[formName].elements["HR1"]==null && !_completeItem(formName, "HR2",1))
				|| (document.forms[formName].elements["HR2"]==null && !_completeItem(formName, "HR1",1))
				|| (!_completeItem(formName, "HR1",1) && !_completeItem(formName, "HR2",1)))
				{
					alert(FORM_COMPLETION);
					return false;
				}
			}
			else	
			if(!_completeItem(formName, field))
				return false;
			i++;
			field=getToken(i,fields);	
		}
	}	
	return true;
}

function ensureKKInfo(formName)
{
if(TRACE) alert("ensureKKInfo");
	var KKChoise = _getRadioValue(formName, 'HK');
	
	if(KKChoise!="" && KKChoise!="0")
	{
		var fields="HKI HKN HKG HKB";
		var field;	
		var i=1;
		field=getToken(1,fields);
		while(field != "")
		{		
			if(!(_completeItem(formName, field)))
				return false;
			i++;
			field=getToken(i,fields);	
		}
	}
	return true;
}

function ensureSettlerInfo(formName)
{
if(TRACE) alert("ensureSettlerInfo");
	var settlerNr=1;
	while(settlerNr < 3)
	{
		var prefix = "S" + settlerNr;
		var testName = prefix + "T";
		var choise = _getRadioValue(formName, testName);
	
		if(choise!="" && choise!="NO" && 
			!(choise.charAt(0)=="O" && choise.charAt(1)=="S") && choise.charAt(0)!="F")
		{
			var fields="Kortinnehavare Kontokortsnr Kortgiltighet Kortdebbelopp";
			var field;	
			var i=1;
			field = prefix + getToken(1,fields);	
	
			while(field != prefix)
			{		
				if(!(_completeItem(formName, field)))
					return false;
				i++;
				field = prefix + getToken(i,fields);	
			}
		}
		settlerNr++;
	}
	return true;
}

function ensureCogoers(formName)
{
if(TRACE) alert("ensureCogoers");
	var i=0;
	var eName,fName;
	for(;i<4;i++)
	{
		eName = "CEnamn" + i;
		fName = "CFnamn" + i; 
		if(document.forms[formName].elements[eName]!=null &&
			document.forms[formName].elements[fName]!=null)
		{
			if(document.forms[formName].elements[fName].value !="" &&
				document.forms[formName].elements[eName].value == "")
			{
				alert(COMPLETE_COGOER);
				document.forms[formName].elements[eName].focus();
				return false;
			}
		}
	}
	return true;
}

function _getSelectedValue(formName, itemName)
{
	if(document.forms[formName].elements[itemName] == null)
		return "";
	var size =	document.forms[formName].elements[itemName].length;
	for(var i = 0;i<size;i++)
	{
		if(document.forms[formName].elements[itemName][i].selected)
			return document.forms[formName].elements[itemName][i].value;
	}
	return "";	
}

function _setSelectedValue(formName, itemName, selectValue)
{
	if(document.forms[formName].elements[itemName] == null)
		return "";		
	var size =	document.forms[formName].elements[itemName].length;
	for(var i = 0;i<size;i++)
	{
		if(document.forms[formName].elements[itemName][i].value == selectValue)
			document.forms[formName].elements[itemName][i].selected = true;
		else
			document.forms[formName].elements[itemName][i].selected = false;
	}	
}

function updateCountry(formName)
{
if(TRACE) alert("updateCountry");
	
	if(document.forms[formName].elements['DLandskod'] == null)
		return;
		
	if(document.forms[formName].elements['S1Landskod'] != null)	
	{	
		if(_getSelectedValue(formName, 'S1Landskod')=="")
		{	
			_setSelectedValue(formName, 'S1Landskod', _getSelectedValue(formName, 'DLandskod'));
		}
	}
	if(document.forms[formName].elements['S2Landskod'] == null)
		return;
				
	if(_getSelectedValue(formName, 'S2Landskod')=="")
	{	
		_setSelectedValue(formName, 'S2Landskod', _getSelectedValue(formName, 'DLandskod'));
	}	
}

function setStartCountry()
{
if(TRACE) alert("setStartCountry");
	if(document.forms['registration'].elements['S1Landskod'] == null)
		return;		
	if(document.forms['registration'].elements['DLandskod'] == null)
	{
		_setSelectedValue('registration','S1Landskod','SE ');
		if(document.forms['registration'].elements['S2Landskod'] != null)
			_setSelectedValue('registration','S2Landskod','SE ');
		return;
	}	
}

// Built in 2020 Bug
function isPersNr(formItem)
{
if(TRACE) alert("isPersNr");
	if(formItem.value == "")
		return true;
		
	var size=formItem.value.length;
	if(size < 10 || !_isSomewhatInt(formItem.value, "-") 
		|| (size==11 && formItem.value.charAt(6)!="-"))
	{
		alert(ILLEGAL_PERSNR);
		formItem.focus();
		return false;
	}
	
	for(var c=0;c<size;c++)
	{
		if((c!=6 && formItem.value.charAt(c)=="-") 
			|| (formItem.value.charAt(c)=="-" && size==10))
		{
			alert(ILLEGAL_PERSNR);
			formItem.focus();
			return false;
		}
	}
	var Day,Month,Year,prefix;
	
	Year=formItem.value.charAt(0);
	Year+=formItem.value.charAt(1);
	(Year>"20"&&Year<="99")?prefix="19":prefix="20";
	Year=prefix+Year;
	Month=formItem.value.charAt(2);
	Month+=formItem.value.charAt(3);
	Day=formItem.value.charAt(4);
	Day+=formItem.value.charAt(5);	
	if(validDate(Day, Month, Year)==0)
	{
		alert(ILLEGAL_PERSNR);
		formItem.focus();
		return false;
	}		
	return true;
}

function StringInString(string1, string2)
{
	var len1=string1.length;
	var len2=string2.length;
	var c1=0,c2=0,x;
	match=false;

	for(;c2<len2;c2++)
	{
		if(string2.charAt(c2)==string1.charAt(0))
		{ 
			x=c2;
			c1=0;
			// test the rest
			for(;c1<len1;c1++,x++)
			{
				if(x<len2)
				{
					if(string2.charAt(x)==string1.charAt(c1) && (c1==len1-1))
					{
						match=true;
					}
				}
				else
				{
					// långsträng slut
					if(c1==len1-1)
					{
						match=true;
					}
				}
			}
		}	
	}
	return match;
}

function getFormChecksum(formName)
{
	var checksumString = "";
	var formItem = document.forms[formName];	
	
	for(var i = 0; i < formItem.length; i++)
	{	
		switch (formItem.elements[i].type) 
		{
			case "select-one":
				checksumString += formItem.elements[i].selectedIndex;
				break;
			case "select-multiple":
				for(var j = 0; j < formItem.elements[i].options.length; j++)
				{
					if(formItem.elements[i].options[j].selected)
					{ 
						checksumString += formItem.elements[i].options[j].value ;
					}
				}
				break;
			case "submit":
				break;
			case "reset":
				break;
			case "button":
				break;
			case "radio":
				if (formItem.elements[i].checked)
				{
					checksumString += formItem.elements[i].value;
				}
				break;
			case "checkbox":
				if (formItem.elements[i].checked)
				{
					checksumString += formItem.elements[i].value;
				}
				break;
			default:
				checksumString += formItem.elements[i].value;
				break;
		}
	}
	return checksumString;
}


//===================================================================
var bFaktRadioExist=false;
function updateSpecialPayment(formItem)
{
	rv=formItem.value;
	if(formItem.name=="S1T") // betalningstyp
	{	
		var betalArrayKort = "S1Kortinnehavare S1Kontokortsnr S1Kortgiltighet S1Kortdebbelopp";
		var betalArrayFakt = "S1Fakturaadrrad2 S1Fakturaadrrad1 S1Avdelning S1Postadress S1Postnr S1Ort1 S1Landskod";
		
		// kort
		var i=1;
		var sTmp=getToken(i,betalArrayKort);
		while(sTmp!="")
		{
			if(document.forms[0].elements[sTmp]!=null && !StringInString('Netscape',navigator.appName))	
				document.forms[0].elements[sTmp].style.backgroundColor = (!isNaN(rv))?"white":DISABLED_COLOR;				
			i++;
			sTmp=getToken(i,betalArrayKort)
		}	
		
		// faktura
		i=1;
		sTmp=getToken(i,betalArrayFakt);
		while(sTmp!="")
		{
			if(document.forms[0].elements[sTmp]!=null && !StringInString('Netscape',navigator.appName))	
			{
				if(bFaktRadioExist)
					document.forms[0].elements[sTmp].style.backgroundColor = (rv.charAt(0)=="F")?"white":DISABLED_COLOR;
				else
					document.forms[0].elements[sTmp].style.backgroundColor = "white";	
			}				
			i++;
			sTmp=getToken(i,betalArrayFakt)
		}
/*		if(_getRadioValue(document.forms[0].name,"S1T").charAt(0)=="F" && document.forms[0].elements[getToken(1,betalArrayFakt)]!=null)
			document.forms[0].elements[getToken(1,betalArrayFakt)].focus();
		else if(!isNaN(rv) && document.forms[0].elements[getToken(1,betalArrayKort)]!=null)
			document.forms[0].elements[getToken(1,betalArrayKort)].focus();	*/
	}
	if(formItem.name=="S2T") // betalningstyp
	{	
		var betalArrayKort = "S2Kortinnehavare S2Kontokortsnr S2Kortgiltighet S2Kortdebbelopp";
		var betalArrayFakt = "S2Fakturaadrrad2 S2Fakturaadrrad1 S2Avdelning S2Postadress S2Postnr S2Ort1 S2Landskod";
		
		// kort
		var i=1;
		var sTmp=getToken(i,betalArrayKort);
		while(sTmp!="")
		{
			if(document.forms[0].elements[sTmp]!=null && !StringInString('Netscape',navigator.appName))	
				document.forms[0].elements[sTmp].style.backgroundColor = (!isNaN(rv))?"white":DISABLED_COLOR;				
			i++;
			sTmp=getToken(i,betalArrayKort)
		}	
		
		// faktura
		i=1;
		sTmp=getToken(i,betalArrayFakt);
		while(sTmp!="")
		{
			if(document.forms[0].elements[sTmp]!=null && !StringInString('Netscape',navigator.appName))	
			{
				if(bFaktRadioExist)
					document.forms[0].elements[sTmp].style.backgroundColor = (rv.charAt(0)=="F")?"white":DISABLED_COLOR;
				else
					document.forms[0].elements[sTmp].style.backgroundColor = "white";	
			}				
			i++;
			sTmp=getToken(i,betalArrayFakt)
		}
	}	
	else if(formItem.name=="HK") // hotell kk-gar
	{
		var hotellArray = "HKI HKN HKG HKB";
		var i=1;
		var sTmp=getToken(i,hotellArray);		
		while(sTmp!="")
		{
			if(document.forms[0].elements[sTmp]!=null)	
				document.forms[0].elements[sTmp].style.backgroundColor = (rv!=0)?"white":DISABLED_COLOR;				
			i++;
			sTmp=getToken(i,hotellArray)
		}
		//if(rv!=0) document.forms[0].elements[getToken(1,hotellArray)].focus();
	}
	else if(formItem.name=="HC") // hotellval
	{	
		var hotellArray = "HR1 HR2 HRX HA HD HX";
		var i=1;
		var sTmp=getToken(i,hotellArray);
		while(sTmp!="")
		{
			if(document.forms[0].elements[sTmp]!=null)	
				document.forms[0].elements[sTmp].style.backgroundColor = (formItem.value!="-1")?"white":DISABLED_COLOR;				
			i++;
			sTmp=getToken(i,hotellArray)
		}
		//if(formItem.value!="-1") document.forms[0].elements[getToken(1,hotellArray)].focus();
	}	
}

function InitFields()
{	
	var aSize=0;	
	if(document.forms[0].elements["S1T"] != null)
	{
		aSize=document.forms[0].elements["S1T"].length;		
		for(var i=0; i<aSize;i++)
		{		
			if(document.forms[0].elements["S1T"][i].value.charAt(0)=="F")
				bFaktRadioExist=true;
		}		
		updateSpecialPayment(document.forms[0].elements["S1T"][_getRadioIndex(document.forms[0].name,"S1T")]);
	}
	if(document.forms[0].elements["S2T"] != null)
	{
		aSize=document.forms[0].elements["S2T"].length;		
		for(var i=0; i<aSize;i++)
		{		
			if(document.forms[0].elements["S2T"][i].value.charAt(0)=="F")
				bFaktRadioExist=true;
		}		
		updateSpecialPayment(document.forms[0].elements["S2T"][_getRadioIndex(document.forms[0].name,"S2T")]);
	}		
	if(document.forms[0].elements["HK"] != null)
		updateSpecialPayment(document.forms[0].elements["HK"][_getRadioIndex(document.forms[0].name,"HK")]);
					
	if(document.forms[0].elements["HC"] != null)
		updateSpecialPayment(document.forms[0].elements["HC"][_getRadioIndex(document.forms[0].name,"HC")]);					
}

//================================================================
//
//	Evenemangtypskontroller
//

if(evType1==null)
	var evType1="true";
if(evType2==null)	
	var evType2="true";
if(evType4==null)	
	var evType4="true";

function ensureEvType(formName)
{	
	var str="";
	//	** Deltagaravgift
	var c=1;
	if(!(getToken(c,window["evType1"])=="true")) 
	{	
		str=getToken(c,window["evType1"]);
		while(str!=null && str!="")	
		{				
			c++;
			str=getToken(c,window["evType1"]);
		}		
		if(c==1 && getToken(c,window["evType1"])=="") 
		{
			alert(NO_DELT_FEE);
			return false;	
		}
	}
	//	** Medföljande		
	c=1;
	if(!(getToken(c,window["evType2"])=="true")) 
	{		
		var cogoers=0;
		var fees=0;
		var item="E";
		str=getToken(c,window["evType2"]);						
		while(str!=null && str!="")	
		{	
			item= "E" + str;			
			if(document.forms[0].elements[item]!=null)
			{					
				fees += parseInt(document.forms[formName].elements[item].value);
			}
			c++;
			str=getToken(c,window["evType2"]);				
		}
			
		if(document.forms[formName].elements["CEnamn1"]!=null && document.forms[formName].elements["CEnamn1"].value!="") 
			cogoers++;			
		if(document.forms[formName].elements["CEnamn2"]!=null && document.forms[formName].elements["CEnamn2"].value!="") 
			cogoers++;		
		if(document.forms[formName].elements["CEnamn3"]!=null && document.forms[formName].elements["CEnamn3"].value!="") 
			cogoers++;	
//alert("cogoers " + cogoers + " - fees " + fees);						
		if(fees!=cogoers) 
		{
			alert(ILLEGAL_COGOER_COUNT);
			return false;	
		}
	}	
	//	** Hotelldeposition	
	c=1;
	if(!(getToken(c,window["evType4"])=="true")) 
	{		
		var rooms=0;
		var bDep=false;
		str=getToken(c,window["evType4"]);	
		while(str!=null && str!="")	
		{		
			c++;
			str=getToken(c,window["evType4"]);
			bDep=true;				
		}
		if(document.forms[formName].elements["HR1"]!=null && document.forms[formName].elements["HR1"].value!="") 
			rooms += parseInt(document.forms[0].elements["HR1"].value);
		if(document.forms[formName].elements["HR2"]!=null && document.forms[formName].elements["HR2"].value!="") 
			rooms += parseInt(document.forms[0].elements["HR2"].value);
		if(bDep && rooms==0) 
		{
			alert(NO_ROOMS_BUT_FEE);
			return false;	
		}
		else
		if(rooms!=0 && !bDep)
		{
			alert(NO_HOTEL_FEE);
			return false;			
		}
	}		

//alert("OK");
	return true;
}

function updateEvType(formItem,type,evnr)
{
	var c=1;
	var newEvType="";
	var bSave=true;
	var bAlreadySaved;
	if(type==0)type=1; // type==0 om man har 'inget val' valt
	var evTypeName="evType" + type;			
	if(getToken(1,window[evTypeName])!="true")
	{		
	  if(formItem.type=="radio")
	  {	
  	
		  if(evnr=="-1" || evnr=="on" || evnr=="")
			  window[evTypeName]="";			
		  else	
			  window[evTypeName] = "" + evnr;								
		  return;
	  }
	  else
	  {
		  if((formItem.type=="text" && (formItem.value=="" || formItem.value=="0")) 
			  || (formItem.type=="checkbox" && formItem.checked == false))
		  {
			  bSave=false;	
		  }	
		  str=getToken(c,window[evTypeName]);
		  bAlreadySaved=false;
		  while(str!=null && str!="")	
		  {		
			  if(bSave || (!bSave && parseInt(str)!=evnr))
			  {	
				  newEvType += " ";
				  newEvType += str;
  				
				  if(parseInt(str)==evnr)
					  bAlreadySaved=true;
			  }		
			  c++;
			  str=getToken(c,window[evTypeName]);		
		  }				
		  if(bSave && !bAlreadySaved)
		  {
			  newEvType += " ";
			  newEvType += evnr;
		  }			
		  window[evTypeName] = newEvType;
		}	
	}			
}

//var NO_AMOUNT_S2 = "För vissa...";
function checkSettler(evNr)
{
	var evBox = "E" + evNr;
	if(document.forms[0].elements[evBox].value=="" || document.forms[0].elements[evBox].value=="0")
	{
		alert(NO_AMOUNT_S2);
		document.forms[0].elements[evBox].focus();
	}
}

function checkDepDate(formItem, type)
{

	isDate(formItem,type);
	
			
	var dateSmallerYear = document.forms[0].HA.value.substring(2,4);
	var dateSmallerMonth = document.forms[0].HA.value.substring(5,7)-1;
	var dateSmallerDay = document.forms[0].HA.value.substring(8,10);
	var dateSmaller
		
	if(dateSmallerMonth >= 0 && dateSmallerMonth <= 9)
		dateSmallerMonth = "0" + dateSmallerMonth;	 

	if(dateSmallerDay >= 0 && dateSmallerDay <= 9)
		dateSmallerDay = "0" + dateSmallerDay;	 

	if(dateSmallerYear!="")
		dateSmaller = new Date(dateSmallerYear,dateSmallerMonth,dateSmallerDay)
			

	var dateGreaterYear = document.forms[0].HD.value.substring(2,4);				
	var dateGreaterMonth = 	document.forms[0].HD.value.substring(5,7)-1;
	var dateGreaterDay = document.forms[0].HD.value.substring(8,10);
	var dateGreater

	if(dateGreaterMonth >= 0 && dateGreaterMonth <= 9)
		dateGreaterMonth = "0" + dateGreaterMonth;	 

	if(dateGreaterDay >= 0 && dateGreaterDay <= 9)
		dateGreaterDay = "0" + dateGreaterDay;	 


	if(dateGreaterYear!="")
		dateGreater = new Date(dateGreaterYear,dateGreaterMonth,dateGreaterDay)


	if(!CheckDateObjectInterval(dateSmaller,dateGreater))
	{
		alert(WRONG_DEP_DATE);
		document.forms[0].HD.focus();	
		return false;
	}

}


function CheckDateObjectInterval(oDateSmaller, oDateGreater) {
	if(!oDateSmaller || !oDateGreater)
		return true;

	if(oDateSmaller.getYear() < oDateGreater.getYear()) 
		return true;	 		
	else if(oDateSmaller.getYear() == oDateGreater.getYear()) {
		if (oDateSmaller.getMonth() < oDateGreater.getMonth())
			return true;
		else if(oDateSmaller.getMonth() == oDateGreater.getMonth()) {
			if (oDateSmaller.getDate() < oDateGreater.getDate()) 
				return true;
		}
	}			 		
	
	return false;	 			
}



