/**
 * YP VCARD to SMS
 * (c) 2008 Joe Desbonnet, jdesbonnet@gmail.com
 *
 */
var SMSWidget = function(sElementId, ypId, p_config) {

	var config = p_config;
	var formDivEl = document.getElementById(sElementId);
	var formEl = document.createElement("form");

	formDivEl.appendChild(formEl);

	var ypIdInputEl = document.createElement("input");
	ypIdInputEl.type="hidden";
	ypIdInputEl.name="yp_id";
	ypIdInputEl.value=ypId;
	formEl.appendChild(ypIdInputEl);
	
	var numberPrefixEl = document.createElement("select");
	numberPrefixEl.id="f_mobile_prefix";
	numberPrefixEl.name="mobile_prefix";
	var prefixes = ["086","087","085","088"];
	for (var i = 0; i < prefixes.length; i++) {
		var optEl = document.createElement("option");
		optEl.value=prefixes[i];
		optEl.innerHTML=prefixes[i];
		numberPrefixEl.appendChild(optEl);
	}
	formEl.appendChild(numberPrefixEl);
	
	var numberInputEl = document.createElement("input");
	numberInputEl.id="f_mobile_number";
	numberInputEl.type="text";
	numberInputEl.size="8";
	numberInputEl.name="mobile_number";
	formEl.appendChild(numberInputEl);
	
	var submitEl = document.createElement("button");
	submitEl.type="button";
	submitEl.innerHTML="Send SMS";
	formEl.appendChild(submitEl);
	
	var statusEl = document.createElement("div");
	statusEl.id="sms_status";
	statusEl.innerHTML="&nbsp;";
	formDivEl.appendChild(statusEl);
	
	YAHOO.util.Event.on(submitEl, "click", function (e) {
	
		if ( ! mobileNumberOk() ) {
			return;
		}
		
		statusEl.innerHTML = "Sending SMS...";
		statusEl.className = "waitAnimation";
		
		YAHOO.util.Connect.setForm(formEl);
		YAHOO.util.Connect.asyncRequest ("POST", config.smsServiceURL, {
			success: function (o) {
				//var response = eval('(' + o.responseText + ')');
				statusEl.innerHTML=o.responseText;
				statusEl.className="";
			},
			failure: function (o) {
				statusEl.innerHTML=o.responseText;
				statusEl.className="";
			}
		}
		);
		YAHOO.util.Event.preventDefault(e);
	}
	);
	
	function mobileNumberOk () {
		var f = document.getElementById("f_mobile_number");
		if (f.value.length != 7) {
			alert ('Mobile number (excluding prefix) must be 7 digits in length.');
			return false;
		}
		return true;
	}

	// Public functions
	return {};
	
};