// Setup calculator when we first load
addLoadEvent(window.setupSize);

function setupSize() {
  var sizeSelect = document.getElementById("product_str");
  if (sizeSelect != null && sizeSelect.type == "select-one") {
    var size = readCookie("size");
    var cup = readCookie("cup");
    if (size != null && cup != null) {
      var re = new RegExp(size + "" + cup);
      for (var i = 0; i < sizeSelect.options.length; i++) {
       var op = sizeSelect.options[i];
       if (op.value && op.value.match(re)) {
         sizeSelect.selectedIndex = i;
         break;
       }
      }
    }
  }
}

function kalk() {
  var m1 = getNum("m1");
  var m2 = getNum("m2");
  if (m1 == null || m2 == null) {
    alert("Skriv kun siffer i begge boksene");
    return;
  }
  // First find the nearest size
  var size = 0;
  var rem = (m1 % 5);
  if (rem <= 2) {
    size = m1 - rem;
  } else {
    size = m1 + (5-rem);
  }
  if (m1 <= 0) {
    alert("For liten verdi");
    return;
  }
  var cupIndex = Math.round((m2 - size - 12.1) / 2);
  var cup = null;
  var displayCup = null;
  if (cupIndex > 12) {
    cup = "M";
    displayCup = "M+";
  } else if (cupIndex < 0) {
    cup = "A";
    displayCup = "A-";
  } else {
    var cups = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M");
    cup = cups[cupIndex];
    displayCup = cup;
  }
  createCookie("size", size, 365);
  createCookie("cup", cup, 365);
  setValue(size + "" + displayCup);
}

function getNum(id) {
  var val = document.getElementById(id).value;
  if (val == null || val == "") {
    return null;
  }
  var re = /\,/gi;
  val = val.replace(re, ".");
  val =  parseFloat(val); 
  if (isNaN(val)) return null;
  var fl = parseFloat(val);
  if (fl <= 0) return null;
  return fl;
}

function setValue(val) {
  document.getElementById("result").style.display = "block";
  document.getElementById("resultValue").innerHTML = val;
}

function createCookie(name,value,days) {
    if (days)
    {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++)
    {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

// Adds event to window.onload without overwriting currently 
// assigned onload functions.
function addLoadEvent(func)
{    
    var oldonload = window.onload;
    if (typeof window.onload != 'function')
    {
        window.onload = func;
    } 
    else 
    {
        window.onload = function()
        {
            oldonload();
            func();
        }
    }
}

