function check_form()
{
   if (isSuperPackage())
   {
      show_price_for_super_package();
   }
   else if (isBigPackage())
   {
      show_price_for_big_package();
   }
   else if (isSmallPackage())
   {
      show_price_for_small_package();
   }
   else
   {
      show_price_for_workshops();
   }
}

function isSuperPackage()
{
   return count_selected_workshops(1,10) == 9;
}

function isBigPackage()
{
   return count_selected_workshops(1,10) >= 6;
}

function isSmallPackage()
{
   return count_selected_workshops(1,10) >= 4;
}

function count_selected_workshops(pStartIndex, pEndIndex)
{
   var vNumberSelected = 0;
   for (i = pStartIndex; i <= pEndIndex; i++)
   {
      var vElementId = "workshop_" + i;
      if (document.getElementById(vElementId).checked)
      {
         vNumberSelected++;
      }
   }
   return vNumberSelected;
}

function handle_dependant_workshop(pChanged, pDependant)
{
   var vChangedId = "workshop_" + pChanged;
   var vDependantId = "workshop_" + pDependant;
   if (document.getElementById(vChangedId).checked == true)
   {
      document.getElementById(vDependantId).checked = false;
      document.getElementById(vDependantId).disabled = true;
   }
   else
   {
      document.getElementById(vDependantId).disabled = false;
   }
}

function workshop_selected(pWorkshopId)
{
   if (pWorkshopId == 6)
   {
      handle_dependant_workshop(6, 7);
   }
   else if (pWorkshopId == 7)
   {
      handle_dependant_workshop(7, 6);
   }
   check_form();
}

function isWorkshopSelected(pWorkshopId)
{
   var vElementId = "workshop_" + pWorkshopId;
   if (document.getElementById(vElementId).checked == true)
   {
      return true;
   }
   return false;
}

function isAnyWorkshopSelected()
{
   return count_selected_workshops(1,10) > 0;
}

function isAnythingSelected()
{
   return count_selected_workshops(1,13) > 0;
}

function show_price_for_extras(pText, pPrice, pIsPackage, pIsDinnerIncluded) {
   if (isWorkshopSelected(11))    {
      pText += "Grundkurs. ";
      if (pIsPackage)       {
         pPrice += 200;
      } else {
         pPrice += 400;
      }
   }
   if (isWorkshopSelected(12) && !pIsDinnerIncluded)    {
      pText += "Middag fredag. ";
      pPrice += 150;
   }

   pText += "Totalt " + pPrice + ":-";
   if (pPrice == 0)    {
      pText = "&nbsp;";
   }

   document.getElementById('price_info').innerHTML = pText;
}

function show_price_for_super_package()
{
   //document.getElementById('workshop_13').checked = true;
   var vText = "Super-paketet. ";
   var vPrice = 1200;
   show_price_for_extras(vText, vPrice, true, true);
}

function show_price_for_big_package()
{
   //document.getElementById('workshop_13').checked = true;
   var vText = "Stora festivalito-paketet. ";
   var vPrice = 900;
   var vNumberExtras = count_selected_workshops(1,10) - 6;
   if (vNumberExtras == 1)
   {
      vText += "1 extra workshop. ";
      vPrice += 200;
   }
   else if (vNumberExtras == 2)
   {
      vText += "2 extra workshops. ";
      vPrice += 400;
   }
   show_price_for_extras(vText, vPrice, true, true);
}

function show_price_for_small_package()
{
   //document.getElementById('workshop_13').checked = true;
   var vText = "Festivalito-paketet. ";
   var vPrice = 700;
   var vNumberExtras = count_selected_workshops(1,10) - 4;
   if (vNumberExtras == 1)
   {
      vText += "1 extra workshop. ";
      vPrice += 200;
   }
   show_price_for_extras(vText, vPrice, true, false);
}

function show_price_for_workshops()
{
   var vText = "&nbsp;";
   var vPrice = 0;

   var vNumberWorkshops = count_selected_workshops(1,10);

   if (vNumberWorkshops == 0)
   {
   }
   else if (vNumberWorkshops == 1)
   {
      vText += "1 workshop. ";
      vPrice += 200;
   }
   else
   {
      vText += "" + vNumberWorkshops + " workshops. ";
      vPrice += 200*vNumberWorkshops;
   }
   if (isWorkshopSelected(13))
   {
      vText += "Milonga fredag. ";
      vPrice += 100;
   }

   show_price_for_extras(vText, vPrice, false, false);
}

function validate_form()
{
   var vResult = true;
   var vFirstError = "";
   if (document.getElementById('first_name').value == '')
   {
      document.getElementById('first_name_error').innerHTML = "Du m&aring;ste fylla i f&ouml;rnamn.";
      vResult = false;
      vFirstError = "first_name";
   }
   else
   {
      document.getElementById('first_name_error').innerHTML = "&nbsp;";
   }

   if (document.getElementById('last_name').value == '')
   {
      document.getElementById('last_name_error').innerHTML = "Du m&aring;ste fylla i efterrnamn.";
      vResult = false;
      if (vFirstError == "")
      {
         vFirstError = "last_name";
      }
   }
   else
   {
      document.getElementById('last_name_error').innerHTML = "&nbsp;";
   }

   if (document.getElementById('mobile_phone').value == '')
   {
      document.getElementById('mobile_phone_error').innerHTML = "Du m&aring;ste fylla i mobilnummer.";
      vResult = false;
      if (vFirstError == "")
      {
         vFirstError = "mobile_phone";
      }
   }
   else
   {
      document.getElementById('mobile_phone_error').innerHTML = "&nbsp;";
   }

   if (document.getElementById('email').value == '')
   {
      document.getElementById('email_error').innerHTML = "Du m&aring;ste fylla i e-post adress.";
      vResult = false;
   }
   else
   {
      document.getElementById('email_error').innerHTML = "&nbsp;";
   }

   if (document.getElementById('accepted').checked == false)
   {
      document.getElementById('accepted_error').innerHTML = "Du m&aring;ste godk&auml;nna villkoren.";
      vResult = false;
         if (vFirstError == "")
         {
            vFirstError = "accepted";
         }
   }
   else
   {
      document.getElementById('accepted_error').innerHTML = "";
   }

   if (isAnyWorkshopSelected() || isWorkshopSelected(11))
   {
      document.getElementById('workshop_error').innerHTML = "&nbsp;";
      if (!document.getElementById('role_leader').checked && !document.getElementById('role_follower').checked)
      {
         document.getElementById('role_error').innerHTML = "Du m&aring;ste v&auml;lja antingen f&ouml;rare eller f&ouml;ljare.";
         vResult = false;
         if (vFirstError == "")
         {
            vFirstError = "role_leader";
         }
      }
      else
      {
         document.getElementById('role_error').innerHTML = "&nbsp;";
      }
   }
   else
   {
      document.getElementById('role_error').innerHTML = "&nbsp;";
      vResult = false;
      if (vFirstError == "")
      {
         vFirstError = "workshop_1";
      }
      document.getElementById('workshop_error').innerHTML = "Du m&aring;ste anm&auml;la dig till n&aring;got.";
   }

   if (isAnythingSelected())
   {
      document.getElementById('workshop_error').innerHTML = "&nbsp;";
   }
   else
   {
      vResult = false;
      if (vFirstError == "")
      {
         vFirstError = "workshop_1";
      }
      document.getElementById('workshop_error').innerHTML = "Du m&aring;ste anm&auml;la dig till n&aring;got.";
   }

   if (vFirstError != "")
   {
      document.getElementById(vFirstError).focus();
      document.getElementById(vFirstError).select();
   }

   //alert ('returning: ' + vResult);
   return vResult;
}
