var zIndex=50;
function getXmlHttp()
 {
  var xmlhttp;
  try
   {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   }
  catch (e)
   {
    try
     {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     }
    catch (E)
     {
      xmlhttp = false;
     }
   }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined')
   xmlhttp = new XMLHttpRequest();
  return xmlhttp;
 }
function _focus(id,h,w)
 {
  var top=0;
  var left=0;
  if (screen.availHeight>h)
   {
   	top=screen.availHeight-h;
   	top=Math.round(top/4);
   }
  if (screen.availWidth>w)
   {
   	left=screen.availWidth-w;
   	left=Math.round(left/2);
   }
  document.getElementById(id).style.top=top+'px';
  document.getElementById(id).style.left=left+'px';
 }
function show(el,display,hide)
 {
  el=(typeof(el)!='object')?$('#'+el)[0]:el;
  if (el!=null)
   {
    el.style.display=display;
    if (display!='none')
     {
      if (!hide)
       {
        zIndex++;
        el.style.zIndex=zIndex;
        if (display!='none')
         el.focus();
       }
      else
       el.style.zIndex=1;
     }
   }
 }
function rowNull(number,length)
 {
  number=''+number+'';
  if (length==undefined)
   length=2;
  number=number.split('.');
  var n=number[1]!=undefined?number[1].length:0;
  number[1]=number[1]==undefined?'':''+number[1]+'';
  length-=n;
  if (length==0)
   return number.join('.');
  else if (length<0)
   return Math.round(parseFloat(number.join('.')),Math.abs(length));
  for (var i=0; i<length; i++)
   number[1]=number[1]+'0';
  return number.join('.');
 }
function fullShowOn(el)
 {
  fullShowEl=el;
  var list=document.getElementsByName('fullShow');
  for (var i=0; i<list.length; i++)
   list[i].setAttribute('onclick','fullShow('+i+',\''+fullShowEl+'\')');
 }
function fullShow(id)
 {
  var list=document.getElementsByName('fullShow');
  var inText=list[id];
  var outText=document.getElementById(fullShowEl+'Text');
  fullShowId=id;
  outText.onchange=inText.onchange;
  outText.value=inText.value;
  show(fullShowEl,'block');
 }
function fullShowRewind()
 {
  var list=document.getElementsByName('fullShow');
  var inText=list[fullShowId];
  var outText=document.getElementById(fullShowEl+'Text');
  fullShowId=0;
  inText.value=outText.value;
  show(fullShowEl,'none');
 }
function validate(str,method) //проверка данных на соответствие
 {
  var result=true;
  switch (method)
   {
   	case 'email': //мыло
     if (/[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(str)==false)
      result=false;
    break;
    case 'phone_mobile':  //мобильный номер в международном формате
     if (/^\+?\d{6,12}$/.test(str)==false)
      result=false;
    break;
    case 'phone_home':
     if (/^[0-9\-\(\)]{5,}$/.test(str)==false)
      result=false;
    break;
    case 'fio':  //Фамилия имя отчество
     if (/^([a-z][a-z]+[\- \.\]{0,2}[a-z]+|[а-яё][а-яё]+[\- \.\]{0,2}[а-яё]+)$/i.test(str)==false)
      result=false;
    break;
    case 'login':  //логин
     if (/^([a-z][a-z0-9\-_\+\$\*\)\(]{2,11}|[а-яё][а-яё0-9\-_\+\$\*\)\(]{2,11})$/i.test(str)==false)
      result=false;
    break;
    case 'password':
     if (str.length<6)
      result=false;
    break;
    case 'ip'://ip адрес
     if (/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/.test(str)==false)
      result=false;
    break;
    case 'date':
     if (/^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$/.test(str)==false)
      result=false;
    break;
   }
  return result;
 }
function microtime(get_as_float)
 {
  var now=new Date().getTime()/1000;
  var s=parseInt(now);
  return (get_as_float)?now:(Math.round((now-s)*1000)/1000)+' '+s;
 }
function asc(asc,js)
 {
  if (confirm(asc))
   eval(js);
 }
function write(str)
 {
  document.write(str);
 }
function nav (p,num,max,obj)
 {
  var nav='';
  var end=Math.ceil(max/num);
  if (end>1)
   {
    if (p==1)
     nav+='[<b>1</b>] ';
    if (p<=end)
     {
      if (p>1)
   	   nav+='<a href="#" onclick="'+obj.onclick+'(1);">1</a>';
      if ((p-8)>1)
   	   nav+=' <a href="#" onclick="'+obj.onclick+'('+(p-8)+');">'+(p-8)+'</a>';
      if ((p-4)>1)
   	   nav+=' <a href="#" onclick="'+obj.onclick+'('+(p-4)+');">'+(p-4)+'</a>';
      if ((p-1)>1)
   	   nav+=' <a href="#" onclick="'+obj.onclick+'('+(p-1)+');">'+(p-1)+'</a>';
   	  if (p>1 && p<end)
   	   nav+=' [<b>'+p+'</b>] ';
      if ((p+1)<end)
   	   nav+='<a href="#" onclick="'+obj.onclick+'('+(p+1)+');">'+(p+1)+'</a> ';
      if ((p+4)<end)
   	   nav+='<a href="#" onclick="'+obj.onclick+'('+(p+4)+');">'+(p+4)+'</a> ';
      if ((p+8)<end)
   	   nav+='<a href="#" onclick="'+obj.onclick+'('+(p+8)+');">'+(p+8)+'</a> ';
   	  if (p<end)
   	   nav+='<a href="#" onclick="'+obj.onclick+'('+end+');">'+end+'</a>';
   	  else
   	   nav+=' [<b>'+end+'</b>]';
     }
    if (end>10)
     {
      nav+='<br>'+obj.go_to_page+'<input type="text" style="width: 30px;" id="nav_page"><input type="submit" value="'+obj.go+'" onclick="'+obj.onclick+'(document.getElementById(\'nav_page\').value);">';
      nav+='</form>';
     }
   }
  return nav;
 }
function is_array(str)
 {
  var result=false;
  result=str instanceof Array;
  if (result==false)
   result=str instanceof Object;
  return result;
 }
function array_to_get(obj,arr)
 {
  var result='';
  for (var key in obj)
   if (is_array(obj[key])==false)
    if (arr==false)
     result+='&'+key+'='+obj[key];
    else
     result+='&'+arr+'['+key+']='+obj[key];
   else
    if (arr==false)
     result+=array_to_get(obj[key],key);
    else
     result+=array_to_get(obj[key],arr+'['+key+']');
  return result;
 }
function isset_id(parent,id)
 {
  var result=false;
  var object=document.getElementById(parent);
  for (var key in object.childNodes)
   if (object.childNodes[key].id==id)
    {
     result=true;
     break;
    }
  return result;
 }
function in_array(needle,arr)
 {
  var result=false;
  for (var key in arr)
   if (arr[key]==needle)
    {
     result=true;
     break;
    }
  return result;
 }
function array_reverse(array,preserve_keys)
 {
  var arr_len=array.length, newkey=0, tmp_ar = {}
  for (var key in array)
   {
    newkey=arr_len-key-1;
    tmp_ar[(!!preserve_keys)?newkey:key]=array[newkey];
   }
  return tmp_ar;
 }
function intval (mixed_var)
 {
  var tmp;
  if (typeof (mixed_var)=='string')
   {
	tmp=parseInt(mixed_var,10);
	if (isNaN(tmp))
     return 0;
    else
     return tmp.toString(10);
   }
  else if (typeof(mixed_var)=='number')
   return Math.floor(mixed_var);
  else
   return 0;
 }
//Cross-browser implementation of element.addEventListener()
//Use: listen("event name", elem, func);
function listen(evnt, elem, func)
 {
    if (elem.addEventListener)  // W3C DOM
        elem.addEventListener(evnt,func,false);
    else if (elem.attachEvent) { // IE DOM
         var r = elem.attachEvent("on"+evnt, func);
	return r;
    }
    //else window.alert('no attach event support');
 }


mess_id = 0;
function add_menu_message(message, css_class) {
    mess_id++;
    $("#put_message_before_it").prepend("<div class='"+css_class+"' id='p"+mess_id+"'>"+message+"</div>");
    $('#p'+mess_id).hide().slideDown('fast').delay(6999).slideUp();
}
/**
 * message alert
 */
function m_alert(mess) {
    add_menu_message(mess,'m_alert');
}
/**
 * warning alert
 */
function w_alert(mess) {
    add_menu_message(mess,'w_alert');
}
/**
 * error alert
 */
function e_alert(mess) {
    add_menu_message(mess,'e_alert');
}

/**
 * menu slider functions
*/
var menu = new Object();
menu.offset = 0;
function menu_move_right() {
  var count = 0;
  if (menu.offset < menu.count-menu.max_items) {
    $('.menuitem').each(function() {
      if (count <= menu.offset) {
        $(this).hide();
      }
      if (menu.count > count && count == menu.offset+menu.max_items) {
        $(this).show();
      }
      count++;
    });
    menu.offset++;

    menu_count_active();
  }
}
function menu_move_left() {
  var count = 0;
  if (menu.offset > 0) {
    menu.offset--;
    $('.menuitem').each(function() {
      if (count < menu.offset) {
        $(this).hide();
      }
      if ((count >= menu.offset) && (count < menu.offset + menu.max_items)) {
        $(this).show();
      }
      if (count >= menu.offset + menu.max_items) {
        $(this).hide();
      }
      count++;
    });
    menu_count_active();
  }
}

function menu_count_active() {
  if (menu.offset > 0) {
    menu_count_left = menu.offset;
    $('#menu_arrow_left').css('color','#99BB00');
  } else {
    menu_count_left = '';
    $('#menu_arrow_left').css('color','#CDCDCD');
  }

  if (menu.count - (menu.offset+menu.max_items) > 0) {
    menu_count_right = menu.count - (menu.offset+menu.max_items);
    $('#menu_arrow_right').css('color','#99BB00');
  } else {
    menu_count_right = '';
    $('#menu_arrow_right').css('color','#CDCDCD');
  }

  $('#menu_count_left').html(menu_count_left);
  $('#menu_count_right').html(menu_count_right);
}

function download_pdf() {
  document.forms['save_as_pdf'].content.value = encodeURIComponent(document.getElementById('mainContent').innerHTML);
  document.forms['save_as_pdf'].submit();
}

function onlyNumbers(forma, name) {
  var val_clean = '';
  for (i = 0; i < forma.elements[name].value.length; i++) {
    if ('0123456789'.indexOf(forma.elements[name].value.substr(i,1)) >= 0) {
      val_clean += forma.elements[name].value.substr(i,1);
    }
    else {
      w_alert('Вводите только цифры!');
    }
  }
  forma.elements[name].value = val_clean;
  return true;
}
function print_result(message)
 {
  m_alert(message);
 }
function print_error(message)
 {
  m_alert(message);
 }



 // window functions

var target_window_id = '';
var offsetX, offsetY, maxZindex = 50;

function MouseEvent(e) {

    if (e) {
        this.e = e;
    } else {
        this.e = window.event;
    }

    if (e.pageX) {
        this.x = e.pageX;
    } else {
        this.x = e.clientX;
    }

    if (e.pageY) {
        this.y = e.pageY;
    } else {
        this.y = e.clientY;
    }

    if (e.target) {
        this.target = e.target;
    } else {
        this.target = e.srcElement;
    }

}

var mouse_button_holded = false;

function move_window_mousedown(e) {
    var e = new MouseEvent(e);
    offsetX = e.x - parseInt(document.getElementById(target_window_id).style.left);
    offsetY = e.y - parseInt(document.getElementById(target_window_id).style.top);
    mouse_button_holded = true;
}

function move_window(e) {
  if (mouse_button_holded == true) {
    var e = new MouseEvent(e);
    var x = e.x - offsetX;
    var y = e.y - offsetY;
    // document.getElementById('result_div').innerHTML = 'x & y:      '+x+' & '+y+           "<br>\n"+'e.x & e.y: '+e.x+' & '+e.y+        "<br>\n"+'Offset:    '+offsetX+' & '+offsetY+        "<br>\n"+'target_window_id:    '+target_window_id;
    document.getElementById(target_window_id).style.left = x + "px";
    document.getElementById(target_window_id).style.top  = y + "px";
  }
}
function htmlspecialchars_decode(string,quote_style)
 {
  string=''+string+'';
  string=string.replace('/&/g','&');
  string=string.replace('/</g','<');
  string=string.replace(/>/g,'>');
  if (quote_style=='ENT_QUOTES')
   {
    string=string.replace('\\"/g','"');
    string=string.replace("\\'/g",'\'');
   }
  else if (quote_style!='ENT_NOQUOTES')
   string = string.replace('/"/g', '"');
  return string;
 }

