/* start */
var price_stl=0;
var discountstl=0;
var first_time = true;
var min_width=0;
var max_width=0;
var min_drop=0;
var max_drop=0;
var price=0;

var recess_price=0;
var discount=0;
var discountrm=0;
var price_rm=0;
var price_mm=0;

function getDiscount()
{
    var discountstr=wood_arr[0];
    discountstr=formatDecimal(discountstr,true,2)*100;
    document.getElementById('save').innerHTML = discountstr;
}

function sortArrayPrice(a,b){
  return a - b;
}

// calculates the minimum price for current product
function getMinimumPrice()
{
  var min_price_rm = min_price_stl = 9999;

  // MM
  var discount_mm=wood_arr[0];
  var min_price_mm=wood_arr[1][7][3][0];
  for(i=1; i<wood_arr.length; i++)
  {
      var slat_arr=wood_arr[i][7];
      for(j=0; j<slat_arr[0].length; j++)
      {
        var cur_price_mm=slat_arr[3][j]*(1-discount_mm);
        if (min_price_mm>cur_price_mm)
        {
          min_price_mm=cur_price_mm;
        }
      }

  }

  // RM
  if(typeof(wood_rm_arr) != "undefined" && wood_rm_arr.length>0) {
    var discount_rm=wood_rm_arr[0];
    var min_price_rm=wood_rm_arr[1][2][3][0];
    for(i=1; i<wood_rm_arr.length; i++)
    {
        var slat_arr=wood_rm_arr[i][2];
        for(j=0; j<slat_arr[0].length; j++)
        {
          var cur_price_rm=slat_arr[3][j]*(1-discount_rm);
          if (min_price_rm>cur_price_rm)
          {
            min_price_rm=cur_price_rm;
          }
        }

    }
  }

  // STL
  if(typeof(wood_stl_arr) != "undefined" && wood_stl_arr.length>0) {
    var discount_stl=wood_stl_arr[0];
    var min_price_stl=wood_stl_arr[1][6][3][0];
    for(i=1; i<wood_stl_arr.length; i++)
    {
        var slat_arr=wood_stl_arr[i][6];
        for(j=0; j<slat_arr[0].length; j++)
        {
          var cur_price_stl=slat_arr[3][j]*(1-discount_stl);
          if (min_price_stl>cur_price_stl)
          {
            min_price_stl=cur_price_stl;
          }
        }

    }
  }

  var arr = new Array(min_price_mm, min_price_rm, min_price_stl);
  var sorter = new Array();
  sorter = arr.sort(sortArrayPrice);

  min_price=formatDecimal(sorter[0],true,2);
  document.getElementById('minprice').innerHTML = min_price;
}

function selectRecess(recess){
  // INSIDE
  if(recess == 0) {
    document.form_calcwoodmm.recess.value=0;
    document.form_calcwoodmm.returns.value=0;
    if((document.form_calcwoodmm.custom_width.value!="")&&(document.form_calcwoodmm.custom_drop.value!=""))
      GetCustomPrice();

  }
  else if(recess == 5){
    document.form_calcwoodmm.recess.value=0;
  }
  // OUTSIDE
  else {
    GetCustomPrice();
  }
}

function addReturnsToPrice(returns)
{
  if (returns == 1) // RETURNS
  {
    //curent_price = parseFloat(document.form_calcwoodmm.price.value);
    if (price_rm >0)
    {
      //document.form_calcwoodmm.price.value = formatDecimal(parseFloat(price_rm) + 10, true, 2);
      document.form_calcwoodmm.price.value = formatDecimal(parseFloat(price_rm), true, 2);
    }

    else if (price_stl >0)
    {
      //document.form_calcwoodmm.price.value = formatDecimal(parseFloat(price_stl) + 10, true, 2);
      document.form_calcwoodmm.price.value = formatDecimal(parseFloat(price_stl), true, 2);
    }

    else if (price_mm >0)
    {
      //document.form_calcwoodmm.price.value = formatDecimal(parseFloat(price_mm) + 10, true, 2);
      document.form_calcwoodmm.price.value = formatDecimal(parseFloat(price_mm), true, 2);
    }
  }
  if (returns == 0) // NO RETURNS
  {
    if (price_rm) // RM price
      document.form_calcwoodmm.price.value = formatDecimal(price_rm, true, 2);
    else if(price_stl) // STL price
      document.form_calcwoodmm.price.value = formatDecimal(price_stl, true, 2);
    else if (price_mm) // MM price
      document.form_calcwoodmm.price.value = formatDecimal(price_mm, true, 2);
  }
}

function selectReturns(returns)
{
  if(returns == 1 && document.form_calcwoodmm.recess.value == 0){
    var answer = confirm('Pelmet returns are required for installing the blind outside recess only !');
    if (answer == false){
      document.form_calcwoodmm.returns.value = 0;
      returns = 0;
    }
  }
  addReturnsToPrice(returns);
}


function getParams()
{
  var idx = document.URL.indexOf('?');
  var params = new Array();
  if (idx != -1)
  {
    var pairs = document.URL.substring(idx+1, document.URL.length).split('&');
    for (var i=0; i<pairs.length; i++)
    {
      nameVal = pairs[i].split('=');
      params[nameVal[0]] = nameVal[1];
    }
  }
  return params;
}

function SetOtherParams()
{
  params = getParams();
  if (params["lift"] && params["tilt"] && params["tape"] && params["recess"] && params["returns"])
  {
  document.form_calcwoodmm.lift_control.value = params["lift"];
  document.form_calcwoodmm.tilt_control.value = params["tilt"];
  document.form_calcwoodmm.tape.value = params["tape"];
    selectTape(document.form_calcwoodmm.tape.value);
  document.form_calcwoodmm.recess.value = params["recess"];
    selectRecess(document.form_calcwoodmm.recess.value);
    if (params["returns"] == 0 && params["recess"] == 1)
    {
      document.form_calcwoodmm.returns.value = params["returns"];
      addReturnsToPrice(document.form_calcwoodmm.returns.value);
    }
  }
  /* TAKE SLAT FROM QQ AND SELECT IT AS DEFAULT - RaduL*/
  price = 0;
  slat = params["slat"];
  outside = params["outside"];

  if(slat > 0) {
    var slatObj = document.form_calcwoodmm.slat;
    for(k = 0; k < slatObj.length; k++) {
      if(slatObj[k].value == slat )
        slatObj[k].checked = true;
      //else
        //slatObj[k].checked = false;
    }
    document.form_calcwoodmm.slat_value.value = slat;
  }

  // default recess OUTSIDE when coming from QQ
  if((outside!="")&&(typeof(outside) != "undefined")) {
    document.form_calcwoodmm.recess.value = outside;
    var recess=document.form_calcwoodmm.recess.value;
  }

  if((document.form_calcwoodmm.custom_drop.value!="")&&(document.form_calcwoodmm.custom_width.value!="")) {
    GetCustomPrice();
  }
  /* ******************************************* */

}

function formatDecimal(argvalue, addzero, decimaln) {
  var numOfDecimal = (decimaln == null) ? 2 : decimaln;
  var number = 1;

  number = Math.pow(10, numOfDecimal);

  argvalue = Math.round(parseFloat(argvalue) * number) / number;

  argvalue = "" + argvalue;

  if (argvalue.indexOf(".") == 0)
  argvalue = "0" + argvalue;

  if (addzero == true) {
  if (argvalue.indexOf(".") == -1)
    argvalue = argvalue + ".";

  while ((argvalue.indexOf(".") + 1) > (argvalue.length - numOfDecimal))
    argvalue = argvalue + "0";
  }

  return argvalue;
}

function selectSlat(slat)
{
  document.form_calcwoodmm.price.value="";
  document.form_calcwoodmm.saveprice.value="";
  //document.form_calcwoodmm.addtobasket.disabled=true;

  document.form_calcwoodmm.slat_value.value = slat;

  var slat_poz=-1;
  for(i=1; i<wood_arr.length;i++)
  {
    if(wood_arr[i][0]==slat)
      slat_poz=i;
  }

  if(slat_poz<0)
    return;
  min_width=parseInt(wood_arr[slat_poz][2]);
  max_width=parseInt(wood_arr[slat_poz][3]);
  min_drop=parseInt(wood_arr[slat_poz][4]);
  max_drop=parseInt(wood_arr[slat_poz][5]);

  price=0;
  price_tape=0;

  /*if(wood_arr[slat_poz][6] != '') // tapestr exists for current slat, show it as option
    document.form_calcwoodmm.tape.options[1]=new Option(wood_arr[slat_poz][6], 1);
  else
    document.form_calcwoodmm.tape.options[1]=null;*/

  params = getParams();

  width = params["width"];
  drop = params["drop"];
  //slat = params["slat"]; // radul
  //outside = params["outside"];

  if((width!="")&&(typeof(width) != "undefined"))
    document.form_calcwoodmm.custom_width.value=unescape(width);
  if((drop!="")&&(typeof(drop) != "undefined"))
    document.form_calcwoodmm.custom_drop.value=unescape(drop);
  if((slat!="")&&(typeof(slat) != "undefined")) //radul
    document.form_calcwoodmm.slat_value.value=unescape(slat); // put selected slat's value in a hidden field
  /*
  if((outside!="")&&(typeof(outside) != "undefined"))
    document.form_calcwoodmm.recess.value = outside;
  var recess=document.form_calcwoodmm.recess.value;
  */
  /* REMOVES TAPES FOR SPECIFIED SLATS */
  var selected_slat = wood_arr[slat_poz][1]; // name of the selected slat

  var v_remove_slats = new Array();
  var v_remove_tapes = new Array();

  v_remove_slats[0] = '50mm'; // 50mm slat
  v_remove_tapes['50mm'] = new Array();
  v_remove_tapes['50mm'] = [18, 9]; // dark grey, brown tape

  v_remove_slats[1] = '25mm'; // 25mm slat
  v_remove_tapes['25mm'] = new Array();
  v_remove_tapes['25mm'] = [18, 21]; // dark grey, caramel tape

  v_remove_slats[2] = '35mm'; // 35mm slat
  v_remove_tapes['35mm'] = new Array();
  v_remove_tapes['35mm'] = [18]; // dark grey tape

  remove_custom_tape(selected_slat, v_remove_slats, v_remove_tapes); // deletes tapes for specified slats

  /* ********************************* */

  if((document.form_calcwoodmm.custom_drop.value!="")&&(document.form_calcwoodmm.custom_width.value!="")) {
    GetCustomPrice();
  }
}

function AddSlats()
{
  //add slats
  /* document.form_calcwoodmm.slat.value
    slat.value
  */
  //document.form_calcwoodmm.prodtype.value=1;
  var slat=GetSlatValue(document.form_calcwoodmm);
  var recess=document.form_calcwoodmm.recess.value;
  var returns=document.form_calcwoodmm.returns.value;
  document.form_calcwoodmm.tape.value=0;

  discount=wood_arr[0];
  if(typeof(wood_rm_arr) != "undefined" && wood_rm_arr.length>0) // RM
    discountrm=wood_rm_arr[0];
  if(typeof(wood_stl_arr) != "undefined" && wood_stl_arr.length>0) // STL
    discountstl=wood_stl_arr[0];

  selectSlat(slat); //select default slat
  selectRecess(recess);
}

function selectTape(tape)
{
  GetCustomPrice();
}

function ChangePrice(custom_ctrl, form_calc)
{
  custom_ctrl.value="";
  form_calc.price.value="";
  form_calc.saveprice.value="";
  //form_calc.addtobasket.disabled=true;
  document.form_calcwoodmm.woodrm.value=0;

}

function GetPrice(prices_arr, width, drop)
{
  var min_dif_width=-1, min_dif_drop=-1;
  var sel_width=-1, sel_drop=-1;
  var price=0;
  for(i=0;i<prices_arr[0].length;i++)
  {
    var cur_dif_width=prices_arr[1][i]-width;
    var cur_dif_drop=prices_arr[2][i]-drop;
    if(((min_dif_width==-1)||(cur_dif_width<min_dif_width))&&(cur_dif_width>=0))
    {
      min_dif_width=cur_dif_width;
      sel_width=prices_arr[1][i];
      sel_drop=-1;
      min_dif_drop=-1;
    }

    if(prices_arr[1][i]==sel_width)
      if(((min_dif_drop==-1)||(cur_dif_drop<min_dif_drop))&&(cur_dif_drop>=0)&&(min_dif_width!=-1))
      {
        min_dif_drop=cur_dif_drop;
        sel_drop=prices_arr[2][i];
        price=prices_arr[3][i];
      }
  }
  return price;
}

function GetMaxWidth(prices_arr, drop)
{
  var max_width=0;
  var min_dif_drop=-1;
  var sel_drop=-1;
  for(i=0;i<prices_arr[0].length;i++)
  {
    var cur_dif_drop=prices_arr[2][i]-drop;
    if(((min_dif_drop==-1)||(cur_dif_drop<min_dif_drop))&&(cur_dif_drop>=0))
    {
      min_dif_drop=cur_dif_drop;
      sel_drop=prices_arr[2][i];
      max_width=0;
    }

    if((prices_arr[2][i]==sel_drop)&&(max_width<prices_arr[1][i]))
      max_width=prices_arr[1][i];
  }
  return max_width;
}

function GetRMPrice(custom_width, custom_drop)
{
  document.form_calcwoodmm.woodrm.value=0;

  var slat=-1;
  var slattext="";
  var slatctrl=document.form_calcwoodmm.slat;
  var slat_value = 0;

  for (i=0;i<slatctrl.length;i++) {
    if (slatctrl[i].checked)
      slat_value = slatctrl[i].value;
  }

  var mm_slat=-1;
  for(i=1;i<wood_arr.length; i++)
  {
    if(wood_arr[i][0]==slat_value)
      {
        mm_slat=i;
        break;
      }
  }

  if (mm_slat<0) return 0;
  slattext=wood_arr[mm_slat][1];

  for(i=0; i<wood_rm_arr.length; i++)
  {
    if(wood_rm_arr[i][1]==slattext)
      slat=i;
  }

  if(slat!=-1)
  {
    for(i=0; i<wood_rm_arr[slat][2][0].length; i++)
    {
      if((wood_rm_arr[slat][2][1][i]==custom_width)&&(wood_rm_arr[slat][2][2][i]==custom_drop))
      {
        document.form_calcwoodmm.woodrm.value=wood_rm_arr[slat][2][0][i];
        document.form_calcwoodmm.woodrmslat.value=wood_rm_arr[slat][0];
        return wood_rm_arr[slat][2][3][i];
      }
    }
  }
  return 0;
}

function GetSTLPrice(prices_arr, width, drop)
{
  var min_dif_width=-1;
  var sel_width=-1;
  var price=0;
    if ((drop==1500 && document.form_calcwoodmm.slat_value.value==2 && (width<1950 || width>2400)) || (drop==1500 && document.form_calcwoodmm.slat_value.value!=2 && (width<2000 || width>2400)))
    {
      price=0;
    }
    else
    {
  for(i=0;i<prices_arr[0].length;i++)
  {
    var cur_dif_width=prices_arr[1][i]-width;
    var cur_dif_drop=prices_arr[2][i]-drop;
    if(((min_dif_width==-1)||(cur_dif_width<min_dif_width))&&(cur_dif_width>=0))
    {
      min_dif_width=cur_dif_width;
      sel_width=prices_arr[1][i];
    }
    if((prices_arr[1][i]==sel_width)&&(cur_dif_drop==0))
    {
      /*
      if(cur_dif_width==0)
        price=prices_arr[3][i];
      else
      */
        price=prices_arr[3][i]+16.60;
    }
  }
    }

  return price;
}

function GetCustomPrice()
{
  price = 0;
  price_stl = 0;
  price_rm = 0;

  var custom_width=parseInt(document.form_calcwoodmm.custom_width.value);
  var custom_drop=parseInt(document.form_calcwoodmm.custom_drop.value);
  var recess=document.form_calcwoodmm.recess.value;

  document.form_calcwoodmm.woodrm.value=0;

  if((min_width>custom_width)||(max_width<custom_width)||(isNaN(custom_width)))
  {
    alert("Please enter width between "+min_width+"mm (min) and "+max_width+"mm (max)");
    return false;
  }
  if((min_drop>custom_drop)||(max_drop<custom_drop)||(isNaN(custom_drop)))
  {
    alert("Please enter drop between "+min_drop+"mm (min) and "+max_drop+"mm (max)");
    return false;
  }

  //find slat
  var slat_size=GetSlatValue(document.form_calcwoodmm);

  var slat=-1;
  for(i=1;i<wood_arr.length; i++)
  {
    if(wood_arr[i][0]==slat_size)
      slat=i;
  }

  if(slat<0)
    return;
  if(recess==0)
    custom_width-=10;

  if(typeof(wood_rm_arr) != "undefined" && wood_rm_arr[slat] != null) {
    price=GetRMPrice(custom_width, custom_drop);
    price_rm=price;

    if(price_rm) { // no returns (radul)
      for(i=document.form_calcwoodmm.returns.options.length; i>=0; i--)
      {
        document.form_calcwoodmm.returns.options[i]=null;
      }
      document.form_calcwoodmm.returns.options[0]=new Option("no", 0);
    }
  }

  if(recess==0)
    custom_width+=10;

  price_mm=GetPrice(wood_arr[slat][7], custom_width, custom_drop);

  if(typeof(wood_stl_arr) != "undefined" && wood_stl_arr[slat] != null) {
    price_stl=GetSTLPrice(wood_stl_arr[slat][6], custom_width, custom_drop);
    if(price_stl) { // no returns (radul)
      for(i=document.form_calcwoodmm.returns.options.length; i>=0; i--)
      {
        document.form_calcwoodmm.returns.options[i]=null;
      }
      document.form_calcwoodmm.returns.options[0]=new Option("no", 0);
    }
  }

  if (!price || price == 0)
  {
    price = price_stl;

    //discount=discountstl;
    if (price)
    {
      document.form_calcwoodmm.wood_stl_sample.value=woodstlsample;
      document.form_calcwoodmm.woodstlslat.value=wood_stl_arr[slat][0];
    }
  }

  if(!price || price == 0)
  {
    document.form_calcwoodmm.wood_stl_sample.value = 0;
    discount=wood_arr[0];
    //price=GetPrice(wood_arr[slat][7], custom_width, custom_drop);
    price = price_mm;
    if(price==0)

    {
      var strMaxWidth=GetMaxWidth(wood_arr[slat][7], custom_drop);
      alert("Maximum width for the selected drop is "+strMaxWidth+" mm");
      return;
    }
  }

  var cur_recess_price=0;

  //tapes price
  var tape=document.form_calcwoodmm.tape;
  var tape_price=0;
  if(tape.value!=0)
  {
    if (tape.value == 1 && wood_arr[slat][1] == '50mm') tape_price=price*0.16; // adds 6%
    else tape_price=price*0.06; // adds 6%
  }

  if(price_rm)
    discount=discountrm;
  else if(price_stl)
    discount=discountstl;

  document.form_calcwoodmm.price.value=formatDecimal((price+tape_price+cur_recess_price)*(1-discount), true, 2);
  document.form_calcwoodmm.saveprice.value=formatDecimal((price+tape_price+cur_recess_price)*discount, true, 2);

  document.form_calcwoodmm.addtobasket.disabled=false;

  if(price==price_rm)
    price_rm=document.form_calcwoodmm.price.value;
  else
    price_mm=document.form_calcwoodmm.price.value;

  outside = params["outside"];

  if(!price_rm && !price_stl) { //OUTSIDE, no RM, no STL -> returns YES (radul)
    for(i=document.form_calcwoodmm.returns.options.length; i>=0; i--){
      document.form_calcwoodmm.returns.options[i] = null;
    }
    document.form_calcwoodmm.returns.options[1] = new Option("yes", 1);
    document.form_calcwoodmm.returns.options[0] = new Option("no", 0);
    document.form_calcwoodmm.returns.value = 0;
    // default returns NO when coming from QQ
    if(outside) {
      document.form_calcwoodmm.returns.options[0].selected = true;
      document.form_calcwoodmm.returns.value=0;
    }
  }
  if(document.form_calcwoodmm.recess.value == 1 && !price_rm && !price_stl  && !outside){
    document.form_calcwoodmm.returns.value = 1;
  }
  if(document.form_calcwoodmm.returns.value == 1) {
    addReturnsToPrice(1);
  }

}

function VerifyWoodmmForm(form)
{
  if(form.price.value<=0)
  {
    alert('Please insert width and drop first and click the button "Price Calculator"');
    return false;
  }
  return true;
}

function ConvertInchToMm()
{
  var custom_inches=document.form_calcwoodmm.custom_inches;
  var custom_mm=document.form_calcwoodmm.custom_mm;

  custom_mm.value=formatDecimal(parseFloat(custom_inches.value.replace(",",".").replace(",","."))*25.4, false, 0);
}

function SelectProdType(prodtype)
{
    window.location = prodtype;
}

function GetSlatValue(form){
  var slat_value = 0;

  for (i=0;i<form.slat.length;i++) {
    if (form.slat[i].checked)
      slat_value = form.slat[i].value;
  }

  return slat_value;
}

/* *** FUNCTIONS FOR REMOVING TAPES *** */
function reset_tape_display()
{
//  var selects = document.getElementsByClassName('selectbox');
  var selects = $$('.selectbox');
  var li = selects[0].getElementsByTagName('li');
  for (var i = 0; i < li.length; i++) li[i].style.display = 'block';
}
function js_in_array(needle, haystack)
{
  k = haystack.length;
  for (i =0; i<k; i++) if (haystack[i] == needle) return true;
  return false;
}

/**
 * Valori exceptie de forma:
 * slat : [id sample, [id tape, id tape]]}
 */
var TapeException = {
  '50mm':[171, [15]]
};

function remove_custom_tape(selected_slat, slat_conditions, tape_conditions)
{
  sampleId = document.form_calcwoodmm.wood_sample.value;
  sampleException = new Array();
  tapeException   = new Array();

  reset_tape_display();

  TapeException[selected_slat] = (typeof(TapeException[selected_slat]) == 'undefined')? new Array() : TapeException[selected_slat];

  TapeException[selected_slat].each(function(s){
    if(typeof(s) == 'number')
    {
    sampleException.push(s);
    }else{
    s.each(function(a){
      isException = js_in_array(sampleId, sampleException);
      if(js_in_array(a, tape_conditions[selected_slat]) && isException)
      {
        tapeException.push(a);
      }
    });
    }
  });



  if (js_in_array(selected_slat, slat_conditions) == false) return false;

//  var selects = document.getElementsByClassName('selectbox');
  var selects = $$('.selectbox');
  var li = selects[0].getElementsByTagName('li');

  for (var i = 0; i < li.length; i++) {

    var links = li[i].getElementsByTagName('a');
    if (i == 0 && first_time != true) {
     dropdown = document.getElementById('country');
     var a = dropdown.getElementsByTagName('A')[0];
     dropdown.getElementsByTagName('A')[0].style.backgroundImage ='url(images/tapes/X)';
     var input = dropdown.getElementsByTagName('INPUT')[0];
     Element.update(a, 'Standard Cords');
     if (input) {
       input.value = 0;
     }
     GetCustomPrice();
    }
    e = js_in_array(links[0].getAttribute('rel'), tapeException);
    if(js_in_array(links[0].getAttribute('rel'), tape_conditions[selected_slat]) && e == false)
      li[i].style.display = 'none';
  }
  first_time = false;
  return true;
}
/* ****************************************************** */
