function popup(URL) {
  windop = window.open(URL,"mywin","height=120,width=500,left=100,top=30,toolbar=yes,location=yes,directories=yes,menubar=yes,scrollbars=yes,resizable=yes,status=yes,fullscreen=yes");
}

function Name_Control () {
  if (document.forms[0].name.value) return 1;
  else {
    alert ('Вы не заполнили обязательное поле "Имя"!');
    return 0;
  }
}

//--- AJAX
function AjaxRequest(method, url, params, message) {
  var xmlhttp = getXmlHttp();
  var sending=params;
  if (!method)
    method='POST';
  if (method=='GET'||method=='get'||method=='Get')
  {
    url=url+'?'+params;
    sending=null;
  }
  xmlhttp.open(method, url, true);
  xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
        if(message)
          alert(message);
    }
  }
  xmlhttp.send(sending);
}

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 RefreshPart(url,whereId,params)
{
  var xmlhttp = getXmlHttp();
  var sending=params;
  method='POST';
  xmlhttp.open(method, url, true);
  xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
        var inCode=document.getElementById(whereId);
        var ans=xmlhttp.responseText;
        inCode.innerHTML=ans;  
    }
  }
  xmlhttp.send(sending);
}

function FindThis(url,whereId,whatTxt,param1,param2,param3,paramA,paramC,imageCategory,is1,is2)
{
  var params="link="+whereId+"&search="+whatTxt+"&s1="+param1+"&s2="+param2+"&s3="+param3+"&a="+paramA+"&c="+paramC+"&ImageCategory="+imageCategory+"&is1="+is1+"&is2="+is2;
  RefreshPart(url,whereId,params);
}

function AdmSearch(pageSave,where)
{
          var el;
          el=document.getElementById("s1");
          if(el)
            if (document.forms[0].s1.checked==1) var s1=2;
              else var s1=1;
          else var s1="";
          el=document.getElementById("s2");
          if(el)
            if (document.forms[0].s2.checked==1) var s2=2;
              else var s2=1;
          else var s2="";   
          el=document.getElementById("s3");
          if(el)
            if (document.forms[0].s3.checked==1) var s3=2;
              else var s3=1;
          else var s3="";
          el=document.getElementById("searchTyping");
          if(el)
            var search=encodeURIComponent(el.value);
          else var search="";
          el=document.getElementById("a");
          if(el)
            var a=document.forms[0].a.value;
          else var a="";
          el=document.getElementById("c");
          if(el)
            var c=document.forms[0].c.value;
          else var c="";
          el=document.getElementById("ImageCategory");
          if(el)
            var imageCategory=el.value;
          else var imageCategory="";
          el=document.getElementById("is1");
          el=document.getElementById("is1");
          if(el)
            var is1=el.value;
          else var is1="";
          el=document.getElementById("is2");
          if(el)
            var is2=el.value;
          else var is2="";
          FindThis(pageSave,where,search,s1,s2,s3,a,c,imageCategory,is1,is2);
}

function FindThisAfterAction(url,whereId,params)
{
  var xmlhttp = getXmlHttp();
  var sending=params;
  method='POST';
  xmlhttp.open(method, url, true);
  xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
        var inCode=document.getElementById(whereId);
        var ans=xmlhttp.responseText;
        inCode.innerHTML=ans;  
    }
  }
  xmlhttp.send(sending);
}

function SearchDinamic(obj,ev)
{
  var val=obj.value;
  if(ev.ctrlKey||ev.altKey)
    return val;
  var code=ev.which;
  if(!code)
    code=ev.keyCode;
  var cursorFrom=0, cursorTo=0;
  cursorFrom = obj.selectionStart;
  cursorTo = obj.selectionEnd;
    switch (code)
    {
    case 13://enter
    case 27://esc
      return val;
    case 8://backspace
      if(cursorTo!=cursorFrom)
        var part1=val.substring(0,cursorFrom);
      else
        var part1=val.substring(0,cursorFrom-1);
      var part2=val.substring(cursorTo,val.length);
      val=part1+part2;
      return val;
    case 46://del
      var part1=val.substring(0,cursorFrom);
        if(cursorTo!=cursorFrom)
        var part2=val.substring(cursorTo,val.length);
      else
          var part2=val.substring(cursorTo+1,val.length);
      val=part1+part2;
      return val;
    default:
      return val+String.fromCharCode(code);
    }
}

//-------------------------------------------------
function replaceSelectedText(obj,rezvalue)
{
  obj.focus();
  if (document.selection) 
  {
    var s = document.selection.createRange(); 
    eval("s.text=rezvalue");
    s.select();
    return true;
  }
  else if (typeof(obj.selectionStart)=="number")
  {
    var starting = obj.selectionStart;
    var ending = obj.selectionEnd;
    eval("var rs = rezvalue");
    obj.value = obj.value.substr(0,starting)+rs+obj.value.substr(ending);
    obj.setSelectionRange(ending,ending);
    return true;
  }
  return false;
}

function openImgWin(src,namewin) {
  previewImageWin= open('',namewin,'status=yes,toolbar=yes,menubar=yes,scrollbars=yes');
  previewImageWin.document.open();
  previewImageWin.document.write("<html><head><title>Мероприятия</title></head><body>");
  previewImageWin.document.write("<table HEIGHT=100% WIDTH=100%><tr><td align=left>");
  previewImageWin.document.write("<img src="+src+" border=0>");
  previewImageWin.document.write("</td></tr><tr><td HEIGHT=10 align=left>");
  previewImageWin.document.write("<script language='JavaScript'>");
  previewImageWin.document.write("function closewin () {");
  previewImageWin.document.write("close();");
  previewImageWin.document.write("}");
  previewImageWin.document.write("</script>");
  previewImageWin.document.write("<form><br><input type='button' value='Закрыть' onclick='closewin ();' class='Button'></form>");
  previewImageWin.document.write("</td></tr></table>");
  previewImageWin.document.write("</body></html>");
  previewImageWin.document.close();
}

function closewin () {
  close();
}

function Ins() {
  document.forms[0].id.checked=document.forms[0].insert.checked;
  for (var i = 0; i<document.forms[0].id.length; i++){ 
		document.forms[0].id[i].checked=document.forms[0].insert.checked;
	}
}

function ActionDinamic(link, text, text1, name, pageSave, whereId) {
  if (document.forms[0].id.checked) {
    if (name) link=link+'&'+name+'='+document.forms[0].id.value;
    else link=link+'&id0='+document.forms[0].id.value;
		var a=1;
  }
  var n=0;
	for (var i = 0; i<document.forms[0].id.length; i++) {
		if (document.forms[0].id[i].checked) {
		  if (name) link=link+'&'+name+'='+document.forms[0].id[i].value;
		  else link=link+'&id'+n+'='+document.forms[0].id[i].value;
			var a=1;
			++n;
		}
	}
  if (a==1) {
    if (text) {
      if (confirm(text)) {
        AjaxRequest('POST',pageSave,link,null);
        link=link+'&link='+whereId;
        FindThisAfterAction(pageSave,whereId,link);
      }
    }
    else {
      AjaxRequest('POST',pageSave,link,null);
      FindThisAfterAction(pageSave,whereId,link);
    }
  }
  else alert(text1);
}

function Action(link, text, text1, name) {
  if (document.forms[0].id.checked) {
    if (name) link=link+'&'+name+'='+document.forms[0].id.value;
    else link=link+'&id0='+document.forms[0].id.value;
		var a=1;
  }
  var n=0;
	for (var i = 0; i<document.forms[0].id.length; i++) {
		if (document.forms[0].id[i].checked) {
		  if (name) link=link+'&'+name+'='+document.forms[0].id[i].value;
		  else link=link+'&id'+n+'='+document.forms[0].id[i].value;
			var a=1;
			++n;
		}
	}
  if (a==1) {
    if (text) {
      if (confirm(text)) {
        document.location.assign(link);
      }
    }
    else document.location.assign(link);
  }
  else alert(text1);
}

function FormSubmit() {
  document.forms['order_form'].submit();
}


function image_size_filter(el)
{
  main_width=document.getElementById('main_document').width;
  if(el.width > main_width)
  {
   koef=(main_width-50)/el.width;
   el.width=main_width-50;
   el.height=el.height*koef;
  }

}

function body_load()
{
  len=document.images.length;
  for(i=0;i<len;i++)
  {
    el=document.images[i];
    image_size_filter(el);
  }

  if (document.order_form.elements)
    options_set(document.order_form.service.value);
}

//---------------order
function count_options(t)
{
        document.order_form.Service_id.value='10000';
        document.order_form.service.value='10000';
        cost=0;
        current=0;
        len=document.order_form.elements.length;
        reg=/option\d*/;
        reg2=/category\d*/;
        for(i=0;i<len;i++)
        {
                el=document.order_form.elements[i];
                if(reg2.test(el.name) && t==el)
                {
                  nextid=i+1;
                  if(el.checked)
                    document.order_form.elements[nextid].checked=1;
                  else
                    while(reg.test(document.order_form.elements[nextid].name))
                    {
                      document.order_form.elements[nextid].checked=0;
                      nextid++;
                    }
                }
                if(reg.test(el.name))
                {
                  current++;
                  cat_of_opt=el.name.substring(6,el.name.length);
                  el.disabled=!document.order_form.elements['category'+cat_of_opt].checked;
                    if(!el.disabled && (el.checked || el.type=='hidden'))
                    {
                      document.order_form.service.value+=';'+current;
                      val=el.value.split(';');
                      cost=cost+1*val[val.length-1];
                      
                    }
                }
        }
        document.order_form.price.value=cost;
        document.order_form.cost.value=cost*0.95;
}

function ready_selected(selected)
{
  document.order_form.service.value=document.order_form.Service_id.value;
  s_arr=selected.split(';');
  cost=0;
  len=document.order_form.elements.length;
  len2=s_arr.length;
  reg=/option\d*/;
  for(i=0;i<len;i++)
  {
    el=document.order_form.elements[i];
    el.checked=0;
    if(reg.test(el.name))
      el.disabled=1;
    for(j=1;j<len2;j++)
    {
      if(el.name=='category'+opt_cat_arr[ s_arr[j] ])
        el.checked=1;
      else if(el.name=='option'+opt_cat_arr[ s_arr[j] ])
      {
        el.disabled=0;
        val=el.value.split(';');
        if(val[0]==s_arr[j])
        {
          el.checked=1;
          cost=cost+1*val[val.length-1];
        }
      }
    }
  }
  document.order_form.price.value=cost;
}

function options_set(selected)
{
  s_arr=selected.split(';');
  cost=0;
  current=0;
  len=document.order_form.elements.length;
  len2=s_arr.length;
  reg=/category\d*/;
  reg2=/option\d*/;
  for(i=0;i<len;i++)
  {
    opt_id=0;
    el=document.order_form.elements[i];
    el.checked=0;
    if(reg2.test(el.name))
    {
      current++;
      for(j=1;j<len2;j++)
      {
        if(s_arr[j]==current)
        {
          el.checked=1;
          el.disabled=0;
          opt_id=el.name.substring(6,el.name.length);
          val=el.value.split(';');
          cost=cost+1*val[val.length-1];
          for(k=i-1;document.order_form.elements[k].name=='option'+opt_id  ||  document.order_form.elements[k].name=='category'+opt_id;k--)
            if(document.order_form.elements[k].name=='category'+opt_id)
              document.order_form.elements[k].checked=1;
            else
              document.order_form.elements[k].disabled=0;
          for(k=i+1;document.order_form.elements[k].name=='option'+opt_id  ||  document.order_form.elements[k].name=='category'+opt_id;k++)
            if(document.order_form.elements[k].name=='category'+opt_id)
              document.order_form.elements[k].checked=1;
            else
              document.order_form.elements[k].disabled=0;
        }
      }
    }
  }
  document.order_form.price.value=cost;
}
//--------

//isfocus=0;

//function focused(obj)
//{
//  isfocus=obj;
//}


//---------images

      function whereToPaste(source)
      {
        var f=document.getElementById(source);
        var el=false;
        if(f)
        {
          el=document.getElementById(f.value);
          if(!el)
            el=document.getElementById('text');
        }
        else
        {
          el=document.getElementById('text');
        }
        return el;
      }
      
      function ImagePasteText(obj,maxwidth,align)
      {
        var code="";
        var el=document.getElementById(obj);
        if(el)
        {
          if(el.tagName=="EMBED")
          {
            code="<embed src='"+el.src+"' border='"+el.border+"' quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width='"+el.width+"' height='"+el.height+"' align='"+align+"'></embed>";
          }
          else
          {
            var w,h;
            if(el.width > maxwidth)
            {
              var k=maxwidth/el.width;
              w=el.width*k;
              h=el.height*k;
            }
            else
            {
              w=el.width;
              h=el.height;
            }
            code="<a href='"+el.src+"' target='_blank' title='Открыть изображение в новом окне'><img src='"+el.src+"' border='"+el.border+"' width='"+w+"' height='"+h+"' alt='"+el.alt+"' align='"+align+"'></a>";
          }
        }
        return code;
      }
      
      function HideAllSwf(box)
      {
        box=document.getElementById(box);
        if(box)
        {
          var emb=box.getElementsByTagName("EMBED");
          for(i=0;i<emb.length;i++)
          {
            emb[i].hidden=true;
            emb[i].style.visibility='hidden';
          }
        }
        else return false;
      }
      
      function ShowAllSwf(box)
      {
        box=document.getElementById(box);
        if(box)
        {
          var emb=box.getElementsByTagName("embed");
          for(i=0;i<emb.length;i++)
          {
            emb[i].hidden=false;
            emb[i].style.visibility='visible';
          }
        }
        else return false;
      }
      
      function show_img(url,whereId,pic_id)
      {
      /*
        selected=pic_id;
        id='PrevOf'+pic_id;
        document.getElementById(id).style.visibility='visible';
        //show_imginsert(ImgMany);
        hide_imginsert(ImgMany);
        */
        HideAllSwf('ImgMany');
        var params='link='+whereId+'&id='+pic_id;
        RefreshPart(url,whereId,params);
        
      }

      function hide_img(pic_id)
      {
        show_imginsert(ImgMany);
        id='PrevOf'+pic_id;
        document.getElementById(id).style.visibility='hidden';
      }
      
      function insert_img(/*id,obt*/imgText,obj,selStartObj,selEndObj)
      {
      /*
        el=document.getElementById('Full'+id);
        if(el.className!='img_not_swf')
          replacement="<embed  src="+el.src+" border='0' quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'"+
              " type='application/x-shockwave-flash' width="+el.width+" height="+el.height+" align="+obt+"></embed>";
        else
          replacement='<img src=\"'+el.src+'\" width=\"'+el.width+'\" height=\"'+el.height+'\" align='+obt+' onclick=\"open_image(this)\">';
       if(isfocus)
          where=isfocus;
        else
          where=document.forms[0].text;
  
        replaceSelectedText(where , replacement); 
        hide_img(id);
        hide_imginsert(ImgMany);
        */
        var obj=document.getElementById(obj);
        if(obj)
        {
          var el=document.getElementById(selStartObj);
          if(el)
            var selStart=el.value;
          else
            var selStart=0;
          var el=document.getElementById(selEndObj);
          if(el)
            var selEnd=el.value;
          else
            var selEnd=0;
    obj.focus();
    selStart=obj.selectionStart;
    selEnd=obj.selectionEnd;
    alert(selStart);
          var part1=obj.value.substring(0,selStart);
          var part2=obj.value.substring(selEnd,obj.value.length);
          var newText=part1+imgText+part2;
          obj.value=newText;
          obj.selectionStart=part1.length;
          obj.selectionEnd=part1.length+imgText.length;
        }       
      }
      
      function select_img(id)
      {
        document.getElementById(id).border=3;
        var el=document.getElementById(id+'swf');
        if(el)
        {
          el.hidden=true;
          el.style.visibility='hidden';
        }
      }
      
      function deselect_img(id)
      {
        document.getElementById(id).border=0;
        //if(document.getElementById('ImgMany').style.visibility=='visible')
        //{
        var el=document.getElementById(id+'swf');
        if(el)
        {
          el.hidden=false;
          el.style.visibility='visible';
        }
        //}
     }
      
      function show_imginsert(id)
      {
        id.style.visibility='visible';
        var emb=id.getElementsByTagName("embed");
        for(i=0;i<emb.length;i++)
        if(emb[i].id.substr(emb[i].id.length-3,emb[i].id.length-1)=='swf')
        { 
          tab=document.getElementById(emb[i].id.substr(0,emb[i].id.length-3));
          emb[i].hidden=false;
          emb[i].width=tab.width;
          emb[i].height=tab.height;
          emb[i].style.visibility='visible';
        }
      }
      
      function hide_imginsert(id)
      {
        id=document.getElementById(id);
        var emb=id.getElementsByTagName("embed");
        for(i=0;i<emb.length;i++)
          if(emb[i].id.substr(emb[i].id.length-3,emb[i].id.length-1)=='swf')
          {
            emb[i].hidden=true;
            emb[i].style.visibility='hidden';
         }
        id.style.visibility='hidden';
        id.hidden=true;
      alert(id.name+id.style.visibility+id.hidden);
      }
      
    function open_image(img)
    {
      window.open(img.src,'','scrollbars=yes,menubar=no,resizable=yes,toolbar=no,location=no,status=no');
    }

//------------

/************************************************************************************************************
Ajax dynamic content
Copyright (C) 2006  DTHMLGoodies.com, Alf Magne Kalleland

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
written by Alf Magne Kalleland.

Alf Magne Kalleland, 2006
Owner of DHTMLgoodies.com
	
************************************************************************************************************/	



var enableCache = true;
var jsCache = new Array();

var dynamicContent_ajaxObjects = new Array();

function ajax_showContent(divId,ajaxIndex,url)
{
	document.getElementById(divId).innerHTML = dynamicContent_ajaxObjects[ajaxIndex].response;
	if(enableCache){
		jsCache[url] = 	dynamicContent_ajaxObjects[ajaxIndex].response;
	}
	dynamicContent_ajaxObjects[ajaxIndex] = false;
}

function ajax_loadContent(divId,url)
{
	if(enableCache && jsCache[url]){
		document.getElementById(divId).innerHTML = jsCache[url];
		return;
	}

	
	var ajaxIndex = dynamicContent_ajaxObjects.length;
	document.getElementById(divId).innerHTML = 'Загрузка...';
	dynamicContent_ajaxObjects[ajaxIndex] = new sack();
	
	if(url.indexOf('?')>=0){
		dynamicContent_ajaxObjects[ajaxIndex].method='GET';
		var string = url.substring(url.indexOf('?'));
		url = url.replace(string,'');
		string = string.replace('?','');
		var items = string.split(/&/g);
		for(var no=0;no<items.length;no++){
			var tokens = items[no].split('=');
			if(tokens.length==2){
				dynamicContent_ajaxObjects[ajaxIndex].setVar(tokens[0],tokens[1]);
			}	
		}	
		url = url.replace(string,'');
	}
	
	dynamicContent_ajaxObjects[ajaxIndex].requestFile = url;	// Specifying which file to get
	dynamicContent_ajaxObjects[ajaxIndex].onCompletion = function(){ ajax_showContent(divId,ajaxIndex,url); };	// Specify function that will be executed after file has been found
	dynamicContent_ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function	
	
	
}



var x_offset_tooltip = 5;
var y_offset_tooltip = 0;




var ajax_tooltipObj = false;
var ajax_tooltipObj_iframe = false;

var ajax_tooltip_MSIE = false;
if(navigator.userAgent.indexOf('MSIE')>=0)ajax_tooltip_MSIE=true;


function ajax_showTooltip(externalFile,inputObj)
{
	if(!ajax_tooltipObj)
	{
		ajax_tooltipObj = document.createElement('DIV');
		ajax_tooltipObj.style.position = 'absolute';
		ajax_tooltipObj.id = 'ajax_tooltipObj';		
		document.body.appendChild(ajax_tooltipObj);

		
		var leftDiv = document.createElement('DIV');
		leftDiv.className='ajax_tooltip_arrow';
		leftDiv.id = 'ajax_tooltip_arrow';
		ajax_tooltipObj.appendChild(leftDiv);
		
		var contentDiv = document.createElement('DIV');
		contentDiv.className = 'ajax_tooltip_content';
		ajax_tooltipObj.appendChild(contentDiv);
		contentDiv.id = 'ajax_tooltip_content';
		
		if(ajax_tooltip_MSIE){
			ajax_tooltipObj_iframe = document.createElement('<IFRAME frameborder="0">');
			ajax_tooltipObj_iframe.style.position = 'absolute';
			ajax_tooltipObj_iframe.border='0';
			ajax_tooltipObj_iframe.frameborder=0;
			ajax_tooltipObj_iframe.style.backgroundColor='#FFF';
			ajax_tooltipObj_iframe.src = 'about:blank';
			contentDiv.appendChild(ajax_tooltipObj_iframe);
			ajax_tooltipObj_iframe.style.left = '0px';
			ajax_tooltipObj_iframe.style.top = '0px';
		}

			
	}

	ajax_tooltipObj.style.display='block';
	ajax_loadContent('ajax_tooltip_content',externalFile);
	if(ajax_tooltip_MSIE){
		ajax_tooltipObj_iframe.style.width = ajax_tooltipObj.clientWidth + 'px';
		ajax_tooltipObj_iframe.style.height = ajax_tooltipObj.clientHeight + 'px';
	}

	ajax_positionTooltip(inputObj);
}

function ajax_positionTooltip(inputObj)
{
	var leftPos = (ajaxTooltip_getLeftPos(inputObj) + inputObj.offsetWidth);
	var topPos = ajaxTooltip_getTopPos(inputObj);

	var tooltipWidth = document.getElementById('ajax_tooltip_content').offsetWidth +  document.getElementById('ajax_tooltip_arrow').offsetWidth; 

	ajax_tooltipObj.style.left = leftPos + 'px';
	ajax_tooltipObj.style.top = topPos + 'px';	
	
	
}


function ajax_hideTooltip()
{
	ajax_tooltipObj.style.display='none';
}

function ajaxTooltip_getTopPos(inputObj)
{		
  var returnValue = inputObj.offsetTop;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop;
  }
  return returnValue;
}

function ajaxTooltip_getLeftPos(inputObj)
{
  var returnValue = inputObj.offsetLeft;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
  }
  return returnValue;
}

function IntPress () {
  event.returnValue=Latin('48-57,46');
}

function sack(file){
	this.AjaxFailedAlert = "Your browser does not support the enhanced functionality of this website, and therefore you will have an experience that differs from the intended one.\n";
	this.requestFile = file;
	this.method = "POST";
	this.URLString = "";
	this.encodeURIString = true;
	this.execute = false;

	this.onLoading = function() { };
	this.onLoaded = function() { };
	this.onInteractive = function() { };
	this.onCompletion = function() { };

	this.createAJAX = function() {
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (err) {
				this.xmlhttp = null;
			}
		}
		if(!this.xmlhttp && typeof XMLHttpRequest != "undefined")
			this.xmlhttp = new XMLHttpRequest();
		if (!this.xmlhttp){
			this.failed = true; 
		}
	};
	
	this.setVar = function(name, value){
		if (this.URLString.length < 3){
			this.URLString = name + "=" + value;
		} else {
			this.URLString += "&" + name + "=" + value;
		}
	}
	
	this.encVar = function(name, value){
		var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value);
	return varString;
	}
	
	this.encodeURLString = function(string){
		varArray = string.split('&');
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split('=');
			if (urlVars[0].indexOf('amp;') != -1){
				urlVars[0] = urlVars[0].substring(4);
			}
			varArray[i] = this.encVar(urlVars[0],urlVars[1]);
		}
	return varArray.join('&');
	}
	
	this.runResponse = function(){
		eval(this.response);
	}
	
	this.runAJAX = function(urlstring){
		this.responseStatus = new Array(2);
		if(this.failed && this.AjaxFailedAlert){ 
			alert(this.AjaxFailedAlert); 
		} else {
			if (urlstring){ 
				if (this.URLString.length){
					this.URLString = this.URLString + "&" + urlstring; 
				} else {
					this.URLString = urlstring; 
				}
			}
			if (this.encodeURIString){
				var timeval = new Date().getTime(); 
				this.URLString = this.encodeURLString(this.URLString);
				this.setVar("rndval", timeval);
			}
			if (this.element) { this.elementObj = document.getElementById(this.element); }
			if (this.xmlhttp) {
				var self = this;
				if (this.method == "GET") {
					var totalurlstring = this.requestFile + "?" + this.URLString;
					this.xmlhttp.open(this.method, totalurlstring, true);
				} else {
					this.xmlhttp.open(this.method, this.requestFile, true);
				}
				if (this.method == "POST"){
  					try {
						this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')  
					} catch (e) {}
				}

				this.xmlhttp.send(this.URLString);
				this.xmlhttp.onreadystatechange = function() {
					switch (self.xmlhttp.readyState){
						case 1:
							self.onLoading();
						break;
						case 2:
							self.onLoaded();
						break;
						case 3:
							self.onInteractive();
						break;
						case 4:
							self.response = self.xmlhttp.responseText;
							self.response.Charset="windows-1251";
							self.responseXML = self.xmlhttp.responseXML;
							self.responseStatus[0] = self.xmlhttp.status;
							self.responseStatus[1] = self.xmlhttp.statusText;
							self.onCompletion();
							if(self.execute){ self.runResponse(); }
							if (self.elementObj) {
								var elemNodeName = self.elementObj.nodeName;
								elemNodeName.toLowerCase();
								if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){
									self.elementObj.value = self.response;
								} else {
									self.elementObj.innerHTML = self.response;
								}
							}
							self.URLString = "";
						break;
					}
				};
			}
		}
	};
this.createAJAX();
}

function Latin(vkey,ekey) {
var lat = '48-57,65-90,97-122';
 if( vkey != '*' ) {
  if(vkey == '') { vkey = lat; }
  else if(vkey == '+') { vkey = lat + ',' + ekey; }
  var akey = vkey.split(','), cc = event.keyCode, bnd;
  for(i=0; i<akey.length; ++i) {
    bnd = akey[i].split('-');
    if( bnd.length > 1) {
      if( (cc >= parseInt(bnd[0])) & (cc <= parseInt(bnd[1])) ) return true;     
    } else if( cc == parseInt(bnd[0]) ) {
      return true;
    }
  } return false;
 } else if(Latin.arguments.length > 1) {
   return ekey.indexOf(String.fromCharCode(event.keyCode)) < 0; 
 }
}
