var PVCM = {
	tid: null,
	cid: 0,
	sec: 10,
	start: function(cid)
	{
		this.cid = cid;
		YAHOO.util.Dom.setStyle("divPVCM", "display", "block");
		YAHOO.util.Dom.setStyle("PVCM_STATUS", "display", "block");
		centerElement("divPVCM");
		var self = this;
		function f() { self.autocheck(); };
		this.tid = window.setInterval(f, 1000);
	},
	cbs: function(o)
	{
		var as = o.responseText.split(":");
		var err = intval(as[0]);
		if (err != 0)
		{
			alert("Error: " + as[1]);
			YAHOO.util.Dom.setStyle("PVCM_WAIT", "display", "none");
			YAHOO.util.Dom.setStyle("PVCM_STATUS", "display", "block");
			YAHOO.util.Dom.setStyle("divPVCM", "display", "none");
			YAHOO.util.Dom.get("PVCM_CHECKNOW").disabled = false;
			return ;
		}
		var status = as[1];
		if (status == "R")
		{
			YAHOO.util.Dom.get("PVCM_CALL").innerHTML = "Processing....";
			var self = this;
			function f() { self.autocheck(); };
			this.tid = window.setInterval(f, 1000);
			YAHOO.util.Dom.setStyle("PVCM_WAIT", "display", "none");
			YAHOO.util.Dom.setStyle("PVCM_STATUS", "display", "block");
		}
		else if (status == "P")
		{
			YAHOO.util.Dom.get("PVCM_CALL").innerHTML = "Call in progress...";
			var self = this;
			function f() { self.autocheck(); };
			this.tid = window.setInterval(f, 1000);
			YAHOO.util.Dom.setStyle("PVCM_WAIT", "display", "none");
			YAHOO.util.Dom.setStyle("PVCM_STATUS", "display", "block");
		}
		else if (status == "F")
		{
			YAHOO.util.Dom.get("PVCM_CALL").innerHTML = "Finished.";
			YAHOO.util.Dom.setStyle("PVCM_WAIT", "display", "none");
			YAHOO.util.Dom.setStyle("PVCM_STATUS", "display", "none");
			YAHOO.util.Dom.setStyle("PVCM_NEXT", "display", "block");
			if (as[2] == 0)
			{
				YAHOO.util.Dom.setStyle("PVCM_SUCCESS", "display", "block");
			}
			else
			{
				YAHOO.util.Dom.get("PVCM_RESULT").innerHTML = "<br><br><span style=\"color:#cb0000\">We are experiencing a problem during the call.<br>Code: " + as[2] + "<br>Reason: " + as[3] + "</span>";
				YAHOO.util.Dom.setStyle("PVCM_FAIL", "display", "block");
			}
		}
		YAHOO.util.Dom.get("PVCM_CHECKNOW").disabled = false;
		return ;
	},
	cbf: function(o)
	{
		alert("Error: Checking call server failed. [" + o.statusText + "]");
		YAHOO.util.Dom.setStyle("PVCM_WAIT", "display", "none");
		YAHOO.util.Dom.setStyle("PVCM_STATUS", "display", "block");
		YAHOO.util.Dom.get("PVCM_CHECKNOW").disabled = false;
		return ;
	},
	autocheck: function()
	{
		this.sec--;
		if (this.sec > 0)
		{
			YAHOO.util.Dom.get("PVCM_SEC").innerHTML = " " + this.sec;
			return ;
		}
		this.check();
	},
	check: function()
	{
		window.clearInterval(this.tid);
		this.sec = 60;
		YAHOO.util.Dom.get("PVCM_SEC").innerHTML = " " + this.sec;

		YAHOO.util.Dom.setStyle("PVCM_STATUS", "display", "none");
		YAHOO.util.Dom.setStyle("PVCM_WAIT", "display", "block");
		YAHOO.util.Dom.get("PVCM_CHECKNOW").disabled = true;

		var t = new Date();
		var cb = { success:this.cbs, failure:this.cbf, timeout:10000, scope:this };
		YAHOO.util.Connect.asyncRequest("GET", "/x_pvcm.php?CID=" + this.cid + "&R=" + t.getTime(), cb, null);
	}
};

