var callconnection=null;

if (window.XMLHttpRequest)
   callconnection=new XMLHttpRequest();
else if (window.ActiveXObject)
    { try{
   callconnection=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
   callconnection=new ActiveXObject("Msxml2.XMLHTTP");
    }
   }

var disconnectoption='<input type="image" src="/gif/call.gif" title="Ввести еще раз" style="margin-top: 8px;" onclick="disconnect();"/>';
var connectoption='<input type="image" onclick="doCall();" src="/gif/call.gif" title="номер должен быть в международном формате. (+7xxxyyyyyyyy)" style="margin-top: 8px;">';
var currentnumber='';


function doCall()
{
    currentnumber=document.getElementById('phone_number').value;
    callconnection.open("GET","/css/jv_call.php?phone="+currentnumber,true);
    callconnection.onreadystatechange=function()
	{
	if (callconnection.readyState!=4)
	    return;
	document.getElementById('callhint').innerHTML='Идет набор номера '+currentnumber;
	document.getElementById('calloptions').innerHTML=disconnectoption;
	}
    document.getElementById('callhint').innerHTML='ждите...';
    document.getElementById('calloptions').innerHTML='<img src="" height=0 width=22>';
    callconnection.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    callconnection.send(null);
    return false;
}

function disconnect()
{
    document.getElementById('callhint').innerHTML='';
    document.getElementById('calloptions').innerHTML=connectoption;
    window.setTimeout('check_number()',500);
}

function trim(str)
   {
     s = str.replace(/^(\s)*/, '');
     s = s.replace(/(\s)*$/, '');
     return s;
   }

function isNumeric(vTestValue)
{
	// put the TEST value into a string object variable
	var sField = new String(trim(vTestValue));
	
	// check for a length of 0 - if so, return false
	if(sField.length==0) { return false; }
	else if(sField.length==1 && (sField.charAt(0) == '.' || sField.charAt(0) == ',' || (sField.charAt(0) == '-'))) { return false; }

	var bottom=0;
	if (sField.charAt(0)=='+')
		bottom=1;
        else
                return false;

	// loop through each character of the string
	for(var x=bottom; x < sField.length; x++) {
		// if the character is < 0 or > 9, return false (not a number)
		if((sField.charAt(x) >= '0' && sField.charAt(x) <= '9') || sField.charAt(x) == '(' || sField.charAt(x) == ')' || (sField.charAt(x) == ' ' )) { /* do nothing */ }
		else { return false; }
	}
	
	// made it through the loop - we have a number
	return true;
}

function check_number()
{
	var num=document.getElementById('phone_number').value;
	if (num.length==0)
	{
	document.getElementById('callhint2').innerHTML='Номер не введен';
	document.getElementById('callhint').innerHTML='';
	document.getElementById('calloptions').innerHTML='<img src="" height=0 width=22>';
	}
	else
	if ((!isNumeric(num))||num.length<12)
	{
	document.getElementById('callhint2').innerHTML='<b style="color:red">Неверный формат номера!</b>';
	document.getElementById('callhint').innerHTML='';
	document.getElementById('calloptions').innerHTML='<img src="" height=0 width=22>';
	}
	else
	{
	document.getElementById('callhint2').innerHTML='Номер верный';
	document.getElementById('calloptions').innerHTML=connectoption;
	}
}

