
function createXMLHttpRequest() {
  var xmlReq = false;
  // branch for native XMLHttpRequest object
  if(window.XMLHttpRequest) {
    try {
      xmlReq = new XMLHttpRequest();
    } catch(e) {
      xmlReq = false;
    }
  // branch for IE/Windows ActiveX version
  } else if(window.ActiveXObject) {
    try {
      xmlReq = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        xmlReq = false;
      }
    }
  }
  return xmlReq;
}

var userAgent = { };
userAgent.isAJAX = (createXMLHttpRequest()?true:false);
userAgent.isMozilla = (navigator.userAgent.match(/\bGecko\b/));
userAgent.isOpera = (navigator.userAgent.match(/\bOpera\b/));
userAgent.isInternetExplorer = (navigator.userAgent.match(/\bMSIE\b/) && !userAgent.isOpera);

function callServer(method, url, data, dataType, func, arg) {
  if (!method) method='GET';
  var xmlReq = createXMLHttpRequest();
  if(xmlReq) {
	document.getElementById('progress').style.visibility='visible';
    xmlReq.onreadystatechange = function() {
        // only if xmlReq shows "loaded"
        if (xmlReq.readyState == 4) {
          func(arg, xmlReq.responseText, xmlReq.responseXML, xmlReq.status, xmlReq.statusText);
        }
      };
    xmlReq.open(method, url, true);
    if (data) {
      if (!dataType) dataType='application/xml';
      if (typeof(data)!="string" && dataType.indexOf("charset=")<0 && userAgent.isMozilla) dataType=dataType+';charset=utf-8'; // in Mozilla XML always serialized as UTF-8
      xmlReq.setRequestHeader('Content-Type', dataType);
    }
    xmlReq.send(data);
    return false;
  }
  return true;
}


function showHTML(element, responseText, responseXML, statusCode, statusText) {
  if (typeof(element)=="string") element=document.getElementById(element);
	document.getElementById('progress').style.visibility='hidden';
  if (statusCode==200 || statusCode==201) {

//    responseText += FindAllScripts(responseText);
    element.innerHTML=responseText;

//  http://forum.woweb.ru/print25810.html
// http://www.compgazeta.ru/articles/2007/35/kg73511.html
//  http://forum.woweb.ru/topic31456.html
// t = responseText.getElementsByTagName('script')[0].innerHTML; alert(t);
//    scripts_arr = responseText.getElementsByTagName('script');
//    alert(scripts_arr);
//   for(i in scripts_arr) eval(scripts_arr[i].text);

//	eval( document.getElementById( "script1" ).innerHTML );

	var fajax = document;
//	alert(fajax);
	var script_collection = fajax.getElementsByTagName("script");
//	alert(script_collection+'***'+script_collection.length);
	for( i = 0; i < script_collection.length; i++ ){
//		eval( script_collection[ i ].innerHTML );
//		scr_col = script_collection[ i ].innerHTML;
//	  alert(scr_col);
//		script_collection1 = script_collection[ i ].innerHTML.getElementsByTagId("script1");
//		alert(script_collection1+'***'+script_collection1.length);
	}

///	var fajax = document.getElementById(element);
///	var i;
///	var script_collection = fajax.getElementsByTagName( "script" );
///	for( i = 0; i < script_collection.length; i++ ){
///	  eval( script_collection[ i ].innerHTML );
///	}

  }
  else {
    element.innerHTML= "Загрузить информацию не удалось:\n"+statusCode;
//    alert("Загрузить информацию не удалось:\n"+statusText);
  }
}


function FindAllScripts(htmlcache){
   var r, re;
   re =	/<script[^\>]*\>(.+?)<\/script*>/gi;
   var st = "";
	while ((arr = re.exec(htmlcache)) != null)
	st += RegExp.$1+"\n";
//   alert(st);
//   st.innerHTML = eval(st);
//   alert(st.innerHTML);
return(st);
//return eval(st);
}


function  getForm(fobj)  {  
    var str = "encode=utf8&";  
    var ft = "";  
    var fv = "";  
    var fn = "";  
    var els = "";  
    for(var  i  =  0;i  <  fobj.elements.length;i++)  {  
        els = fobj.elements[i];  //  текущий  элемент  
        ft = els.title;  //  title  элемента  
        fv = els.value;  //  value  элемента  
        fn = els.name;  //  name  элемента  
//                str  +=  fn  +  "="  +  encodeURI(fv)  +  "&";  
                str  +=  fn  +  "="  +  encodeURIComponent(fv)  +  "&";  
    }  //  for  
    str = str.substr(0,(str.length  -  1));  
    return str;  
}

function pSer(frm, url, arg) {
  var post = "";
  post = getForm(frm);
//    alert("Загрузить информацию не удалось:\n"+url+);
	callServer('POST', url, post, 'application/x-www-form-urlencoded;charset=utf-8', showHTML, arg);
//  return callServer('POST', url, post, 'application/x-www-form-urlencoded;charset=utf-8', showHTML, arg);
//  return callServer('POST', url, post, 'application/x-www-form-urlencoded;charset=windows-1251', showHTML, arg);
  return;
}

function gSer(url, arg) {
	callServer('GET', url, null, null, showHTML, arg);
	callServer('GET', url+'&recl=js', null, null, showHTML, 'reclama');
  return;
}

function createIFrame() {
  var id = 'f' + Math.floor(Math.random() * 99999);
  var div = document.createElement('div');
  div.innerHTML = '<iframe style="display:none" src="about:blank" id="'+id+'" name="'+id+'" onload="sendComplete(\''+id+'\')"></iframe>';
  document.body.appendChild(div);
  return document.getElementById(id);
}

function sendForm(form, url, func, arg) {
  if (!document.createElement) return; // not supported
  if (typeof(form)=="string") form=document.getElementById(form);
  var frame=createIFrame();
  frame.onSendComplete = function() { func(arg, getIFrameXML(frame)); };
  form.setAttribute('target', frame.id);
  form.setAttribute('action', url);
//  form.setAttribute('id', 'myForm');
//  form.setAttribute('name', 'myForm');
  form.submit();
//  document.forms['myForm'].submit();
}

function sendComplete(id) {
  var iframe=document.getElementById(id);
  if (iframe.onSendComplete && typeof(iframe.onSendComplete) == 'function') iframe.onSendComplete();
}

function getIFrameXML(iframe) {
  var doc=iframe.contentDocument;
  if (!doc && iframe.contentWindow) doc=iframe.contentWindow.document;
  if (!doc) doc=window.frames[iframe.id].document;
  if (!doc) return null;
  if (doc.location=="about:blank") return null;
  if (doc.XMLDocument) doc=doc.XMLDocument;
  return doc;
}

var cnt=0;

function uploadComplete(element, doc) {
  if (!doc) return;
  if (typeof(element)=="string") element=document.getElementById(element);
  element.innerHTML=doc.documentElement.firstChild.nodeValue;
}
