function disableEnableSchedulableDaysCheckboxes(element)
{
    var name = element.name;
    var noneField;
    var childNodes = element.parentNode.childNodes;
    for (i = 0; i < childNodes.length; i++)
    {
        var field = childNodes[i];
        // - the None field is the last one
        if (field.name == name)
        {
            noneField = field;
        }
    }
    if (noneField)
    {
        for (i = 0; i < childNodes.length; i++)
        {
            var field = childNodes[i];
            if (field.name == name && field != noneField)
            {
                if (noneField.checked)
                {
	                field.checked = false;
	                field.disabled = true;
                }
                else
                {
                    field.disabled = false;
                }
            }
        }
   }
}

function trim(s)
{
    return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}

/**
 * Provides some confirmation to make sure a campaign schedule really
 * wants to allow immediate messages.
 */
function confirmCampaignScheduleImmediateMessages(elementId)
{
    var campaignMessages = document.getElementById(elementId);
    var children = campaignMessages.getElementsByTagName('*');
    var immediateMessages = 0;
    var timeTypeId = 'relativeTimeType';
    for (var ctr = 0; ctr < children.length; ctr++)
    {
        var message = children[ctr];
        if (message.id.indexOf(':message') != -1)
        {
            var relativeTimePresent = false;
            var relativeTimeTypePresent = false;                    
            var messageChildren = message.getElementsByTagName('*');
            for (var ctr2 = 0; ctr2 < messageChildren.length; ctr2++)
            {
                var messageElement = messageChildren[ctr2];
                if (messageElement.id.indexOf('relativeTime') != -1)
                {
                    if (trim(messageElement.value) != '')
                    {
                        if (messageElement.id.indexOf(timeTypeId) != -1)
                        {
                            relativeTimeTypePresent = true;
                            break;
                        }
                        else
                        {
                            relativeTimePresent = true;
                            break;
                        }
                    }
                }
            }
            if (!relativeTimeTypePresent && !relativeTimePresent)
            {
                immediateMessages++;
            }
        }
    }
    if (immediateMessages > 0)
    {
        return confirm('There are ' + immediateMessages + ' message(s) set to send immediately on this schedule, are you sure this is what you want? (i.e. there is no send time defined for these messages)');
    }
    return true;
}
