function callback(msg, account, cbnum2, url){
	var cbnum = prompt(msg, "");
		if(/^[0-9]+$/i.test(cbnum) && cbnum.length < 25){
			var request = new httpRequest();
			var func = function(){
				xmldoc = request.responseText;
				vars = xmldoc.parseJSON();
				if(vars.err == 'false'){
					var callbackurl = url + '?cbnum1=' + cbnum + '&cbnum2=' + cbnum2 + '&account=' + account + '&hash=' + vars.hash;
					//window.location.href = callbackurl;
					var request2 = new httpRequest();
					var func2 = function(){
						xmldoc2 = request2.responseText;
						if(xmldoc2 == 'ok')
							showModal('<center>Сейчас раздастся звонок...</center>', 'inf');
						else
							showModal('<center>Хм... Что-то не так. Возможно, вы ошиблись в наборе номера. Попробуйте еще раз.</center>', 'err');
					}
					makeRequest(request2, func2, '/callback/call.php', 'POST', 'url=' + url + '&cbnum1=' + cbnum + '&cbnum2=' + cbnum2 + '&account=' + account + '&hash=' + vars.hash);
					return true;
				}
				showModal(vars.msg, 'err');
				return false;
			}
			makeRequest(request, func, '/callback/', 'POST', 'cbnum=' + cbnum);
			
		} else if(cbnum === null)
			return false;
		else
			showModal(cbnum + ' - некорректный телефонный номер', 'err');
}

function showModal(msg, type){
	var width = 400;
	var left = 50;
	var top = 50;
	AllStyle = ""
	+ "padding: 20px; z-index: 5;"
	+ "position: absolute; "
	+ "top: " + top + "px; "
	+ "left: " + left + "px; "
	+ "width: " + width + "px; "
	+ "";
	ErrStyle = "background: #ffdfdf; border: 1px solid #5b0000; ";
	InfStyle = "background: #ffffbd; border: 1px solid #c9c9c9; ";
	if(type == 'err')
		Style = AllStyle + ErrStyle;
	else
		Style = AllStyle + InfStyle;
	oBox = document.createElement("div")
	document.body.appendChild(oBox);
	oBox.innerHTML = '<div style="' + Style + '">' + msg + '</div>';
}
