//
// fce javascriptu provadene na strane klieta
//

//  uprava formulare "dispatch" ve framu "tools" pro survey.asp:
function fillDispatchForm(objForm , dir , file , action) {
  objForm.dir.value = dir;
  objForm.file.value = file;
  objForm.action = action;
  //objForm.submit();
  return true;
}

// konstruktor pro polozky pole arrayOrderedItems:
function MakeOrderedItem(kod, name, dph, price, dph_price, rabat, pcs, figFlag, fig) {
  this.kod = kod;
  this.name = name;
  this.dph = dph;
  this.price = price;
  this.dph_price = dph_price;
  this.rabat = rabat;
  this.pcs = pcs;
  this.figFlag = figFlag;
  if (figFlag)
    this.fig = fig;
  else
    this.fig = figFlag;
  return this;
}

// fce projde objednane polozky a kontroluje duplicitu:
function CheckExisting(arrayItems,kod,pcs) {
  var result = false;
  var n=0;

  for (n=0;n<arrayItems.length;n++) {
    if ( arrayItems[n].kod == kod)  {
      arrayItems[n].pcs = pcs;
      result = true;
      break;
    }
  }

  return result;
}  // fce CheckExisting

// fce overi novou hodnotu a pokud neni spravne zadana, vypise chybu a
// naplni ji starou hodnotou
function ValidateNumber(textField) {
  var intResult = -1;
  var intValue = 0;
  if (textField.value != "")
    intValue = parseInt(textField.value,10);
  if ( (isNaN(intValue)) || (intValue<0) )
    window.alert("Nesprávně zadaný počet kusů !" );
  else
    intResult = intValue;
  return intResult;
}   // fce

// fce AddItemToDispatch je volana udalosti onBlur textoveho pole
// v objednavkovem formulari - pocet ks
// 10-2005: pridava se rabat vebsa
function AddItemToDispatch(arrayOrderedItem, objDispatchList, objText, kod, name, dph, price, dph_price, rabat, figFlag, fig) {
  var intPcs = ValidateNumber(objText); 
  if ( intPcs != -1 ) {    
    var blnItemExists = CheckExisting(arrayOrderedItem,kod,intPcs);    
    if ( (! blnItemExists) && (intPcs>0) ){
      var n = arrayOrderedItem.length;
      arrayOrderedItem[n] = new MakeOrderedItem(kod,name,dph, price, dph_price, rabat, intPcs, figFlag, fig);
    }
    
    var strData = new String();
    for (n=0;n<arrayOrderedItem.length;n++) {
      if (arrayOrderedItem[n].pcs > 0 ) {
        if (strData.length > 0) {
          strData = strData + "&&";
        }
        strData = strData + arrayOrderedItem[n].kod + "::" + arrayOrderedItem[n].name + "::"
                          + arrayOrderedItem[n].dph + "::" + arrayOrderedItem[n].price + "::"
                          + arrayOrderedItem[n].dph_price + "::" + arrayOrderedItem[n].rabat + "::"
                          + arrayOrderedItem[n].pcs + "::" + arrayOrderedItem[n].figFlag;
        if (arrayOrderedItem[n].figFlag) 
          strData = strData + "::" + arrayOrderedItem[n].fig;
      }  // if pcs>0
    }  // for
    objDispatchList.value = strData;
  }  // if Pcs not -1
  return;
}

//
//  kontroluje objednavkovy formular:

function CheckOrderForm(ordForm) {
  if (ordForm.odberatel.value == "") {
    window.alert("Vyplňte prosím pole \"Odběratel\"!");
    return false;
  }
  if (ordForm.email.value.length == "") {
    window.alert("Vyplňte prosím Váš e-mail!");
    return false;
  }
  if (ordForm.email.value.indexOf("@") == -1) {
    window.alert(ordForm.email.value + " není platná e-mailová adresa!");
    return false;
  }
  if (ordForm.ulice.value == "") {
    window.alert("Vyplňte prosím Vaši úplnou adresu!");
    return false;
  }
  if (ordForm.obec.value == "") {
    window.alert("Vyplňte prosím Vaši úplnou adresu!");
    return false;
  }

  // pokud je vse v poradku, smazou s eobjednane polozky:
  while ( window.parent.tools.arrayOrderedItems.length > 0 ) {
    window.parent.tools.arrayOrderedItems.shift();
  }
  window.parent.tools.dispatch.items.value="";
  window.parent.tools.DisplayPrice();

  return true;
}

// fce provadi zmenu barvy attr. background u predaneho objekty\u:
function ChangeBcgrndColor(obj,nColor) {
  obj.style.background = nColor;
  return;
}

function glow(x,y) {
  document.images[x].src = eval(y + '.src');
}

// fce upravuje href u linku podle stavu chek\ckboxu:
function CheckLink(cb, link) {
  if (cb.checked) link.href += "&nahled";
  return;
}


//----------------------------------------
// fce cte cenu, vraci float
function ParsePrice(inpstr) {
  var i, value = 0;
  var str = new String();
  var c = new String();

  for (i=0; i<inpstr.length; i++) {
    c = inpstr.charAt(i);
    if ( c == " ") continue;   // vyhazet mezery
    if ( (c == ",") || (c == ".") ) c = ".";   // desetinna carka
    else if ( isNaN( parseInt(c) ) ) return Number.NaN;
    str += c;
  }

  value = parseFloat(str);

  return value;
}

// fce prevede prom typu float na retezec
function PriceToString(f) {
  var result = new String();
  if (isNaN(f)) {
    result = "NaN";
    return result;
  }
  var re = /./i
  var f1 = new Number(Math.round(100*f)/100);

  result = f1.toString();
  var i = result.indexOf(".");

  if (i == 0){
    result = "0" + result;
    i++;
  }
  if (i == -1) {
    result += ".00";
    i = result.indexOf(".");
  }
  else
    result += "00";

  result = result.substring(0,i) + "," + result.substring(i+1, i+3);

  if (result.length>6)
    result = result.substring(0,result.length-6) + " " + result.substr(result.length-6);
  
  return result;
}

//---------------------------------------
//   kontrola nove ceny:
function CheckNumber(istr, bstr) {
  var value = ParsePrice(istr); 
  if ( isNaN(value) ) {
    window.alert(istr + " neni platne číslo!");
    return (bstr);
  }
  return PriceToString(value);
}

//---------------------------------------
//   kontrola celeho cisla:
function CheckIntNumber(istr, bstr) {
  var value = ParsePrice(istr); 
  if ( isNaN(value) ) {
    window.alert(istr + " neni platne číslo!");
    return (bstr);
  }
  return value;
}

//---------------------------------------
//   kontrola formulare pro novou polozku:
function CheckNewItemForm(form) {
  if (form.kod.value == "") {
    window.alert("Vyplňte prosím kód položky!");
    return false;
  }

  if (form.name.value == "") {
    window.alert("Vyplňte prosím název!");
    return false;
  }

  if (form.dph.value == "") {
    window.alert("Vyplňte prosím dph!");
    return false;
  }

  if (form.price.value == "") {
    window.alert("Vyplňte prosím cenu!");
    return false;
  }

    if (form.dph_price.value == "") {
    window.alert("Vyplňte prosím cenu s DPH!");
    return false;
  }

  return true;

}
