﻿<!--
// populate controls from KV list
function populateControls(controlValueList, overwrite)
{
    overwrite = (overwrite || true);    
    $.each(controlValueList, 
        function(i, item){
            if(item != null)
            {
                var elem = $('#' + item.Key);
                if(elem.length > 0)
                {
                    switch(elem[0].type)
                    {
                        case 'text':
                            if(overwrite || isEmpty(elem.val()))
                                elem.val(item.Value);
                            break;
                        case 'checkbox':
                            elem[0].checked = (item.Value == 'true');
                            break;
                        case 'select-one':
                            if(overwrite || elem[0].selectedIndex <= 0)
                            {
                                elem[0].selectedIndex = 0;
                                for(var i=0; i<elem[0].options.length; ++i)
                                {
                                    if(elem[0].options[i].value == item.Value
                                        || elem[0].options[i].text == item.Value)
                                    {
                                        elem[0].selectedIndex = i;
                                        break;
                                    }
                                }
                            }
                            break;
                        case 'hidden':
                            if(overwrite || isEmpty(elem.val()))
                                elem.val(item.Value);
                            break;
                        default:                        
                            if(elem[0].innerHTML.toLowerCase().indexOf('<tbody') > -1)
                            {
                                var listItems = $('#' + item.Key + ' input');
                                for(var j=0; j< listItems.length; ++j)
                                {
                                    listItems[j].selected = (listItems[j].value == item.Value);
                                }
                            }
                            else
                            {
                                elem.empty();
                                elem.append(item.Value);
                            }
                            break;
                    }
                }
            }
        });
}

// web control validation
function validateInt(elem)
{
    var val = elem.value;
    if(isEmpty(val))
        return;
        
    var reNumber=/(^\d+$)|(^\d+\.\d+$)/;    
    if (!reNumber.test(value))
        setError(elem, 'Must be a number');
        
    var num = parseInt(val);
    if(num < low)
        setError(elem, 'Value must be greater than ' + low);
    else if(num > high)
        setError(elem, 'Value must be lower than ' + high);    
}

function setError(elem, msg)
{
    //elem.errorTxt = msg;
}    

// multiline textbox max length validation
function mlMaxLength(txtBox, maxLen) 
{
	if (txtBox.value != null && txtBox.value.length > maxLen && maxLen > 0)
	{
		txtBox.value = txtBox.value.substr(0, maxLen);
		// alert('This field supports a maximum of ' + maxLen + ' characters. The text has been truncated.');
	}
}

function initAutoTab()
{
    var fields = $(':input,:text,:radio,:checkbox');
    for(var i=0; i<fields.length-1; ++i)
    {
        if(fields[i].type == 'text')
        {
            var elem = $('#' + fields[i].id);            
            if(elem.length > 0 && typeof elem[0].disableAutoTab == 'undefined' && elem.maxLength > 0)
            {
                var nextElemId = fields[i+1].id;
                fields[i].nextElemId = nextElemId;
                $('#' + fields[i].id).keyup(
                    function()
                    {                    
                        if(isLastKeyTrigger && !isLastKeyTab)
                        {
                            if(this.value.length >= this.maxLength)
                            {
                                var nextElem = $('#' + this.nextElemId);
                                if(nextElem.length > 0)
                                {
                                    if(nextElem[0].type == 'text')
                                        nextElem.select();
                                    else
                                        nextElem.focus();
                                }
                            }
                        }
                    }
                );
            }
        }
    }
}

function mutuallyExcludeChkBoxList(id)
{
    $('#' + id + ' tr td span input').each(
        function(i){
            $(this).click(
                function(){                    
                    var wasChkd = this.checked;
//                    if($('#' + id + ' :checked').length > 0)
//                    {
//                        alert('Please select only one item from the list.');
//                    }
                    $('#' + id + ' :checked').each(function(j){this.checked = false;});                    
                    this.checked = wasChkd;
                }
            );
        }
    ); 
}

function toggleDisabled(elemId, isDisabled)
{
    var elem = $('#' + elemId);
    isDisabled = isDisabled==undefined ? !elem.attr('disabled') : isDisabled;
    
    if (isDisabled){
        elem.attr('disabled', true);
        elem.addClass('disabled');
        elem.datepicker('disable');
    }
    else{
        elem.removeAttr('disabled');
        elem.removeClass('disabled');
        elem.datepicker('enable');
    }
}

function preventPostback(){ return false; }
function blockMultiPostback(e, elem)
{
    elem = elem || $(this);
    var origSrc = elem.attr('src');
    if(origSrc.indexOf('_dis_') < 0 && origSrc.indexOf('.png') > 0)
       elem.attr('src', origSrc.replace(/([_0-9]+\.)png/, '_dis$1png'));
    
    elem.unbind('click', blockMultiPostback);
    elem.bind('click', preventPostback);
}

// counts characters in txtBox, displays "({0}/{1})" format by default in elemCntr
function addCharCounter(txtBoxID, elemCntrID, maxLen, minShowLength, message)
{
    var txtBox = $('#' + txtBoxID);
    var elemCntr = $('#' + elemCntrID);
    if(txtBox != null && elemCntr != null) {
        txtBox.keyup(function() {
            var len = $(this).val().length;
            if(minShowLength == 'undefined' || len >= minShowLength) {
                elemCntr.text('('+len+'/'+maxLen+') ' + message);
                if (len==maxLen)
                {
                    elemCntr.text('('+len+'/'+maxLen+')    You have entered the maximum number of characters');
                }
            }
            else {
                elemCntr.text('');
            }
        });
    }
}

//Fair Housing
//the field has all valid characters, now check for 'BAD' words.	
var unfairHousingPhrases = ['1 child', '2 children', '3 children', '4 children', '5 children', '6 children', '7 children',
	'A-D-U-L-T COMMUNITY', 'A.D.U.L.T. COMMUNITY', 'ABLE BODIED', 'ADLT COMMUNITY', 'ADULT COMMUNITY', 
	'ADULT LIVING', 'ADULTS ONLY', 'AFRICAN', 'AGILE', 'ALCOHOLICS, NO', 'ASIAN', 'BACHELOR', 'BLACKS', 
	'BLACKS, NO', 'BOARD APPROVAL REQUIRED', 'CATHOLIC', 'CAUCASIAN', 'CHICANO', 'CHILDREN, NO', 'CHINESE',
	'COLORED', 'COUPLE', 'COUPLES ONLY', 'CRIPPLED, NO', 'DEAF, NO', 'DRINKERS, NO', 'EMPLOYED, MUST BE', 'EMPLY NESTERS',
	'EMPTY NESTERS', 'FIVE CHILDREN', 'FOUR CHILDREN', 'HANDICAPPED, NOT FOR', 'HEALTHY ONLY', 'HISPANIC',
	'IMPAIRED, NO', 'INDEPENDENT LIVING', 'INDIAN', 'INTEGRATED', 'IRISH', 'JEWISH', 'LANDLORD', 'LATINO',
	'MARRIED', 'MATURE COUPLE', 'MATURE INDIVIDUAL', 'MATURE PERSON', 'MATURE PERSONS', 'MEMBERSHIP APPROVAL REQUIR', 
	'MENTALLY HANDICAPPED, NO', 'MENTALLY ILL, NO', 'MEXICAN-AMERICAN', 'MORMON TEMPLE', 'MOSQUE', 'MUST BE EMPLOYED',
	'NEWLYWEDS', 'NO ALCOHOLICS', 'NO BLACKS', 'NO CHILDREN', 'NO CRIPPLES', 'NO DEAF', 'NO DRINKERS', 'NO IMPAIRED', 
	'NO MENTALLY HANDICAPPED', 'NO MENTALLY ILL', 'NO RETARDED', 'NO SEASONAL WORKER', 'NO SMOKER', 'NO SMOKERS',
	'NO SOC SEC INS', 'NO SOC. SEC. INS.', 'NO SOC.SEC.INS.', 'NO SSI', 'NO UNEMPLOYED', 'NOT FOR HANDICAPPED',
	'NUMBER OF CHILDREN', 'OLDER PERSON', 'OLDER PERSONS', 'ONE CHILD', 'ONE PERSON', 'ORIENTAL', 'PHYSICALLY FIT',
	'POLISH', 'PUERTO RICAN', 'RETARDED, NO', 'SEASONAL WORKER, NO', 'SEVEN CHILDREN', 'SHRINE', 'SINGLE PERSON', 
	'SINGLES ONLY', 'SIX CHILDREN', 'SMOKER, NO', 'SMOKERS, NO', 'SSI, NO', 'THREE CHILDREN', 'TWO CHILDREN',
	'UNEMPLOYED, NO', 'WHITE ONLY', 'WHITES ONLY', 'WHITE', 'WHITES', ' HOOD'];

function getFairHousingPhrases(text) {
    var matchingPhrases = '';
	var isMultiple = false;
	for (var i=0; i<unfairHousingPhrases.length; i++)
	{
		if (new RegExp(unfairHousingPhrases[i], "i").test(text))
		{
		    if(matchingPhrases.length > 0)
                matchingPhrases += '; ';
            matchingPhrases += unfairHousingPhrases[i];
		}	
	}

    return matchingPhrases;
}

function toggleShowHideControl(id, isEnabled){
    if(isEnabled){
        $(id).removeAttr('disabled');
        $(id).removeClass('disabled');
    }else{
        $(id).attr('disabled', 'disabled');
        $(id).addClass('disabled'); 
    }
}

function toggleShowHideControls(showAll){
    if(showAll == undefined){
        toggleShowHideControl('#showAll', true);
        toggleShowHideControl('#hideAll', true);
    }
    else{
        toggleShowHideControl('#showAll', !showAll);
        toggleShowHideControl('#hideAll', showAll);
    }
}
//-->
