// Floor swapper //

// constants
var KIWI_METER_WIDTH = (1 / 3);
var KIWI_FEET_WIDTH = 1.0936;

var imageIndex = 0;
var tileType = "o";
var FLOOR_WIDTH = 25;
var FLOOR_LENGTH = 50;
var numImage = 0;
//var NUM_ALL = 17;
var NUM_OPEN = 10;
var NUM_CLOSED = 10;
var where = new Array(2);
var prevIndex = 1;

imageIndex = 0;
imageOpenArray = new Array(NUM_OPEN);
imageOpenArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_blank.gif");
imageOpenArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_blue_o.gif");
imageOpenArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_red_o.gif");
imageOpenArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_green_o.gif");
imageOpenArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_yellow_o.gif");
imageOpenArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_orange_o.gif");
imageOpenArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_brown_o.gif");
imageOpenArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_black_o.gif");
imageOpenArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_grey_o.gif");
imageOpenArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_white_o.gif");

imageIndex = 0;
imageClosedArray = new Array(NUM_CLOSED);
imageClosedArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_blank.gif");
imageClosedArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_blue.gif");
imageClosedArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_red.gif");
imageClosedArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_green.gif");
imageClosedArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_yellow.gif");
imageClosedArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_orange.gif");
imageClosedArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_brown.gif");
imageClosedArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_black.gif");
imageClosedArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_grey.gif");
imageClosedArray[imageIndex++] = new imageItem("http://www.garasjegulv.no/media/floor_white.gif");

numImage = NUM_OPEN; // default to open
imageIndex = 0; // reset to zero

var orderArray = new Array(FLOOR_LENGTH);
for (i = 0; i < FLOOR_LENGTH; i++) { // make 3-D
  orderArray[i] = new Array(FLOOR_WIDTH);
  for (j = 0; j < FLOOR_WIDTH; j++) {
    orderArray[i][j] = new Array(2); // o or c
  }
}

for (i = 0; i < FLOOR_LENGTH; i++) {
  for (j = 0; j < FLOOR_WIDTH; j++) {
    orderArray[i][j][0] = 'c'; // default to closed
    orderArray[i][j][1] = 0;
  }
}

function setTileType(thisTileType) {
  prevIndex = 1;
  //imageIndex = 0; // reset color rotation when changing tile types
  tileType = thisTileType;
  if (tileType == 'c') {
    numImage = NUM_CLOSED;
  } else { // all
    numImage = NUM_OPEN;
  }
}

function imageItem(imageLocation) {
  this.imageItem = new Image();
  this.imageItem.src = imageLocation;
}


function getImageItemLocation(imageObj) {
  return(imageObj.imageItem.src)
}

function getNextImage() {
  imageIndex = imageIndex % numImage;
  var newImage;
  if (tileType == 'c') {
    newImage = getImageItemLocation(imageClosedArray[imageIndex]);
  } else {
    newImage = getImageItemLocation(imageOpenArray[imageIndex]);
  }
  return(newImage);
}

function swapFloorTile(place) {
  where = stringSplit(place, '_');
  if ((orderArray[where[1]][where[2]][1] % numImage) > 0) {
    imageIndex = ++orderArray[where[1]][where[2]][1] % numImage;
    prevIndex = imageIndex;
  } else {
    if (prevIndex == 0) prevIndex++; // allows looping
    imageIndex = prevIndex;
    orderArray[where[1]][where[2]][1] = prevIndex;
    document.floor.area.value = prevIndex;
  }
  orderArray[where[1]][where[2]][0] = tileType;
  var newImage = getNextImage();
  document[place].src = newImage;
}

function calculate() {
  // force redraw
  document.floor.open.value = "";
  document.floor.closed.value = "";
  document.floor.area.value = "";
  document.floor.area.value = orderArray.join("_");
  
  var totalNum = 0;
  var oNumBlue = 0; var oNumRed = 0; var oNumGreen = 0; var oNumYellow = 0; var oNumOrange = 0;
  var oNumBrown = 0;var oNumBlack = 0; var oNumGrey = 0; var oNumWhite = 0;
  var cNumBlue = 0; var cNumRed = 0; var cNumGreen = 0; var cNumYellow = 0; var cNumOrange = 0;
  var cNumBrown = 0; var cNumBlack = 0; var cNumGrey = 0; var cNumWhite = 0;
  for (i = 0; i < FLOOR_LENGTH; i++) {
    for (j = 0; j < FLOOR_WIDTH; j++) {
      if (orderArray[i][j][1] > 0) { // tile selected
        if (orderArray[i][j][0] == 'c') {
          switch (orderArray[i][j][1]){
            case 1: cNumBlue++; totalNum++;
                    break;
            case 2: cNumRed++; totalNum++;
                    break;
            case 3: cNumGreen++; totalNum++;
                    break;
            case 4: cNumYellow++; totalNum++;
                    break;
            case 5: cNumOrange++; totalNum++;
                    break;
            case 6: cNumBrown++; totalNum++;
                    break;
            case 7: cNumBlack++; totalNum++;
                    break;
            case 8: cNumGrey++; totalNum++;
                    break;
            case 9: cNumWhite++; totalNum++;
          }
        } else {
          switch (orderArray[i][j][1]) {
            case 1: oNumBlue++; totalNum++;
                    break;
            case 2: oNumRed++; totalNum++;
                    break;
            case 3: oNumGreen++; totalNum++;
                    break;
            case 4: oNumYellow++; totalNum++;
                    break;
            case 5: oNumOrange++; totalNum++;
                    break;
            case 6: oNumBrown++; totalNum++;
                    break;
            case 7: oNumBlack++; totalNum++;
                    break;
            case 8: oNumGrey++; totalNum++;
                    break;
            case 9: oNumWhite++; totalNum++;
          }
        }
      }
    }
  }
  // print
  var oOut = "";
  if (oNumBlue || oNumRed || oNumGreen || oNumYellow || oNumOrange || oNumBrown || oNumBlack || oNumGrey || oNumWhite) {
    oOut = "Perforerte fliser";
    if (oNumBlue) {
      oOut += ", " + oNumBlue + " blå";
    }
    if (oNumRed) {
      oOut += ", " + oNumRed + " rød";
    }
    if (oNumGreen) {
      oOut += ", " + oNumGreen + " grønn";
    }
    if (oNumYellow) {
      oOut += ", " + oNumYellow + " gul";
    }
    if (oNumOrange) {
      oOut += ", " + oNumOrange + " oransje";
    }
    if (oNumBrown) {
      oOut += ", " + oNumBrown + " brun";
    }
    if (oNumBlack) {
      oOut += ", " + oNumBlack + " sort";
    }
    if (oNumGrey) {
      oOut += ", " + oNumGrey + " grå";
    }
    if (oNumWhite) {
      oOut += ", " + oNumWhite + " hvit";
    }
    document.floor.open.value = oOut;
  }

  var cOut = "";
  if (cNumBlue || cNumRed || cNumGreen || cNumYellow || cNumOrange || cNumBrown || cNumBlack || cNumGrey || cNumWhite) {
    cOut = "Tette fliser";
    if (cNumBlue) {
      cOut += ", " + cNumBlue + " blå";
    }
    if (cNumRed) {
      cOut += ", " + cNumRed + " rød";
    }
    if (cNumGreen) {
      cOut += ", " + cNumGreen + " grønn";
    }
    if (cNumYellow) {
      cOut += ", " + cNumYellow + " gul";
    }
    if (cNumOrange) {
      cOut += ", " + cNumOrange + " oransje";
    }
    if (cNumBrown) {
      cOut += ", " + cNumBrown + " brun";
    }
    if (cNumBlack) {
      cOut += ", " + cNumBlack + " sort";
    }
    if (cNumGrey) {
      cOut += ", " + cNumGrey + " grå";
    }
    if (cNumWhite) {
      cOut += ", " + cNumWhite + " hvit";
    }
    document.floor.closed.value = cOut;
  }
  
  if (totalNum > 0) {
    var areaFeet;
    var areaMeters;
    areaMeters = Math.round(totalNum * KIWI_METER_WIDTH * KIWI_METER_WIDTH * 100) / 100; // round to hundredths
    areaFeet = Math.round(totalNum * KIWI_FEET_WIDTH * KIWI_FEET_WIDTH * 100) / 100; // round to hundredths
//    document.floor.area.value = "Det er tegnet inn totalt " + totalNum + " fliser, og disse dekker et område på: " + areaMeters + " kvadratmeter";
  }
  
  // add to cart
  document.floor.qty_1.value = oNumBlue;
  document.floor.qty_2.value = oNumRed;
  document.floor.qty_3.value = oNumGreen;
  document.floor.qty_4.value = oNumYellow;
  document.floor.qty_5.value = oNumOrange;
  document.floor.qty_6.value = oNumBrown;
  document.floor.qty_7.value = oNumBlack;
  document.floor.qty_8.value = oNumGrey;
  document.floor.qty_9.value = oNumWhite;
  
  document.floor.qty_10.value = cNumBlue;
  document.floor.qty_11.value = cNumRed;
  document.floor.qty_12.value = cNumGreen;
  document.floor.qty_13.value = cNumYellow;
  document.floor.qty_14.value = cNumOrange;
  document.floor.qty_15.value = cNumBrown;
  document.floor.qty_16.value = cNumBlack;
  document.floor.qty_17.value = cNumGrey;
  document.floor.qty_18.value = cNumWhite;
}

function makephp() {
  // force redraw
  document.floor.open.value = "";
  document.floor.closed.value = "";
  document.floor.area.value = "";
  var totalNum = 0;
  var oNumBlue = 0; var oNumRed = 0; var oNumGreen = 0; var oNumYellow = 0; var oNumOrange = 0;
  var oNumBrown = 0;var oNumBlack = 0; var oNumGrey = 0; var oNumWhite = 0;
  var cNumBlue = 0; var cNumRed = 0; var cNumGreen = 0; var cNumYellow = 0; var cNumOrange = 0;
  var cNumBrown = 0; var cNumBlack = 0; var cNumGrey = 0; var cNumWhite = 0;
  for (i = 0; i < FLOOR_LENGTH; i++) {
    for (j = 0; j < FLOOR_WIDTH; j++) {
      if (orderArray[i][j][1] > 0) { // tile selected
        if (orderArray[i][j][0] == 'c') {
          switch (orderArray[i][j][1]){
            case 1: cNumBlue++; totalNum++;
                    break;
            case 2: cNumRed++; totalNum++;
                    break;
            case 3: cNumGreen++; totalNum++;
                    break;
            case 4: cNumYellow++; totalNum++;
                    break;
            case 5: cNumOrange++; totalNum++;
                    break;
            case 6: cNumBrown++; totalNum++;
                    break;
            case 7: cNumBlack++; totalNum++;
                    break;
            case 8: cNumGrey++; totalNum++;
                    break;
            case 9: cNumWhite++; totalNum++;
          }
        } else {
          switch (orderArray[i][j][1]) {
            case 1: oNumBlue++; totalNum++;
                    break;
            case 2: oNumRed++; totalNum++;
                    break;
            case 3: oNumGreen++; totalNum++;
                    break;
            case 4: oNumYellow++; totalNum++;
                    break;
            case 5: oNumOrange++; totalNum++;
                    break;
            case 6: oNumBrown++; totalNum++;
                    break;
            case 7: oNumBlack++; totalNum++;
                    break;
            case 8: oNumGrey++; totalNum++;
                    break;
            case 9: oNumWhite++; totalNum++;
          }
        }
      }
    }
  }
  // print
  var oOut = "";
  var teller = 1
  var tekst_array = new Array()
  if (oNumBlue || oNumRed || oNumGreen || oNumYellow || oNumOrange || oNumBrown || oNumBlack || oNumGrey || oNumWhite) {
    oOut = "";
    if (oNumBlue) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + oNumBlue + "&model_" + teller + "=PBLUE";
      teller++;
    }
    if (oNumRed) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + oNumRed + "&model_" + teller + "=PRED";
      teller++;
    }
    if (oNumGreen) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + oNumGreen + "&model_" + teller + "=PGREEN";
      teller++;
    }
    if (oNumYellow) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + oNumYellow + "&model_" + teller + "=PYELLOW";
      teller++;
    }
    if (oNumOrange) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + oNumOrange + "&model_" + teller + "=PORANGE";
      teller++;
    }
    if (oNumBrown) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + oNumBrown + "&model_" + teller + "=PBROWN";
      teller++;
    }
    if (oNumBlack) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + oNumBlack + "&model_" + teller + "=PBLACK";
      teller++;
    }
    if (oNumGrey) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + oNumGrey + "&model_" + teller + "=PGREY";
      teller++;
    }
    if (oNumWhite) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + oNumWhite + "&model_" + teller + "=PWHITE";
      teller++;
    }
  }
  var cOut = "";
  if (cNumBlue || cNumRed || cNumGreen || cNumYellow || cNumOrange || cNumBrown || cNumBlack || cNumGrey || cNumWhite) {
    cOut = "";
    if (cNumBlue) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + cNumBlue + "&model_" + teller + "=DGBLUE";
      teller++;
    }
    if (cNumRed) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + cNumRed + "&model_" + teller + "=DGRED";
      teller++;
    }
    if (cNumGreen) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + cNumGreen + "&model_" + teller + "=DGGREEN";
      teller++;
    }
    if (cNumYellow) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + cNumYellow + "&model_" + teller + "=DGYELLOW";
      teller++;
    }
    if (cNumOrange) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + cNumOrange + "&model_" + teller + "=DGORANGE";
      teller++;
    }
    if (cNumBrown) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + cNumBrown + "&model_" + teller + "=DGBROWN";
      teller++;
    }
    if (cNumBlack) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + cNumBlack + "&model_" + teller + "=DGBLACK";
      teller++;
    }
    if (cNumGrey) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + cNumGrey + "&model_" + teller + "=DGGREY";
      teller++;
    }
    if (cNumWhite) {
      tekst_array[teller-1] = "&qty_" +teller+ "=" + cNumWhite + "&model_" + teller + "=DGWHITE";
      teller++;
    }
  }
  if (totalNum > 0) {
  opener.location.href = "http://www.garasjegulv.no/index.php?main_page=quick_order&action=add_products"+ tekst_array.join("");
  }
}



