var submitted = false;
var skjema;
var feilliste = new Array();
var feil = 0;
var antfammedl = 1;
var familie;
var valgtKatId = -1;
var verving = false;
var gaveMedlemskap;
var utland = false;
var betMate;
var fastKilde;

function utlandet(verdi) {
      skjema.postnr.disabled = verdi;
      skjema.poststed.disabled = verdi;
      if (verdi) {
         skjema.poststed.style.background = "#D4D0C8";
         skjema.postnr.style.background = "#D4D0C8";
      } else {
         skjema.poststed.style.background = "#ffffff";
         skjema.postnr.style.background = "#ffffff";
      }
      utland = verdi;
}  

function sjekk() {

   prissjekk();
   familiesjekk();
   feltsjekk();
}


function prissjekk() {

   var fullkontingent = skjema.fullkontingent.checked;
   var pris = 0;
   var agenter = 0;
   var typevalgt = false;
   var prisliste = new Array();
   prisliste[0] = 200;
   prisliste[1] = 300;
   prisliste[2] = 100;
   prisliste[3] = 100;
   prisliste[4] = 7000;
   prisliste[5] = 200;
   prisliste[6] = 200;
   var pristillegg = new Array();
   pristillegg[0] = 0;
   pristillegg[1] = 0;
   pristillegg[2] = 100;
   pristillegg[3] = 100;
   pristillegg[4] = 0;
   pristillegg[5] = 0;
   pristillegg[6] = 0;
   var fullprisliste = new Array();
   fullprisliste[0] = 350;
   fullprisliste[1] = 420;
   fullprisliste[2] = 175;
   fullprisliste[3] = 175;
   fullprisliste[4] = 7000;
   fullprisliste[5] = 200;
   fullprisliste[6] = 200;
   var fullpristillegg = new Array();
   fullpristillegg[0] = 0;
   fullpristillegg[1] = 0;
   fullpristillegg[2] = 25;
   fullpristillegg[3] = 25;
   fullpristillegg[4] = 0;
   fullpristillegg[5] = 0;
   fullpristillegg[6] = 0;
   var prisagenttillegg = 100;
   if (valgtKatId > -1 && valgtKatId < 7) {
      if (fullkontingent) {
  	   pris = fullprisliste[valgtKatId];
	   if (familie == true) {
	      pris += fullpristillegg[valgtKatId]; 
         }
      } else {
  	   pris = prisliste[valgtKatId];
	   if (familie == true) {
	      pris += pristillegg[valgtKatId]; 
         }
      }
	for (i = 1; i<antfammedl+1; i++) {
	   if (skjema['agent' + i].checked) {
	      agenter++;
         }
      }
      if (agenter > 1) {
         pris += (agenter-1)*prisagenttillegg;
      }
      if (betMate=="kort" && skjema.ekstragave.checked == true && skjema.gavebelop.value.length>0 && parseInt(skjema.gavebelop.value)>0) {
         pris += parseInt(skjema.gavebelop.value);
      }
      document.getElementById("pris").innerHTML = pris;
      document.getElementById("prisFelt").value = pris;
   }
}



function familiesjekk() {
   return familie;
}

function familieAktiver(verdi) {
   familie = verdi;
   verdi ? document.getElementById("familiemedlemmer").style.display = 'block' : document.getElementById("familiemedlemmer").style.display = 'none';
}  

function vervAktiver(verdi) {
   verving = verdi;
   verdi ? document.getElementById("vervingFelt").style.display = 'block' : document.getElementById("vervingFelt").style.display = 'none';
}  

function gaveMedlAktiver(verdi) {
   gaveMedlemskap = verdi;
   if (verdi == true) {
      document.getElementById("gaveFelt").style.display = 'block';
      document.getElementById("avtalegiroValg").disabled = true;
	document.getElementById("avtalegiroValg").checked = false;
      document.getElementById("avtalegiro").style.display = 'none';
      if (betMate == 'kort') document.getElementById("kortalternativ").style.display = 'none';
   } else { 
      document.getElementById("gaveFelt").style.display = 'none';
      document.getElementById("avtalegiroValg").disabled = false;
      if (betMate == 'kort') document.getElementById("kortalternativ").style.display = 'block';
   }
}  



function velgBet(type) {
   document.getElementById("avtalegiro").style.display = 'none';
   document.getElementById("kortalternativ").style.display = 'none';
   betMate = type;
   switch(type) {
   case("avtalegiro"):
      document.getElementById("avtalegiro").style.display = 'block';
   case ("faktura"):
      document.getElementById("ekstragave").style.display = 'none';
      skjema.ekstragave.checked = false;
      skjema.gavebelop.value = '';
      break;
   case ("kort"):
      if (valgtKatId != 4 && gaveMedlemskap != true) document.getElementById("kortalternativ").style.display = 'block';
      document.getElementById("ekstragave").style.display = 'block';
      break;
   }
}

function sendSkjema(jcok) {
 jcok.value = 1;
 submitted = true;
 if (feltsjekk()) {
    if (fastKilde != undefined && fastKilde.length>0) {
	   document.getElementById('kilde').value = fastKilde;
	} else { 
	   document.getElementById('kilde').value = hentQueryVariabel('kilde');
	}
    return true;
 } else {
    alert("Det er noe du har glemt å fylle ut i skjemaet, eller noe du har fylt ut feil. Se over en gang til.");
    return false;
 }

}

function velgKat(katId) {
   valgtKatId = katId;
   familieAktiver(false);
   document.getElementById("studfamiliemedlemskapcheck").checked = false;
   document.getElementById("pensjfamiliemedlemskapcheck").checked = false;
   document.getElementById("studfamiliemedlemskap").style.display = 'none'
   document.getElementById("pensjfamiliemedlemskap").style.display = 'none'
   document.getElementById("famkat").style.display = 'none';
   document.getElementById("avtalegiroValg").disabled = false;
   velgBet(betalingSjekk());
   switch (katId) {
         case '0':   //hovedmedlem
	   break;
	   case '1':   //familiemedlem
	   familieAktiver(true);
	   document.getElementById("famkat").style.display = 'inline';
	   break;
	   case '2':   //student
	   document.getElementById("studfamiliemedlemskap").style.display = 'inline';
	   break;
	   case '3':   //pensjonist
	   document.getElementById("pensjfamiliemedlemskap").style.display = 'inline';
	   break;
	   case '4':   //livstidsmedlem
	   document.getElementById("avtalegiroValg").disabled = true;
	   document.getElementById("avtalegiroValg").checked = false;
	   break;
	   case '5':   //studentfamilie
	   familieAktiver(true);
	   document.getElementById("famkat").style.display = 'inline';
	   break;
	   case '6':   //pensjonistfamilie
	   familieAktiver(true);
	   document.getElementById("famkat").style.display = 'inline';
	   break;
    }
	
	sjekk();

}

function kategoriSjekk() {
   for (i = 0; i<skjema.kategori.length;i++)
   if (skjema.kategori[i].checked == true) 
      return i;
}


function betalingSjekk() {
   for (i = 0; i<skjema.betaling.length;i++)
   if (skjema.betaling[i].checked == true) 
      return skjema.betaling[i].value;
}

function feltsjekk() {
   nullstillfeil();
   settpoststed(document.getElementById("postnr").value);
   if (submitted==true) {
      if (skjema.navn.value == "") {
         display_error("navnMangler");
         feil++;
      }
	  
	  
      if (verving == true) {
	   if (skjema.verversnavn.value == "") {
	      display_error("ververNavnMangler");
		feil++;
         }
         if (skjema.ververskontakt.value == "" && skjema.verversnr.value == "") {
	      display_error("ververKontaktMangler");
            feil++;
         }
	}
	  
      if (kategoriSjekk() == null || ((kategoriSjekk()== 2 || kategoriSjekk() == 3) && document.getElementById("famkat").style.display == "none")) {
         display_error("kategoriMangler");
         feil++;
      }
	  
	if (betalingSjekk() == null) {
         display_error("betalingMangler");
         feil++;
      }
	  

      if (familie == true) {
         for (i = 1; i<antfammedl+1; i++) {
            if (skjema['agent' + i].checked && agentalderok(i) == false) {
               display_error("mafeil" + i);
               feil++;
            }
            if (skjema['familiemedlem' + i].value.length<2) {
               display_error("famNavnMangler" + i);
            }
	 }
      }

	if (utland == false && skjema.postnr.value.length<4) {
	   display_error("postnrMangler");
         feil++;
	}

	if (utland == true && skjema.adresse.value.length<2) {
	   display_error("adrMangler");
         feil++;
	}
	  	  
	if (gaveMedlemskap == true) {
	   if (skjema.giverNavn.value == "") {
            display_error("giverNavnMangler");
		feil++;
         }
		 
	   if (skjema.giverAdresse.value == "") {
	      display_error("giverAdrMangler");
		feil++;
         }
      }
	  
      if (feil>0) {
	   display_error("feilSkjema");
         return false; 
      } else {
         return true;
      }

   }  //endif submitted==true
   return false;
}


function agentalderok(agentId) {
   if (agentaarok(skjema['fam' + agentId + 'fodtaa'].value) == false)
      return false;
   if (skjema['fam' + agentId + 'fodtd'].value == 0)
      return false;
   if (skjema['fam' + agentId + 'fodtm'].value == 0)
      return false;
   return true;
}

function agentaarok(aar) {
	if (aar.length < 2) return false;
      if (aar.lenght == 3) return false;
	var tid = new Date();
	var iaar = tid.getYear()+1900;
	var iaar2 = tid.getYear()-100;
	var aarsgrense = iaar-14;
	if (aarsgrense > 1999) { 
	   var aarsgrense2 = aarsgrense - 2000;
	} else { 
	   var aarsgrense2 = aarsgrense - 1900;
	}
      if (aar<100) {
         if (aar<=iaar2 || aar>aarsgrense2) return true;
            else return false;
         } else {
            if (aar>aarsgrense && aar<=iaar) return true;
            else return false;
         }
   return true;

}

function display_error(id) {

   document.getElementById(id).style.display = "inline";
   feilliste[feilliste.length] = id;
}

function hide_error(id) {
   document.getElementById(id).style.display = "none";
}

function nullstillfeil() {
   for (i=0;i<feilliste.length;++i) {
      hide_error(feilliste[i]);
   }
   feilliste = new Array();
   feil = 0;
}

function leggtilfam() {
   if (antfammedl == 10) { alert("Maks 10 familiemedlemmer."); } else {
   antfammedl++;
   document.getElementById("fam" + antfammedl).innerHTML = lagFam(antfammedl);
   document.getElementById("fam" + antfammedl).style.display = "block";
   if (antfammedl == 2) skjema.fjernfamknapp.style.display = "inline";
   }
   
}

function fjernfam() {
   if (antfammedl > 1) {
      document.getElementById("fam" + antfammedl).innerHTML = "";
   document.getElementById("fam" + antfammedl).style.display = "none";
      antfammedl--;
   }
   if (antfammedl == 1) { skjema.fjernfamknapp.style.display = "none"; }
   
}

function visStudentFamilie() {
   document.getElementById("studfamiliemedlemskap").style.display = "inline";
}



function lagFam(famnr) {
famLinje = '<fieldset class="linje" id="famfield' + famnr + '"><table><tr><td style="padding-right: 5px;"><label for="familiemedlem' + famnr + '">Familiemedl. nr. ' + famnr + ': </label></td><td><input type="text" name="familiemedlem' + famnr + '" id="familiemedlem' + famnr + '" value="" class="famNavnFelt" onChange="sjekk();"><label> Skal være miljøagent <input type="checkbox" name="agent' + famnr + '" onClick="sjekk();" value="ja"></label></td></tr>';

famLinje += '<tr><td>Fødselsdato: </td><td>' + datoFelt('fam' + famnr + 'fodtd', 'fam' + famnr + 'fodtm', 'fam' + famnr + 'fodtaa');

famLinje += '</td></tr>' +
'</table><span id="mafeil' + famnr + '" class="feil">Du må oppgi full fødselsdato for miljøagenten, og denne må være under 13 år.<br></span>' + 
'<span id="famNavnMangler' + famnr + '" class="feil">Navn på familiemedlemmet mangler.</span></fieldset><hr>';

return famLinje;
}

function datoFelt(dagfelt, mndfelt, aarfelt) {
return '<select class="dagfelt" name="' + dagfelt + '" onChange="sjekk()">' +
'<option value="0">Dag</option>' +
'<option value="1">1</option>' +
'<option value="2">2</option>' +
'<option value="3">3</option>' +
'<option value="4">4</option>' +
'<option value="5">5</option>' +
'<option value="6">6</option>' +
'<option value="7">7</option>' +
'<option value="8">8</option>' +
'<option value="9">9</option>' +
'<option value="10">10</option>' +
'<option value="11">11</option>' +
'<option value="12">12</option>' +
'<option value="13">13</option>' +
'<option value="14">14</option>' +
'<option value="15">15</option>' +
'<option value="16">16</option>' +
'<option value="17">17</option>' +
'<option value="18">18</option>' +
'<option value="19">19</option>' +
'<option value="20">20</option>' +
'<option value="21">21</option>' +
'<option value="22">22</option>' +
'<option value="23">23</option>' +
'<option value="24">24</option>' +
'<option value="25">25</option>' +
'<option value="26">26</option>' +
'<option value="27">27</option>' +
'<option value="28">28</option>' +
'<option value="29">29</option>' +
'<option value="30">30</option>' +
'<option value="31">31</option>' +
'</select></label>' +
'<select class="mndfelt" name="' + mndfelt + '" onChange="sjekk()">' +
'<option value="0">Måned</option>' +
'<option value="1">Januar</option>' +
'<option value="2">Februar</option>' +
'<option value="3">Mars</option>' +
'<option value="4">April</option>' +
'<option value="5">Mai</option>' +
'<option value="6">Juni</option>' +
'<option value="7">Juli</option>' +
'<option value="8">August</option>' +
'<option value="9">September</option>' +
'<option value="10">Oktober</option>' +
'<option value="11">November</option>' +
'<option value="12">Desember</option>' +
'</select>' +
'<input type="text" maxlength="4" class="aarfelt" name="' + aarfelt + '" value="År" size="3" onfocus="tomAar(this);" onclick="tomAar(this);" onchange="sjekk()">';
}


function tomAar(obj) {
   if (obj.value == "År") obj.value = "";
}

function settpoststed(postnr) {
   if (postnr.length>0) {
   var verdi;
   for (var n in postTabell) {
      if (n == postnr && this.postTabell[n] != null) {
         verdi = this.postTabell[n];
         break;
      }
   }
   if (verdi == null) {
      skjema.poststed.value = "";
   } else {
      skjema.poststed.value = verdi;
   }
   }
}


function checkMail(mail) {
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(mail)) return true;
	else return false;
}

function epostsjekk(epost) {
      if (checkMail(epost) || epost == '') {
         document.getElementById("ugyldigEpost").style.display = "none";
         return true;
      } else {
         document.getElementById("ugyldigEpost").style.display = "inline";
         return false;
      }
}

function sjekkgavebelop(belop) {
 if (parseInt(belop)>5000) document.getElementById("belopAdvarsel").style.display = "inline";
 else document.getElementById("belopAdvarsel").style.display = "none"
 }
 
function gaveaktiver(verdi) {
   if (verdi == true) {
      skjema.gavebelop.disabled=false;
      skjema.gavebelop.style.background = "#ffffff";
      sjekkgavebelop(skjema.gavebelop.value);
   } else {
      skjema.gavebelop.disabled=true;
      skjema.gavebelop.style.background = "#D4D0C8";
	  document.getElementById("belopAdvarsel").style.display = "none"
   }
}

function nyhetsbrevSjekk(verdi) {
   if (verdi == true) {
      if (skjema.epost.value=='') {
         alert("Du må fylle ut epost-adressen din under 'Personalia' for å kunne krysse av for nyhetsbrev på epost.");
         skjema.nyhetsbrev.checked = false;
      }
   }
}

function hentQueryVariabel(variabel) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var par = vars[i].split("=");
    if (par[0] == variabel) {
      return par[1];
    }
  } 
}

function juleSjekk() {
  if (fastKilde == "jul") {
     document.getElementById("livstidlinje").style.display="none";
     document.getElementById("annetfieldset").style.display="none";
     document.getElementById("avtalegiroLinje").style.display="none";
     document.getElementById("fullkontlinje").style.display="none";

     skjema.gavevalg.checked="true";
     skjema.gavevalg.disabled="true";
     gaveMedlAktiver(true);
  }
}