var request = null;
var url="/cgi-bin/call.cgi";
var time=20;

function makeCall(phone) {
	var phoneEl=document.getElementById("phone");
	if (phoneEl.value.length != 10) {
		alert("Чтобы звонок удался - введите свой номер телефона.");
		return false;
	}

	var lnk = url + "?phone=" + escape(phone) + "&cash=" + new Date().getTime();
	request.open("GET", lnk, true);

	request.onreadystatechange = afterCall;
	request.send(null);

	var nomer=document.getElementById("nomer");
	nomer.style.display="none";
	var callerElement = document.getElementById("caller");
	callerElement.className="loading_big";
	callerElement.style.display="block";
}

function afterCall() {

 if (request.readyState == 4) {
    if (request.status == 200) {
	var xmlDoc = request.responseXML;
	var type = xmlDoc.getElementsByTagName("type")[0].firstChild.nodeValue;
	var comment = xmlDoc.getElementsByTagName("comment")[0].firstChild.nodeValue;

	var callerElement = document.getElementById("caller");
	if (type=="connecting") { 
		replaceText(callerElement, comment);
	}
	else { 
		callerElement.className="";
		replaceText(callerElement, comment);
		}
 	window.setTimeout("closeNabor()",time*1000);
    } else alert(request.status);
  }
}

function validate(string,key) {

	button=string.name+'_but';
	var butEl=document.getElementById(button);
	if (string.value.length == 10) {butEl.style.visibility="visible";}
	else {butEl.style.visibility="hidden";}

	var Chars = "0123456789";

	for (var i = 0; i < string.value.length; i++) {
		if (Chars.indexOf(string.value.charAt(i)) == -1) {
			string.value=string.value.substr(0,string.value.length-1);
		}
	}
} 


function block(area) {
	scTop=document.body.scrollTop;
	var overlay=document.getElementById("overlay");
	overlay.style.height=document.body.scrollHeight;

//	body.style.overflow="hidden";

	overlay.style.width=document.body.clientWidth;

	document.body.scrollTop=scTop;

	var nabor=document.getElementById("nabor");
	nabor.style.left = document.body.scrollLeft + (document.body.clientWidth - 470) / 2;
	nabor.style.top = document.body.scrollTop + 100;
	var callerElement = document.getElementById("caller");
	callerElement.style.display="none";
	overlay.style.display="block";
	var area=document.getElementById(area);
	area.style.display="block";
	var nomer=document.getElementById("nomer");
	nomer.style.display="block";
	var closeElement = document.getElementById("closer");
	closeElement.onclick = closeNabor;

	loadForm();
}

function closeNabor() {
	var overlay=document.getElementById("overlay");
	overlay.style.display="none";
	var nabor=document.getElementById("nabor");
	nabor.style.display="none";
}

function loadForm(phone) {
	var lnk = url + "?&cash=" + new Date().getTime();
	request.open("GET", lnk, true);

	request.onreadystatechange = afterLoad;
	request.send(null);

	nomer.style.display="none";
	var nomerElement = document.getElementById("nomer");
	nomerElement.className="loading_big";
	nomerElement.style.display="block";
}

function afterLoad() {

 if (request.readyState == 4) {
    if (request.status == 200) {
	var response = request.responseText;
	var nomerElement = document.getElementById("nomer");
	nomerElement.className="";
	nomerElement.innerHTML=response;
    } else alert(request.status);
  }
}




try {
  request = new XMLHttpRequest();
} catch (trymicrosoft) {
  try {
    request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (othermicrosoft) {
    try {
      request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (failed) {
      request = null;
    }
  }
}

if (request == null)
  alert("Error creating request object!");


function replaceText(el, text) {
  if (el != null) {
    clearText(el);
    var newNode = document.createTextNode(text);
    el.appendChild(newNode);
  }
}

function clearText(el) {
  if (el != null) {
    if (el.childNodes) {
      for (var i = 0; i < el.childNodes.length; i++) {
        var childNode = el.childNodes[i];
        el.removeChild(childNode);
      }
    }
  }
}

function getText(el) {
  var text = "";
  if (el != null) {
    if (el.childNodes) {
      for (var i = 0; i < el.childNodes.length; i++) {
        var childNode = el.childNodes[i];
        if (childNode.nodeValue != null) {
          text = text + childNode.nodeValue;
        }
      }
    }
  }
  return text;
}


function reportError(status) {
	alert ("Error " + status);
}

function loading (el, id) {
	var loadingEl = document.getElementById(el);
	loadingEl.innerHTML = "";

	var loadingBar = document.createElement("div");
	loadingBar.id = id;
	loadingEl.appendChild(loadingBar);
}                     

