using System;
using System.Data;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using CMS.FormControls;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
public partial class CMSFormControls_Inputs_USphone : FormEngineUserControl
{
///
/// Gets or sets the enabled state of the control.
///
public override bool Enabled
{
get
{
return base.Enabled;
}
set
{
base.Enabled = value;
txt1st.Enabled = value;
txt2nd.Enabled = value;
txt3rd.Enabled = value;
}
}
///
/// Gets or sets field value.
///
public override object Value
{
get
{
if (IsEmpty())
{
return "";
}
return "(" + txt1st.Text + ") " + txt2nd.Text + "-" + txt3rd.Text;
}
set
{
string number = (string)value;
Clear();
// Parse numbers from incoming string.
if ((number != null) && (number != ""))
{
try
{
txt1st.Text = number.Substring(1, number.IndexOfCSafe(")") - 1);
txt2nd.Text = number.Substring(number.IndexOfCSafe(")") + 2, number.IndexOfCSafe("-") - number.IndexOfCSafe(")") - 2);
txt3rd.Text = number.Substring(number.IndexOfCSafe("-") + 1, number.Length - number.IndexOfCSafe("-") - 1);
}
catch
{
}
}
}
}
///
/// Clears current value.
///
public void Clear()
{
txt1st.Text = "";
txt2nd.Text = "";
txt3rd.Text = "";
}
///
/// Returns true if the number is empty.
///
public bool IsEmpty()
{
return (DataHelper.IsEmpty(txt1st.Text) && DataHelper.IsEmpty(txt2nd.Text) && DataHelper.IsEmpty(txt3rd.Text));
}
///
/// Returns true if user control is valid.
///
public override bool IsValid()
{
if (IsEmpty())
{
return true;
}
// US phone number must be in form: (ddd) ddd-dddd, where 'd' is digit
Validator val = new Validator();
string result = val.IsRegularExp(txt1st.Text, @"\d{3}", "error").IsRegularExp(txt2nd.Text, @"\d{3}", "error").IsRegularExp(txt3rd.Text, @"\d{4}", "error").Result;
if (result != "")
{
ValidationError = GetString("USPhone.ValidationError");
return false;
}
return true;
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// WAI validation
lbl2nd.Attributes.Add("style", "display:none;");
lbl3rd.Attributes.Add("style", "display:none;");
}
}