﻿/*************************/
/* Auto-Complete Scripts */
/*************************/
var CitiesXhr = {
    oACDS: null,
    oAutoComp: null,
    res: null,
    getCities: function() {
        return CitiesXhr.res.Utility.Cities;
    },
    handleSuccess: function(o) {
        // Instantiate JS Function DataSource
        CitiesXhr.res = YAHOO.lang.JSON.parse(o.responseText);
        // add recent searches
        var recentSearches = YAHOO.util.Cookie.get("RS");
        if (recentSearches) {
            var rs = recentSearches.split('|');
            CitiesXhr.res.Utility.Cities = CitiesXhr.res.Utility.Cities.concat(rs);
        }
        //CitiesXhr.buildAutoComplete();
    },
    /*    buildAutoComplete: function() {
    return; 
    CitiesXhr.oACDS = new YAHOO.widget.DS_JSArray(CitiesXhr.res.Utility.Cities);
    CitiesXhr.oACDS.queryMatchContains = true;
    CitiesXhr.oACDS.queryMatchSubset = true;
    // Instantiate AutoComplete
    CitiesXhr.oAutoComp = new YAHOO.widget.AutoComplete('search-main', 'searchListingQueryContainer', CitiesXhr.oACDS);
    CitiesXhr.oAutoComp.minQueryLength = 1;
    CitiesXhr.oAutoComp.typeAhead = false;
    CitiesXhr.oAutoComp.formatResult = function(aResultItem, sQuery) {
    var sKey = aResultItem[0]; // the entire result key
    var mKey = aResultItem[0].toLowerCase();
    var mQuery = sQuery.toLowerCase();
    var begin = mKey.indexOf(mQuery) + 0;
    var end = mKey.indexOf(mQuery) + mQuery.length;
    var sKeyPre = (begin == 0) ? "" : sKey.substring(0, begin);
    var sKeyQuery = sKey.substring(begin, (end)); // the query itself
    var sKeyPost = sKey.substr(end); // the rest of the result
    var aMarkup = ["<div>",
    sKeyPre,
    "<span style='font-weight:bold'>",
    sKeyQuery,
    "</span>",
    sKeyPost,
    "</div>"];
    return (aMarkup.join(""));
    };
    }, */
    handleFailure: function(o) {
        //alert("No Xhr Response");
    },
    startRequest: function() {

        YAHOO.util.Connect.asyncRequest('POST', CONST_XHR_PATH + "cities.utility", citiesAsync, "");
    },
    rebuildCities: function(newVal) {
        CitiesXhr.res.Utility.Cities = CitiesXhr.res.Utility.Cities.concat(newVal);
        //CitiesXhr.buildAutoComplete();
    }
};
var citiesAsync = {
    success: CitiesXhr.handleSuccess,
    failure: CitiesXhr.handleFailure,
    scope: CitiesXhr
};


/****************************/
/* Search Options Scripts   */
/****************************/
var optionsOpen = null;
var optionsClose = null;
var errorOpen = null;
var errorClose = null;
YAHOO.util.Event.onContentReady("search-options", function() {
    optionsOpen = new YAHOO.util.Anim('search-options');
    optionsOpen.attributes.height = { to: 149 };
    optionsOpen.duration = 0.5;
    optionsOpen.method = YAHOO.util.Easing.easeOut;

    optionsClose = new YAHOO.util.Anim('search-options');
    optionsClose.attributes.height = { to: 1 };
    optionsClose.duration = 0.5;
    optionsClose.method = YAHOO.util.Easing.easeOut;
}, this);

YAHOO.util.Event.onContentReady("search-error", function() {
    errorOpen = new YAHOO.util.Anim('search-error');
    errorOpen.attributes.height = { to: 66 };
    errorOpen.duration = 0.5;
    errorOpen.method = YAHOO.util.Easing.easeOut;

    errorClose = new YAHOO.util.Anim('search-error');
    errorClose.attributes.height = { to: 1 };
    errorClose.duration = 0.5;
    errorClose.method = YAHOO.util.Easing.easeOut;
}, this);

var isHomePage;
var isSearchPage;
var isCityPage;
var mlsChecked;
var searchObj;

/*
Main function for submit on home page
*/
function validateSearchListingQuery() {
    isHomePage = (location.pathname == '/' || location.pathname.toLowerCase() == '/default.aspx') ? true : false;
    isSearchPage = (location.pathname.toLowerCase() == '/views/listings/' || location.pathname.toLowerCase() == '/views/listings/default.aspx') ? true : false;
    isCityPage = (location.pathname.toLowerCase().search('/city/') > -1) ? true : false;

    var v;
    if (!isCityPage) mlsChecked = (jQuery('#options-mls-checkbox').val() == '1') ? true : false;
    if (!isHomePage && !isCityPage) jQuery('#search-listings-btn').removeClass('btn-search').addClass('btn-search-loading');
    v = jQuery('#search-main').val();

    if (v == defaultSearchText || v == '')
        return false;
    else if (mlsChecked)
        MLSCall(v);
    else {
        if (isHomePage) searchObj = BuildSearchFromHome(v);
        else if (isCityPage) searchObj = BuildSearchFromCity(v);
        else searchObj = BuildSearchFromOther(v);

        if (isSearchPage) IDXCall(searchObj, function() { RedoSearch(v); });
        else IDXCall(searchObj, function() { ListingRedirect(v); });
    }
    return false;
}

function getSel(id) {
    val = jQuery('#' + id).text();

    if (val == 'Any') return null;
    else return val.charAt(0);
}

function getNum(id) {
    val = Number(jQuery('#' + id).val().replace(/\D/g, ''));

    if (!isNaN(val) && val != 0) return String(val);
    else return null;
}

function BuildSearchFromHome(inputField) {
    var address = processAddressInput(inputField);
    var SearchParms = {
        City: address.city,
        Zipcode: address.postalCode,
        State: address.state,
        MinPrice: getNum('input-price-from'),
        MaxPrice: getNum('input-price-to'),
        MinBedrooms: getSel('input-button-beds-button'),
        MinBathrooms: getSel('input-button-baths-button')
    }
    switch (jQuery('#input-button-property-type-button').text()) {
        case 'Single-Family': SearchParms.SingleFamily = true; break;
        case 'Multi-Family': SearchParms.MultiFamily = true; break;
        case 'Townhouse': SearchParms.Townhouse = true; break;
        case 'Condo': SearchParms.Condo = true; break;
        case 'Co-op': SearchParms.Coop = true; break;
        case 'Farm': SearchParms.Farm = true; break;
        case 'Land': SearchParms.Land = true; break;
        case 'Rental': SearchParms.Rental = true; break;
    }
    return SearchParms;
}

function BuildSearchFromOther(inputField) {
    var address = processAddressInput(inputField);
    var SearchParms = {
        City: address.city,
        Zipcode: address.postalCode,
        State: address.state
    }
    jQuery('#searchListingForm input:hidden').each(function() {
        var obj = jQuery(this);
        if (obj.val() != null && obj.val() != '')
            switch (obj.attr('id')) {
            case 'type-single': SearchParms.SingleFamily = true; break;
            case 'type-multi': SearchParms.MultiFamily = true; break;
            case 'type-townhouse': SearchParms.Townhouse = true; break;
            case 'type-condo': SearchParms.Condo = true; break;
            case 'type-coop': SearchParms.Coop = true; break;
            case 'type-farm': SearchParms.Farm = true; break;
            case 'type-land': SearchParms.Land = true; break;
            case 'type-rental': SearchParms.Rental = true; break;
            case 'bed-count': SearchParms.MinBedrooms = obj.val(); break;
            case 'bath-count': SearchParms.MinBathrooms = obj.val(); break;
            case 'options-open': SearchParms.OpenHousesOnly = true; break;
            case 'options-just': SearchParms.JustListedOnly = true; break;
            case 'form-home-age-max': SearchParms.MaxAge = obj.val(); break;
            case 'form-home-age-min': SearchParms.MinAge = obj.val(); break;
            case 'search-min-price': SearchParms.MinPrice = obj.val(); break;
            case 'search-max-price': SearchParms.MaxPrice = obj.val(); break;
            case 'search-min-lot': SearchParms.MinFootage = obj.val(); break;
            case 'search-max-lot': SearchParms.MaxFootage = obj.val(); break;
        }
    });
    return SearchParms;
}

function BuildSearchFromCity(inputField) {
    var address = processAddressInput(inputField);
    var SearchParms = {
        City: address.city,
        Zipcode: address.postalCode,
        State: address.state,
        MinBedrooms: jQuery('#citysearch_form_bed').val(),
        MinBathrooms: jQuery('#citysearch_form_baths').val()
    };
    var range = jQuery('#citysearch_form_pricerange').val().split(',');
    if (range[0] != 0) SearchParms.MinPrice = range[0];
    if (range[1] != 0) SearchParms.MaxPrice = range[1];
    switch (jQuery('#citysearch_form_property').val()) {
        case 'Single-Family': SearchParms.SingleFamily = true; break;
        case 'Multi-Family': SearchParms.MultiFamily = true; break;
        case 'Townhouse': SearchParms.Townhouse = true; break;
        case 'Condo': SearchParms.Condo = true; break;
        case 'Co-op': SearchParms.Coop = true; break;
        case 'Farm': SearchParms.Farm = true; break;
        case 'Land': SearchParms.Land = true; break;
    }
    return SearchParms;
}

function ListingRedirect(inputField) {
    var loc = CONST_BASE_PATH + 'Property/Search/';
    var parsedInputFiled = processAddressInput(inputField);

    if (parsedInputFiled.state != null && parsedInputFiled.state != '') {
        loc += parsedInputFiled.state + '/';
    }

    if (parsedInputFiled.city != null && parsedInputFiled.city != '') {
        loc += parsedInputFiled.city.replace(/\s+/g, '-') + '/';
    }
    
    var locHash = '#s=search-main=' + inputField;
    
    if (searchObj.MinPrice != null) locHash += '|search-min-price=' + searchObj.MinPrice;
    if (searchObj.MaxPrice != null) locHash += '|search-max-price=' + searchObj.MaxPrice;
    if (searchObj.MinBedrooms != null) locHash += '|bed-count=' + searchObj.MinBedrooms;
    if (searchObj.MinBathrooms != null) locHash += '|bath-count=' + searchObj.MinBathrooms;
    if (searchObj.SingleFamily) locHash += '|type-single=1';
    if (searchObj.MultiFamily) locHash += '|type-multi=1';
    if (searchObj.Townhouse) locHash += '|type-townhouse=1';
    if (searchObj.Condo) locHash += '|type-condo=1';
    if (searchObj.Coop) locHash += '|type-coop=1';
    if (searchObj.Farm) locHash += '|type-farm=1';
    if (searchObj.Land) locHash += '|type-land=1';
    if (searchObj.Rental) locHash += '|type-rental=1';
    if (searchObj.OpenHousesOnly) locHash += '|options-open=1';
    if (searchObj.JustListedOnly) locHash += '|options-just=1';
    if (searchObj.MaxAge) locHash += '|form-home-age-max=' + searchObj.MaxAge;
    if (searchObj.MinAge) locHash += '|form-home-age-min=' + searchObj.MinAge;
    if (searchObj.MinFootage) locHash += '|search-min-lot=' + searchObj.MinFootage;
    if (searchObj.MaxFootage) locHash += '|search-max-lot=' + searchObj.MaxFootage;

    jQuery.cookie("searchTerm", inputField, { path: "/" });

    window.location = loc + locHash;
}

function DetailRedirect(listingID, city, state, zip) {
    window.location = DetailAddress(listingID, city, state, zip);
}

function MLSCall(mlsID) {
    var jParms = jQuery.toJSON({ 'MlsId': mlsID });
    jQuery.getJSON(CONST_XHR_PATH + "search.mls", { 'mls_json': jParms }, function(jsonBack) {
        if (jsonBack.Results.length == 0) {
            if (isSearchPage) badMLS();
            else window.location = CONST_BASE_PATH + "Views/Listings/Default.aspx#s=search-main=" + String(mlsID) + "|mls-error=1";
        }
        else if (jsonBack.Results.length > 1) {
            var modalBody = [];
            modalBody[0] = '<div class="mls-message">The MLS # provided is shared with multiple listings. Please select the listing you are searching for below.</div>';
            modalBody[modalBody.length] = '<ul class="bhg-dotted-border-list">';

            for (var i = 0; i < jsonBack.Results.length; i++) {
                var listing = jsonBack.Results[i];
                var addy = listing.City + ', ' + listing.State + ' ' + listing.PostalCode;
                var buildMLS = '<li><div class="mls-list-item container';
                buildMLS += (listing.BrandCode == "BHG") ? ' mls-bhg' : ' mls-other';
                buildMLS += '"><a href="#" id="mlsLink' + String(i) + '">';
                if (listing.DoNotDisplayAddress != true) buildMLS += listing.Street1 + ', ';
                buildMLS += addy + '</a></div></li>';
                modalBody[modalBody.length] = buildMLS;
            }
            modalBody[modalBody.length] = '</ul>';

            var modalSettings =
            {
                header: 'Multiple Listings Found',
                body: modalBody.join(''),
                createHandler: function(modal) {
                    for (var i = 0; i < jsonBack.Results.length; i++) {
                        var listing = jsonBack.Results[i];
                        var idxParms = {
                            MlsId: listing.MLSId,
                            ListingOfficeID: listing.ListingOfficeID
                        }
                        jQuery('#mlsLink' + String(i)).bind('click', { id: listing.ListingId, city: listing.City, state: listing.State, zip: listing.PostalCode, parms: idxParms }, function(e) {
                            IDXCall(e.data.parms, function() { DetailRedirect(e.data.id, e.data.city, e.data.state, e.data.zip); });
                        });
                    }
                }
            };
            BHG.ModalFactory.create(modalSettings);
        }
        else {
            var listing = jsonBack.Results[0];
            var idxParms = {
                MlsId: listing.MLSId
                //ListingOfficeID: listing.ListingOfficeID
            }
            IDXCall(idxParms, function() { DetailRedirect(listing.ListingId, listing.City, listing.State, listing.PostalCode); });
        }
    });
}

function IDXCall(idxParms, callBack) {
    if (idxParms.City != null) idxParms.City = idxParms.City.toLowerCase();
    var jParms = jQuery.toJSON(idxParms);
    jQuery.getJSON(CONST_XHR_PATH + "search.idx", { 'idx_json': jParms, 'query': location.search }, function(jsonBack) {
        if (jsonBack.IdxUrl != null) {
            jQuery('#conv-frame').attr('src', '/Views/Listings/Tracking.htm');
            pageTracker._trackPageview('search_redirect.html');
            verifedImageLoad(adImages, function() {
                window.location = jsonBack.IdxUrl;
            });
            //showGoogleAdwords();
            //window.location = jsonBack.IdxUrl;
        }
        else
            callBack();
    });
}

function DetailAddress(id, city, state, zip) {
    var address = '';
    if (city != '') address += city;
    if (state != '') {
        if (address != '') address += '-';
        address += state
    }
    if (zip != '') {
        if (address != '') address += '-';
        address += zip;
    }
    return '/Listings/' + id + '/' + escape(address);
}

var adImages = [
    'http://www.googleadservices.com/pagead/conversion/1036314621/?label=c9CNCOmdigEQ_c-T7gM&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1036623118/?label=n0UXCKzqfRCOuqbuAw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1050073483/?label=52BZCNeNbRCLs9v0Aw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1033998639/?label=Qr02CK-7dhCvoobtAw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1036963444/?label=8hOnCMyOfxD0nLvuAw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1035735903/?label=fGyWCIfOgQEQ36bw7QM&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1037263978/?label=8zjLCKqoggEQ6sjN7gM&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1038151687/?label=YCOmCJXaexCH4IPvAw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1049147956/?label=WQIwCPLmfhC09KL0Aw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1036354921/?label=KQewCMWXdxDpipbuAw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1036314261/?label=ra3fCI-digEQlc2T7gM&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1051541295/?label=WAZgCMuMeRCv_rT1Aw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1037246464/?label=H31dCND5axCAwMzuAw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1036627730/?label=GuMRCM7QhQEQkt6m7gM&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1051541205/?label=XbN1CKWNeRDV_bT1Aw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1035746237/?label=jER1CLHvfBC99_DtAw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1052679278/?label=6hLgCPzLcBDuuPr1Aw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1039544930/?label=1eyXCKagdxDi5NjvAw&amp;script=0',
    'http://www.googleadservices.com/pagead/conversion/1036314621/?label=gq0jCLGoiQIQ_c-T7gM&amp;guid=ON&amp;script=0',
    'https://755902.r.msn.com/?type=1&cp=1&dedup=1',
    'https://755903.r.msn.com/?type=1&cp=1&dedup=1',
    'https://755904.r.msn.com/?type=1&cp=1&dedup=1',
    'https://755905.r.msn.com/?type=1&cp=1&dedup=1',
    'https://755907.r.msn.com/?type=1&cp=1&dedup=1',
    'https://755909.r.msn.com/?type=1&cp=1&dedup=1',
    'https://755912.r.msn.com/?type=1&cp=1&dedup=1',
    'https://755914.r.msn.com/?type=1&cp=1&dedup=1'
];

/*function showGoogleAdwords() {
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1036314621/?label=c9CNCOmdigEQ_c-T7gM&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1036623118/?label=n0UXCKzqfRCOuqbuAw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1050073483/?label=52BZCNeNbRCLs9v0Aw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1033998639/?label=Qr02CK-7dhCvoobtAw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1036963444/?label=8hOnCMyOfxD0nLvuAw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1035735903/?label=fGyWCIfOgQEQ36bw7QM&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1037263978/?label=8zjLCKqoggEQ6sjN7gM&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1038151687/?label=YCOmCJXaexCH4IPvAw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1049147956/?label=WQIwCPLmfhC09KL0Aw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1036354921/?label=KQewCMWXdxDpipbuAw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1036314261/?label=ra3fCI-digEQlc2T7gM&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1051541295/?label=WAZgCMuMeRCv_rT1Aw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1037246464/?label=H31dCND5axCAwMzuAw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1036627730/?label=GuMRCM7QhQEQkt6m7gM&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1051541205/?label=XbN1CKWNeRDV_bT1Aw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1035746237/?label=jER1CLHvfBC99_DtAw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1052679278/?label=6hLgCPzLcBDuuPr1Aw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1039544930/?label=1eyXCKagdxDi5NjvAw&amp;script=0";
var googleImage = new Image(1, 1);
googleImage.src = "http://www.googleadservices.com/pagead/conversion/1036314621/?label=gq0jCLGoiQIQ_c-T7gM&amp;guid=ON&amp;script=0";
var MSNImage = new Image(1, 1);
MSNImage.src = "https://755902.r.msn.com/?type=1&cp=1&dedup=1";
var MSNImage = new Image(1, 1);
MSNImage.src = "https://755903.r.msn.com/?type=1&cp=1&dedup=1";
var MSNImage = new Image(1, 1);
MSNImage.src = "https://755904.r.msn.com/?type=1&cp=1&dedup=1";
var MSNImage = new Image(1, 1);
MSNImage.src = "https://755905.r.msn.com/?type=1&cp=1&dedup=1";
var MSNImage = new Image(1, 1);
MSNImage.src = "https://755907.r.msn.com/?type=1&cp=1&dedup=1";
var MSNImage = new Image(1, 1);
MSNImage.src = "https://755909.r.msn.com/?type=1&cp=1&dedup=1";
var MSNImage = new Image(1, 1);
MSNImage.src = "https://755912.r.msn.com/?type=1&cp=1&dedup=1";
var MSNImage = new Image(1, 1);
MSNImage.src = "https://755914.r.msn.com/?type=1&cp=1&dedup=1";
}*/

jQuery(function() {
    CitiesXhr.startRequest();
    var cache = {}, lastXhr;
    var iCount = 0;
    var pvsSearch = jQuery.cookie("searchTerm") || '';

    if (pvsSearch.length > 0) {
        jQuery("#search-main").val(pvsSearch);
    }

    jQuery("#search-main")
        .autocomplete({
            minLength: 3,
            delay: 0,
            autoFocus: true,
            select: function(e, ui) {
                jQuery.cookie("searchTerm", ui.item.value, { path: "/" });
            },
            source: function(request, response) {
                if (request.term.length > 0 && cache[request.term]) {
                    if (cache[request.term].length > 0) {
                        response(cache[request.term]);
                        return;
                    }
                }

                jQuery.post('/getcities.ashx', { input: request.term }, function(e) {
                    var results = jQuery.parseJSON(e).Utility.Cities;

                    jQuery(results).each(function(item) {
                        results[item] = {
                            value: results[item],
                            label: results[item]
                        };
                    });

                    cache[request.term] = results;
                    response(cache[request.term]);
                });
            }

        })
        .data("autocomplete")._renderItem = function(ul, item) {
            iCount++
            var searchTerm = jQuery("#search-main").val();
            searchTerm = searchTerm.charAt(0).toUpperCase() + searchTerm.slice(1);
            var hideClass
            if (iCount > 10) {
                hideClass = '';
            }
            else {
                hideClass = '';
            }
            return jQuery('<li class="' + hideClass + '"></li>')
                    .data("item.autocomplete", item)
                    .append('<a value="' + item.value + '">' + item.label.replace(searchTerm, '<strong>' + searchTerm + '</strong>') + '</a>')
                    .appendTo(ul);
        };


    if (jQuery('#options-mls-checkbox').val() == '1')
        jQuery('#check-mls-checkbox').removeClass('unchecked').addClass('checked'); ;
});


