var isMinNS4 = (navigator.appName.indexOf("Netscape") >= 0 &&
                parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
var isMinIE4 = (document.all) ? 1 : 0;
var isMinIE5 = (isMinIE4 && navigator.appVersion.indexOf("5.") >= 0) ? 1 : 0;
var isMinIE6 = (isMinIE4 && navigator.appVersion.indexOf("6.") >= 0) ? 1 : 0;
var isNS6    = (navigator.appName.indexOf("Netscape") >=0 && parseFloat(navigator.appVersion) >= 5) ? 1 : 0;
var isMac = (navigator.appVersion.indexOf("Mac") != -1);
var isOpera =(window.opera)?1:0; 



function MM_swapImgRestore() {
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { 
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() {
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//Function to work with arrays
function in_array(str,arr) {
 res = -1;
 for (var i=0;i<arr.length;i++) {
   if (arr[i]==str) {
     res = i;
     i=arr.length;
   }
 }
 return res;
}

function del_from_array(str,arr) {
 res = -1;
 newarr = Array();
 for (var i=0;i<arr.length;i++) {
   if (arr[i]!=str) newarr.push(arr[i]);
 }
 return newarr;
}

function add_to_array(str,arr) {
  lastid=arr.length;
  arr[lastid]=str;
  return lastid;
}

function add_unique_to_array(str,arr) {
  if (in_array(str,arr)==-1) {
     lastid=arr.length;
     arr[lastid]=str;
     return lastid;
  }else{
     return -1;
  }
}

function add_to_top_array(str,arr) {
  lastid=arr.length;
  for (i=lastid; i>0;i--) {
    arr[i]=arr[i-1];
  }
  arr[0]=str;
  return lastid;
}


function add_unique_to_top_array(str,arr) {
  var m;
  if (in_array(str,arr)==-1) {
     m = add_to_top_array(str,arr);
     return m;
  }else{
     return -1;
  }
}

//-- Main functions --//

function change_inner_url(newurl) {
  var sobj;
  if (document.frames) {
     sobj = document.frames['strobj'];
  } else if (window.frames) {
     sobj = window.frames['strobj'];
  } else if (document.getElementByID) {
     sobj = document.getElementByID('strobj');
  }
  if (sobj) sobj.location.href=newurl;
  return false;
}

function change_inner_url_plus(obj,newurl) {
  var sobj;
  if (document.frames) {
     sobj = document.frames[obj];
  } else if (window.frames) {
     sobj = window.frames[obj];
  } else if (document.getElementByID) {
     sobj = document.getElementByID(obj);
  }
  if (sobj) sobj.location.href=newurl;
  return false;
}


function add_item() {
 var a = new Array();
 var b = new Array();
 var form = document.forms['sf'];
 var streetval='';
 if (form.street) {
    s_val = form.fdata.value;
    form.fdata.value='';
    if (s_val.length>0) {
       for (var i=0;i<form.elements['sdata[]'].options.length;i++) {
           a[i] = form.elements['sdata[]'].options[i].value;
       }
       for (var i=form.elements['sdata[]'].options.length;i>=0;i--) {
          form.elements['sdata[]'].options[i]=null;
       }
       var ii=add_unique_to_top_array(s_val,a);
       for (var i=0;i<a.length;i++) {
           form.elements['sdata[]'].options[i] = new Option (a[i],a[i]);
       }    
    }
 }else{
  var sobj;
  var ffrom;
  if (document.frames) {
     sobj = document.frames['strobj'];
  } else if (window.frames) {
     sobj = window.frames['strobj'];
  } else if (document.getElementByID) {
     sobj = document.getElementByID('strobj');
  }
  if (sobj.contentDocument) {
    // For NS6
    fform = sobj.contentDocument.forms[0]; 
  } else if (sobj.contentWindow) {
    // For IE5.5 and IE6
    fform = sobj.contentWindow.document.forms[0];
  } else if (sobj.document) {
    // For IE5
    fform = sobj.document.forms[0];
  } else if (sobj.forms) {
    fform = sobj.forms[0]
  }
  if (fform) {
     for (var i=0;i<form.elements['sdata[]'].options.length;i++) {
        a[i] = form.elements['sdata[]'].options[i].value;
        b[i] = form.elements['sdata[]'].options[i].text;
     }
     for (var i=fform.street.options.length-1;i>=0;i--) {
       if (fform.street.options[i].selected==true) {
          var ii=add_unique_to_top_array(fform.street.options[i].value,a);
          if (ii>-1) add_to_top_array(fform.street.options[i].text,b);
          fform.street.options[i].selected=false;
       }
     }  
     for (var i=form.elements['sdata[]'].options.length;i>=0;i--) {
        form.elements['sdata[]'].options[i]=null;
     }
     for (var i=0;i<a.length;i++) {
         form.elements['sdata[]'].options[i] = new Option (b[i],a[i]);
     }
  }     
 }
}

function add_to_search(from,to) {
 var a = new Array();
 var b = new Array();
 var form = document.forms['sf'];

 for (var i=0;i<form.elements[to].options.length;i++) {
    a[i] = form.elements[to].options[i].value;
    b[i] = form.elements[to].options[i].text;
 }
 for (var i=form.elements[from].options.length-1;i>=0;i--) {
   if (form.elements[from].options[i].selected==true) {
      var ii=add_unique_to_top_array(form.elements[from].options[i].value,a);
      if (ii>-1) add_to_top_array(form.elements[from].options[i].text,b);
      form.elements[from].options[i].selected=false;
   }
 }  
 for (var i=form.elements[to].options.length;i>=0;i--) {
    form.elements[to].options[i]=null;
 }
 for (var i=0;i<a.length;i++) {
     form.elements[to].options[i] = new Option (b[i],a[i]);
 }
}

function del_item(from) {
 var form = document.forms['sf'];
 for (var i=form.elements[from].options.length-1;i>=0;i--) {
     if (form.elements[from].options[i].selected==true) {
       form.elements[from].options[i]=null;
     }
 }
}

function del_all_items() {
 var form = document.forms['sf'];
 if (form.elements['sdata[]']) {
   for (var i=form.elements['sdata[]'].options.length-1;i>=0;i--) {
      form.elements['sdata[]'].options[i]=null;
   }
 }
}


function enterdata() {
  var form = document.forms['sf'];
  if (form.elements['sdata[]']) {
    for (var i=0;i<form.elements['sdata[]'].options.length;i++) {
      form.elements['sdata[]'].options[i].selected = true;
    } 
  }
  if (form.elements['_repairs[]']) {
    for (var i=0;i<form.elements['_repairs[]'].options.length;i++) {
      form.elements['_repairs[]'].options[i].selected = true;
    } 
  }

  if (form.elements['_repairbuildings[]']) {
    for (var i=0;i<form.elements['_repairbuildings[]'].options.length;i++) {
      form.elements['_repairbuildings[]'].options[i].selected = true;
    } 
  }


  if (form.elements['datereg:from']) {
     if (
           (form.elements['datereg_f_d'].selectedIndex>0)
        && (form.elements['datereg_f_m'].selectedIndex>0)
        && (form.elements['datereg_f_y'].selectedIndex>0)
        ) {
        form.elements['datereg:from'].value = form.elements['datereg_f_y'][form.elements['datereg_f_y'].selectedIndex].value;
        form.elements['datereg:from'].value += '-'+form.elements['datereg_f_m'][form.elements['datereg_f_m'].selectedIndex].value;
        form.elements['datereg:from'].value += '-'+form.elements['datereg_f_d'][form.elements['datereg_f_d'].selectedIndex].value;
        form.elements['datereg:from'].value += ' 00:00:00';
     }
  }


  if (form.elements['datereg:to']) {
     if (
           (form.elements['datereg_t_d'].selectedIndex>0)
        && (form.elements['datereg_t_m'].selectedIndex>0)
        && (form.elements['datereg_t_y'].selectedIndex>0)
        ) {
        form.elements['datereg:to'].value = form.elements['datereg_t_y'][form.elements['datereg_t_y'].selectedIndex].value;
        form.elements['datereg:to'].value += '-'+form.elements['datereg_t_m'][form.elements['datereg_t_m'].selectedIndex].value;
        form.elements['datereg:to'].value += '-'+form.elements['datereg_t_d'][form.elements['datereg_t_d'].selectedIndex].value;
        form.elements['datereg:to'].value += ' 23:59:59';
     }
  }



  form.submit();
}

function atmc(id,url) {
  i = MM_findObj(id);
  i.src=url;
  return false;
}

//  Layers show/hide
var canopen,loaded;
canopen = true;
loaded=false;

function show(what,action,base) {
 if (canopen && loaded) {
   obj=what;
   if(isMinNS4 && (!isNS6)) {      
      if (base) layer = document.layers[base].document.layers[what];
      else layer = document.layers[what];
   } else {
      layer = (document.getElementById)? document.getElementById(what) : document.all[what];
   }     
   if (action=="hide") {
    if (isMinNS4 && (!isNS6))
     layer.visibility = "hide";
    if (isNS6)
      document.getElementById(obj).style.visibility = "hidden";
    if (isMinIE4)
      layer.style.visibility = "hidden";
   }
   if (action=="show") {
    if (isMinNS4 && (!isNS6))
      layer.visibility = "show";
    if (isNS6)
      document.getElementById(obj).style.visibility = "visible";
    if (isMinIE4)
      layer.style.visibility = "visible";
   }
 }
}

function set_active(id,cnt) {
  for (i=1; i<=cnt; i++) {
    show('page'+i,'hide','dframe');
  }
  show('page'+id,'show','dframe');
}

function isInt(val) {
  if (!val) return false;
  if (isNaN(val)) return false;
  if ((val-Math.round(val))!=0) return false;
  return true;
}

function isReal(val) {
  if (!val) return false;
  if (isNaN(val)) return false;
  return true;
}

function check_form(form_name, fields, fields_types, fields_names, fields_required, fields_sizes) {
  // Possible types: check, table, choice, real, text, int
  var frm = document.forms[form_name];
  if (!frm) return false;
  for (i=0;i<fields.length;i++) {
     var f = frm.elements[fields[i]];
     // TEST-1: Check if field required
     if (fields_required[i]) {
        if ((fields_types[i]=='real')||(fields_types[i]=='text')||(fields_types[i]=='int')) {
           if (f.value.length==0) {
              alert('Ошибка в форме. Поле <<'+fields_names[i]+'>> обязательное.');
              return false;
           }
        }
     }
     // TEST-2: Check if field int
     if (fields_types[i]=='int') {
        if (!isInt(f.value) && (f.value.length>0)) {
              alert('Ошибка в форме. Поле <<'+fields_names[i]+'>> должно содержать только цифры.');
              return false;
        }
     }
     // TEST-3: Check if field real
     if (fields_types[i]=='real') {
        if (!isReal(f.value) && (f.value.length>0)) {
              alert('Ошибка в форме. Поле <<'+fields_names[i]+'>> должно содержать только цифры и десятичный разделитель ".".');
              return false;
        }
     }
     // TEST-4: Check max length of text field
     if (fields_types[i]=='text') {
        if ((fields_sizes[i]>0) && (f.value.length>fields_sizes[i])) {
              alert('Ошибка в форме. Максимальная длина поля <<'+fields_names[i]+'>> - '+fields_sizes[i]+' симв.');
              return false;
        }
     }
  }
  return true;
}

var wnd

function open_new_window(url, width, height) {
  if(wnd && !wnd.closed) wnd.close();
  if(document.all)
    wnd = window.open(url,'','width='+width+',height='+height+',toolbar=0,scrollbars=1,resizable=0,menubar=1,status=0,directories=0,location=0,left=0,top=0')
  else   
    wnd = window.open(url,'','width='+width+',height='+height+',toolbar=0,scrollbars=1,resizable=0,menubar=1,status=0,directories=0,location=0,screenX=0,screenY=0');
  wnd.focus();
}

function add_to_fav() {
  if (window.external) {
     window.external.AddFavorite('http://www.bptel.net/','BPTel - Только проверренная информация');
  }else{
    if (isOpera) alert('Чтобы добавить BPTel.net в Избранное, нажмите Ctrl-T');
    else alert('Чтобы добавить BPTel.net в Избранное, нажмите Ctrl-D');
  }
}

function display_div(div, if_on) {
      layer = (document.getElementById)? document.getElementById(div) : document.all[div];
      if (layer && layer.style) {
         if (if_on) {
            layer.style.display='block';
         }else{
            layer.style.display='none';
         }
      }
}
function get_div(div) {
  layer = (document.getElementById)? document.getElementById(div) : document.all[div];
  return layer;
}
function MoveOption(objSourceElement, objTargetElement) {
       var aryTempSourceOptions = new Array();        
       var x = 0;

       for (var i=objTargetElement.length;i>=0;i--) {
          objTargetElement.options[i]=null;
       }
       for (var i = 0; i < objSourceElement.length; i++) {
           //need to move this option to target element                
           var intTargetLen = objTargetElement.length++;
           objTargetElement.options[intTargetLen].text = objSourceElement.options[i].text;
           objTargetElement.options[intTargetLen].value = objSourceElement.options[i].value;            
       }
       objTargetElement.selectedIndex=objSourceElement.selectedIndex;
       objTargetElement.disabled=objSourceElement.disabled;
}    
