var gross = 0;
var vsego = 0;


function setCookie (name, value, expires, path, domain, secure) {

      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "; path=/") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name) {
        var cookie = " " + document.cookie;
        var search = " " + name + "=";
        var setStr = null;
        var offset = 0;
        var end = 0;
        if (cookie.length > 0) {
          offset = cookie.indexOf(search);
          if (offset != -1) {
            offset += search.length;
            end = cookie.indexOf(";", offset)
            if (end == -1) end = cookie.length; 
            if (cookie.substring(offset, end) != '')
              setStr = unescape(cookie.substring(offset, end));
          }
        }
        return(setStr);
}

function add(id, price) {

 if (getCookie("datvorder") != null) {

   var value = (getCookie("datvorder")).split("|");

   for(i=0;i<value.length;i++) {
     var valueind = value[i].split(",");
     if (valueind[1] == id) {
       valueind[0]++;
       if (document.getElementById('cnt'+id)) document.getElementById('cnt'+id).innerHTML = valueind[0];
       value[i]=valueind.join(",");
       break;
     }       
   }

   if(i>=value.length) {
     value[value.length++] = "1,"+id+","+price;
     if (document.getElementById('cnt'+id)) document.getElementById('cnt'+id).innerHTML = 1;
   }

   var result = value.join("|");   
   setCookie("datvorder", result);
  } else {
    var result = "1,"+id+","+price;
    setCookie("datvorder", result);
    if (document.getElementById('cnt'+id)) document.getElementById('cnt'+id).innerHTML = 1;
  }
  orderShow();
}

function del(id) {

 if (getCookie("datvorder") != null) {

   var value = (getCookie("datvorder")).split("|");
 
   for(i=0;i<value.length;i++) {
     var valueind = value[i].split(",");
     if (valueind[1] == id && valueind[0] > 0) {
       valueind[0]--;
       if (document.getElementById('cnt'+id)) document.getElementById('cnt'+id).innerHTML = valueind[0];
       if (valueind[0] != 0) { value[i]=valueind.join(","); } 
       else {
         end = value.slice((i+1));
         value = value.slice(0, i)
         value = value.concat(end);
       }
       break;
     }       
   }
  var result = value.join("|");

  setCookie("datvorder", result);
  } 
  orderShow();
}

function orderShow() {
  gross = 0; vsego = 0;
  if (getCookie("datvorder") != null) {
    var value = (getCookie("datvorder")).split("|");
    for(i=0;i<value.length;i++) {
      var valueind = value[i].split(",");
      gross=gross+valueind[2]*valueind[0];
      vsego=vsego+valueind[0]*1;
    }
    var tovar = 'ов';
    if (vsego == 1) tovar = '';
    if ((vsego>1)&&(vsego<5)) tovar = 'а';

    if (document.getElementById('summ')) document.getElementById('summ').innerHTML = gross;
    document.getElementById('gross').innerHTML = "<b>" + vsego + "</b> товар"+tovar+" на сумму <b>" + gross + "</b> рублей";
    document.getElementById('order').style.visibility ="visible";
    document.getElementById('order').style.display ="block";

  } else {

    if (document.getElementById('summ')) document.getElementById('summ').innerHTML = 0;
    document.getElementById('order').style.visibility ="hidden";
    document.getElementById('order').style.display ="none";

  }
}

function orderClear() {
  setCookie('datvorder', '');
  document.getElementById('order').style.visibility = 'hidden';
  document.getElementById('order').style.display = 'none';

}

function checkForm(form)
{

  var i,j;
  var str = '';

  var bad_field;
  var fields = new Array();
  var prompts = new Array();

  if (form.id == 'feedback') {

    fields[fields.length] = 'mi';
    prompts[prompts.length] = '  - Имя';

    fields[fields.length] = 'mm';
    prompts[prompts.length] = '  - Эл. почта';

    fields[fields.length] = 'mt';
    prompts[prompts.length] = '  - Текст сообщения';

  } 

  if (form.id == 'client') {

    if (vsego < 1){
      alert("Заказ не может быть принят, так как в Вашей корзине нет товаров.\nВернитесь в каталог и выберите то, что хотите купить.\n");
      return false;
    }
    

    fields[fields.length] = 'ff';
    prompts[prompts.length] = '  - Фамилия';

    fields[fields.length] = 'fi';
    prompts[prompts.length] = '  - Имя';

    fields[fields.length] = 'fp';
    prompts[prompts.length] = '  - Телефон';

    fields[fields.length] = 'fag';
    prompts[prompts.length] = '  - Город';

    fields[fields.length] = 'fau';
    prompts[prompts.length] = '  - Улица';

    fields[fields.length] = 'fad';
    prompts[prompts.length] = '  - Дом';

    fields[fields.length] = 'fan';
    prompts[prompts.length] = '  - Квартира/Офис';

    fields[fields.length] = 'fae';
    prompts[prompts.length] = '  - Этаж';

  }

  for (i = 0; i < fields.length; i++) {
    var field = form[fields[i]];
    var is_bad=0;
    if (field.type == null) {
      is_bad=1;
      for(j=0;j<field.length;++j) {
        if (field[j].checked==true) is_bad=0;
      }
      if (is_bad==1 && str=='') field=field[0];
    } else switch(field.type) {
      case 'select-one':
        if (field[field.selectedIndex].value == '')
          is_bad=1;
        break;

      default:
        if (field.value == '')
          is_bad=1;
    }
    if (is_bad == 1) {
      if (str != '') {
        str += '\n';
      } else {
        bad_field = field;
      }
      str += prompts[i];
    }
  }

  if (str != ''){
    alert("Заказ не может быть принят, так как не заполнены необходимые поля:        \n" + str);
    bad_field.focus();
    return false;
  }

  if (window.RegExp) {
    var fields = new Array();
    var prompts = new Array();
    var patterns = new Array();
    var minLen = new Array();
    var maxLen = new Array();
    var errors = new Array();

 if (form.id == 'feedback') {

   fields[fields.length] = 'mm';
   prompts[prompts.length] = 'Неверно заполнен адрес электронной почты.';
   patterns[patterns.length] = '^[a-zA-Z0-9_\\.]{2,}@([a-zA-Z0-9\\-]{2,}\\.)+[a-zA-Z]{2,4}$';
   minLen[maxLen.length] = 8;
   maxLen[maxLen.length] = 64;
   errors[errors.length] = 'Поле не должно быть длиннее 64 символов и должно содержать корректный e-mail адрес.';

   fields[fields.length] = 'mn';
   prompts[prompts.length] = 'Неверно заполнен номер заказа.';
   patterns[patterns.length] = '^[0-9]+$';
   minLen[maxLen.length] = 1;
   maxLen[maxLen.length] = 10;
   errors[errors.length] = 'Поле может содержать только цифры.';

 }

 if (form.id == 'client') {

   fields[fields.length] = 'fm';
   prompts[prompts.length] = 'Неверно заполнен адрес электронной почты.';
   patterns[patterns.length] = '^[a-zA-Z0-9_\\.]{2,}@([a-zA-Z0-9\\-]{2,}\\.)+[a-zA-Z]{2,4}$';
   minLen[maxLen.length] = 8;
   maxLen[maxLen.length] = 64;
   errors[errors.length] = 'Поле не должно быть длиннее 64 символов и должно содержать корректный e-mail адрес.';

 }

   for (i = 0; i < fields.length; i++){
    var bad = false;
    var field = form[fields[i]];
    if (typeof field == 'undefined') continue;
    if (field.value != ''){
     if (maxLen[i] > 0){
      if (field.value.length > maxLen[i]) bad = true;
     }
     if (minLen[i] > 0){
      if (field.value.length < minLen[i]) bad = true;
     }
     if (patterns[i] != ''){
      var re = new RegExp(patterns[i]);
      if (!re.test(field.value + "")) bad = true;
     }
     if (bad){
       alert(prompts[i] + "\n" + errors[i]);
       field.focus();
       field.select();
       return false;
     }
    }
   }
 }

 return true;

}

