// Shopping cart
/*
var xmlhttp;

function loadXMLDoc(url)
function GetaNode(path)
function GetaChildNode(node, path)
function GetaNodeValue(path, def)
function GetaNodeAttribute(path, attr, def)
function GetaChildValue(node, path, def)
function NodeListFromNameValue(path, name, value)
function NodeListFromAttribute(path, name, value)

function GetMeta(name, def)

*/

var Group_Output_Div = undefined;
var Menu_Output_Div = undefined;


function DoItemClick(){
  NewItem(this.id);
}

function AppendItem(node){
var Item, R, C, S, P, pidx;
  Item = document.createElement('table');
  Item.className = 'MenuItem';
  Item.id = NodeAttribute(node, 'ID');
  Item.onclick = DoItemClick;
  R = Item.insertRow(Item.rows.length);
  C = R.insertCell(0);
  S = NodeAttribute(node, 'ID');
  S += ', ';
  S += NodeAttribute(node, 'Name');
  C.innerHTML =  S;
  C.className = 'MenuItem1';
  S = '';
  C = R.insertCell(1);
  P = GetaChildNode(node, 'Price');
  if (P.firstChild.nodeValue){
    S = P.firstChild.nodeValue;
  }
  else{
    for (pidx = 0; pidx < P.childNodes.length; pidx++){
      S += P.childNodes[pidx].firstChild.nodeValue;
      S +=' ';
    }
  }
  C.innerHTML = S;
  C.className = 'MenuItem2';

  R = Item.insertRow(Item.rows.length);
  C = R.insertCell(0);
  C.colSpan = 2;
  C.innerHTML = GetaChildValue(node, DefLang);
  C.className = 'MenuItem3';
  Menu_Output_Div.appendChild(Item);
}

function ListItems(group){
  var TopItem = document.createElement('div');
  TopItem.className = 'MenuHeader';  
  var S = '<span class="MenuHeadline">';
  S += GetaNodeValue('Selection,' + group + ',' + DefLang);
  S += '</span><br>';
  var TN = GetaNode('Selection,' + group + ',Text,' + DefLang);
  if (TN) S += NodeValue(TN);
  TopItem.innerHTML = S;
  Menu_Output_Div.innerHTML ='';
  Menu_Output_Div.appendChild(TopItem);
  var A = NodeListFromNameValue('Dishes', group);
  for (var I = 0; I < A.length; I++){
    AppendItem(A[I]);
  }
}

function ListSelectedItems(parent, IDs){
var A = IDs.split(',');
var I;
  Menu_Output_Div = parent;
  for (I = 0; I < A.length; I++){
    N = NodeFromID(A[I]);
    AppendItem(N);
  }
}

function DoGroupClick(){
  ListItems(this.id);
  ShoppingCart.ActiveGroup = this.id;
}

function AppendGroupItem(node){
var Item = document.createElement('div');
  Item.className = 'GroupItem';
  Item.id = node.nodeName;
  Item.onclick = DoGroupClick;
  Item.innerHTML = GetaChildValue(node, DefLang);
  Group_Output_Div.appendChild(Item);
}

function ListGroups(groupparent, listparent){
var A = NodeListFromNameValue('Selection');
var I;
  Group_Output_Div = groupparent;
  Group_Output_Div.innerHTML = '';
  Menu_Output_Div = listparent;
  for (I = 0; I < A.length; I++){
    AppendGroupItem(A[I]);
  }
  if (ShoppingCart.ActiveGroup){
    ListItems(ShoppingCart.ActiveGroup);
  }
  else{
    ListItems(A[2].nodeName);
  }
}

// --- order.php ---
function SendCart(frm){
var I;
var total = 0;
var S = '';
  for (I = 0; I < ShoppingCart.Order.length; I++){
    total += eval(ShoppingCart.Order[I].Price);
    S += ShoppingCart.Order[I].ID
    S += ', ';
    S += ShoppingCart.Order[I].Name;
    S += ', ';
    S += eval(ShoppingCart.Order[I].Price);
    S += '\r\n';
    if (ShoppingCart.Order[I].Size) S += GetaWord(ShoppingCart.Order[I].Size, 'hu') + '\r\n';
    if (ShoppingCart.Order[I].Topping) S += TranslateString(ShoppingCart.Order[I].Topping, 'hu') + '\r\n';
    if (ShoppingCart.Order[I].Special) S += ShoppingCart.Order[I].Special + '\r\n';
  }
  S +='\r\n\r\nTotal: ' + total;
  frm.elements['orderfield'].value =S;
  ShoppingCart.Order.length = 0;
}

// --- orderpizza.php ---
function PizzaSizeformToString(){
var I;
var S = '<b>' + GetaWord('SizeMsg') + ShoppingCart.Current.Name + '</b>';
var N = NodeFromID(ShoppingCart.Current.ID);

  N = GetaChildNode(N, 'Price');
  S += '<form ID="sizeform"><table border="0" width="100%"><tr>';
  for (I = 0; I < N.childNodes.length; I++){
    S += '<td width="30%" align="left" valign="top">';
    S += '<input type="radio" name="R1"';
    if (I == N.childNodes.length - 1) S +=' checked ';
    S += ' value="';
    S += N.childNodes[I].nodeName;
    S += '">';
    S += GetaWord(N.childNodes[I].nodeName);
    S += '</td>';
  }
  S += '<td width="10%" align="left" valign="top">';
  S += '<input type="button" value="';
  S += GetaWord('OK');
  S += '" name="button" style="height: 40px; width: 75px; float: right;" onClick="selectpizzabutton();"></td>';
  S += '</tr></table></form>';
return S;
}

function ReadPizzaSize(){
var frm = document.getElementById('sizeform');
var I;
var Z = '';
  for (I = 0; I < frm.length - 1; I++){
    if (frm[I].checked){
      Z = frm[I].value;
      break;
    }
  }
return Z;
}

function ToppingToString(){
var I;
var A;
var S = '<b>' + GetaWord('ToppingMsg') + '</b><br>' + GetaWord('ToppingChangeMsg');
  S += '<form ID="toppingform"><table border="0" width="100%">';
  // for loops x 3
  A = GetaWordlist('Cheeses');
  S += '<td width="33%" valign="top"><b>' + GetaWord('Cheeses') + '</b><br>'; // cheeses
  for (I = 0; I < A.length; I++){
    S += '<input type="checkbox" name="' + A[I][0] + '" ';
    S += 'value="#">' + A[I][1] + '<br>';
  }
  S += '</td>';
  A = GetaWordlist('Meets');
  S += '<td width="33%" valign="top"><b>' + GetaWord('Meets') + '</b><br>'; // meets
  for (I = 0; I < A.length; I++){
    S += '<input type="checkbox" name="' + A[I][0] + '" ';
    S += 'value="#">' + A[I][1] + '<br>';
  }
  S += '</td>';
  A = GetaWordlist('Veggies');
  S += '<td width="33%" valign="top"><b>' + GetaWord('Veggies') + '</b><br>'; // veggies
  for (I = 0; I < A.length; I++){
    S += '<input type="checkbox" name="' + A[I][0] + '" ';
  S += 'value="#">' + A[I][1] + '<br>';
  }
S += '</td>';
S += '</tr></table></form>';
return S;
}

function SetToppingform(){
var I;
var frm = document.getElementById('toppingform');
var Node = NodeFromID(ShoppingCart.Current.ID);
var NS = GetaChildValue(Node, 'Topping');
  for (I = 0; I < frm.length; I++){
    if (NS.match(frm.elements[I].name) != null){
      frm.elements[I].checked = true;
    }
  }
}

function ReadTopping(){
var frm = document.getElementById('toppingform');
var I;
var A = new Array(0);
  for (I = 0; I < frm.length; I++){
    if (frm[I].checked) A.push(frm[I].name);
  }
  return A.toString();
}

function CalculateTopping(){
var frm = document.getElementById('toppingform');
var Node = NodeFromID(ShoppingCart.Current.ID);
var NS = GetaChildValue(Node, 'Topping');
var I;
var P = 0;
  for (I = 0; I < frm.length; I++){
    if (frm[I].checked){
      if (!NS.match(frm[I].name)) P += ToppingPrice;
    }  
  }
  return P;
}

function selectpizzabutton (){
var N = NodeFromID(ShoppingCart.Current.ID);
var P = 0;
  ShoppingCart.Current.Size = ReadPizzaSize();
  ShoppingCart.Current.Topping = ReadTopping();
  P = eval(GetaChildValue(N, 'Price,' + ShoppingCart.Current.Size));
  P += CalculateTopping();
  ShoppingCart.Current.Price = P;
  AddToCart('menu');
}

// --- orderwings.php ---
function WingSizeformToString(){
var I;
var S = '<b>' + GetaWord('SizeMsg') + ' ' + ShoppingCart.Current.Name + '</b>';
var N = NodeFromID(ShoppingCart.Current.ID);

N = GetaChildNode(N, 'Price');
S += '<form ID="sizeform"><table border="0" width="100%"><tr>';
for (I = 0; I < N.childNodes.length; I++){
  S += '<td width="30%" align="left" valign="top">';
  S += '<input type="radio" name="R1"';
  if (I == N.childNodes.length - 1) S +=' checked ';
  S += ' value="';
  S += N.childNodes[I].nodeName;
  S += '">';
  S += GetaWord(N.childNodes[I].nodeName);
  S += '</td>';
}
S += '<td width="10%" align="left" valign="top">';
S += '<input type="button" value="';
S += GetaWord('OK');
S += '" name="button" style="height: 40px; width: 75px; float: right;" onClick="selectwingbutton();"></td>';
S += '</tr></table></form>';
return S;
}

function ReadWingSize(){
  var frm = document.getElementById('sizeform');
  var I;
  var Z = 'Small';
  for (I = 0; I < frm.length - 1; I++){
    if (frm[I].checked){
      Z = frm[I].value;
      break;
    }
  }
return Z;
}

function selectwingbutton (){
var N = NodeFromID(ShoppingCart.Current.ID);
var P = 0;
  ShoppingCart.Current.Size = ReadWingSize();
  P = eval(GetaChildValue(N, 'Price,' + ShoppingCart.Current.Size));
  ShoppingCart.Current.Price = P;
  AddToCart('menu');
}

function LunchSaladToString(){
  S  = '<form ID="saladform"><table border="0" width="100%">';
  S += '<tr><td class="LunchHeader" width="100%" align="left" valign="top">';
  S += '<input type="button" value="';
  S += GetaWord('OK');
  S += '" name="button" style="height: 40px; width: 75px; float: right;" onClick="selectlunchsaladbutton();">'
  S += GetaWord('SelectSalad');
  S += '</td></tr>';

  var A = NodeListFromNameValue('Dishes', 'LunchSalads');
  for (var I = 0; I < A.length; I++){

    S += '<tr><td width="100%" align="left" valign="top">';
    S += '<p class="LunchItemHeader"><input type="radio" name="R1"';
    if (I == 0) S += ' checked ';
    S += ' value="';

    S += NodeAttribute(A[I], 'ID');
    S += '">';
    S += NodeAttribute(A[I], 'Name');
    S += '</p><p>';
    S += GetaChildValue(A[I], DefLang);
    S += '</p></td></tr>';
  }
  S += '</table></form>';
  return S;
}

function selectlunchsaladbutton(){
  var frm = document.getElementById('saladform');
  var N;
  for (var I = 0; I < frm.length; I++){
    if (frm[I].checked){
      N = NodeFromID(frm[I].value);
      S = NodeAttribute(N, 'Name')
      break;
    }
  }
  ShoppingCart.Current.Special = S;
  AddToCart('menu');
}
