﻿// Used by reg wizard

var webRegPossible = acceptsCookies();

function openNewRegWin( url ) {
	target = 'cwRegWin';
	attributes = 'width=740, height=590, location=no, menubar=no, status=no, toolbar=no, scrollbars=yes, resizable=yes';
	win = window.open( url, target, attributes );
	if ( win ) win.focus();
	return false;
}

function hideWarningMessage() {
	if ( webRegPossible ) {
		el = document.getElementById( 'warningMessage' );
		el.style.visibility='hidden';
		el.style.position='absolute';
	}
}

function verify_interest_form() {

	form = document.getElementById('ParamForm');

	if ((form.personFirstName.value == '') || 
			(form.personLastName.value == '') || 
			(form.personEmail.value == '')) {
		alert( "Vänligen uppge förnamn, efternamn och en e-postadress dit vi kan skicka informationen" );
		return( false );
	}
	if ( !validEmail( form.personEmail.value ) ) {
		alert( "E-postadressen du uppgivit förefaller inte korrekt" );
		return( false );
	}
	if( !( form.accept_policy.checked ) ) {
		alert( "Du måste acceptera vår \ndatapolicy innan du kan \nlämna intresseanmälan genom webben." );
		return( false );
	}
	if ( form.personEmailConfirm && form.personEmail.value != form.personEmailConfirm.value  ) {
		alert( "E-postadressen och bekräftelsen av e-postadressen matchar inte.\n" );
		return( false );
	}
	form.to_next_page.value = 1;
	form.submit();
	return( true );
}

function verify_search_person_form() {
	
	form = document.getElementById('ParamForm');
	if ( form.subject.value != "partner" ) {		
		if ( ( form.personFirstName.value == "" ) || ( form.personLastName.value == "" )  ) {
			alert( "Vänligen fyll i både för- och efternamn.\n" );
			return( false );
		}
		if ( form.danceRole ) {  // If apply dance role the radio buttons danceRole are inserted further below
			if( ( form.danceRole[0].checked == false ) && ( form.danceRole[1].checked == false ) ) {
				alert( "Vänligen markera om du vill föra eller följa.\n" );
				return( false );
			}
		}
	} else {
		if ( form.usageCoupleReg.value == "compulsory" && ( form.personFirstName.value == "" || form.personLastName.value == "" )  ) {
			alert( "Paranmälan är obligatorisk. Vänligen fyll i din partners för- och efternamn.\n" );
			return( false );
		}

	}
	if ( form.personEmail ) {
		form.personEmail.value = form.personEmail.value.trim();
		if ( ( form.personEmail.value != "" ) && !validEmail( form.personEmail.value ) ) {
			alert( "E-postadressen du uppgivit förefaller ogiltig. Har du inte tillgång till e-post kan du lämna e-fältet tomt\n" );
			return( false );
		}
	}
	if ( form.personEmailConfirm  ) {
		form.personEmailConfirm.value = form.personEmailConfirm.value.trim();
		if ( form.personEmailConfirm && form.personEmail.value != form.personEmailConfirm.value  ) {
			alert( "E-postadressen och bekräftelsen av e-postadressen matchar inte.\n" );
			return( false );
		}
	}
	form.to_next_page.value = 1;
	form.submit();
	return( true );
}

function verify_person_form() {

	form = document.getElementById('ParamForm');
	
	var countryValue = '';
	if ( form.country ) countryValue = form.country.value.trim();

	if ( form.subject.value != "partner" ) {			
		if (	( form.personStreetaddr.value == "") || 
				( form.personZipcode.value == "") ||
				( form.personCityName.value == "")) {
			alert( "Vänligen ange gatuadress, postnummer och ort" );
			return( false );
		}
		if (	( form.personTelephonehome.value == "") && 
				( form.personTelephonework.value == "") &&
				( form.personTelephonemobile.value == "")) {
			alert( "Vänligen ange minst ett telefonnummer där vi kan nå dig" );
			return( false );
		}
		
		// Values used in databas and server code to represent fifferent requirements
		var DOB_NONE = 32;
		var DOB_MD   = 48;
		var DOB_YMD  = 64;
		var DOB_PID  = 80;

		var requireDobValue = DOB_NONE;
		if ( form.requireDob ) requireDobValue = form.requireDob.value;

		var birthDayInt       = null;
		var birthMonthInt     = null;
		var birthYearInt      = null;

		if ( form.birthDay       ) birthDayInt       = parseInt( form.birthDay.value.trim()       );
		if ( form.birthMonth     ) birthMonthInt     = parseInt( form.birthMonth.value.trim()     );
		if ( form.birthYear      ) birthYearInt      = parseInt( form.birthYear.value.trim()      );
		
		errMsg = cwj_CheckSplitDate( birthYearInt, birthMonthInt, birthDayInt, 'historic' );
		if ( errMsg != '' )  {
			alert( errMsg );
			return( false );
		}

		if ( requireDobValue >= DOB_PID && countryValue == 'SE' && !( birthYearInt > 0 && birthMonthInt > 0 && birthDayInt > 0 ) ) {
			alert( "Vänligen ange fullständigt födelsedatum och de fyra sista siffrorna i personnumret" );
			return( false );
		}

		if ( requireDobValue >= DOB_YMD && !( birthYearInt > 0 && birthMonthInt > 0 && birthDayInt > 0 ) ) {
			alert( "Vänligen ange komplett födelsedatum" );
			return( false );
		}

		if ( requireDobValue >= DOB_MD && !( birthMonthInt > 0 && birthDayInt > 0 ) ) {
			alert( "Vänligen ange åtminstone månad och dag i månaden för födelsedatumet" );
			return( false );
		}

		if ( form.personGender.value == "") {
			alert( "Vänligen ange om du är man eller kvinna" );
			return( false );
		}

		var pidLastFiguresStr = '';
		if ( form.pidLastFigures ) pidLastFiguresStr = form.pidLastFigures.value.trim();
		
		if ( pidLastFiguresStr != '' ) {

			if ( pidLastFiguresStr.length != 4 ) {
				alert( "Fyra sista siffrorna i personnumret måste bestå av exakt fyra siffror" );
				return false;
			}
			
        	for ( i = 0; i < 4; i++) {
        		chr = pidLastFiguresStr.substr( i, 1 );
        		if ( !( chr >= '0' && chr <= '9' ) ) {
    				alert( "Fyra sista siffrorna i personnumret får endast innehålla siffror" );
    				return false;
        		}
        	}
		
			if ( !( birthYearInt > 0 && birthMonthInt > 0 && birthDayInt > 0 ) ) {
				alert( "Vänligen ange komplett födelsedatum med år, månad och dag" );
				return false;
			}
			
			str = String( birthYearInt ).substr( 2, 2 );
			if ( birthMonthInt < 10 ) str+= '0';
			str+= String( birthMonthInt );
			if ( birthDayInt < 10 ) str+= '0';
			str+= String( birthDayInt );
			
			str+= pidLastFiguresStr.substr( 0, 3 );
			
			controlFigure = calculateControlFigure( str );
			pidLastFigure = pidLastFiguresStr.substr( 3, 1 );
			if ( pidLastFigure != controlFigure ) {
				alert( "Ogiltigt personnummer" );
				return false;
			}
			
			genderValue = form.personGender.value;
			pidGenderInt = parseInt( pidLastFiguresStr.substr( 2, 1 ) )%2;
			if ( pidGenderInt == 1 && genderValue != 'M' ) {
				alert( "Kön och personnummer matchar inte" );
				return false;
			}
		}

		if ( requireDobValue >= DOB_PID && countryValue == 'SE' && pidLastFiguresStr == '' ) {
			alert( "Vänligen ange de fyra sista siffrorna i personnumret" );
			return false;
		}
	}

	if ( form.subject.value == "partner") {			
		if ( form.personGender.value == "" ) {
			alert( "Vänligen ange om din partner är man eller kvinna" );
			return false;
		}
	}

	form.to_next_page.value = 1;
	form.submit();
	return true;
}

function verify_accept_reg_form() {
	
	form = document.getElementById('ParamForm');

	if( !( form.accept_policy.checked ) ) {
		alert( "Du måste acceptera SwingWebs datapolicy innan anmälan kan slutföras" );
		return( false );
	}
	return( true );
}

// Calculate price based on camp options
function calcCost() {

	form = document.getElementById('my_form');

	var cost = COST_BASE;
	
	if( form.partyFri  && form.partyFri.value  == 1 ) cost += COST_PARTY_FRI;
	if( form.partySun  && form.partySun.value  == 1 ) cost += COST_PARTY_SUN;
	if( form.courseThu && form.courseThu.value == 1 ) cost += COST_COURSE_THU;
	if( form.courseFri && form.courseFri.value == 1 ) cost += COST_COURSE_FRI;
	if( form.relax     && form.relax.value     == 1 ) cost += COST_RELAX;
	if( form.lunchFri  && form.lunchFri.value  != 0 ) cost += COST_LUNCH_FRI;
	if( form.lunchSat  && form.lunchSat.value  != 0 ) cost += COST_LUNCH;
	if( form.lunchSun  && form.lunchSun.value  != 0 ) cost += COST_LUNCH;
	
	if ( form.courseWE ) switch ( form.courseWE.value ) {
		case 'Sat'      :
		case 'Sun'      : cost += COST_COURSE_ONE_DAY; break;
		case 'WE'       : cost += COST_COURSE_WEEKEND; break;
	}
	if ( form.partySat ) switch ( form.partySat.value ) {
		case 'anim'     :
		case 'veg'      : cost += COST_PARTY_DINNER;   break;
		case 'dance'    : cost += COST_PARTY_DANCE;    break;
	}
	if ( form.accThu ) switch ( form.accThu.value ) {
		case 'atPerson' : cost += COST_ACC_AT_PERSON;  break;
		case 'floor'    : cost += COST_ACC_FLOOR;      break;
		case 'hotelDR'  : cost += COST_ACC_HOT_DR_WD;  break;
		case 'hotelSR'  : cost += COST_ACC_HOT_SR_WD;  break;
	}
	if ( form.accFri ) switch ( form.accFri.value ) {
		case 'atPerson' : cost += COST_ACC_AT_PERSON;  break;
		case 'floor'    : cost += COST_ACC_FLOOR;      break;
		case 'hotelDR'  : cost += COST_ACC_HOTEL_DR;   break;
		case 'hotelSR'  : cost += COST_ACC_HOTEL_SR;   break;
	}
	if ( form.accSat ) switch ( form.accSat.value ) {
		case 'atPerson' : cost += COST_ACC_AT_PERSON;  break;
		case 'floor'    : cost += COST_ACC_FLOOR;      break;
		case 'hotelDR'  : cost += COST_ACC_HOTEL_DR;   break;
		case 'hotelSR'  : cost += COST_ACC_HOTEL_SR;   break;
	}

	if ( document.getElementById("sum") ) document.getElementById("sum").innerHTML = cost + " kr";

	return( cost );
}

function checkCampData() {

	form = document.getElementById('my_form');

	var errMsg = "";
	
	if ( document.getElementById("sum") && ( calcCost() == 0 ) && !( form.courseThu && form.courseThu.value == 1 ) )
		errMsg+= "Du har inte beställt någonting.\nVälj Tillbaka eller Avbryt om du ångrat dig.\n\n";
	
	if ( form.courseWE && form.courseWE.value != '0' ) {
	
		if ( form.personLevel && form.personLevel.value == '0' )
			errMsg+= "Du måste välja vilken nivåbeskrivning stämmer bäst.\n\n";
			
		if ( form.adjustLevel && form.adjustLevel.value == '0' )
			errMsg+= "Du måste välja var du vill hamna om vi måste splittra nivån.\n\n";

		if ( form.personExp && form.personExp.value == "" )
			errMsg+= "Du måste beskriva din erfarenhet inför gruppindelningen.\n\n";

	}
	
	if ( form.courseFri && form.courseFri.value != '0' ) {
		if ( form.personExp2 && form.personExp2.value == "" )
			errMsg+= "Du måste beskriva din erfarenhet inför gruppindelningen.\n\n";
	}
	
	if( errMsg != "" ) {
		alert( errMsg );
		return( false );
	}
	
	form.to_next_page.value = 1;
	form.submit();
	return( true );
	
}
