var PVTELLF = {
	fsubmit: false,
	toggle: function()
	{
		if (YAHOO.util.Dom.getStyle("divPVTELLF", "display") == "block")
		{
			if (this.importerObj != null) {
				this.importerObj.dialog.hide();				
			}
			YAHOO.util.Dom.setStyle("divPVTELLF", "display", "none");
			return ;
		}

		YAHOO.util.Dom.setStyle("divPVTELLF", "display", "block");
		centerElement("divPVTELLF");
		YAHOO.util.Dom.get("PVTELLF_MSG").value = "Hi, I found this useful service called Phonevite.   It enables you to share your voice through your social networks and the phone.   Check it out at http://www.phonevite.com and you can start sharing your voice too.";
		YAHOO.util.Dom.get("PVTELLF_NAME").focus();
		return ;
	},
	cbs: function(o)
	{
		var as = o.responseText.split(":");
		var err = intval(as[0]);
		if (err != 0)
		{
			alert("Error: Tell Friends failed.\nCode: " + err + "\nReason: " + as[1]);
			this.fsubmit = false;
			return ;
		}

		alert("Tell Friends Email/s Sent. Thank you for referring Phonevite to your friend/s.");
		this.fsubmit = false;
	},
	cbf: function(o)
	{
		alert("Error: Tell Friends initiation failure. Please try again later. [" + o.statusText + "]");
		this.fsubmit = false;
	},
	send: function()
	{
		if (this.fsubmit) return ;
		this.fsubmit = true;

		var name = YAHOO.util.Dom.get("PVTELLF_NAME");
		if (name.value != "" && !name.value.checkName(63))
		{
			this.fsubmit = false;
			alert("Please enter valid name");
			name.select();
			name.focus();
			return ;
		}

		var from = YAHOO.util.Dom.get("PVTELLF_FROM");
		if (from.value == "" || !from.value.checkEmail())
		{
			this.fsubmit = false;
			alert("Please enter valid from email address");
			from.select();
			from.focus();
			return ;
		}

		var to = YAHOO.util.Dom.get("PVTELLF_TO");
		if (to.value == "")
		{
			this.fsubmit = false;
			alert("Please enter your friend's email addresses");
			to.select();
			to.focus();
			return ;
		}
		var to_value = to.value.replace(/[\r\n]/g, ",");
		var tos = to_value.split(",");
		var count = 0;
		for (var i=0; i<tos.length; i++)
		{
			if (tos[i] == "") continue;
			if (tos[i] == "" || !tos[i].checkEmail())
			{
				this.fsubmit = false;
				if (i == 0) alert("Email '" + tos[i] + "' is invalid.");
				else alert("Email '" + tos[i] + "' is invalid.\nPlease check the email after '" + lp + "'.");
				return ;
			}
			lp = tos[i];
			count++;
		}

		if (count == 0)
		{
			this.fsubmit = false;
			alert("Please enter friend's email addressses.");
			return;
		}
		else if (count > 200)
		{
			this.fsubmit = false;
			alert("Exceeded maximum number of email addresses (200).");
			return;
		}

		var msg = YAHOO.util.Dom.get("PVTELLF_MSG");
		if (msg.value != "" && !msg.value.checkName(1000))
		{
			this.fsubmit = false;
			alert("Please enter message (max. 1000 letters)");
			msg.focus();
			return ;
		}

		var t = new Date();
		var data = "NAME="+name.value+"&FROM="+from.value+"&TO="+to_value+"&MSG="+msg.value;
		var cb = { success:this.cbs, failure:this.cbf, timeout:10000, scope:this };
		YAHOO.util.Connect.asyncRequest("POST", "/x_tellf.php?R=" + t.getTime(), cb, data);
		this.toggle();
	},
	importEmails:function()
	{
		if (!this.importerObj) {
			var thisObj = this;
			this.importerObj = new Phonevite.Importer.Webmail({
				callbackFunc:function() {
					var importedEmails = "";
					var total = thisObj.importerObj.getTotal();
					for (var i=0; i<total; i++) {
						var node = thisObj.importerObj.getContactNode(i);
						if (importedEmails != "") { importedEmails += ", "; }  
						importedEmails += pvxml_value(node, "email");
					}
					var ta = YAHOO.util.Dom.get("PVTELLF_TO");
					if (ta.value.replace(/^\s+|\s+$/g,"") != "") { ta.value += ", ";  }
					ta.value += importedEmails;
				}
			});
		}
		this.importerObj.open();
	}
};

