﻿/// <reference path="../jquery-1.2.6.js" />
/// <reference path="GeoReps.js" />

GeoReps.Web.UI.UserControls.ContactInfoBlock = function(clientID, required)
{
	/// <summary>
	/// Default constructor for GeoReps.Web.UI.UserControls.ContactInfoBlock
	/// </summary>
	/// <param name="clientID" type="String">
	/// A string containing the ClientID of the ContactInfoBlock user control
	/// </param>
	/// <param name="required" type="Boolean">
	/// A boolean containing a value indicating if this control is required
	/// </param>
	this.ID = clientID;
	this.required = required;
}

GeoReps.Web.UI.UserControls.ContactInfoBlock.prototype.enableContactNumber = function()
{
	var contactType = this.getControl(this.ControlEnum.ContactType);
	var contactValue = this.getControl(this.ControlEnum.ContactValue);
	var contactValueCusVal = this.getControl(this.ControlEnum.ContactValueCustomVal);
	var contactValueRegVal = this.getControl(this.ControlEnum.ContactValueRegularExpVal);

	try
	{
		if (contactType)
		{
			var enabled;

			if (contactType.value.length == 0) enabled = false;
			else enabled = true;

			if (contactValue)
			{
				contactValue.clear();
				if (enabled) contactValue.enable();
				else contactValue.disable();
			}
			if (ValidatorEnable)
			{
				ValidatorEnable(contactValueCusVal, enabled);
				ValidatorEnable(contactValueRegVal, enabled);
			}
		}
	}
	catch (e)
	{
		alert(e.message);
	}
}

GeoReps.Web.UI.UserControls.ContactInfoBlock.prototype.ControlEnum =
{
	ContactType: 0,
	ContactValue: 1,
	ContactTypeRequiredVal: 2,
	ContactValueCustomVal: 3,
	ContactValueRegularExpVal: 4
}

GeoReps.Web.UI.UserControls.ContactInfoBlock.prototype.getControl = function(control)
{
	var element = null;
	var id = this.ID;
	try
	{
		switch (control)
		{
			case this.ControlEnum.ContactType:
				element = $get(id + "_ddlContactType");
				break;
			case this.ControlEnum.ContactTypeRequiredVal:
				element = $get(id + "_rfvContactType");
				break;
			case this.ControlEnum.ContactValue:
				element = $find(id + "_mtbContactNumber");
				break;
			case this.ControlEnum.ContactValueCustomVal:
				element = $get(id + "_cusContactNumber");
				break;
			case this.ControlEnum.ContactValueRegularExpVal:
				element = $get(id + "_regContactNumber");
				break;
		}
	}
	catch (e)
	{
		element = null;
	}

	return element;
}

GeoReps.Web.UI.UserControls.ContactInfoBlock.prototype.Validate = function(sender, e)
{
	/// <summary>
	/// Validation function used by the custom validator control.
	/// </summary>
	/// <param name="sender" type="Object"></param>
	/// <param name="e" type="Object"></param>
	var isValid;

	try
	{
		if (this.getControl(this.ControlEnum.ContactType))
		{
			var requiredValue = this.getControl(this.ControlEnum.ContactType).value;

			if (requiredValue.length == 0) isValid = true;
			else if (e.Value.length > 0) isValid = true;
			else isValid = false;
		}
	}
	catch (e)
	{
		isValid = false;
	}
	finally
	{
		e.IsValid = isValid;
	}

	return;
}
