function wop(url,wnd_name,width,height){w=window.open(url,wnd_name,'width='+width+',height='+height+',status=no,menubar=no,resizable=yes,scrollbars=yes,left='+String((screen.width-width)/2)+',top='+String((screen.height-height)/2));w.focus();return w;}

function validate(f)
{
   if (!f) return false;
   var inputs = f.getElementsByTagName('INPUT');
   for (var i in inputs) {
      var elem = inputs[i];
      if (elem.className && elem.className == 'label') {
         var pat = /order\[(\w+)\]\[(\w+)\]/ig;
         var names = pat.exec(elem.name);
         if (names && names.length == 3) {
            var validate = names[2].split('_');
            if (validate.length == 2 && validate[0] == 'need') {
               switch (validate[1]) {
                  case 'multiselect':
                     var validElem = f.elements['order[' + names[1] + '][value][]'];
                     var isSel = false;
                     for (var j = 0, n = validElem.options.length; j < n; j++) {
                        if (validElem.options[j].selected == true) {
                           isSel = true;
                           break;
                        }
                     }
                     if (!isSel) {
                        var altElem = f.elements['order[' + names[1] + '][other]'];
                        if (altElem.value == altElem.defaultValue) {
                           alert('Заполните поле ' + elem.value);
                           validElem.focus();
                           return false;
                        }
                     }
                  break;
                  
                  case 'select':
                     var validElem = f.elements['order[' + names[1] + '][value]'];
                     if (validElem.selectedIndex == 0) {
                        var altElem = f.elements['order[' + names[1] + '][other]'];
                        if (altElem.value == altElem.defaultValue) {
                           alert('Заполните поле ' + elem.value);
                           validElem.focus();
                           return false;
                        }
                     }
                  break;
                  
                  case 'radio':
                     var validElem = document.getElementById('order_' + names[1] + '_value');
                     if (validElem.checked) {
                        var altElem = f.elements['order[' + names[1] + '][other]'];
                        if (altElem.value == altElem.defaultValue) {
                           alert('Заполните поле ' + elem.value);
                           altElem.focus();
                           return false;
                        }
                     }
                  break;
                  
                  case 'email':
                     var validElem = f.elements['order[' + names[1] + '][value]'];
                     var emailValidate = /[\w\.\-]{2,}@[\w\.\-]{2,}\.\w{2,}/ig;
                     if (!emailValidate.test(validElem.value)) {
                        alert('Заполните или исправьте поле ' + elem.value);
                        validElem.focus();
                        return false;
                     }
                  break;
                  
                  default:
                     var validElem = f.elements['order[' + names[1] + '][value]'];
                     if (validElem.value == validElem.defaultValue) {
                        alert('Заполните поле ' + elem.value);
                        validElem.focus();
                        return false;
                     }
                  break;
               }
            }
         }
      }
   }
   return true;
}
