
var callinprogress = 0;

function hide_dialer()
{
	var myDiv = document.getElementById("dialer");
	myDiv.style.display='none'; 
}

function do_dial(myButton)
{
	var zero_re =/^0/;
	var plus_re = /^\+/;
	var phone = document.getElementById("phone").value;
	var cc = document.getElementById("cc").value;
	var bphone = document.getElementById("bphone").value;
	var bcc = document.getElementById("bcc").value;
	var myDiv = document.getElementById("dialer");
	var myMsg = document.getElementById("dialerMsg");
	var myPDiv = document.getElementById("step3");
	//var mySpan = document.getElementById("dialerspan");

	if (callinprogress == 1){
		myDiv.style.display='block'; 
		return;
	}

	myDiv.style.display='block'; 
	myDiv.style.top=(myPDiv.offsetTop+myPDiv.offsetHeight - 100)+'px'; 
	myDiv.style.left=(myPDiv.offsetLeft+100)+'px'; 

	if ((phone == '')||(bphone == '')){
		myMsg.innerHTML = 'Please enter your phone numbers';
		return;
	}

	// Ok, we should do something with the country codes
	phone = phone.replace(zero_re,"");
	phone = phone.replace(/\s/g,"");
	phone = cc + phone;
	bphone = bphone.replace(zero_re,"");
	bphone = bphone.replace(/\s/g,"");
	bphone = bcc + bphone;
	var Ephone = phone;
	var Ebphone = bphone;
	Ephone = Ephone.replace(plus_re,"%2B");
	Ebphone = Ebphone.replace(plus_re,"%2B");

	//myDiv.setAttribute('style', 'z-index: 2000; display: block; position: relative; top:-110px; left:0px; width:190px; height:60px; background-color: grey;');
/*
	myDiv.style.zIndex='2000'; 
	myDiv.style.position='absolute'; 
	myDiv.style.minWidth='100px'; 
	myDiv.style.minHeight='80px'; 
	myDiv.style.border='1px solid #b9babc'; 
	myDiv.style.backgroundImage='url(images/gui/subnav_bg.png)';
	myDiv.style.backgroundRepeat='repeat';
	myDiv.style.backgroundPosition='left bottom';
	myDiv.style.verticalAlign='middle';
*/

	var myProto = 'http:';
	//var myProto = document.location.protocol;
//	alert('has proto'+myProto);
//	var myUrl = myProto+'//maggie/pep-talk/ptt/pt-popoverlib.cgi'
//	var Query = 'fc=1&duid=zwCjEnD&wantxml=yes&cmd=webdial&phone='+Ephone+'&bphone='+Ebphone;
	var myUrl = myProto+'//pep-talk.com.au/ptt/pt-popoverlib.cgi'
	var Query = 'fc=1&duid=SrPGNj&wantxml=yes&cmd=webdial&phone='+Ephone+'&bphone='+Ebphone;

	//Query = URLencode(Query);
	myMsg.innerHTML = 'Connecting:<br>'+phone+' to '+bphone+'...';
	//mySpan.innerHTML = Query;

	ajax(myUrl,Query,parse_results);

//        myFrame.src = 'http://pep-talk.com.au/ptt/pt-popoverlib.cgi?fc=1&amp;duid=SrPGNj&amp;framed=yes&amp;cmd=webdial&amp;phone='+phone+'&amp;bphone='+bphone;
}

function parse_results(xmlDoc)
{
	var myDiv = document.getElementById("dialer");
	var myMsg = document.getElementById("dialerMsg");
	
	var rc = xmlDoc.getElementsByTagName('rc').item(0).firstChild.data;
	if (rc != 1){
		var errmsg = xmlDoc.getElementsByTagName('errmsg').item(0).firstChild.data;
		myDiv.style.display='block'; 
		if (errmsg == 'no credit'){
			myMsg.innerHTML = xmlDoc.getElementsByTagName('reason').item(0).firstChild.data;
		}
		else if (errmsg == 'maximum free calls reached'){
			myMsg.innerHTML = 'You have used all your free calls.<br>Please join to continue using Pep-Talk';
		}
		else {
			myMsg.innerHTML = errmsg;
		}
		callinprogress=0;
	}
	else {
		var status = '';
		try {
		status = xmlDoc.getElementsByTagName('status').item(0).firstChild.data;
		}
		catch(err) {
			/* Call has probably termintated, hence no status for the ptid */
			callinprogress=0;
			myDiv.style.display='none'; 
		}
		var ptid = xmlDoc.getElementsByTagName('ptid').item(0).firstChild.data;
		if (status == 'dialling'){
			//myMsg.innerHTML = '<span>Dialling...</span>';
			callinprogress=1;
		}
		else if (status == 'call'){
			myDiv.style.display='block'; 
			myMsg.innerHTML = '<img src="images/gui/tagline_now_youre_talkn_3.png">';
			callinprogress=0;
		}
		else if (status == 'ready'){
			//myMsg.innerHTML = '<span>Ringing...</span>';
			callinprogress=1;
		}
		else if (status == 'failed'){
			myDiv.style.display='block'; 
			var Reason = xmlDoc.getElementsByTagName('reason').item(0).firstChild.data;
			callinprogress=0;
			if (Reason == 'busy'){
				myMsg.innerHTML = '<span>Your phone number is Busy.</span>';
			}
			else if (Reason == 'busy-b'){
				myMsg.innerHTML = '<span>The phone number you want to call is Busy.</span>';
			}
			else if (Reason == 'noanswer'){
				myMsg.innerHTML = '<span>You failed to answer your phone.</span>';
			}
			else if (Reason == 'noanswer-b'){
				myMsg.innerHTML = '<span>There was no answer at the number you want to call.</span>';
			}
			else if (Reason == 'hangup'){
				myMsg.innerHTML = '<span>You hungup before we connected your call.</span>';
			}
		}
		
		if ((status != 'call')&&(status != 'failed')&&(status !='')){
			var myProto = document.location.protocol;
			//var myUrl = myProto+'//maggie/pep-talk/ptt/pt-popoverlib.cgi';
			var myUrl = myProto+'//pep-talk.com.au/ptt/pt-popoverlib.cgi';
			var Query = 'cmd=getstatus&ptid='+ptid;
			ajax(myUrl,Query,parse_results);
		}
	}
}

function do_changecountry(it)
{
        document.getElementById("bcc").value = "+"+it.value;;
}

function ajax(url, vars, callbackFunction)
{
	var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0");

	request.open("POST", url, true);
	if (request.overrideMimeType){
		request.overrideMimeType('text/xml');
	}
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 

	request.onreadystatechange = function(){

		if (request.readyState == 4 && request.status == 200) {
			var xmlDoc = request.responseXML;
			if (xmlDoc){
				//alert(request.responseText);
				callbackFunction(xmlDoc);
			}
		}
	}
	request.send(vars);
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function URLencode (myString)
{
	var result = '';
	var x = 0;
	myString = myString.toString();
	var re = /(^[a-zA-Z0-9_.]*)/;
	while (x < myString.length){
		var match = re.exec(myString.substr(x));
		if (match != null && match.length > 1 && match[1] != '') {
			result += match[1];
			x += match[1].length;
		} else {
			if (myString[x] == ' '){
				result += '+';
			}
			else {
				var char = myString.charCodeAt(x);
				var val = char.toString(16);
				result += '%' + ( val.length < 2 ? '0' : '' ) + val.toUpperCase();
			}
			x++;
		}
	}
	return result;
}

