301 status code means that the requested resource has been permanently moved to a new URL. All future requests should use the new address.
The browser will automatically redirect the user to the new address, and search engines will update their indexes.
200 status code is a standard successful HTTP server response. It means that the client’s request (e.g., from a browser) was successfully processed, and the server is delivering the requested data.
The user receives content without errors, and the page or application functions properly. If Code 200 is accompanied by data, the browser or program processes and displays it to the user.
GET / HTTP/1.1 Host: mmha.com Accept: */* User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
<!DOCTYPE html> <html lang="en-US"> <head id="Head"><meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> <meta name="REVISIT-AFTER" content="1 DAYS" /> <meta name="RATING" content="GENERAL" /> <meta name="RESOURCE-TYPE" content="DOCUMENT" /> <meta content="text/javascript" http-equiv="Content-Script-Type" /> <meta content="text/css" http-equiv="Content-Style-Type" /> <link rel="icon" href="/Portals/15/1562677461.ico" type="image/x-icon"/> <title> Minnesota Multi Housing Association > Home </title><meta id="MetaRobots" name="ROBOTS" content="INDEX, FOLLOW" /><link href="/Resources/Shared/stylesheets/dnndefault/7.0.0/default.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/includes/Bootstrap/bootstrap-3.3.7/css/bootstrap.min.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/includes/FontAwesome/css/all.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/includes/FontAwesome/css/brands.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/includes/FontAwesome/css/duotone.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/includes/FontAwesome/css/fontawesome.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/includes/FontAwesome/css/light.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/includes/FontAwesome/css/regular.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/includes/FontAwesome/css/solid.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/includes/FontAwesome/css/v4-shims.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/MenuNavigation/main-nav.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/skin.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/DesktopModules/EasyDNNNews/Templates/_default/Triumph/Triumph.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/containers/mha-2024/container.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/portal.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/MHA-Hero.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/Portals/15/skins/mha-2024/NOAH/ToolTip.NOAH.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/DesktopModules/EasyDNNRotator/flowplayer/skin/minimalist.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/DesktopModules/DnnCorp/ContentLayout/Css/bootstrap.min.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/DesktopModules/EasyDNNRotator/controls/chameleonrotator/static/common/base.css?cdv=1142" type="text/css" rel="stylesheet"/><link href="/DesktopModules/EasyDNNRotator/controls/chameleonrotator/static/themes/sirius/sirius.css?cdv=1142" type="text/css" rel="stylesheet"/><script src="/DesktopModules/EasyDNNRotator/static/eds_jquery/eds_jq.js?cdv=1142" type="text/javascript"></script><script src="/Resources/libraries/jQuery/03_05_01/jquery.js?cdv=1142" type="text/javascript"></script><script src="/Resources/libraries/jQuery-Migrate/03_02_00/jquery-migrate.js?cdv=1142" type="text/javascript"></script><script src="/Resources/libraries/jQuery-UI/01_12_01/jquery-ui.js?cdv=1142" type="text/javascript"></script> <!-- ADDED SCRIPTS REQUIRED FOR NOAH --> <script src="/DesktopModules/NOAH_Common/js/NOAH.js"></script> <link rel='SHORTCUT ICON' href='/Portals/15/favicon.ico?ver=bgg3Yz1fvw-btma7GBaY4A%3d%3d' type='image/x-icon' /><meta name="viewport" content="width=device-width, initial-scale=1" /><meta name="viewportios" content="initial-scale=1, viewport-fit=cover" /><!--[if IE 8]><script src='/DesktopModules/DnnCorp/ContentLayout/ClientScripts/respond.min.js'></script><![endif]--><link href="/WebResource.axd?d=QKX1AO1vX8cfuC7Zck0j5AuaNQoeBO3Fnh3xtnhdSFKz46ImYSwXpS5M2c4VAA66Wrg2RsNCVmg1Bb5x742JK4PaAvpa8yrlfVoPVg2&t=636667585900000000" type="text/css" rel="stylesheet" class="Telerik_stylesheet" /></head> <body id="Body"> <form name="Form" method="post" action="/" id="Form" enctype="multipart/form-data"> <div> <input type="hidden" name="RadStyleSheetManager_TSSM" id="RadStyleSheetManager_TSSM" value="" /> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="5KZa5Nqxvjq8H1/HryrJmPmTBqQEdJh1kvoPoU+5Vu3z5RgBbWih4HX7BFIHdbEViFHe9LmB263x+05ZGmRvwkojx4b1vI4DAFLGPPFh2+jsStDO/WUnj8Mq4vQgGwcVItAxS4vNRFxgcvUTS++9D2bCmYfveD0X+0/ZdOLR5MqiTW6FJx5WdT87fAB1CP11lg4wWLQpNv5iwzdBO220aK9bBVV/njnloEDa/Z8c0RC7p9g3tbgXcNJuOw4cnJFBY+zHihUQoBy6znVkMB49AI9fwuBvnlt1DmzhY6t1WwIYxyXJSJdmGciLvBrGHwfF479ZN5h6+8baDQesqCl7tTGkhbZ0jHwWHd62M4nqeOTCWvnHoaDVMdjm/2IeLYIcuQrdB990h98Xds90ADSAELP3hhgSt6rqeBND0TmFLToY8+ZEO/TnisCxOaSEPWVZiIBB5gGUmnxWPWPNWqpOGsJlu/Cmo5OtJY3V1UYRdMKkWRFeWqaK3/Cms/O8G+PRWvzq95awubkbvvSIGd00ckxaMo+jt512cKyz9B8zTuksPIP56OtCbX6M8ZDSgE7tXedKNCrhuiZmfUEhHfo4I3cUVXoabRT1dw736l+owAyrpuUCDyQ4GpyQtkaCb4siIG+Lc8ucaukA2dpNeKnVyHrv/cFg7PA2gJ+Kx5jnj6W3oPmSyVGZc6YRbVZe6xCciX3ZO9UGPwCoG9bdboyPDd1idGKocZlvulPrdCjRNc8JeKp8gUAoLd8JODB2wUTSI167Tyvg2oaUYyAw0lEzqCe/BE32r8BfFV7IXR6j3RCp5K6fRCDPlj+9k+pfndy/iahql9AdBdys7fQwKJBsrGOptLcIR6qt9mM31sF889Op02x0XmmzhItT2RQksNZzzClz3G58ZrycN5ppdY8eBzMpiQPwZbza+aOH6Q==" /> </div> <script type="text/javascript"> //<![CDATA[ var theForm = document.forms['Form']; if (!theForm) { theForm = document.Form; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script> <script src="/WebResource.axd?d=pynGkmcFUV3FHYAS80eIZ2pqHJcXnJb1oBUkHFCZYilMl0ju8rsizXf8Ovw1&t=638563128220000000" type="text/javascript"></script> <script type="text/javascript">if (!(window.jsMainNav)) document.write(unescape('%3Cscript src="/Portals/15/skins/mha-2024/MenuNavigation/main-nav.js" type="text/javascript"%3E%3C/script%3E'));</script> <script src="//apis.google.com/js/plusone.js" type="text/javascript"></script> <script src="/ScriptResource.axd?d=uHIkleVeDJfw1PP2mA7bHjYkFwSw_YFWktWhyEf8DkFebCSbPWXZrPUJ9TDVLDHryavtrESnK7MxH9NTB6f43KWGRsaBwqJjbkXVX31hZWVUU4HkQMtqWMY-GOfM-W4IIj5DlQ2&t=ffffffffc820c398" type="text/javascript"></script> <script src="/ScriptResource.axd?d=Jw6tUGWnA17KAmTggVwz1K_PdXF2RYUXSYDna54YFlI10t1WRG7-WGxP0HiZmgKrugfDZahjc8FDo_uhnQF-rTzsMH15cTxXQxBorQBalo8sSNG_KHvBY1pKgVY4_lHA6h63QRxEFmi53kLK0&t=ffffffffc820c398" type="text/javascript"></script> <script src="/ScriptResource.axd?d=8u3ngCqoRB0KzaHgxOA0u5-q3HDZ_P5KksW78DPZgi_hw6F-beNcy9ZvUJH4yfDmn0GNBFOBGgkEeNMfLkI5Nr9vURRGDHc9MqXBZg2&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=fgH2o6PXbcTumMj0TTJvKtvxJtA6NIc_QWEmAAA_Qv-YSEYL17nmKkm39uBVagSTGOKpazi91uoGxVm5F9SxVuqH1l55QX86bbY-AA2&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=Taq5viT0lCpxcnAr6mDZHc2pSgUihIuvfhuGSmWHul8Wxz1jwnL0ow-c08OPw9kakAIb3bkoaM5OWLvKBenNoJLpql1W_BI_kFdcmHdc34d5QiMmSBeJR-02lIA1&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=pL5wgiwL1Gr2lmS2N8LsIaa4WjfMVPmfWxEqnSaE5Z3FSTJa1bVOEsXbVS0RtRfWo0Ac8dxIZC-wt5mye0lof_mlaPQYQ5pWoyqTHKXJFVBN9WiY0&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=dnHi0nMgDDcNT7Kwm46s7-HxNlpgmWkMON_nDfANfVUJpHtt39hYXAzxZ8DbqtpLLh6ISmFsdADI1v4UdCel9vFUyNkfn5sDIXYnlFPqwiVUmM7c0&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=U8OMYmPzb2K7P_0yQYRKV_ey0Jmr7vNi8V-auhHQsY6siHnkGpWq4Joad4AofaMNlLH4D7zJNKE7e7U3itEM9lxfk_nirTWpErmKvIPGkbYPBb-ZMR9hdRmTTyGNaOpVr2FAdF3l08ggd8rp0&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=6q2f3O5KC8x2XKmAzV9zGhbyzPg5lw619fSAPPEh53L4oxretO-fK-QuvjMmqsM--ED90dUwjuRiqXaH6DYPXeAIz0HwAr2d5hk1EIZTi4eUSM25CNBD_TCINSesF93meOP45A2&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=p7uNRdaoc4_OzZ_kkmT59d2kik1ErBpvVz2aCpST2AO1juWNYHLT8xWRBEZBHL_07uoxd27cGLLXTr2I4G8Vfn8pI0SlT4qWOx5qHRbGrH5HRut7QDLjtW3pozNnbk0IQtROjg2&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=DnBhZK7c8H9-DUP8JAX_zGcRZOxUNqb7B7MX5HJZRls5rZWeeKMQQWAFYGcjFn8IwuUOih_gv5mE8NPLKYGzpG1vpvAv8n_0r3x_tCbkLQETiwkT7bNnQMRsusY1&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=PVwahu2UCS7al7ZtkgyPG0S6ZgDl8nj8-Jzs_vxcpiYmoApI2ydvw1TayCNGO_quAS34hCLrRqVu7KTXThJWKZbbgvePpED_CghN1GZvdA-oPWK206CY3xFz30g1&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=kJlKp4-GwOUW8WjoM89X9eisR9n2dMJYWgkoMhWRGJIMk43FM_YmR-whB-RdTBuT7Ni5YPLk_YTmpL1IIGPWO-kSpRQ3BPypQoSIQJ1c5hpasYNFYC_hgXpa_x0veyJsjo2fe0Ei6-ta25Q_SmgKeDIb16s1&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=oTWEP7ThC1xcuDwbqilCfKi1MFabpJ5THUqwn2WZUr1ganHemIY3x3-VWxRCfZHr_UX7MaZGAGIPUAqSuxOn5OqkyuR-8OqG6yoVC9SbmSWWWi1PPInDiIG0RRjhHWh81lax1MRTLXJYJbex0&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=KlfC4ae2T75Z9egEPZK9wz1x96zosVmUejObwJl_iiAxcjFiCoTdMDIGBF6k5W881WERZvuSjdDcjJANLLZyaigdRpvDxsaODN--nYTCABUSXIFiJRAjP6_4FW01&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=ZhcY_FEp20ah9MAit4qu75C5dUD5aEYcBH_mBxA1jLFxGfXFhadiOAcjsruLmG8lr5EVoQNpSBZj0dQdZxM1uwgr9SzfMQ1SiLAzvbrCGLdwIvv-tpX_-aycqFk1&t=fffffffff298d47a" type="text/javascript"></script> <script src="/ScriptResource.axd?d=46ZO5QrHUJEWuJHGgCoG_0MRMubtB_DjjvWdcTtU5N4STWsvw4q62KCcab2fqLskUToXsHlH-GP14_QAub5gd7c23G7xCUeOm2WKEvCEB0cNbAX5y0byaRGGazI1&t=fffffffff298d47a" type="text/javascript"></script> <div> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="CA0B0334" /> <input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" /> </div><script src="/Portals/15/skins/mha-2024/../../../../NOAH/scripts/Includes/NOAH.Include.Config.js?cdv=1142" type="text/javascript"></script><script src="/Portals/15/skins/mha-2024/../../../../NOAH/scripts/Includes/NOAH.Include.js?cdv=1142" type="text/javascript"></script><script src="/js/dnn.js?cdv=1142" type="text/javascript"></script><script src="/js/dnn.modalpopup.js?cdv=1142" type="text/javascript"></script><script src="/Portals/15/skins/mha-2024/includes/Bootstrap/bootstrap-3.3.7/js/bootstrap.min.js?cdv=1142" type="text/javascript"></script><script src="/js/dnncore.js?cdv=1142" type="text/javascript"></script><script src="/js/dnn.servicesframework.js?cdv=1142" type="text/javascript"></script><script src="/DesktopModules/EasyDNNRotator/js/jquery.mousewheel.min.js?cdv=1142" type="text/javascript"></script><script src="/DesktopModules/EasyDNNNews/static/qtip/jquery.qtip_2.2.min.js?cdv=1142" type="text/javascript"></script><script src="/DesktopModules/EasyDNNRotator/controls/chameleonrotator/static/js/eds2_2.tinyscrollbar.min.js?cdv=1142" type="text/javascript"></script><script src="/DesktopModules/EasyDNNRotator/flowplayer/flowplayer_2.2.min.js?cdv=1142" type="text/javascript"></script><script src="/DesktopModules/EasyDNNRotator/controls/chameleonrotator/static/js/eds2_2.chameleonSlider_2.1.min.js?cdv=1142" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ Sys.WebForms.PageRequestManager._initialize('ScriptManager', 'Form', ['tdnn$ShoppingCart$upnlShoppingCart','dnn_ShoppingCart_upnlShoppingCart','tdnn$ctr139369$ViewEasyDNNNewsCalendar$upCalendar','dnn_ctr139369_ViewEasyDNNNewsCalendar_upCalendar','tRadAjaxManagerSU','RadAjaxManagerSU'], [], [], 600, ''); //]]> </script> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/Bootstrap/bootstrap-3.3.7/css/bootstrap.min.css?cdv=1142|DnnPageHeaderProvider|12)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/all.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/brands.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/duotone.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/fontawesome.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/light.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/regular.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/solid.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/v4-shims.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Javascript|/Portals/15/skins/mha-2024/includes/Bootstrap/bootstrap-3.3.7/js/bootstrap.min.js?cdv=1142|DnnBodyProvider|100)--> <div class="hidden"> <!--CDF(Javascript|/Portals/15/skins/mha-2024/../../../../NOAH/scripts/Includes/NOAH.Include.Config.js?cdv=1142|DnnBodyProvider|1)--> <script> try { versioning.reportVersion({ major: 1, minor: 0, revision: 9, system: 30, iteration: 1, year: 2024, name: 'Home.ascx', requires: ['NOAH.Include.Config.js', 'NOAH.Include.js', 'custom.js'], comments: [''] }); } catch (ex) { console.log(ex.message); } try { performIncludeFiles = false; } catch (ex) { console.log(ex.message); } </script> <!--CDF(Javascript|/Portals/15/skins/mha-2024/../../../../NOAH/scripts/Includes/NOAH.Include.js?cdv=1142|DnnBodyProvider|2)--> <script> try { performIncludeCSSFiles = false; //loads a standard skin css from the NOAH folder This can never be set to True. performIncludeJQueryCSSFiles = true; performIncludeBootstrapCSSFiles = true; performIncludeStandardFontsFiles = true; performIncludeStandardSkinJSFiles = true; // Loads FA js files performIncludeJQueryUICSSFiles = true; performIncludePluginCSSFiles = true; performIncludeDFBCSSFiles = true; performIncludeJQueryFiles = true; performIncludeBootstrapFiles = true; performIncludePluginFiles = true; performIncludeStandardFiles = true; performIncludeDFBJSFiles = true; performIncludeFiles = true; loadFiles(); } catch (ex) { console.log(ex.message); } </script> <script> try { window.FontAwesomeConfig = { autoReplaceSvg: false }; } catch (ex) { console.log(ex.message); } </script> <!--===== Meta =====--> <!--===== Basic Menu Navigation =====--> <!--CDF(Css|/Portals/15/skins/mha-2024/MenuNavigation/main-nav.css?cdv=1142|DnnPageHeaderProvider|14)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/Bootstrap/bootstrap-3.3.7/css/bootstrap.min.css?cdv=1142|DnnPageHeaderProvider|12)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/all.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/brands.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/duotone.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/fontawesome.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/light.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/regular.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/solid.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Css|/Portals/15/skins/mha-2024/includes/FontAwesome/css/v4-shims.css?cdv=1142|DnnPageHeaderProvider|13)--> <!--CDF(Javascript|/Portals/15/skins/mha-2024/includes/Bootstrap/bootstrap-3.3.7/js/bootstrap.min.js?cdv=1142|DnnBodyProvider|100)--> <div id="dnn_pbArtificalContainer" class="hidden"> <input name="dnn$pbArtificalData" type="hidden" id="dnn_pbArtificalData" /> <input name="dnn$btnArtificialPostback" type="button" id="dnn_btnArtificialPostback" /> </div> <input name="dnn$hfSessionData" type="hidden" id="dnn_hfSessionData" /> <script> function showHiddenData() { try { $('[id*=divGenericDataWrapper]').removeClass('hidden').css('display', '').show() $('[id*=divGenericDataWrapper] input').attr('type', 'text') } catch(ex) { console.log(ex.message); } } // SHOW ALL HIDDEN AREAS $('[id*=divGenericDataWrapper]').removeClass('hidden').css('display', '').show() function getHiddenData(id, searchid) { var result = ''; try { var control = $('[id*=divGenericDataWrapper]').find('[id*=' + id + '][searchid=' + searchid + ']'); if (control) { result = control.val(); } } catch (ex) { console.log("getHiddenData() " + ex.message); } return result; } function setHiddenData(id, searchid, value) { try { var control = $('[id*=divGenericDataWrapper]').find('[id*=' + id + '][searchid=' + searchid + ']'); if (control) { control.val(value); } } catch (ex) { console.log("setHiddenData() " + ex.message); } } </script> <div id="dnn_GenericData_divGenericDataWrapper" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 hidden"> <div class="Hidden-Field-Row col-lg-12 col-md-12 col-sm-12 col-xs-12"><div class="FormLabelCol col-lg-4 col-md-4 col-sm-12 col-xs-12"><label for="CurrentContactID" class="FormLabel col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN">Current Contact ID</label></div><div class="FormControlCol col-lg-8 col-md-8 col-sm-12 col-xs-12"><input name="dnn$GenericData$CurrentContactID" type="hidden" id="dnn_GenericData_CurrentContactID" value="-1" class="FormControl col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN" searchid="Standard" /></div></div><div class="Hidden-Field-Row col-lg-12 col-md-12 col-sm-12 col-xs-12"><div class="FormLabelCol col-lg-4 col-md-4 col-sm-12 col-xs-12"><label for="LoginContactID" class="FormLabel col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN">Login Contact ID</label></div><div class="FormControlCol col-lg-8 col-md-8 col-sm-12 col-xs-12"><input name="dnn$GenericData$LoginContactID" type="hidden" id="dnn_GenericData_LoginContactID" value="-1" class="FormControl col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN" searchid="Standard" /></div></div><div class="Hidden-Field-Row col-lg-12 col-md-12 col-sm-12 col-xs-12"><div class="FormLabelCol col-lg-4 col-md-4 col-sm-12 col-xs-12"><label for="DNNID" class="FormLabel col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN">DNN Id</label></div><div class="FormControlCol col-lg-8 col-md-8 col-sm-12 col-xs-12"><input name="dnn$GenericData$DNNID" type="hidden" id="dnn_GenericData_DNNID" value="-1" class="FormControl col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN" searchid="Standard" /></div></div><div class="Hidden-Field-Row col-lg-12 col-md-12 col-sm-12 col-xs-12"><div class="FormLabelCol col-lg-4 col-md-4 col-sm-12 col-xs-12"><label for="Database" class="FormLabel col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN">Database</label></div><div class="FormControlCol col-lg-8 col-md-8 col-sm-12 col-xs-12"><input name="dnn$GenericData$Database" type="hidden" id="dnn_GenericData_Database" value="MHA" class="FormControl col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN" searchid="Standard" /></div></div></div> <div id="ajaxWrapper" class="ajax-form-wrapper"> <script> // DEVELOPERS: PLEASE REMEMBER TO CHANGE THE VERSIONING PRIOR TO PUBLISH! IT IS VERY IMPORTANT WE KNOW THE VERSIONS OF JAVASCRIPT FILES ON LIVE! //Version nomenclature // Major (If a major revision is made that changes the functionality) // Minor (If a minor revision is made that requires backwards compatability) // Revision (Month of the year of the change) // System (Day of the Month of the change) // Iteration (Number of iterations in the same day of changes) // Year (Year of the change) // // Name is the name of the file // Requires is an array of names that represent files the current file needs, right now only used for JavaScripts. try { versioning.reportVersion({ major: 1, minor: 0, revision: 2, system: 14, iteration: 1, year: 2019, name: 'Ajaxify.ascx', requires: [] }); } catch (ex) { console.log(ex.message); } try { // REQUIRED FOR AJAX CALLS var myAjaxDomain = '/'; // CURRENT DOMAIN var myAjaxDomainWithRequest = '/DesktopModules/NOAH_Common/WebServices/GenericAJAX/CallFunctionRequestData'; // CURRENT DOMAIN var myAjaxFunctionToCall = 'CallFunction'; var myAjaxDBName = 'MHA'; // CURRENT DATABASE TO USE (USUALLY ACCOUNT COMPANY) var myContactID = -2147483648; // CURRENT CONTACT TO USE OR RUN AGAINST var myAjaxSecurityKeys = ''; // SECURITY KEYS FOR THIS SESSION var myAjaxServiceURL = '//www.mmha.com/DesktopModules/NOAH_Common/WebServices/GenericAjax.asmx'; // THE URL OF THE WEBSERVICE var myLogUser = 'Not Set1'; var myLogURL = ''; } catch (ex) { console.log("Ajaxify() " + ex.message); } function getQueryStringData() { var result = {}; try { var pairs = location.search.slice(1).split('&'); var result = {}; pairs.forEach(function (pair) { pair = pair.split('='); result[pair[0]] = decodeURIComponent(pair[1] || ''); }); result = JSON.parse(JSON.stringify(result)); } catch (ex) { console.log(ex.message); result = ''; } return result; } function getDataType(overrideDataType) { var result = 'xml'; try { var stringConstructor = "test".constructor; var arrayConstructor = [].constructor; var objectConstructor = {}.constructor; if (getQueryStringData().constructor == objectConstructor) // IS JSON { result = 'json'; } if (overrideDataType != null && overrideDataType != undefined && overrideDataType.trim() != '') { result = overrideDataType; } } catch (ex) { console.log(ex.message); } return result; } //***************************************************************************************************** // AJAX SUPPORT //***************************************************************************************************** function soapMessageHandler(valuesToUse, objectToWorkOn) { var result = ''; try { //debugger; // MAKE SURE WE CALL THE RIGHT FUNCTION (MUST BE CORRECT SERVICE, FUNCTION AND THE FUNCTION MUST ONLY HAVE A SINGLE STRING PARAMETER THAT IS JSON.STRINGIFIED objectToWorkOn.soapMessage = objectToWorkOn.soapMessage.replace(/\{ajaxDomainWithRequest}/g, valuesToUse.ajaxDomainServiceWithRequest); objectToWorkOn.soapMessage = objectToWorkOn.soapMessage.replace(/\{ajaxFunctionToCall}/g, valuesToUse.ajaxFunctionToCall); objectToWorkOn.soapMessage = objectToWorkOn.soapMessage.replace(/\{ajaxFunctionParameterName}/g, valuesToUse.ajaxFunctionToCallJSONParameterName); objectToWorkOn.soapMessage = objectToWorkOn.soapMessage.replace(/\{ajaxFunctionParameters}/g, valuesToUse.ajaxFunctionParameters); // console.log(objectToWorkOn.soapMessage); result = objectToWorkOn.soapMessage; } catch (ex) { console.log("soapMessageHandler() " + ex.message); } return result; } // DEFAULTS OVERRIDE THROUGH THE $.extend METHOD OF OPTIONS BEING PASSED IN function createGenericAjaxObject(options) { var result = null; try { var _default = { doAjaxCall: true, ajaxDomainService: myAjaxDomain, ajaxDomainServiceWithRequest: myAjaxDomainWithRequest, ajaxFunctionToCall: myAjaxFunctionToCall, ajaxFunctionToCallJSONParameterName: '<optionsAsJSON>{ajaxFunctionParameters}</optionsAsJSON>', ajaxFunctionParameters: '', ajaxSettings: { type: 'POST', // DEFAULTS OVERRIDE THROUGH THE $.extend METHOD OF OPTIONS BEING PASSED IN url: myAjaxServiceURL, // DEFAULTS OVERRIDE THROUGH THE $.extend METHOD OF OPTIONS BEING PASSED IN dataType: 'xml', // DEFAULTS OVERRIDE THROUGH THE $.extend METHOD OF OPTIONS BEING PASSED IN data: null, // DEFAULTS OVERRIDE THROUGH THE $.extend METHOD OF OPTIONS BEING PASSED IN contentType: 'text/xml; charset=utf-8', // DEFAULTS OVERRIDE THROUGH THE $.extend METHOD OF OPTIONS BEING PASSED IN soapMessage: '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \ xmlns:xsd="http://www.w3.org/2001/XMLSchema" \ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> \ <soap:Body> \ <{ajaxFunctionToCall} xmlns="{ajaxDomainWithRequest}"> \ {ajaxFunctionParameterName} \ </{ajaxFunctionToCall} > \ </soap:Body> \ </soap:Envelope>', // DEFAULTS OVERRIDE THROUGH THE $.extend METHOD OF OPTIONS BEING PASSED IN init: function (options) { try { // PLACE HOLDER this.data = soapMessageHandler(_default, _default.ajaxSettings); console.log('Generic initialized data object.'); } catch (ex) { console.log(ex.message); } }, onSuccess: function (result) { try { // PLACE HOLDER // console.log("Success Results --> " + JSON.stringify(result)); } catch (ex) { console.log(ex.message); } }, // DEFAULTS OVERRIDE THROUGH THE $.extend METHOD OF OPTIONS BEING PASSED IN onError: function (result) { try { // PLACE HOLDER // console.log("Error Results --> " + JSON.stringify(result)); } catch (ex) { console.log(ex.message); } }, // DEFAULTS OVERRIDE THROUGH THE $.extend METHOD OF OPTIONS BEING PASSED IN isValidAjaxObject: function () { var result = false; try { var currentResult = false; if (this.type.trim() != '') { currentResult = true; } else { currentResult = false; } if (currentResult) { if (this.url.trim() != '') { currentResult = true; } else { currentResult = false; } } if (currentResult) { if (this.contentType.trim() != '') { currentResult = true; } else { currentResult = false; } } if (currentResult) { if (this.dataType.trim() != '') { currentResult = true; } else { currentResult = false; } } result = currentResult; } catch (ex) { console.log(ex.message); } return result } // DEFAULTS OVERRIDE THROUGH THE $.extend METHOD OF OPTIONS BEING PASSED IN } }; if (options == null || options == undefined || options == 'undefined') { options = {}; } try { options.data = JSON.stringify(getQueryStringData()); } catch (ex) { } options.dataType = getDataType(); if (options.dataType.toString().trim().toLowerCase() == 'json') { options.contentType = "application/json"; } var result = $.extend(true, _default, options); // EXTEND THE _DEFAULTS TO USE THE OPTIONS I SENT // console.log('createCallAjaxOptions() ---------------> ' + JSON.stringify(result)); } catch (ex) { console.log("createCallAjaxOptions() " + ex.message); } return result; } function createCallFunctionParameters() { var result = { options: { ForContactId: -2147483648, DBName: 'MHA', Key: '' }, ObjectToUse: '', FunctionToUse: '', FunctionParametersToUse: '', stringify: function (options) { var result = ''; try { var _default = this; var settings = $.extend(true, _default, options); settings.options = JSON.stringify(settings.options); result = JSON.stringify(settings); } catch (ex) { console.log("createJSON() " + ex.message); } return result; } }; try { // DO OTHER STUFF HERE } catch (ex) { console.log("createJSON() " + ex.message); } return result; } $(document).ajaxStart(function () { try { window.setTimeout(function () { $('[id*=rootVariables]').html('<style>:root{ --Border-Color: red; }</style>'); $($('input')[0]).ajaxActionCall({ action: ajaxActions.request }); }, 250); } catch (ex) { console.log(ex.message); } }); $(document).ajaxSend(function () { try { window.setTimeout(function () { $('[id*=rootVariables]').html('<style>:root{ --Border-Color: yellow; }</style>'); $($('input')[0]).ajaxActionCall({ action: ajaxActions.waiting }); }, 500); } catch (ex) { console.log(ex.message); } }); $(document).ajaxStop(function () { try { window.setTimeout(function () { $('[id*=rootVariables]').html('<style>:root{ --Border-Color: #000; }</style>'); $($('input')[0]).ajaxActionCall({ action: ajaxActions.response }); }, 500); } catch (ex) { console.log(ex.message); } }); $(document).ajaxComplete(function () { try { window.setTimeout(function () { $('[id*=rootVariables]').html('<style>:root{ --Border-Color: green; }</style>'); $($('input')[0]).ajaxActionCall({ action: ajaxActions.processing }); }, 500); window.setTimeout(function () { $('.ajax-area').hide(); $('.ajax-top-scroll').removeClass('ajax-Border-Request'); $('.ajax-right-scroll').removeClass('ajax-Border-Waiting'); $('.ajax-bottom-scroll').removeClass('ajax-Border-Response'); $('.ajax-left-scroll').removeClass('ajax-Border-Processing'); $('.ajax-area').removeClass('ajax-area-side'); }, 1500); } catch (ex) { console.log(ex.message); } }); $.fn.callAjax = function (options) { try { //debugger; var _default = createGenericAjaxObject(); _default.ajaxSettings.success = function (data, status, jqXHR) { try { this.onSuccess(data, status, jqXHR); } catch (ex) { console.log("SUCCESS -> ajaxSettings.onSuccess() " + ex.message); } }; _default.ajaxSettings.error = function (data, status, jqXHR) { try { this.onError(data, status, jqXHR); } catch (ex) { console.log("ERROR -> ajaxSettings.onError() " + ex.message); } }; var settings = $.extend(true, _default, options); // EXTEND THE _DEFAULTS TO USE THE OPTIONS I SENT if (settings.ajaxSettings.isValidAjaxObject()) { if (settings.doAjaxCall) { $.ajax(settings.ajaxSettings); } } } catch (ex) { console.log("$.fn.callAjax() " + ex.message); } return settings; } //***************************************************************************************************** // END AJAX SUPPORT //***************************************************************************************************** //MAIN FUNCTION - CHECK STATUS OF THE QUEUE function callAjax(options) { try { var ajaxOptionsTemplate = createCallFunctionParameters(); var _default = { doAjaxCall: true, ajaxFunctionParameters: ajaxOptionsTemplate.stringify(), // DEFAULT TEMPLATE ajaxSettings: { success: function (data, status, jqXHR) { try { ajaxSettings.onSuccess(data, status, jqXHR); } catch (ex) { console.log("SUCCESS -> ajaxSettings.onSuccess() " + ex.message); } }, error: function (data, status, jqXHR) { try { ajaxSettings.onError(data, status, jqXHR); } catch (ex) { console.log("ERROR -> ajaxSettings.onError() " + ex.message); } }, } }; if (options == null || options == undefined || options == 'undefined') { options = {}; } options.data = JSON.stringify(getQueryStringData()); options.dataType = getDataType(); if (options.dataType.toString().trim().toLowerCase() == 'json') { options.contentType = "application/json"; } var settings = $.extend(true, _default, options); // console.log('callAjax() ---------------> ' + JSON.stringify(settings)); try { $(this).callAjax(settings); } catch (ex) { console.log(ex.message); } } catch (ex) { console.log("callAjax() " + ex.message); } } //// --------------- //// EXAMPLE USAGE //// --------------- //// CREATE YOUR AJAX SETTINGS TO PASS // var obj = createGenericAjaxObject(); // //// SET YOUR VARIABLES AND CALLERS // var myCallObject = createCallFunctionParameters() //// SET MY PARAMETERS // myCallObject.options.DBName = 'MHA'; // myCallObject.options.Key = ''; // myCallObject.options.ForContactId = -2147483648; // // myCallObject.ObjectToUse = 'NOAH_Utilities.class_Utilities, App_Code.birxo6gd, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'; // OBJECT TO USE MUST USE THE FULLY QUALIFIED PATH OF THE OBJECT // myCallObject.FunctionToUse = "IsNull"; // FUNCTION NAME IN THE ABOVE OBJECT TO CALL // myCallObject.FunctionParametersToUse = JSON.stringify({Value: 123, NullReplaceValue: null}); // PARAMETERS TO PASS TO THAT FUNCTION WHEN IT'S CALLED // // obj.ajaxFunctionParameters = myCallObject.stringify(); // SET THE CALLFUNCTION PARAMETERS AS A STRING OBJECT LIKE JSON // obj.ajaxSettings.success = function () { alert('my success'); } // obj.ajaxSettings.error = function () { alert('my error'); } // //// INITIALIZE THE OBJECT // obj.ajaxSettings.init(); //// CALL IT WITH AJAX // callAjax(obj); </script> <!-- AJAX MODAL --> <style> :root { --Border-Size: 0; --Border-Color: #555; --Border-Radius: 0; --Top-Border-Color: var(--Border-Color); --Left-Border-Color: var(--Border-Color); --Bottom-Border-Color: var(--Border-Color); --Right-Border-Color: var(--Border-Color); --Transition-Time: .25s; } .ajax-area { position: absolute; top: -5%; left: -5%; width: 110%; height: 110%; border: 1px solid #fff; z-index: 9999; display: block; overflow: hidden; box-sizing: border-box; box-shadow: 0px 0px 0px #555; opacity: .3; } .ajax-area-side { position: fixed !important; border: 1px solid #fff; z-index: 9999; display: block; overflow: hidden; box-sizing: border-box; box-shadow: 0px 0px 0px #555; opacity: .3; width: 5em !important; right: 0 !important; top: 50% !important; background-color: #555 !important; height: 8em !important; } .ajax-modal { position: relative; width: 100%; height: 100%; z-index: 9998; background-color: #fff; opacity: .5; display: block; box-sizing: border-box; } .ajax-content { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 9997; color: #FFF; display: block; box-sizing: border-box; text-align: center; overflow: hidden; z-index: 9999; } .ajax-Border-Transitions { -webkit-transition: width var(--Transition-Time), height var(--Transition-Time), margin var(--Transition-Time); /* For Safari 3.1 to 6.0 */ transition: width var(--Transition-Time), height var(--Transition-Time), margin var(--Transition-Time); } .ajax-Border-Request { border-top: var(--Border-Size) solid var(--Top-Border-Color); width: 100% !important; } .ajax-Border-Waiting { border-right: var(--Border-Size) solid var(--Right-Border-Color); height: 100% !important; /*margin-top: 0 !important;*/ } .ajax-Border-Response { border-bottom: var(--Border-Size) solid var(--Bottom-Border-Color); left: 0 !important; } .ajax-Border-Processing { border-left: var(--Border-Size) solid var(--Left-Border-Color); top: 0 !important; /*height: 100% !important;*/ } .ajax-top-scroll, .ajax-middle, .ajax-bottom-scroll { clear: both; width: 100%; float: left; height: var(--Border-Size); position: absolute; top: 0; border-radius: var(--Border-Radius); height: 100%; width: 100%; } .ajax-top-scroll { /*height: var(--Border-Size);*/ box-sizing: border-box; } .ajax-bottom-scroll { position: relative; float: right; box-sizing: border-box; /*width: 100%;*/ left: 100%; } .ajax-middle { /*height: calc(100% - (var(--Border-Size) * 2)) !important;*/ width: 100%; } .ajax-left-scroll { float: left; width: var(--Border-Size); height: 100%; display: inline-block; box-sizing: border-box; top: 100%; position: absolute; border-radius: var(--Border-Radius); height: 100%; width: 100%; left: 0; } .ajax-right-scroll { float: left; width: var(--Border-Size); display: inline-block; height: 1px; box-sizing: border-box; margin-top: 0%; position: absolute; border-radius: var(--Border-Radius); height: 100%; width: 100%; left: 0; } .ajax-data { float: left; width: 100%; /*width: calc(100% - (var(--Border-Size) * 2));*/ height: 100%; box-sizing: border-box; display: flex; justify-content: center; align-items: center; color: #000; } </style> <script> try { var ajaxActions = { none: 0, request: 1, waiting: 2, response: 3, processing: 4 }; var workingAjaxArea = $('.ajax-content'); var ajaxCaptionText = ''; function doAll(time) { try { if (!time) { time = 250; } var element = $($('input')[0]); element.ajaxActionCall({ action: ajaxActions.request }); window.setTimeout(function () { element.ajaxActionCall({ action: ajaxActions.waiting }); window.setTimeout(function () { element.ajaxActionCall({ action: ajaxActions.response }); window.setTimeout(function () { element.ajaxActionCall({ action: ajaxActions.processing }); // CLEAN UP window.setTimeout(function () { $('.ajax-area').hide(); $('.ajax-bottom-scroll').removeClass('ajax-Border-Response'); $('.ajax-right-scroll').removeClass('ajax-Border-Waiting'); $('.ajax-left-scroll').removeClass('ajax-Border-Processing'); $('.ajax-top-scroll').removeClass('ajax-Border-Request'); $('.ajax-area').removeClass('ajax-area-side'); }, time); }, time); }, time); }, time); } catch (ex) { console.log("doAll() " + ex.message); } } $.fn.ajaxActionCall = function (options) { var result = null; try { var _default = { // These are the defaults. action: ajaxActions.none, affectedElement: $(this).parent().parent() } var settings = $.extend(true, _default, options); switch (settings.action) { case ajaxActions.request: $('.ajax-area').show(); $('.ajax-data').html('<i class="fa fa-circle-o-notch fa-spin fa-3x"></i>'); $(settings.affectedElement).find('.ajax-top-scroll').addClass('ajax-Border-Request'); break; case ajaxActions.waiting: $(settings.affectedElement).find('.ajax-right-scroll').addClass('ajax-Border-Waiting'); break; case ajaxActions.response: $(settings.affectedElement).find('.ajax-bottom-scroll').addClass('ajax-Border-Response'); break; case ajaxActions.processing: $(settings.affectedElement).find('.ajax-left-scroll').addClass('ajax-Border-Processing'); break; } } catch (ex) { console.log(ex.message); } return result; } } catch (ex) { console.log(ex.message); } </script> <div id='ajaxArea' class="ajax-area" style="display: none;"> <div id='ajaxModal' class="ajax-modal"> <div id='ajaxDefaultCommands' style="display: none;"> <input type="submit" value="Bottom" onclick='$(this).ajaxActionCall({ action: ajaxActions.request });'> <input type="submit" value="Right" onclick='$(this).ajaxActionCall({ action: ajaxActions.waiting });'> <input type="submit" value="Top" onclick='$(this).ajaxActionCall({ action: ajaxActions.response });'> <input type="submit" value="Left" onclick='$(this).ajaxActionCall({ action: ajaxActions.processing });'> <input type="submit" value="Do All" onclick='doAll(1500);'> </div> </div> <div id='ajaxContent' class="ajax-content"> <div class='ajax-Border-Transitions ajax-top-scroll'></div> <div class='ajax-middle'> <div class='ajax-Border-Transitions ajax-left-scroll'> </div> <div class='ajax-data'><i class="fa fa-circle-o-notch fa-spin fa-3x"></i></div> <div class='ajax-Border-Transitions ajax-right-scroll'> </div> </div> <div class='ajax-Border-Transitions ajax-bottom-scroll'></div> </div> <div id="rootVariables" style="display: none"></div> </div> <script> // CLIENT REUSEABLE CODE function createSoapMessage(options) { var result = ' <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \ xmlns:xsd="http://www.w3.org/2001/XMLSchema" \ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> \ <soap:Body> \ <{SERVICENAME} xmlns="{SERVICEXMLNS}"> \ {PARAMETERS}\ </{SERVICENAME} > \ </soap:Body> \ </soap:Envelope>'; try { var _defaults = { serviceName: '', serviceParameters: [{ parameter: '', value: '' }], serviceXMLNS: '' } var _settings = $.extend({}, _defaults, options); result = result.replace(/{SERVICENAME}/g, _settings.serviceName); result = result.replace(/{SERVICEXMLNS}/g, _settings.serviceXMLNS); var parameters = ''; $(_settings.serviceParameters).each(function () { try { var workingServiceParameterTemplate = ''; if (Object.keys(this).length > 0) { for (var i = 0; i < Object.keys(this).length; i++) { if (Object.keys(this)[i] && Object.keys(this)[i].toString().trim() != '') { var serviceParameterTemplate = '<{PARAMETERNAME}>{PARAMETERVALUE}</{PARAMETERNAME}>'; workingServiceParameterTemplate = serviceParameterTemplate.replace(/{PARAMETERNAME}/g, Object.keys(this)[i] || ''); workingServiceParameterTemplate = workingServiceParameterTemplate.replace(/{PARAMETERVALUE}/g, Object.values(this)[i] || ''); workingServiceParameterTemplate = workingServiceParameterTemplate.replace('<></>', ''); } else { workingServiceParameterTemplate = '' }; parameters += workingServiceParameterTemplate; } } } catch (ex) { console.log(ex.message); } }) result = result.replace(/{PARAMETERS}/g, parameters); } catch (ex) { console.log(ex.message); } return result; } // OPTIONS Should contain { onSuccess: function(data, status, jqXHR) { alert('success'); }, onError: function(data, status, jqXHR) { alert('error'); } } function callWithAjax(soapMessage, options) { var result = null; try { var _defaults = { url: '', type: 'POST', contentType: 'text/xml; charset=utf-8', onSuccess: function (data, status, jqXHR) { alert('success'); }, onError: function (data, status, jqXHR) { alert('error'); } } var _settings = $.extend({}, _defaults, options); // CALL THE SERVICE! result = $.ajax({ url: _settings.url, type: _settings.type, contentType: _settings.contentType, data: soapMessage, success: _settings.onSuccess, error: _settings.onError }); } catch (ex) { console.log(ex.message); } return result; } function guarenteeAjaxSingleton() { try { var ajaxControls = $('.ajax-form-wrapper'); if (ajaxControls.length > 1) { var count = 0; ajaxControls.each(function () { if (count > 0) { $(this).attr('REMOVE', 'ME'); } count++; }); $('[REMOVE=ME]').remove(); } } catch (ex) { console.log(ex.message); } } function initializeAjaxForm() { try { guarenteeAjaxSingleton(); } catch (ex) { console.log(ex.message); } } runStartUpScripts.push(initializeAjaxForm); </script> </div> </div> <!--==================== START SKIN ====================--> <!--========== HEADER ==========--> <header class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN"> <!--========== UTILITY NAVIGATION ==========--> <div id="utilityNavMain" class="navbar utilityNav col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING autoHeight"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div class="col-lg-8 col-md-8 col-sm-12 col-xs-12 NO-PADDING mWidth"> <nav class="navbar navbar-default utilityNav navbar-left col-sm-4 col-xs-5"> <ul class="nav navbar-nav"> <li> <style> [id*=NOAHSignInUser] { display: inline-block; position: relative; } [id*=SignInUserInfoBox] { display: none; background-color: #FFF; -moz-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.35); -webkit-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.35); box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.35); font-size: .75em; padding: 5px; opacity: .95; position: fixed; right: 0; text-align: left; width: 100%; z-index: 10; } [id*=SignInUserPhoto] { display: block; float: left; margin-right: 2px; width: 25%; } [id*=SignInUserPhoto] .user-photo { width: 48px; } [id*=SignInUserInfo] { display: block; float: left; width: 73%; } [id*=SignInUserInfo] .user-name { font-weight: bold; margin: 0; text-transform: uppercase; } [id*=SignInUserInfo] a.manage-account { background-color: #555; color: #FFF; padding: 4px 6px; text-decoration: none; } [id*=SignInUserInfo] a.manage-account:hover { background-color: #727272; text-decoration: none; } [id*=SignInUserInfoSignOut] { display: block; text-align: center; } /* Desktop Layout: 769px and up. */ @media only screen and (min-width: 769px) { [id*=SignInUserInfoBox] { position: absolute; width: 250px; } } </style> <script> function toggleMyAccount(sender, e) { var result = false; try { toggleUserInfo(sender, e); } catch (ex) { console.log(ex.message); } return result; } //function makeMobileFriendlySignIn() { // try { // if (isMobileTouchDevice) { // $('[onclick]').each(function () { // try { // var element = $(this); // var val = element.attr('onclick'); // if (isMobileTouchDevice) { // element.removeAttr('onclick'); // element.bind('ontouchstart', function () { eval(val); }); // } // } // catch (ex) { // console.log("makeMobileFriendly() " + ex.message); // } // }); // } // } // catch (ex) { // console.log(ex.message); // } //} //function pageLoad() { try { makeMobileFriendlySignIn(); } catch (ex) { console.log(ex.message); } } //$(document).ready(function () { try { makeMobileFriendlySignIn(); } catch (ex) { console.log(ex.message); } }); </script> <div id="NOAHSignInUser"> <a id="dnn_SignInUser1_hlSignIn" rel="nofollow" href="https://www.mmha.com/Sign-In?returnurl=%2f">Login</a> <div id="SignInUserInfoBox" style="display:none;"> <div id="SignInUserPhoto"> <img id="dnn_SignInUser1_imgPhoto" class="user-photo" src="" align="top" style="border-width:0px;" /> </div> <div id="SignInUserInfo"> </div> <hr /> <div id="SignInUserInfoSignOut"> <a id="dnn_SignInUser1_hlUserInfoSignOut" class="user-sign-out"></a> </div> </div> </div> <script> function toggleUserInfo(sender, e) { try { // toggle user info box $(sender).parent().find("[id*=SignInUserInfoBox]").slideToggle("fast"); } catch (ex) { // alert(ex); } } $(document).ready(function (e) { try { // check for userInfoCssClass property and set the class if found var userInfoCssClass = ""; if (userInfoCssClass != null && userInfoCssClass != "") { $("[id*=SignInUserInfoBox]").addClass(userInfoCssClass); } } catch (ex) { // alert(ex); } }); $(document).mouseup(function (e) { try { // hide user info box if the target of the click isn't the container nor a descendant of the container var container = $("[id*=NOAHSignInUser]"); if (!container.is(e.target) && container.has(e.target).length == 0) { $("[id*=SignInUserInfoBox]").slideUp("fast"); } } catch (ex) { // alert(ex); } }); </script> </li> <li> <div id="dnn_ShoppingCart_upnlShoppingCart"> <a id="dnn_ShoppingCart_lbShoppingCart" href="javascript:__doPostBack('dnn$ShoppingCart$lbShoppingCart','')">Cart</a> </div> <script> $(document).ready(function () { try { var currentHTML = $('div[id*=upnlShoppingCart] > a').html(); $($('div[id*=upnlShoppingCart] > a')[0]).html('<span class="icon-ShoppingCart"></span>'); } catch (ex) { } }) </script> </li> <li><a href="#" data-toggle="modal" data-target="#searchModal" aria-label="Search" title="Search"> <span class="icon-Search"></span></a></li> </ul> </nav> <nav class="navbar navbar-default utilityNav navbar-right col-sm-7 col-xs-7"> <ul class="nav navbar-nav"> <li><a href="//www.facebook.com/MHAFanPage" role="link" aria-label="MHA Facebook Link"> <span class="icon-Facebook"></span></a></li> <li><a href="//www.instagram.com/mn_mha/" role="link" aria-label="MHA Instagram Link"> <span class="icon-Instagram"></span></a></li> <li><a href="//www.linkedin.com/groups?about=&gid=1927910&trk=anet_ug_grppro" role="link"> <span class="icon-LinkedIn"></span></a></li> <li><a href="//twitter.com/mn_mha" role="link" aria-label="MHA X Link"> <span class="icon-X"></span></a></li> <li><a href="//www.youtube.com/" role="link" aria-label="MHA YouTube Link"> <span class="icon-YouTube"></span></a></li> </ul> </nav> </div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </div> </div> <!--========== END UTILITY NAVIGATION ==========--> <!--========== LOGO & BUTTON AREA ==========--> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING headerTop"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div class="col-lg-3 col-md-4 col-sm-6 col-xs-5 NO-PADDING pull-left"> <a id="dnn_dnnLogoXS_hypLogo" title="Minnesota Multi Housing Association" aria-label="Minnesota Multi Housing Association" href="https://www.mmha.com/"><img id="dnn_dnnLogoXS_imgLogo" class="logo" src="/Portals/15/mhalogo.jpg?ver=rsQ-v9MVcVRNyPUiTxqi3A%3d%3d" alt="Minnesota Multi Housing Association" style="border-width:0px;" /></a> <a href="/" role="link" aria-label="MHA Home" title="MHA Home"> <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 340 105" style="enable-background: new 0 0 340 105;" xml:space="preserve" class="logo"> <style type="text/css"> .st0 { fill: #88888B; } .st1 { fill: #375989; } .st2 { fill: #7E918B; } </style> <g id="Variation_2"> <g id="Var2"> <g id="Building_2_"> <polygon class="st0" points="339.6,56.9 339.6,96.3 278.9,96.3 280.7,100.1 339.6,100.1 339.6,100.1 343,100.1 343.7,59.7" /> <path class="st1" d="M356.5,100.5H349V72.4l-29.5-19.6L287.3,73v-8.2l32-20.9l0.1-0.1l0.1,0.1l36.6,23.9" /> <path class="st2" d="M319.3,6.4" /> <polyline class="st0" points="261.6,6.1 261.6,9.9 319.4,9.9 319.4,6" /> <polygon class="st0" points="261.4,56 267.3,69.6 267.6,17.5 310.7,17.5 310.7,41.6 287.3,56.3 287.3,60.4 309.4,45.9,319.3,39.6 319.4,39.4 319.4,39.4 319.4,13.8 261.6,13.8" /> </g> <g id="MHA_5_"> <g> <path class="st1" d="M180.1,100.1h-12.3V58.8h-47.9V100h-12.3V6h12.3v40.7h47.9V6h12.3V100.1z" /> </g> <polygon class="st1" points="95.1,29.9 84.7,49.8 86.2,100.4 99.4,100.4" /> <polygon class="st1" points="238.8,23.5 232.4,38.8 242.3,65.7 219.9,66 214.7,78.4 247.6,78.1 257.3,100.4 271.9,100.2" /> <polygon class="st1" points="231.9,6.1 231.9,6 231.9,6 231.7,6 229.4,6 227.8,6 227.6,6 186.7,100.4 201.4,100.3 212.3,74.4,237.5,18.9" /> <polyline class="st1" points="53.7,100.3 53.7,100.1 64.8,78.4 81.5,47.4 81.5,47.5 92.7,26.3 94.9,22.3 94.7,18.6 93.8,5.1 93.6,5.1 91.4,5.1 89.7,5 89.5,5 51.7,75.3 51.3,75.3 51.3,75.3 13.6,4.9 13.3,4.9 11.7,5 9.4,5.1 9.2,5.1 8.4,18.6 8.2,22.2,8.2,22.3 3.5,100.1 17.2,100.1 19.4,43.6 21.5,47.4 21.5,47.3 38.4,78.4 49.4,100.3 50.2,100.3 50.2,100.3 51.5,100.3" /> </g> </g> </g> </svg> </a> </div> <div id="dnn_Btn_Pane" class="col-lg-5 col-md-4 col-sm-6 col-xs-6 NO-PADDING mobileBtn"> <div class="DnnModule DnnModule-DNN_HTML DnnModule-139377 DnnVersionableControl"><a name="139377"></a> <div class="DNNContainer_noTitle"> <div id="dnn_ctr139377_ContentPane" class="NO-MARGIN NO-PADDING"><!-- Start_Module_139377 --><div id="dnn_ctr139377_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr139377_HtmlModule_lblContent"><a href="/Join" role="link" aria-label="Join MHA Button" title="Join MHA" class="FormButton homeJoin pull-right">Join</a></div> </div><!-- End_Module_139377 --></div> <div class="clear NO-MARGIN NO-PADDING"></div> </div> </div></div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </div> <!--========== END LOGO & BUTTON AREA ==========--> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div class="col-lg-8 col-md-8 col-sm-12 col-xs-12 NO-PADDING navLine"></div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </div> <!--========== MAIN NAVIGATION ==========--> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div id="mainNav" class="col-lg-8 col-md-8 col-sm-8 col-xs-12 NO-PADDING headerNav"> <div class="Menu-Navigation-Wrapper col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN"> <ul class="Menu-Navigation col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING"> <li class="level-0 first"> <a href="https://www.mmha.com/About-MHA" target="" title="About MHA">About MHA</a> <ul> <li class="level-1 first"> <a href="https://www.mmha.com/About-MHA" target="" title="Who We Are">Who We Are</a> </li> <li class="level-1"> <a href="https://www.mmha.com/code" target="" title="Code of Ethics">Code of Ethics</a> </li> <li class="level-1"> <a href="https://www.mmha.com/About-MHA/Antitrust-Compliance" target="" title="Antitrust Compliance">Antitrust Compliance</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Board" target="" title="Board of Directors">Board of Directors</a> </li> <li class="level-1"> <a href="https://www.mmha.com/team" target="" title="Meet our Team">Meet our Team</a> </li> <li class="level-1"> <a href="https://www.mmha.com/GivingBack" target="" title="Giving Back">Giving Back</a> </li> <li class="level-1 last"> <a href="https://www.mmha.com/About-MHA/Lifetime-Achievement-Recipients" target="" title="Lifetime Achievement Recipients">Lifetime Achievement Recipients</a> </li> </ul> </li> <li class="level-0"> <a href="https://www.mmha.com/Membership/Membership-Information" target="" title="Membership">Membership</a> <ul> <li class="level-1 first"> <a href="https://www.mmha.com/Membership/Membership-Information" target="" title="Membership Information">Membership Information</a> </li> <li class="level-1"> <a href="https://www.mmha.com/MEMBERSHIP/Property-Owners-and-Managers" target="" title="Property Owners and Managers">Property Owners and Managers</a> </li> <li class="level-1"> <a href="https://www.mmha.com/GreaterMN" target="" title="Greater MN Owners and Managers">Greater MN Owners and Managers</a> </li> <li class="level-1"> <a href="https://www.mmha.com/MEMBERSHIP/Product-or-Service-Vendors" target="" title="Product or Service Vendors">Product or Service Vendors</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Membership/Product-Service-MAC-Members" target="" title="PMAC">PMAC</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Membership/Volunteer-Committees" target="" title="Volunteer Committees">Volunteer Committees</a> </li> <li class="level-1 last"> <a href="https://www.mmha.com/Membership/Manage-Membership" target="" title="Manage Membership">Manage Membership</a> </li> </ul> </li> <li class="level-0"> <a href="https://www.mmha.com/Advocacy" target="" title="Advocacy">Advocacy</a> <ul> <li class="level-1 first"> <a href="https://www.mmha.com/Advocacy" target="" title="Representation">Representation</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Advocacy/Legislative-Action-Center" target="" title="Legislative Action Center">Legislative Action Center</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Advocacy/Fair-Housing" target="" title="Fair Housing">Fair Housing</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Advocacy/Affordable-Housing-Strategies" target="" title="Affordable Housing Strategies">Affordable Housing Strategies</a> </li> <li class="level-1 last"> <a href="https://www.mmha.com/Advocacy/Multi-Housing-PAC" target="" title="Multi Housing PAC">Multi Housing PAC</a> </li> </ul> </li> <li class="level-0"> <a href="https://www.mmha.com/Education" target="" title="Education">Education</a> <ul> <li class="level-1 first"> <a href="https://www.mmha.com/Education/Education-Calendar" target="" title="Education Calendar">Education Calendar</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Education/Building-Bridges-Conference" target="" title="Building Bridges Conference">Building Bridges Conference</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Education/Shaping-the-Future" target="" title="Shaping the Future">Shaping the Future</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Online" target="" title="Online Training">Online Training</a> </li> <li class="level-1"> <a href="https://www.mmha.com/GreaterMN" target="" title="Greater Minnesota Programs">Greater Minnesota Programs</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Certifications" target="" title="Certification Programs">Certification Programs</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Education/Investors-Club" target="" title="Investors Club">Investors Club</a> </li> <li class="level-1 last"> <a href="https://www.mmha.com/Education/Call-for-Speakers" target="" title="Call for Speakers">Call for Speakers</a> </li> </ul> </li> <li class="level-0"> <a href="https://www.mmha.com/Events" target="" title="Events">Events</a> <ul> <li class="level-1 first"> <a href="https://www.mmha.com/Events" target="" title="Annual Events">Annual Events</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Events/Events-Calendar" target="" title="Events Calendar">Events Calendar</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Golf" target="" title="Golf Classic">Golf Classic</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Events/MADACS" target="" title="MADACS">MADACS</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Events/LINK-Up" target="" title="LINK Up">LINK Up</a> </li> <li class="level-1 last"> <a href="https://www.mmha.com/GreaterMN" target="" title="Greater Minnesota Events">Greater Minnesota Events</a> </li> </ul> </li> <li class="level-0 last"> <a href="https://www.mmha.com/Resources" target="" title="Resources">Resources</a> <ul> <li class="level-1 first"> <a href="https://www.mmha.com/Resources" target="" title="Resource Hub">Resource Hub</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Resources/Directories" target="" title="Directories">Directories</a> <ul> <li class="level-2 first"> <a href="https://www.mmha.com/Directories/MHA-Membership-Buyers-Guide" target="" title="Buyer's Guide">Buyer's Guide</a> </li> <li class="level-2"> <a href="https://www.mmha.com/Directories/Fee" target="" title="Fee Management">Fee Management</a> </li> <li class="level-2 last"> <a href="https://www.mmha.com/Resources/Directories/Membership-Directory" target="" title="Membership Directory🔒">Membership Directory🔒</a> </li> </ul> </li> <li class="level-1"> <a href="https://www.mmha.com/store" target="" title="Online Store">Online Store</a> <ul> <li class="level-2 first"> <a href="https://www.mmha.com/STORE/Download-Rental-Documents" target="" title="Download Rental Documents">Download Rental Documents</a> </li> <li class="level-2"> <a href="https://www.mmha.com/Resources/Online-Store/Order-Blank-Documents" target="" title="Order Blank Documents">Order Blank Documents</a> </li> <li class="level-2"> <a href="https://www.mmha.com/Resources/Online-Store/Survey-Bundle" target="" title="Survey Bundle">Survey Bundle</a> </li> <li class="level-2"> <a href="https://www.mmha.com/Resources/Online-Store/Operating-Expense-Survey" target="" title="Operating Expense Survey">Operating Expense Survey</a> </li> <li class="level-2"> <a href="https://www.mmha.com/Resources/Online-Store/Compensation-and-Benefits-Survey" target="" title="Compensation and Benefits Survey">Compensation and Benefits Survey</a> </li> <li class="level-2 last"> <a href="https://www.mmha.com/Resources/Online-Store/Mailing-List" target="" title="Mailing List">Mailing List</a> </li> </ul> </li> <li class="level-1"> <a href="https://www.mmha.com/Resources/MHA-Merch" target="" title="MHA Merch">MHA Merch</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Resources/Advocate" target="" title="Advocate">Advocate</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Resources/Greater-MN-Newsletters" target="" title="Greater MN Newsletters">Greater MN Newsletters</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Resources/Advertising-Opportunities" target="" title="Advertising Opportunities">Advertising Opportunities</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Resources/Employment-Postings" target="" title="Employment Postings">Employment Postings</a> </li> <li class="level-1"> <a href="https://www.mmha.com/FAQ" target="" title="FAQs">FAQs</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Resources/Ask-Us" target="" title="Ask Us">Ask Us</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Resources/Renter-Resources" target="" title="Renter Resources">Renter Resources</a> </li> <li class="level-1"> <a href="https://www.mmha.com/Resources/Industry-Insights" target="" title="Industry Insights">Industry Insights</a> </li> <li class="level-1 last"> <a href="https://www.mmha.com/Resources/Media-Contacts" target="" title="Media Contacts">Media Contacts</a> </li> </ul> </li> </ul> </div> </div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </div> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING mobileOnly"> <div class="col-lg-12 col-md-12 col-sm-2 col-xs-2 NO-PADDING"></div> <div class="col-lg-12 col-md-12 col-sm-5 col-xs-5 NO-PADDING"> <div class="mobileNavMenu"> <script> try { versioning.reportVersion({ major: 1, minor: 0, revision: 3, system: 8, iteration: 1, year: 2022, name: 'JsonMenu.ascx', requires: ['NOAH.Include.Config.js', 'NOAH.Include.js'] }); } catch (ex) { console.log(ex.message); } </script> <style> /*========================= =========================*/ /*========================= =========================*/ /*========================= JSON MENU =========================*/ /*========================= =========================*/ /*========================= =========================*/ #divNOAHAMSMegaMenu { display: inline-block; height: 0px; overflow: unset; z-index: 9999; float: left; width: 100%; } .Mega-Menu-Wrapper { } .Mega-Menu-Container { height: 100%; display: inline-block; border: 1px solid #093e52; background: #093e52; background: -moz-linear-gradient(-45deg, #093e52 0%, #3f4c6b 100%); background: -webkit-linear-gradient(-45deg, #093e52 0%, #3f4c6b 100%); background: linear-gradient(135deg, #093e52 0%, #3f4c6b 100%); -webkit-transition: width 1s, height 2s; transition: width 1s, height 2s; position: relative; max-width: 65%; margin: 0 !important; margin-left: 6.25% !important; z-index: 109; } .Mega-Menu-Container:hover { min-width: 914px !important; } .Mega-Menu-Container, .Mega-Menu-Container * { transition: none !important; } .Mega-Menu-Container .nav-tabs { background-color: transparent !important; } .Mega-Menu-Container .tab-pane-container { position: relative; height: 100%; min-height: 440px; max-height: 440px; overflow-y: auto } .Mega-Menu-Container .Small-Text { position: static; bottom: 0; right: 0; float: left; width: 100%; display: inline-block; text-align: right; padding: 1em; } .Mega-Menu-Container:hover { width: 100% !important; -webkit-transition: width 1s, height 2s; transition: width 1s, height 2s; } .Mega-Menu-Container:hover .Mega-Menu-Top-Left { width: 10% !important; display: inline-block !important; min-width: 165px !important; float: left; } .Mega-Menu-Container:hover .Mega-Menu-Top-Right { width: 84.85% !important; display: inline-block !important; float: right; border-bottom: 1px solid #093e52; } .Mega-Menu-Container li[depthlevel="0"] { border-top: 1px solid transparent; border-bottom: 1px solid #3f4c6b; border-left: 1px solid transparent; border-right: 1px solid transparent; padding: 0 !important; } .Mega-Menu-Container li[depthlevel="0"]:first-child { padding-top: 5px !important; display: grid; } .Mega-Menu-Container li[depthlevel="0"], .Mega-Menu-Container li[depthlevel="0"] a { background-color: var(--aarwin-transparent); color: var(--aarwin-color-white-10); font-size: 1.75vh; border: none; } .Mega-Menu-Container li[depthlevel="0"]:hover, .Mega-Menu-Container li[depthlevel="0"]:focus, .Mega-Menu-Container li[depthlevel="0"]:active, .Mega-Menu-Container li[depthlevel="0"].active { border-top: 1px solid transparent; border-bottom: 1px solid transparent; border-left: 1px solid transparent; border-right: 1px solid transparent; border-radius: 0; } .Mega-Menu-Container li[depthlevel="0"]:hover:first-child, .Mega-Menu-Container li[depthlevel="0"]:focus:first-child, .Mega-Menu-Container li[depthlevel="0"]:active:first-child, .Mega-Menu-Container li[depthlevel="0"].active:first-child { border-top: 1px solid transparent; } .Mega-Menu-Container li[depthlevel="0"]:focus, .Mega-Menu-Container li[depthlevel="0"]:active, .Mega-Menu-Container li[depthlevel="0"].active { color: var(--aarwin-color-white-10) !important; } .Mega-Menu-Container li[depthlevel="0"]:focus a, .Mega-Menu-Container li[depthlevel="0"]:active a, .Mega-Menu-Container li[depthlevel="0"].active a { color: var(--aarwin-color-white-10) !important; } .Mega-Menu-Container .Mega-Menu-Top-Left { background-color: transparent; min-width: 140px !important; max-width: 175px !important; } .Mega-Menu-Top-Left, .Mega-Menu-Top-Right { height: 100%; border: 0; min-height: 453px; } .Mega-Menu-Container .Mega-Menu-Top-Right ul { } .Mega-Menu-Container .tab-content { border: 1px solid transparent; background-color: #fff; height: 100%; min-height: 453px; } .Mega-Menu-Container .tab-content > .active, .pill-content > .active { display: inline-block; width: 100%; height: 100% !important; border: 1px solid transparent; } .Mega-Menu-Container .top-menu { display: inline-block; clear: both; height: 100%; min-height: 453px; } .Mega-Menu-Container .top-menu > .nav-tabs > li { width: 50%; } .Mega-Menu-Container .tabs-left, .Mega-Menu-Container .tabs-right { border-bottom: none; } .Mega-Menu-Container .tabs-left { border-right: 1px solid transparent; } .Mega-Menu-Container .tabs-right { border-left: 1px solid transparent; } .Mega-Menu-Container .tabs-left > li, .Mega-Menu-Container .tabs-right > li { float: none; } .Mega-Menu-Container .tabs-left > li.active > a, .Mega-Menu-Container .tabs-left > li.active > a:hover, .Mega-Menu-Container .tabs-left > li.active > a:focus { border: 1px solid transparent; outline: none !important; background-color: transparent; } .Mega-Menu-Container .tabs-right > li.active > a, .Mega-Menu-Container .tabs-right > li.active > a:hover, .Mega-Menu-Container .tabs-right > li.active > a:focus { border: 1px solid transparent; outline: none !important; background-color: transparent; } .Mega-Menu-Container .tabs-left > li > a { border-radius: 0; margin-right: 0; display: block; padding: .25em; } .Mega-Menu-Container .tabs-right > li > a { border-radius: 0; margin-right: 0; border: var(--aarwin-base-1px) solid var(--aarwin-transparent) !important; } .Mega-Menu-Container .tabs-left > li > a:hover { color: var(--aarwin-secondary-color) !important; } .Mega-Menu-Container ul ul.nav.nav-tabs > li { width: 100%; float: left; } .Mega-Menu-Container .Mega-Menu-Top-Right ul.nav.nav-tabs > li { padding-left: .5em; } .Mega-Menu-Container .Mega-Menu-Top-Right ul.nav.nav-tabs > li > a { font-family: var(--aarwin-base-tertiary-font-family-sansserif); border: 1px solid #fff; background-color: transparent; color: #093e52; margin: 0; padding-left: 1.5em; font-size: 1.5vh; padding: 8px 15px; } .Mega-Menu-Container .Mega-Menu-Top-Right ul.nav.nav-tabs > li > a:hover { border: 1px solid transparent !important; background-color: #1C9ACA !important; color: #fff !important; } .Mega-Menu-Container [disabled] { opacity: .6 !important; border: 0px solid transparent !important; } .Mega-Menu-Container li, .Mega-Menu-Container li a { border-radius: 0; } .Mega-Menu-Container li[depthlevel="1"] { font-weight: bold !important; border-bottom: 1px solid transparent; } .Mega-Menu-Container li[depthlevel="1"] > a { border-bottom: 1px solid #1C9ACA !important; width: 75%; } .Mega-Menu-Container li[depthlevel] { font-weight: normal; } .Mega-Menu-Top-Right .nav-tabs { border: 1px solid transparent !important; } .Close-Menu-Button { display: none; } .tab-pane h3 { font-family: var(--aarwin-base-tertiary-font-family-sansserif); font-size: 2.5vh; } @media screen and (max-width : 1024px) { .USE-DNN-VISIBLE-OFFSET > * { margin-left: 80px; width: auto; } .USE-DNN-VISIBLE-OFFSET .hc-offcanvas-nav .nav-container { left: 80px !important; } } @media screen and (min-width : 1025px) and (max-width: 1399.99px) { .Mega-Menu-Container { min-height: 500px !important; max-height: 600px !important; } .Mega-Menu-Top-Left { min-height: 300px; overflow: hidden !important; } .Mega-Menu-Container:hover .Mega-Menu-Top-Left { min-width: 130px !important; min-height: 300px !important; max-height: 600px !important; } .Mega-Menu-Container:hover .Mega-Menu-Top-Right { min-height: 400px; max-height: 500px !important; } .Mega-Menu-Container .tab-pane-container { min-height: 400px !important; max-height: 500px; } /*.Mega-Menu-Container .tab-content,*/ .Mega-Menu-Container .top-menu { } } @media screen and (min-width : 1400px) and (max-width: 1699.99px) { .Mega-Menu-Container:hover .Mega-Menu-Top-Left { min-width: 140px !important; } } @media screen and (min-width : 2100px) { .Mega-Menu-Container { max-height: 1000px !important; min-height: 500px; } .Mega-Menu-Top-Left { max-height: 1000px !important; min-height: 500px; overflow: hidden !important; } .Mega-Menu-Container:hover .Mega-Menu-Top-Left { width: 20% !important; min-width: 8vw !important; min-height: 500px !important; max-height: 1000px !important; } .Mega-Menu-Container:hover .Mega-Menu-Top-Right { width: 85% !important; min-height: 500px !important; max-height: 1000px !important; } .Mega-Menu-Container .tab-pane-container { min-height: 500px !important; } .Mega-Menu-Container .tab-content, .Mega-Menu-Container .top-menu { min-height: 500px; } } @media screen and (min-width : 2400px) { .Mega-Menu-Container, .Mega-Menu-Top-Left, .Mega-Menu-Container .tab-content, .Mega-Menu-Container .top-menu { min-height: 600px; } .Mega-Menu-Container:hover .Mega-Menu-Top-Left, .Mega-Menu-Container .tab-pane-container { min-height: 600px !important; } .Mega-Menu-Container:hover .Mega-Menu-Top-Right { width: 85% !important; min-height: 600px !important; max-height: 1000px !important; } } @media screen and (min-width : 2750px) { .Mega-Menu-Container, .Mega-Menu-Top-Left, .Mega-Menu-Container .tab-content, .Mega-Menu-Container .top-menu { min-height: 700px; } .Mega-Menu-Container:hover .Mega-Menu-Top-Left, .Mega-Menu-Container:hover .Mega-Menu-Top-Right, .Mega-Menu-Container .tab-pane-container { min-height: 700px !important; } } @media screen and (min-width : 3800px) { .Mega-Menu-Container, .Mega-Menu-Top-Left, .Mega-Menu-Container .tab-content, .Mega-Menu-Container .top-menu { min-height: 900px; } .Mega-Menu-Container:hover .Mega-Menu-Top-Left, .Mega-Menu-Container:hover .Mega-Menu-Top-Right, .Mega-Menu-Container .tab-pane-container { min-height: 900px !important; } } @media screen and (min-width : 4800px) { .Mega-Menu-Container, .Mega-Menu-Top-Left, .Mega-Menu-Container .tab-content, .Mega-Menu-Container .top-menu { min-height: 1000px; } .Mega-Menu-Container:hover .Mega-Menu-Top-Left, .Mega-Menu-Container:hover .Mega-Menu-Top-Right, .Mega-Menu-Container .tab-pane-container { min-height: 1000px !important; } } @media screen and (min-width : 5800px) { .Mega-Menu-Container, .Mega-Menu-Top-Left, .Mega-Menu-Container .tab-content, .Mega-Menu-Container .top-menu { min-height: 1200px; max-height: 1250px; } .Mega-Menu-Container:hover .Mega-Menu-Top-Left, .Mega-Menu-Container:hover .Mega-Menu-Top-Right, .Mega-Menu-Container .tab-pane-container { min-height: 1200px !important; max-height: 1250px !important; } } </style> <script> try { console.log('%c Loading JSONMenu form scripts ...', 'text-transform: uppercase; padding-left: 5em; padding-right: 5em; font-size: 1.5em; color: darkgreen; background-color: #90EE9055; width: 100%; border-top: 3px solid darkgreen; border-bottom: 3px solid darkgreen;'); } catch (ex) { console.log(ex.message); } try { var useMobileMenuWidthAt = 1024; var menuConversionInitialized = false; var menuDesktopInitialized = false; var jsonMENU = {}; var parentRoot = {}; var selectedRoot = {}; var menuTypes = { mega: 0, vertical: 1, tab: 2 }; var menuTypeJustify = { top: 0, bottom: 1, left: 2, right: 3 }; var menuItemTabNavigationContainer = '<ul class="nav nav-tabs {class}" {disabled}>{items}</ul>'; var menuItemTabPaneContainer = '<div class="tab-content" {disabled}></div>'; var firstMenuItemTemplate = '<li class="{class} Mega-Menu-Item" depthlevel="{depth}" childcount="{childcount}" ><a href="#{id}" data-toggle="tab" url="{url}" ignore-hover-automation="{ignoreAutomation}" onmouseenter="doMenuItemMouseHover(this, event);" {disabled} >{text}{menu}</a></li>'; var firstMenuItemPaneTemplate = '<div class="tab-pane tab-pane-container {class}" id="{id}" childcount="{childcount}" ><div class="top-menu col-lg-12 col-md-12 col-sm-12 col-xs-12"><h3>{title}</h3><h6>{description}</h6><div class="top-menu-drop-down col-lg-12 col-md-12 col-sm-12 col-xs-12">{drop-down-menu}</div>{menu}</div><small class="Small-Text">{text}<small></div>' } catch (ex) { console.log(ex.message); } function createTemplate(triggerTemplate, containerTemplate, jsonDataToUse) { var result = [ triggerTemplate, containerTemplate ]; try { //console.log('createTemplate() ...'); for (var key in jsonDataToUse) { if (jsonDataToUse.hasOwnProperty(key)) { if (result != null && result != undefined && result != 'undefined' && result.length > 0) { for (x = 0; x < result.length; x++) { try { if (result[x] != null && result[x] != undefined && result[x] != 'undefined') { result[x] = result[x].toString().replace("{" + key + "}", jsonDataToUse[key].toString()); } } catch (ex) { console.log(ex.message); } } } } } // --------------- PATCH UPGRADE -> MOVING DATA UP TO USE OLD CODE. ---------------- try { if (jsonDataToUse.Data && jsonDataToUse.Data.length > 0) { jsonDataToUse.subMenuItems = jsonDataToUse.Data(0).subMenuItems; } } catch (ex) { console.log('Upgraded code failed to move subMenuItems ' + ex.message); } try { if (jsonDataToUse.Data && jsonDataToUse.Data.length > 0) { jsonDataToUse.subMenuItems = jsonDataToUse.Data(0).SubItems; } } catch (ex) { console.log('Upgraded code failed to move SubItems ' + ex.message); } // ------------------------------- END PATCH UPGRADE ------------------------------- if (jsonDataToUse.subMenuItems != null && jsonDataToUse.subMenuItems != undefined && jsonDataToUse.subMenuItems != 'undefined' && jsonDataToUse.subMenuItems.length > 0) { // console.log(result) var extendedMenu = ''; var index = 0; $(jsonDataToUse.subMenuItems).each(function () { try { var subItemTemplates = createTemplate(menuItemTabNavigationContainer, firstMenuItemTemplate, jsonDataToUse.subMenuItems[index]); if (extendedMenu == '') { extendedMenu = subItemTemplates[0]; } // console.log(extendedMenu); extendedMenu = extendedMenu.replace('{items}', subItemTemplates[1] + "{items}"); index++; } catch (ex) { console.log(ex.message) } }); extendedMenu = extendedMenu.replace('{items}', ''); result[1] = result[1].replace('{menu}', extendedMenu); } } catch (ex) { console.log("createTemplate " + ex.message); } return result; } function createMenuItems_DESKTOP(triggerContainer, paneContainer, data) { try { //console.log('createMenuItems_DESKTOP() ...'); var index = 0; triggerContainer.empty(); paneContainer.empty(); $(data).each(function () { try { var triggerPaneTemplates = createTemplate(firstMenuItemTemplate, firstMenuItemPaneTemplate, data[index]); triggerPaneTemplates[0] = triggerPaneTemplates[0].replace('{menu}', ''); triggerPaneTemplates[1] = triggerPaneTemplates[1].replace(/\{menu\}/gi, ''); try { // REMOVE EMPTY TOKENS for (x = 0; x < triggerPaneTemplates.length; x++) { triggerPaneTemplates[x] = triggerPaneTemplates[x].replace(/{class}/g, '').replace(/{disabled}/g, '').replace(/{items}/g, '') .replace(/{text}/g, '').replace(/{depth}/g, '').replace(/{childcount}/g, '') .replace(/{url}/g, '').replace(/{menu}/g, '') .replace(/{title}/g, '').replace(/{drop-down-menu}/g, ''); } } catch (ex) { console.log("createTemplate " + ex.message); } try { if (!this.hasOwnProperty("subMenuItems") || this.subMenuItems.length == 0) { triggerPaneTemplates[0] = triggerPaneTemplates[0].replace(/{ignoreAutomation}/g, 'true'); } else { triggerPaneTemplates[0] = triggerPaneTemplates[0].replace(/{ignoreAutomation}/g, ''); } triggerContainer.append(triggerPaneTemplates[0]); } catch (ex) { console.log(ex.message); } try { triggerPaneTemplates[1] = triggerPaneTemplates[1].replace(/{ignoreAutomation}/g, 'true'); paneContainer.append(triggerPaneTemplates[1]); } catch (ex) { console.log(ex.message); } index++; } catch (ex) { console.log(ex.message); } }); } catch (ex) { console.log("createMenuItems_DESKTOP " + ex.message); } } function createMenuItems_MOBILE(triggerContainer, paneContainer, data) { try { //console.log('createMenuItems_MOBILE() ...'); var index = 0; triggerContainer.empty(); paneContainer.empty(); $(data).each(function () { try { var triggerPaneTemplates = createTemplate(firstMenuItemTemplate, firstMenuItemTemplate, data[index]); try { triggerPaneTemplates[1] = triggerPaneTemplates[1].replace(/{ignoreAutomation}/g, 'true'); triggerPaneTemplates[0] = triggerPaneTemplates[0].replace('{menu}', $(triggerPaneTemplates[1]).html()); triggerPaneTemplates[0] = triggerPaneTemplates[0].replace(/\{menu\}/gi, ''); try { // REMOVE EMPTY TOKENS for (x = 0; x < triggerPaneTemplates.length; x++) { triggerPaneTemplates[x] = triggerPaneTemplates[x].replace(/{class}/g, '').replace(/{disabled}/g, '').replace(/{items}/g, '') .replace(/{text}/g, '').replace(/{depth}/g, '').replace(/{childcount}/g, '') .replace(/{url}/g, '').replace(/{menu}/g, '').replace(/{ignoreAutomation}/g, 'true') .replace(/{title}/g, '').replace(/{drop-down-menu}/g, ''); } } catch (ex) { console.log("createTemplate " + ex.message); } triggerContainer.append(triggerPaneTemplates[0]); } catch (ex) { console.log(ex.message); } index++; } catch (ex) { console.log(ex.message); } }); } catch (ex) { console.log("createMenuItems_MOBILE " + ex.message); } } function doMenuItemMouseHover(sender, e) { try { //console.log('Menu Item Hover'); var attr = $(sender).attr('ignore-hover-automation'); var hasAttr = (typeof attr !== typeof undefined && attr !== false) if (!hasAttr) { if ($(sender).width() >= 256 && $(sender).parent().attr('depthlevel') == 0) { $(sender).click(); } } } catch (ex) { console.log("doMenuItemMouseHover " + ex.message); } } function closeMegaMenu(sender, e) { try { //console.log('closeMegaMenu() ...'); $(sender).parent().parent().parent().toggle('fast'); } catch (ex) { console.log("closeMegaMenu " + ex.message); } } function initJSONMenu_DESKTOP(root) { try { //console.log('%c INITIALIZING MENU IN "DESKTOP" MENU MODE ... ', 'background-color: #daaeeb; color: #a518d9; width: 100%; padding: .5em;'); var thisMenu = root; $('.Mega-Menu-Container').find('.Mega-Menu-Top-Left').find('.nav.nav-tabs li').remove(); // --------------- PATCH UPGRADE -> MOVING DATA UP TO USE OLD CODE. ---------------- try { if (!thisMenu.menuItems) { thisMenu = { menuItems: thisMenu }; } } catch (ex) { console.log('Upgraded code failed to move menuItems ' + ex.message); } // ------------------------------- END PATCH UPGRADE ------------------------------- createMenuItems_DESKTOP($('.Mega-Menu-Container').find('.nav.nav-tabs.tabs-left'), $('.Mega-Menu-Container').find('.tab-content'), thisMenu.menuItems); var cleanMenu = $('.Mega-Menu-Container').html().replace(/{drop-down-menu}/gi, '').replace(/{description}/gi, '').replace(/{title}/gi, '') $('.Mega-Menu-Container').html(cleanMenu); $($('li> a + a')).prev().remove(); $('.Mega-Menu-Container').find('[depthlevel] a').click(function () { try { var e = e || window.event; var url = ($(this).attr('url') || '').toString().trim() e.stopPropagation(); e.preventDefault(); } catch (ex) { console.log(ex.message); } }); $('.Mega-Menu-Container .Mega-Menu-Top-Right .Mega-Menu-Item > ul').on('mouseenter', function () { try { var obj = $(this); var objAbsBottom = (obj.offset().top + obj.height()); var container = obj.closest('.tab-content'); var containerAbsBottom = (container.offset().top + container.height()); if (obj.hasClass('Overflow-Bottom')) { obj.removeClass('Overflow-Bottom'); } if (objAbsBottom > containerAbsBottom) { console.log(obj.height() + ":" + objAbsBottom + " | " + container.height() + ":" + containerAbsBottom); obj.addClass('Overflow-Bottom'); console.log('Added bottom correction ...'); } } catch (ex) { console.log(ex.message); } }); $('.Mega-Menu-Container .Mega-Menu-Top-Right .Mega-Menu-Item > ul').on('mouseleave', function () { try { $('.Mega-Menu-Container .tab-content').animate({ scrollTop: 0 }, 250); } catch (ex) { console.log(ex.message); } }); $('.Mega-Menu-Container .Mega-Menu-Top-Left').find('[depthlevel] a').on('mouseenter', function () { try { $('.Mega-Menu-Container .Mega-Menu-Top-Left .Mega-Menu-Item.active').removeClass('active'); $(this).closest('.Mega-Menu-Item').addClass('active'); $('.Mega-Menu-Container').find('.tab-pane.tab-pane-container.active').stop().hide().removeClass('active'); $('.Mega-Menu-Container').find('.tab-pane.tab-pane-container[id=' + $(this).attr('href').replace("#", "") + ']').stop().show().addClass('active'); return false; } catch (ex) { console.log("initJSONMenu_DESKTOP click " + ex.message); } }); $('.Mega-Menu-Container .Mega-Menu-Top-Left').find('[depthlevel] a').on('click touchend', function () { try { // alert('depthlevel click'); var e = e || window.event; e.stopPropagation(); e.preventDefault(); var thisSelectedValue = parseInt($(this).attr('href').replace("#", "")); // console.log('selected ' + thisSelectedValue); parentRoot = jQuery.map(jsonMENU, function (obj) { if (obj.id === thisSelectedValue) return obj; // or return obj.name, whatever. }); $('.Mega-Menu-Container').find('.tab-pane.tab-pane-container').hide(); $('.Mega-Menu-Container').find('.tab-pane.tab-pane-container[id=' + $(this).attr('href').replace("#", "") + ']').fadeIn(); } catch (ex) { console.log("initJSONMenu_DESKTOP click " + ex.message); } }); var gotoURLOnClick = $('.Mega-Menu-Container [ignore-hover-automation=true]'); var urlCallback = function () { try { window.location = $(this).attr("url").replace("//", "/"); } catch (ex) { console.log(ex.message); } } $.each(gotoURLOnClick, function () { try { $(this).off('click touchend'); $(this).parent().off('click touchend'); $(this).attr('ignore-hover-automation', true).on('click touchend', urlCallback); } catch (ex) { } }); } catch (ex) { console.log("initJSONMenu_DESKTOP " + ex.message); } } function initJSONMenu_MOBILE(root, options) { try { //console.log('%c INITIALIZING MENU IN "MOBILE" MENU MODE ... ', 'background-color: #a0e8de; color: #056ca3; width: 100%; padding: .5em;'); var _defaults = { navElementClass: '.mobile-menu-nav-data' }; var settings = $.extend({}, _defaults, options); var thisMenu = root; // $('.Mega-Menu-Container').find('.Mega-Menu-Top-Left').find('.nav.nav-tabs li').remove(); // --------------- PATCH UPGRADE -> MOVING DATA UP TO USE OLD CODE. ---------------- try { if (!thisMenu.menuItems) { thisMenu = { menuItems: thisMenu }; } } catch (ex) { console.log('Upgraded code failed to move menuItems ' + ex.message); } // ------------------------------- END PATCH UPGRADE ------------------------------- createMenuItems_MOBILE($('.Mega-Menu-Container').find('.nav.nav-tabs.tabs-left'), $('.Mega-Menu-Container').find('.tab-content'), thisMenu.menuItems); var cleanMenu = $('.Mega-Menu-Container').html().replace(/{drop-down-menu}/gi, '').replace(/{description}/gi, '').replace(/{title}/gi, '') $('.Mega-Menu-Container').html(cleanMenu); $($('li> a + a')).prev().remove(); $('.Mega-Menu-Container').find('[depthlevel] a').click(function () { try { // $('.Mega-Menu-Container').scrollTop(0); } catch (ex) { console.log(ex.message); } }); $('.Mega-Menu-Container .Mega-Menu-Top-Right .Mega-Menu-Item > ul').on('mouseenter', function () { try { var obj = $(this); var objAbsBottom = (obj.offset().top + obj.height()); var container = obj.closest('.tab-content'); var containerAbsBottom = (container.offset().top + container.height()); if (obj.hasClass('Overflow-Bottom')) { obj.removeClass('Overflow-Bottom'); } if (objAbsBottom > containerAbsBottom) { console.log(obj.height() + ":" + objAbsBottom + " | " + container.height() + ":" + containerAbsBottom); obj.addClass('Overflow-Bottom'); console.log('Added bottom correction ...'); } } catch (ex) { console.log(ex.message); } }); $('.Mega-Menu-Container .Mega-Menu-Top-Right .Mega-Menu-Item > ul').on('mouseleave', function () { try { $('.Mega-Menu-Container .tab-content').animate({ scrollTop: 0 }, 250); } catch (ex) { console.log(ex.message); } }); $('.Mega-Menu-Container .Mega-Menu-Top-Left').find('[depthlevel] a').on('mouseenter', function () { try { $('.Mega-Menu-Container .Mega-Menu-Top-Left .Mega-Menu-Item.active').removeClass('active'); $(this).closest('.Mega-Menu-Item').addClass('active'); $('.Mega-Menu-Container').find('.tab-pane.tab-pane-container.active').stop().hide().removeClass('active'); $('.Mega-Menu-Container').find('.tab-pane.tab-pane-container[id=' + $(this).attr('href').replace("#", "") + ']').stop().show().addClass('active'); return false; } catch (ex) { console.log("initJSONMenu_DESKTOP click " + ex.message); } }); $('.Mega-Menu-Container .Mega-Menu-Top-Left').find('[depthlevel] a').on('mouseleave', function () { try { $('.Mega-Menu-Container').find('.tab-pane.tab-pane-container[id=' + $(this).attr('href').replace("#", "") + ']').hide(); return false; } catch (ex) { console.log("initJSONMenu_DESKTOP click " + ex.message); } }); $('.Mega-Menu-Container .Mega-Menu-Top-Left').find('[depthlevel] a').on('click touchend', function (sender, e) { try { var thisSelectedValue = parseInt($(this).attr('href').replace("#", "")); parentRoot = jQuery.map(jsonMENU, function (obj) { if (obj.id === thisSelectedValue) return obj; // or return obj.name, whatever. }); $('.Mega-Menu-Container').find('.tab-pane.tab-pane-container').hide(); $('.Mega-Menu-Container').find('.tab-pane.tab-pane-container[id=' + $(this).attr('href').replace("#", "") + ']').fadeIn(); } catch (ex) { console.log("initJSONMenu_DESKTOP click " + ex.message); } }); var gotoURLOnClick = $('.Mega-Menu-Container [ignore-hover-automation=true]'); var urlCallback = function () { try { window.location = $(this).attr("url").replace("//", "/"); } catch (ex) { console.log(ex.message); } } $.each(gotoURLOnClick, function () { try { $(this).off('click touchend'); $(this).parent().off('click touchend'); $(this).attr('ignore-hover-automation', true).on('click touchend', urlCallback); } catch (ex) { } }); $('.Mega-Menu-Container').find('.nav:first').removeClass('nav').removeClass('nav-tabs').wrap('<nav class="' + settings.navElementClass.replace('.', '') + '"></nav>'); try { dataSetupComplete_onAfter(options) } catch (ex) { console.log(ex.message); } } catch (ex) { console.log("initJsonMenu_MOBILE " + ex.message); } } </script> <div id="divHiddenData" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 hidden"> <div class="FormRow col-lg-12 col-md-12 col-sm-12 col-xs-12"> <div class="col-lg-2 col-md-2 col-sm-2 col-xs-12"> <label>Portal ID</label><br /> <input name="dnn$JsonMenu$hfPortalIDParam" type="text" id="dnn_JsonMenu_hfPortalIDParam" value="15" /> </div> <div class="col-lg-2 col-md-2 col-sm-2 col-xs-12"> <label>DNN User ID</label><br /> <input name="dnn$JsonMenu$hfDNNIdParam" type="text" id="dnn_JsonMenu_hfDNNIdParam" value="-1" /> </div> <div class="col-lg-2 col-md-2 col-sm-2 col-xs-12"> <label>Contact ID</label><br /> <input name="dnn$JsonMenu$hfContactIdParam" type="text" id="dnn_JsonMenu_hfContactIdParam" value="-1" /> </div> <div class="col-lg-2 col-md-2 col-sm-2 col-xs-12"> <label>DBName</label><br /> <input name="dnn$JsonMenu$hfDBNameParam" type="text" id="dnn_JsonMenu_hfDBNameParam" value="DNN_PROD3" /> </div> <div class="col-lg-2 col-md-2 col-sm-2 col-xs-12"> <label>Is super user?</label><br /> <input name="dnn$JsonMenu$hfIsSuperUserParam" type="text" id="dnn_JsonMenu_hfIsSuperUserParam" value="0" /> </div> <div class="col-lg-2 col-md-2 col-sm-2 col-xs-12"> <label>Order of Tab Operations</label><br /> <input name="dnn$JsonMenu$hfOrderOfTabOperations" type="text" id="dnn_JsonMenu_hfOrderOfTabOperations" class="hidden" value="[]" /> </div> <div class="col-lg-2 col-md-2 col-sm-2 col-xs-12"> <label>Menu Data</label><br /> <input name="dnn$JsonMenu$hfDataJsonMenu" type="text" id="dnn_JsonMenu_hfDataJsonMenu" class="hidden" value="{"menuItems": [{"id":23199,"text":"About MHA","depth":0,"url":"\/\/AboutMHA","title":"","description":"","icon":"","disabled":"","published":true,"subMenuItems": [{"id":23312,"text":"Who We Are","depth":1,"url":"\/\/AboutMHA\/\/WhoWeAre","title":"Why & Where","description":"","icon":"","disabled":"","published":true},{"id":23354,"text":"Code of Ethics","depth":1,"url":"\/\/AboutMHA\/\/CodeofEthics","title":"Code of Ethics","description":"All MHA members agree to operate by our Code of Ethics.","icon":"","disabled":"","published":true},{"id":27453,"text":"Antitrust Compliance ","depth":1,"url":"\/\/AboutMHA\/\/AntitrustCompliance","title":"Antitrust Compliance ","description":"MHA's antitrust compliance statement.","icon":"","disabled":"","published":true},{"id":23355,"text":"Board of Directors","depth":1,"url":"\/\/AboutMHA\/\/BoardofDirectors","title":"Board of Directors","description":"","icon":"","disabled":"","published":true},{"id":23295,"text":"Meet our Team","depth":1,"url":"\/\/AboutMHA\/\/MeetourTeam","title":"Meet our Team","description":"","icon":"","disabled":"","published":true},{"id":23356,"text":"Giving Back","depth":1,"url":"\/\/AboutMHA\/\/GivingBack","title":"Giving Back","description":"","icon":"","disabled":"","published":true},{"id":27848,"text":"Lifetime Achievement Recipients","depth":1,"url":"\/\/AboutMHA\/\/LifetimeAchievementRecipients","title":"Lifetime Achievement Recipients","description":"","icon":"","disabled":"","published":true}]},{"id":23205,"text":"Membership","depth":0,"url":"\/\/Membership","title":"","description":"","icon":"","disabled":"","published":true,"subMenuItems": [{"id":23615,"text":"Membership Information","depth":1,"url":"\/\/Membership\/\/MembershipInformation","title":"","description":"","icon":"","disabled":"","published":true},{"id":24614,"text":"Property Owners and Managers","depth":1,"url":"\/\/Membership\/\/PropertyOwnersandManagers","title":"","description":"","icon":"","disabled":"","published":true},{"id":27781,"text":"Greater MN Owners and Managers","depth":1,"url":"\/\/Membership\/\/GreaterMNOwnersandManagers","title":"Greater MN Owners and Managers","description":"","icon":"","disabled":"","published":true},{"id":24630,"text":"Product or Service Vendors","depth":1,"url":"\/\/Membership\/\/ProductorServiceVendors","title":"Product for Service Vendors","description":"","icon":"","disabled":"","published":true},{"id":24635,"text":"PMAC","depth":1,"url":"\/\/Membership\/\/PMAC","title":"PMAC","description":"","icon":"","disabled":"","published":true},{"id":24690,"text":"Volunteer Committees","depth":1,"url":"\/\/Membership\/\/VolunteerCommittees","title":"Volunteer Committees","description":"","icon":"","disabled":"","published":true},{"id":27166,"text":"Manage Membership","depth":1,"url":"\/\/Membership\/\/ManageMembership","title":"Manage Membership","description":"","icon":"","disabled":"","published":true}]},{"id":23201,"text":"Advocacy","depth":0,"url":"\/\/Advocacy","title":"","description":"","icon":"","disabled":"","published":true,"subMenuItems": [{"id":23609,"text":"Representation ","depth":1,"url":"\/\/Advocacy\/\/Representation","title":"","description":"","icon":"","disabled":"","published":true},{"id":23578,"text":"Legislative Action Center","depth":1,"url":"\/\/Advocacy\/\/LegislativeActionCenter","title":"Legislative Action Center","description":"","icon":"","disabled":"","published":true},{"id":25655,"text":"Fair Housing","depth":1,"url":"\/\/Advocacy\/\/FairHousing","title":"Fair Housing","description":"","icon":"","disabled":"","published":true},{"id":25712,"text":"Affordable Housing Strategies","depth":1,"url":"\/\/Advocacy\/\/AffordableHousingStrategies","title":"Affordable Housing Strategies","description":"","icon":"","disabled":"","published":true},{"id":27052,"text":"Multi Housing PAC","depth":1,"url":"\/\/Advocacy\/\/MultiHousingPAC","title":"Multi Housing PAC","description":"Multi Housing Political Action Committee","icon":"","disabled":"","published":true}]},{"id":23200,"text":"Education","depth":0,"url":"\/\/Education","title":"","description":"","icon":"","disabled":"","published":true,"subMenuItems": [{"id":23436,"text":"Education Calendar","depth":1,"url":"\/\/Education\/\/EducationCalendar","title":"Full Calendar","description":"","icon":"","disabled":"","published":true},{"id":25957,"text":"Building Bridges Conference","depth":1,"url":"\/\/Education\/\/BuildingBridgesConference","title":"Building Bridges","description":"Building Bridges Online Conference","icon":"","disabled":"","published":true},{"id":25942,"text":"Shaping the Future","depth":1,"url":"\/\/Education\/\/ShapingtheFuture","title":"Shaping the Future","description":"Shaping the Future Mankato Conference and Trade Show","icon":"","disabled":"","published":true},{"id":23443,"text":"Online Training","depth":1,"url":"\/\/Education\/\/OnlineTraining","title":"Online Training","description":"","icon":"","disabled":"","published":true},{"id":23439,"text":"Greater Minnesota Programs","depth":1,"url":"\/\/Education\/\/GreaterMinnesotaPrograms","title":"Greater Minnesota Programs","description":"","icon":"","disabled":"","published":true},{"id":23435,"text":"Certification Programs","depth":1,"url":"\/\/Education\/\/CertificationPrograms","title":"Certification Programs","description":"","icon":"","disabled":"","published":true},{"id":25410,"text":"Investors Club","depth":1,"url":"\/\/Education\/\/InvestorsClub","title":"Investors Club","description":"","icon":"","disabled":"","published":true},{"id":27509,"text":"Call for Speakers","depth":1,"url":"\/\/Education\/\/CallforSpeakers","title":"Call for Speakers","description":"","icon":"","disabled":"","published":true}]},{"id":23203,"text":"Events","depth":0,"url":"\/\/Events","title":"Events","description":"","icon":"","disabled":"","published":true,"subMenuItems": [{"id":27832,"text":"Annual Events","depth":1,"url":"\/\/Events\/\/AnnualEvents","title":"Annual Events","description":"","icon":"","disabled":"","published":true},{"id":25656,"text":"Events Calendar","depth":1,"url":"\/\/Events\/\/EventsCalendar","title":"Events Calendar","description":"","icon":"","disabled":"","published":true},{"id":24679,"text":"Golf Classic","depth":1,"url":"\/\/Events\/\/GolfClassic","title":"Golf Classic","description":"","icon":"","disabled":"","published":true},{"id":25697,"text":"MADACS","depth":1,"url":"\/\/Events\/\/MADACS","title":"MADACS","description":"","icon":"","disabled":"","published":true},{"id":26994,"text":"LINK Up","depth":1,"url":"\/\/Events\/\/LINKUp","title":"Link Up","description":"","icon":"","disabled":"","published":true},{"id":27734,"text":"Greater Minnesota Events","depth":1,"url":"\/\/Events\/\/GreaterMinnesotaEvents","title":"Greater Minnesota Events","description":"","icon":"","disabled":"","published":true}]},{"id":23209,"text":"Resources","depth":0,"url":"\/\/Resources","title":"Resources","description":"","icon":"","disabled":"","published":true,"subMenuItems": [{"id":27780,"text":"Resource Hub","depth":1,"url":"\/\/Resources\/\/ResourceHub","title":"Resource Hub","description":"","icon":"","disabled":"","published":true},{"id":23206,"text":"Directories","depth":1,"url":"\/\/Resources\/\/Directories","title":"","description":"","icon":"","disabled":"","published":true,"subMenuItems": [{"id":23614,"text":"Buyer's Guide","depth":2,"url":"\/\/Resources\/\/Directories\/\/BuyersGuide","title":"","description":"","icon":"","disabled":"","published":true},{"id":23632,"text":"Fee Management","depth":2,"url":"\/\/Resources\/\/Directories\/\/FeeManagement","title":"","description":"","icon":"","disabled":"","published":true},{"id":23612,"text":"Membership Directory🔒","depth":2,"url":"\/\/Resources\/\/Directories\/\/MembershipDirectory🔒","title":"","description":"","icon":"","disabled":"","published":true}]},{"id":23591,"text":"Online Store","depth":1,"url":"\/\/Resources\/\/OnlineStore","title":"Online Store","description":"","icon":"","disabled":"","published":true,"subMenuItems": [{"id":24626,"text":"Download Rental Documents","depth":2,"url":"\/\/Resources\/\/OnlineStore\/\/DownloadRentalDocuments","title":"Download Rental Documents","description":"","icon":"","disabled":"","published":true},{"id":24695,"text":"Order Blank Documents","depth":2,"url":"\/\/Resources\/\/OnlineStore\/\/OrderBlankDocuments","title":"Order Blank Documents","description":"","icon":"","disabled":"","published":true},{"id":27517,"text":"Survey Bundle","depth":2,"url":"\/\/Resources\/\/OnlineStore\/\/SurveyBundle","title":"Survey Bundle","description":"The survey includes detailed and comprehensive compensation information compiled from 40 member organizations. Twenty-two positions were surveyed at the site and corporate levels and data has been cut and compiled to give you the information you need to make informed salary decisions.\n","icon":"","disabled":"","published":true},{"id":25729,"text":"Operating Expense Survey","depth":2,"url":"\/\/Resources\/\/OnlineStore\/\/OperatingExpenseSurvey","title":"Operating Expense Survey","description":"Detailed information on professionally managed multi-housing units.","icon":"","disabled":"","published":true},{"id":25747,"text":"Compensation and Benefits Survey","depth":2,"url":"\/\/Resources\/\/OnlineStore\/\/CompensationandBenefitsSurvey","title":"Compensation and Benefits Survey","description":"The survey includes detailed and comprehensive compensation information compiled from 40 member organizations. Twenty-two positions were surveyed at the site and corporate levels and data has been cut and compiled to give you the information you need to make informed salary decisions.\n","icon":"","disabled":"","published":true},{"id":25845,"text":"Mailing List","depth":2,"url":"\/\/Resources\/\/OnlineStore\/\/MailingList","title":"List","description":"Member Mailing List","icon":"","disabled":"","published":true}]},{"id":27817,"text":"MHA Merch","depth":1,"url":"\/\/Resources\/\/MHAMerch","title":"MHA Merch","description":"MHA Branded Merchandise","icon":"","disabled":"","published":true},{"id":25710,"text":"Advocate","depth":1,"url":"\/\/Resources\/\/Advocate","title":"Advocate","description":"","icon":"","disabled":"","published":true},{"id":27716,"text":"Greater MN Newsletters","depth":1,"url":"\/\/Resources\/\/GreaterMNNewsletters","title":"Greater MN Newsletters","description":"","icon":"","disabled":"","published":true},{"id":25752,"text":"Advertising Opportunities","depth":1,"url":"\/\/Resources\/\/AdvertisingOpportunities","title":"Advertising Opportunities","description":"","icon":"","disabled":"","published":true},{"id":23204,"text":"Employment Postings","depth":1,"url":"\/\/Resources\/\/EmploymentPostings","title":"Employment Postings","description":"","icon":"","disabled":"","published":true},{"id":23583,"text":"FAQs","depth":1,"url":"\/\/Resources\/\/FAQs","title":"FAQs","description":"","icon":"","disabled":"","published":true},{"id":26824,"text":"Ask Us","depth":1,"url":"\/\/Resources\/\/AskUs","title":"Ask Us","description":"","icon":"","disabled":"","published":true},{"id":25701,"text":"Renter Resources","depth":1,"url":"\/\/Resources\/\/RenterResources","title":"Renter Resources","description":"Renter Resources","icon":"","disabled":"","published":true},{"id":27668,"text":"Industry Insights","depth":1,"url":"\/\/Resources\/\/IndustryInsights","title":"","description":"","icon":"","disabled":"","published":true},{"id":23202,"text":"Media Contacts","depth":1,"url":"\/\/Resources\/\/MediaContacts","title":"Media Contacts","description":"","icon":"","disabled":"","published":true}]}]}" /> </div> <div class="col-lg-2 col-md-2 col-sm-2 col-xs-12"> <label>NodeSelector</label><br /> <input name="dnn$JsonMenu$hfNodeSelector" type="text" id="dnn_JsonMenu_hfNodeSelector" class="hidden" /> </div> <div class="col-lg-2 col-md-2 col-sm-2 col-xs-12"> <label>ExcludeNodes</label><br /> <input name="dnn$JsonMenu$hfExcludeNodes" type="text" id="dnn_JsonMenu_hfExcludeNodes" class="hidden" /> </div> </div> </div> <div class="Mega-Menu-Wrapper"> <div class="Mega-Menu-Container col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING" style="margin: 1em 6.25%; height: 100%; max-height: 455px; min-width: 140px; width: 10%; display: inline-block;"> <div class="Mega-Menu-Top-Left col-lg-4 col-md-4 col-sm-4 col-xs-4 NO-PADDING NO-MARGIN" style="height: 100%; max-height: 455px; width: 100%; min-width: 140px; display: inline-block; overflow-y: auto;"> <!-- Nav tabs --> <ul class="nav nav-tabs tabs-left"> </ul> </div> <div class="Mega-Menu-Top-Right col-lg-8 col-md-8 col-sm-8 col-xs-8 NO-PADDING" style="height: 100%; max-height: 453px; width: 0%; margin-left: -2px; overflow: hidden; display: none; "> <!-- Tab panes --> <div class="tab-content col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN" style="height: 100%;"> </div> </div> <div id="dnn_JsonMenu_btnClose" class="FormButton Close-Menu-Button col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING"><i class="fa Menu-Close-Item" style="float: right;" onclick="closeMegaMenu(this, event);" ontouchend="closeMegaMenu(this, event);"></i></div> </div> </div> <script> function setDepth(data, depth) { try { console.log('setDepth() ...'); $.each(data, function () { try { this.depth = depth; if (this.subMenuItems && this.subMenuItems.length > 0) { var newDepth = depth + 1; setDepth(this.subMenuItems, newDepth); } } catch (ex) { console.log(ex.message); } }); } catch (ex) { console.log(ex.message); } } function setUrl(data, dataType, url) { try { console.log('setUrl() ...'); $.each(data, function () { try { this.url = url + "?" + dataType + "=" + this.id; this.ignoreAutomation = true; if (this.subMenuItems && this.subMenuItems.length > 0) { setUrl(this.subMenuItems, dataType, url); } } catch (ex) { console.log(ex.message); } }); } catch (ex) { console.log(ex.message); } } function initializeJsonMenu(switchMenus) { try { if (switchMenus == null) { switchMenus = true; } try { $('[id*=divNOAHAMSMegaMenu]').hide(); } catch (ex) { console.log(ex.message); } try { $(window).on('click', function () { try { hideMenu(); } catch (ex) { console.log(ex.message); } }); } catch (ex) { console.log(ex.message); } //console.log('initializeJsonMenu() ...'); if (menuBaseTemplate && menuBaseTemplate.toString().trim().length > 0) { $('.hc-offcanvas-nav').remove(); $('.Mega-Menu-Wrapper').html(menuBaseTemplate); } var menuData = JSON.parse($('[id*=hfDataJsonMenu]').val()); var superMenu = menuData.menuItems; jsonMENU = superMenu; parentRoot = jsonMENU; selectedRoot = jsonMENU; menuConversionInitialized = false; menuDesktopInitialized = false; if (switchMenus) { switchMenuModes(); } } catch (ex) { console.log(ex.message); } } var _LastMenuMode = 'DESKTOP'; var setupDateTimeout = null; var menuBaseTemplate = null; function switchMenuModes() { try { //console.log('switchMenuModes() ... ' + _LastMenuMode); if ($(window).width() <= useMobileMenuWidthAt) { if (_LastMenuMode != 'MOBILE') { if (setupDateTimeout) { clearTimeout(setupDateTimeout); } initializeJsonMenu(false); } _LastMenuMode = 'MOBILE'; if (!menuConversionInitialized) { setupDateTimeout = setTimeout(function () { initJSONMenu_MOBILE(parentRoot, { navElement: '.mobile-menu-nav-data', navToggleElement: '.Menu-Navigation > .level-0.first', options: defaultMobileMenuOptions }); }, 1); menuConversionInitialized = true; } // menuDesktopInitialized = false; } else { if (_LastMenuMode != 'DESKTOP') { if (setupDateTimeout) { clearTimeout(setupDateTimeout); } initializeJsonMenu(false); } _LastMenuMode = 'DESKTOP'; if (!menuDesktopInitialized) { setupDateTimeout = setTimeout(function () { initJSONMenu_DESKTOP(parentRoot); }, 1); menuDesktopInitialized = true; } // menuConversionInitialized = false; } } catch (ex) { console.log(ex.message); } } try { //console.log('adding start script for JSONMenu ...'); if (!menuBaseTemplate) { menuBaseTemplate = $('.Mega-Menu-Wrapper').html().toString(); } runStartUpScripts.push(initializeJsonMenu); } catch (ex) { console.log(ex.message); } </script> <!-- ADDING DYNAMIC MENU WITH PLUGIN --> <!-- ADD THESE OPTIONS START COPY AND PASTE HERE --> <div class="mobile-menu-options hidden"> <h4>Choose position</h4> <div class="mobile-menu-actions position"> <div><a href="#" data-demo="{position:'left'}" class="button left active">Left</a> </div> <div><a href="#" data-demo="{position:'right'}" class="button right">Right</a> </div> <div><a href="#" data-demo="{position:'top'}" class="button top">Top</a> </div> <div><a href="#" data-demo="{position:'bottom'}" class="button bottom">Bottom</a> </div> </div> <h4>Levels open</h4> <div class="mobile-menu-actions levels"> <div><a href="#" data-demo="{levelOpen:'overlap', levelSpacing:40}" class="button overlap active">Overlap levels</a> </div> <div><a href="#" data-demo="{levelOpen:'expand', levelSpacing:25}" class="button expand">Expand levels</a> </div> <div><a href="#" data-demo="{levelOpen:false, levelSpacing:25}" class="button unfolded">Unfolded levels</a> </div> </div> <h4>Additional options</h4> <div class="mobile-menu-actions options"> <div> <label> <input type="checkbox" class="closeOnClick" data-demo="{closeOnClick:true}"> <span></span>Close on click </label> </div> <div> <label> <input type="checkbox" class="disableBody" data-demo="{disableBody:true}"> <span></span>Disable body </label> </div> <div> <label> <input type="checkbox" class="pushContent" data-demo="{pushContent: $('body.Content')}"> <span></span>Push content </label> </div> <div> <label> <input type="checkbox" class="navTitle" data-demo="{navTitle: $('[id*=dnn_dnnLogoXS_hypLogo]').clone().html(), levelTitles:true}"> <span></span>Main nav and level titles </label> </div> <div> <label> <input type="checkbox" class="includeCloseAndBack" data-demo="{insertClose:true, insertBack:true}"> <span></span>Close and back buttons </label> </div> </div> <script> var mobileToggle = null; var mobileNavElement = null; var mobileNavPlugin = null; var defaultMobileMenuOptions = { maxWidth: false, customToggle: mobileToggle, navTitle: $('[id*=dnn_dnnLogoXS_hypLogo]').clone().html(), levelTitles: true, pushContent: $('body.Content'), insertClose: 2, closeLevels: false }; // call our plugin const update = (settings) => { try { //console.log('update() ...'); if (mobileNavPlugin.isOpen()) { mobileNavPlugin.on('close.once', function () { mobileNavPlugin.update(settings); mobileNavPlugin.open(); }); mobileNavPlugin.close(); } else { mobileNavPlugin.update(settings); } } catch (ex) { console.log(ex.message); } }; function hcOffCanvasMenuLabel_click(sender, e) { var result = true; try { //console.log('LABEL CLICKED!'); var label = $(sender); var activeElement = label.closest('[url]'); var isNext = label.attr('isNext') || false; if (isNext.toString().toLowerCase() != 'true') { var ignoreAutomation = (activeElement.attr('ignore-hover-automation') || 'not found').toString().trim().toLowerCase(); if (ignoreAutomation == 'not found') { ignoreAutomation = (activeElement.closest('.nav-item').attr('ignore-hover-automation') || 'NOT FOUND').toString().trim().toLowerCase(); } if (activeElement && (ignoreAutomation == 'true')) { window.location = activeElement.attr('url').replace("//", "/"); result = false; } } } catch (ex) { console.log(ex.message); } return result; } function hcOffCanvasMenuNext_click(sender, e) { var result = true; try { //console.log('NEXT CLICKED!'); var next = $(sender) var label = next.parent().find('label'); var activeElement = next.closest('[url]'); label.click(); } catch (ex) { console.log(ex.message); } return result; } function dataSetupComplete_onAfter(options) { try { //console.log('dataSetupComplete_onAfter() ...'); var _defaults = { navElement: '.mobile-menu-nav-data', navToggleElement: '.mobile-menu-toggle', options: defaultMobileMenuOptions }; var settings = $.extend({}, _defaults, options); if (settings && settings.navElement) { settings.navElement = $(settings.navElement); } if (settings && settings.navToggleElement) { settings.navToggleElement = $(settings.navToggleElement); } if (settings && settings.navElement && settings.navElement.length == 0) { settings.navElement = null; } if (settings && settings.navToggleElement && settings.navToggleElement.length == 0) { settings.navToggleElement = null; } if (settings && settings.options && settings.options.length == 0) { settings.options = null; } mobileNavElement = settings.navElement || $('.mobile-menu-nav-data'); if (mobileNavElement) { // MUST HAVE DATA SOURCE mobileToggle = settings.navToggleElement || $('.mobile-menu-toggle'); if (mobileToggle) { // MUST HAVE TOGGLE var dataToUse = settings.options || defaultMobileMenuOptions || {}; mobileNavPlugin = mobileNavElement.hcOffcanvasNav(dataToUse); try { // INITIALIZE DYNAMIC OPTIONS // POSITION $('.mobile-menu-actions.position').find('.left').click() // LEVELS $('.mobile-menu-actions.levels').find('.overlap').click() // OPTIONS $('.mobile-menu-actions.options').find('.closeOnClick').click().change(); $('.mobile-menu-actions.options').find('.disableBody').click().change(); // $('.mobile-menu-actions.options').find('.pushContent').click().change() // DONT TURN ON // $('.mobile-menu-actions.options').find('.navTitle').click().change(); $('.mobile-menu-actions.options').find('.includeCloseAndBack').click().change(); } catch (ex) { console.log(ex.message); } } } // INSURE CLOSE IS FIRST ITEM IN THE LIST try { var parentMenu = $('.hc-offcanvas-nav').find('.nav-close').closest('ul'); var menuCloseItem = $('.hc-offcanvas-nav').find('.nav-close').detach(); parentMenu.prepend(menuCloseItem); } catch (ex) { console.log(ex.message); } try { //console.log('running start mobile JSONMenu initializers (EVENT ITEMS) ...'); // IF NEEDED UNCOMMENT THIS LINE (JSON menu to MobileNav Plugin) jsonMenuToMobileNavEvents({}); } catch (ex) { console.log(ex.message); } } catch (ex) { console.log(ex.message); } } function jsonMenuToMobileNavEvents(options) { try { //console.log('jsonMenuToMobileNavEvents() ...'); var _defaults = {}; var settings = $.extend({}, _defaults, options); // TURN OFF ALL EVENTS WE ASSIGNED IN THE ORIGINAL MENU try { $('.nav-next').parent().off(); } catch (ex) { console.log(ex.message); } try { $('.Menu-Navigation').find('.level-0.first, .level-0.first a').off().on('click touchend', function (sender, e) { try { // alert('mouseover'); var e = e || window.event; e.stopPropagation(); e.preventDefault(); $('.hc-nav-trigger').click(); $('.Mega-Menu-Container').hide(); } catch (ex) { console.log(ex.message); } }); } catch (ex) { console.log(ex.message); } } catch (ex) { console.log(ex.message); } try { $('.Mega-Menu-Container .PLEASE-WAIT').hide() } catch (ex) { console.log(ex.message); } } try { $(window).resize(function () { var setupDateTimeout = setTimeout(function () { switchMenuModes(); }, 1) }); } catch (ex) { console.log(ex.message); } </script> </div> <style> /*@media screen and (max-width : 1024px) { .USE-DNN-VISIBLE-OFFSET > * { margin-left: 80px; width: auto; } .USE-DNN-VISIBLE-OFFSET .hc-offcanvas-nav .nav-container { left: 80px !important; } }*/ </style> <script> <!-- OVERRIDE TO ANY PORTAL CALL (AMS) --> function handleMenu(sender, e) { try { if (!_inProgress) { _inProgress = true; //console.log("0"); e.preventDefault(); e.stopPropagation(); var isMobileResolution = ($(window).width() <= useMobileMenuWidthAt); if (isMobileResolution) { $('.hc-nav-trigger').click(); _inProgress = false; } else { $('[id*=divNOAHAMSMegaMenu]').show('fast').promise().done(function () { _inProgress = false; }); } } } catch (ex) { console.log(ex.message); } try { var dnnVisible = ($('.personalBarContainer iframe:visible').length > 0); $('body').removeClass('USE-DNN-VISIBLE-OFFSET'); $('.hc-offcanvas-nav').removeClass('USE-DNN-VISIBLE-OFFSET'); if (dnnVisible) { $('body').addClass('USE-DNN-VISIBLE-OFFSET'); $('.hc-offcanvas-nav').addClass('USE-DNN-VISIBLE-OFFSET'); } } catch (ex) { console.log(ex.message); } return false; } </script> </div> </div> </div> <!--========== END MAIN NAVIGATION ==========--> </header> <!--========== END HEADER ==========--> <!--========== BODY ==========--> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING homeSection"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING"> <div id="dnn_homeFullWidthTop_Pane" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING"><div class="DnnModule DnnModule-EasyDNNrotator DnnModule-139370"><a name="139370"></a> <div class="DNNContainer_noTitle"> <div id="dnn_ctr139370_ContentPane" class="NO-MARGIN NO-PADDING"><!-- Start_Module_139370 --><div id="dnn_ctr139370_ModuleContent" class="DNNModuleContent ModEasyDNNrotatorC"> <div id="139370_eds_rotatorWrapper" class="eds_rotatorWrapper"><script type="text/javascript">eds3_5_jq(function ($) {$('#EDR_ChameleonSlider_139370').chameleonSlider_2_1({ flowplayer_src: '/DesktopModules/EasyDNNRotator/flowplayer/flowplayer.swf', content_source: '/DesktopModules/EasyDNNRotator/ChameleonData.ashx?enablewebp=false&TabId=23169', container_dimensions: { width:1, height: 0.4,w_as_ratio: true, h_as_ratio: true, height_references_width: true },autoplay: { enable: true, interval: 5000,pause_on_hover: false,autostart_video_playback: false,indicator: {display: false}},arrows: {display: true, auto_hide: true, hide_speed: 50,prev: {position: {vertical: 'top',horizontal: 'left',h_offset: 0,v_offset: 0.45,v_as_ratio: true, h_as_ratio: false}},next: {position: {vertical: 'top',horizontal: 'right',h_offset: 0,v_offset: 0.45,v_as_ratio: true, h_as_ratio: false}}},autoplay_toggle: { display: false},scrollable_boxes: { item_info: {display: true,container: {dimensions: {height: 0.15,width: 0.25,w_as_ratio: true, h_as_ratio: true},resize_to_content: false,show_on_hover: false,position: {vertical: 'bottom',horizontal: 'left',h_offset: 0.15,v_offset: 0.05,v_as_ratio: true, h_as_ratio: true}}}},thumbs: {display: false}, categories: {display: false},pagination: {display: false},social_buttons: {display: false}, main_panel: {display: true, fill_panel: true, top_left_align: false, stretch_small_image: true, drag_navigation: true, dimensions: {width: 1, height: 1,w_as_ratio: true, h_as_ratio: true}, position: {vertical: 'top',horizontal: 'left',h_offset: 0,v_offset: 0,v_as_ratio: false, h_as_ratio: false},transition: { duration: 1500, effects: [{type: 'slide', directions:['left'], force_horizontal: false, force_vertical: false}] }},key_browse: false,redirect_on_click: true,redirect_on_click_target: '_self',lightbox_on_click: false,module_id: 139370});});</script><div id="EDR_ChameleonSlider_139370" class="chameleon_slider sirius"></div> </div> </div><!-- End_Module_139370 --></div> <div class="clear NO-MARGIN NO-PADDING"></div> </div> </div></div> </div> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING"> <div id="dnn_Home_One_Pane" class="col-lg-3 col-md-3 col-sm-6 col-xs-12 NO-PADDING"><div class="DnnModule DnnModule-DNN_HTML DnnModule-139371 DnnVersionableControl"><a name="139371"></a> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING homeSectionBox"> <div id="dnn_ctr139371_ContentPane" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING homeForms"><!-- Start_Module_139371 --><div id="dnn_ctr139371_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr139371_HtmlModule_lblContent"><div class="homeBlocks"> <a href="https://www.mmha.com/store" role="link"> <span class="icon-Forms"></span></a> <div class="blockHeader">Rental Forms & Documents </div> <div class="blockHR"> </div> <div class="blockText">Residential lease agreements, rental documents, surveys & marketing tools. </div> </div></div> </div><!-- End_Module_139371 --></div> </section></div></div> <div id="dnn_Home_Two_Pane" class="col-lg-3 col-md-3 col-sm-6 col-xs-12 NO-PADDING"><div class="DnnModule DnnModule-DNN_HTML DnnModule-139372 DnnVersionableControl"><a name="139372"></a> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING homeSectionBox"> <div id="dnn_ctr139372_ContentPane" class="col-lg-8 col-md-8 col-sm-12 col-xs-12 NO-PADDING homeDirectory"><!-- Start_Module_139372 --><div id="dnn_ctr139372_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr139372_HtmlModule_lblContent"><div class="homeBlocks"> <a href="https://www.mmha.com/Resources/Directories" role="link"> <span class="icon-Directories"><span class="path1"></span><span class="path2"></span><span class="path3"></span><span class="path4"></span><span class="path5"></span><span class="path6"></span><span class="path7"></span><span class="path8"></span><span class="path9"></span></span> </a> <div class="blockHeader">Directories </div> <div class="blockHR"> </div> <div class="blockText">View MHA members, find a vendor,<br>or find a fee management company. </div> </div></div> </div><!-- End_Module_139372 --></div> </section></div></div> <div id="dnn_Home_Three_Pane" class="col-lg-3 col-md-3 col-sm-6 col-xs-12 NO-PADDING"><div class="DnnModule DnnModule-DNN_HTML DnnModule-139373 DnnVersionableControl"><a name="139373"></a> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING homeSectionBox"> <div id="dnn_ctr139373_ContentPane" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING homefaq"><!-- Start_Module_139373 --><div id="dnn_ctr139373_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr139373_HtmlModule_lblContent"><div class="homeBlocks"> <a href="https://www.mmha.com/Resources/Advocate" role="link"> <span class="icon-Advocate"><span class="path1"></span><span class="path2"></span><span class="path3"></span><span class="path4"></span></span></a> <div class="blockHeader">Advocate </div> <div class="blockHR"> </div> <div class="blockText">Stay Informed, and abreast of current<br>affairs in the multi housing industry. </div> </div></div> </div><!-- End_Module_139373 --></div> </section></div></div> <div id="dnn_Home_Four_Pane" class="col-lg-3 col-md-3 col-sm-6 col-xs-12 NO-PADDING"><div class="DnnModule DnnModule-DNN_HTML DnnModule-139374 DnnVersionableControl"><a name="139374"></a> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING homeSectionBox"> <div id="dnn_ctr139374_ContentPane" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING homeEducation"><!-- Start_Module_139374 --><div id="dnn_ctr139374_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr139374_HtmlModule_lblContent"><div class="homeBlocks"> <a href="https://www.mmha.com/Education/Education-Calendar" role="link"> <span class="icon-Education"><span class="path1"></span><span class="path2"></span><span class="path3"></span><span class="path4"></span><span class="path5"></span><span class="path6"></span><span class="path7"></span><span class="path8"></span><span class="path9"></span><span class="path10"></span><span class="path11"></span></span></a> <div class="blockHeader">Education Seminars </div> <div class="blockHR"> </div> <div class="blockText">General Property Management, Fair Housing, Legal, Maintenance, and Supervisor courses. </div> </div></div> </div><!-- End_Module_139374 --></div> </section></div></div> </div> </section> <section class="body col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div class="col-lg-8 col-md-8 col-sm-11 col-xs-11 NO-PADDING"> <!--========== PANES ==========--> <!--========== REQUIRED PANE ==========--> <div class="row Pane"> <div id="dnn_ContentPane" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING"></div> </div> <!--========== MAIN CONTENT AREA ==========--> <div class="row Pane"> <div id="dnn_FullWidth_Pane" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> </div> <!--========== TWO THIRDS (WIDE RIGHT) ==========--> <div class="row Pane"> <div id="dnn_NarrowLeft_Pane" class="col-lg-4 col-md-4 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> <div id="dnn_WideRight_Pane" class="col-lg-8 col-md-8 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> </div> <!--========== TWO THIRDS (WIDE LEFT) ==========--> <div class="row Pane"> <div id="dnn_WideLeft_Pane" class="col-lg-8 col-md-8 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> <div id="dnn_NarrowRight_Pane" class="col-lg-4 col-md-4 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> </div> <!--========== ONE THIRDS ==========--> <div class="row Pane"> <div id="dnn_OneThirdLeft_Pane" class="col-lg-4 col-md-4 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> <div id="dnn_OneThirdCenter_Pane" class="col-lg-4 col-md-4 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> <div id="dnn_OneThirdRight_Pane" class="col-lg-4 col-md-4 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> </div> <!--========== ONE FORTHS ==========--> <div class="row Pane"> <div id="dnn_OneFourthLeft_Pane" class="col-lg-3 col-md-3 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> <div id="dnn_OneFourthLeftCenter_Pane" class="col-lg-3 col-md-3 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> <div id="dnn_OneFourthRightCenter_Pane" class="col-lg-3 col-md-3 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> <div id="dnn_OneFourthRight_Pane" class="col-lg-3 col-md-3 col-sm-12 col-xs-12 NO-PADDING DNNEmptyPane"></div> </div> <!--========== GLASS ==========--> <div class="row Pane Glass-Container"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 Glass Pane NO-PADDING"></div> <div id="dnn_GlassBottom_Pane" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 Glass-Content NO-PADDING"><div class="DnnModule DnnModule-DNN_HTML DnnModule-139368 DnnVersionableControl"><a name="139368"></a> <div class="DNNContainer_noTitle"> <div id="dnn_ctr139368_ContentPane" class="NO-MARGIN NO-PADDING"><!-- Start_Module_139368 --><div id="dnn_ctr139368_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr139368_HtmlModule_lblContent"><p> </p> <h2 style="text-align: center;">Upcoming Events</h2> <p> </p></div> </div><!-- End_Module_139368 --></div> <div class="clear NO-MARGIN NO-PADDING"></div> </div> </div><div class="DnnModule DnnModule-EasyDNNnewsCalendar DnnModule-139369"><a name="139369"></a> <div class="DNNContainer_noTitle"> <div id="dnn_ctr139369_ContentPane" class="NO-MARGIN NO-PADDING"><!-- Start_Module_139369 --><div id="dnn_ctr139369_ModuleContent" class="DNNModuleContent ModEasyDNNnewsCalendarC"> <div class="calendar eds_news_Triumph eds_subCollection_calendar eds_styleSwitchCriteria_module-139369 eds_template_Archive_Default"> <script type="text/javascript"> /*<![CDATA[*/ eds3_5_jq(function($) { $('#dnn_ctr139369_ViewEasyDNNNewsCalendar_upCalendar, #dnn_ctr139369_ViewEasyDNNNewsCalendar_pnlEventArchive').on('mouseenter', 'td.day, > ul > li' , function (event) { var $this = $(this), $tooltip_container = $('> div', $this); if ($tooltip_container.length == 0) return; $(this).qtip({ content: { text: function () { return $tooltip_container.html(); }, title: { button: false } }, position: { my: 'top center', at: 'bottom center', target: 'event', viewport: $(window), adjust: { method: 'shift' } }, show: { ready: true }, hide: false, hide: { delay: 200, fixed: true, effect: function () { $qtip = $(this); $qtip.fadeOut(90, function () { var qtip_api = $qtip.qtip('api'); if (typeof qtip_api == 'object') qtip_api.destroy(); }); } }, style: { classes: 'edn_calendarbox_Triumph', tip: false } }, event); }); }); /*]]>*/</script> <div id="dnn_ctr139369_ViewEasyDNNNewsCalendar_upCalendar"> <div id="dnn_ctr139369_ViewEasyDNNNewsCalendar_pnlCalendarArchive" class="callendar_table_container"> <table id="dnn_ctr139369_ViewEasyDNNNewsCalendar_calDate" class="calendar_table" cellspacing="0" cellpadding="0" border="0" style="border-width:0px;border-style:None;border-collapse:collapse;"> <tr><td colspan="7" style="background-color:Silver;"><table class="month_selection" cellspacing="0" border="0" style="width:100%;border-collapse:collapse;"> <tr><td class="next_prev_months" style="width:15%;"><a href="javascript:__doPostBack('dnn$ctr139369$ViewEasyDNNNewsCalendar$calDate','V9222')" style="color:Black">«</a></td><td align="center" style="width:70%;">May 2025</td><td class="next_prev_months" align="right" style="width:15%;"><a href="javascript:__doPostBack('dnn$ctr139369$ViewEasyDNNNewsCalendar$calDate','V9283')" style="color:Black">»</a></td></tr> </table></td></tr><tr><td class="week_days" align="center">Mon</td><td class="week_days" align="center">Tue</td><td class="week_days" align="center">Wed</td><td class="week_days" align="center">Thu</td><td class="week_days" align="center">Fri</td><td class="week_days" align="center">Sat</td><td class="week_days" align="center">Sun</td></tr><tr><td class="day other_month" align="center" style="width:14%;"><span>28</span></td><td class="day other_month" align="center" style="width:14%;"><span>29</span></td><td class="day other_month" align="center" style="width:14%;"><span>30</span></td><td class="day" align="center" style="width:14%;"><span>1</span></td><td class="day" align="center" style="width:14%;"><span>2</span></td><td class="day" align="center" style="width:14%;"><span>3</span></td><td class="day" align="center" style="width:14%;"><span>4</span></td></tr><tr><td class="day" align="center" style="width:14%;"><span>5</span></td><td class="day" align="center" style="width:14%;"><span>6</span></td><td class="day" align="center" style="width:14%;"><span>7</span></td><td class="day has_events Events EDNcategorycolor-default edn_category_Education_120 edn_category_Events_195 today" align="center" style="width:14%;"><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/8-5-2025">8</a><div style="display: none;"> <div class="title edn_category_Education_120 edn_category_Events_195"> <span> <a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/16-1-2025">5/8/2025 7:30 AM - 3:00 PM</a> </span> </div> <div class="wrapper edn_category_Education_120 edn_category_Events_195"> <div class="article edn_category_Education_120 edn_category_Events_195"> <p class="title"><a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Education/Building-Bridges-Conference" target="_self">Building Bridges Conference & Products Show (Duluth)</a></p> <div class="content"></div> <a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Education/Building-Bridges-Conference" target="_self">Read more</a> </div> </div> </div></td><td class="day" align="center" style="width:14%;"><span>9</span></td><td class="day" align="center" style="width:14%;"><span>10</span></td><td class="day" align="center" style="width:14%;"><span>11</span></td></tr><tr><td class="day" align="center" style="width:14%;"><span>12</span></td><td class="day has_events Investors_Club EDNcategorycolor-default edn_category_Education_120 edn_category_Events_195 edn_category_Investors_Club_130" align="center" style="width:14%;"><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/13-5-2025">13</a><div style="display: none;"> <div class="title edn_category_Education_120 edn_category_Events_195 edn_category_Investors_Club_130"> <span> <a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/16-4-2025">5/13/2025 4:30 PM - 7:30 PM</a> </span> </div> <div class="wrapper edn_category_Education_120 edn_category_Events_195 edn_category_Investors_Club_130"> <div class="article edn_category_Education_120 edn_category_Events_195 edn_category_Investors_Club_130"> <p class="title"><a class="Investors_Club EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3397/Investors-Club-Repair-vs-Replace-Surface-Restoration-and-More" target="_self">Investors Club: Repair vs. Replace: Surface Restoration, and More</a></p> <div class="content"></div> <a class="Investors_Club EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3397/Investors-Club-Repair-vs-Replace-Surface-Restoration-and-More" target="_self">Read more</a> </div> </div> </div></td><td class="day has_events Education EDNcategorycolor-default edn_category_Education_120" align="center" style="width:14%;"><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/14-5-2025">14</a><div style="display: none;"> <div class="title edn_category_Education_120"> <span> <a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/19-11-2024">5/14/2025 9:00 AM - 11:00 AM</a> </span> </div> <div class="wrapper edn_category_Education_120"> <div class="article edn_category_Education_120"> <p class="title"><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3151/Advanced-De-Escalation" target="_self">Advanced De-Escalation</a></p> <div class="content"><p>In Partnership with and Presented by: People Incorporated</p></div> <a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3151/Advanced-De-Escalation" target="_self">Read more</a> </div> </div> </div></td><td class="day" align="center" style="width:14%;"><span>15</span></td><td class="day" align="center" style="width:14%;"><span>16</span></td><td class="day" align="center" style="width:14%;"><span>17</span></td><td class="day" align="center" style="width:14%;"><span>18</span></td></tr><tr><td class="day has_events Education EDNcategorycolor-default edn_category_Education_120" align="center" style="width:14%;"><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/19-5-2025">19</a><div style="display: none;"> <div class="title edn_category_Education_120"> <span> <a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/31-1-2025">5/19/2025 1:00 PM - 4:00 PM</a> </span> </div> <div class="wrapper edn_category_Education_120"> <div class="article edn_category_Education_120"> <p class="title"><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3277/Real-Talk-Real-Results-Leadership-Workshop-SOLD-OUT" target="_self">Real Talk, Real Results: Leadership Workshop - SOLD OUT</a></p> <div class="content"><p>Presented by: Maria Pietroforte, Maria Pietroforte Consulting</p></div> <a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3277/Real-Talk-Real-Results-Leadership-Workshop-SOLD-OUT" target="_self">Read more</a> </div> </div> </div></td><td class="day has_events Events EDNcategorycolor-default edn_category_Education_120 edn_category_Events_195" align="center" style="width:14%;"><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/20-5-2025">20</a><div style="display: none;"> <div class="title edn_category_Education_120 edn_category_Events_195"> <span><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/20-5-2025">5/20/2025</a></span> </div> <div class="wrapper edn_category_Education_120 edn_category_Events_195"> <ul class="article_list"> <li class="event" > <a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3289/In-Person-Basic-Refrigeration-EPA-In-Person-Certification" target="_self">In-Person Basic Refrigeration & EPA In Person Certification</a> <p>(5/20/2025 9:00 AM - 5/21/2025 3:00 PM)</p> </li> <li class="event" > <a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Resources/Industry-Insights" target="_self">Industry Insights</a> <p>(5/20/2025 12:30 PM - 1:30 PM)</p> </li> </ul> </div> </div></td><td class="day has_events Education EDNcategorycolor-default edn_category_Education_120" align="center" style="width:14%;"><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/21-5-2025">21</a><div style="display: none;"> <div class="title edn_category_Education_120"> <span> <a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/1-2-2025">5/20/2025 9:00 AM - 5/21/2025 3:00 PM</a> </span> </div> <div class="wrapper edn_category_Education_120"> <div class="article edn_category_Education_120"> <p class="title"><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3289/In-Person-Basic-Refrigeration-EPA-In-Person-Certification" target="_self">In-Person Basic Refrigeration & EPA In Person Certification</a></p> <div class="content"></div> <a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3289/In-Person-Basic-Refrigeration-EPA-In-Person-Certification" target="_self">Read more</a> </div> </div> </div></td><td class="day" align="center" style="width:14%;"><span>22</span></td><td class="day" align="center" style="width:14%;"><span>23</span></td><td class="day" align="center" style="width:14%;"><span>24</span></td><td class="day" align="center" style="width:14%;"><span>25</span></td></tr><tr><td class="day" align="center" style="width:14%;"><span>26</span></td><td class="day" align="center" style="width:14%;"><span>27</span></td><td class="day" align="center" style="width:14%;"><span>28</span></td><td class="day" align="center" style="width:14%;"><span>29</span></td><td class="day" align="center" style="width:14%;"><span>30</span></td><td class="day" align="center" style="width:14%;"><span>31</span></td><td class="day other_month" align="center" style="width:14%;"><span>1</span></td></tr><tr><td class="day other_month" align="center" style="width:14%;"><span>2</span></td><td class="day other_month" align="center" style="width:14%;"><span>3</span></td><td class="day other_month" align="center" style="width:14%;"><span>4</span></td><td class="day has_events Events EDNcategorycolor-default other_month edn_category_Events_195" align="center" style="width:14%;"><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/5-6-2025">5</a><div style="display: none;"> <div class="title edn_category_Events_195"> <span> <a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/16-1-2025">6/5/2025 8:00 AM - 5:00 PM</a> </span> </div> <div class="wrapper edn_category_Events_195"> <div class="article edn_category_Events_195"> <p class="title"><a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Golf" target="_self">MHA Golf Classic (Majestic Oaks - Ham Lake)</a></p> <div class="content"></div> <a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Golf" target="_self">Read more</a> </div> </div> </div></td><td class="day other_month" align="center" style="width:14%;"><span>6</span></td><td class="day other_month" align="center" style="width:14%;"><span>7</span></td><td class="day other_month" align="center" style="width:14%;"><span>8</span></td></tr> </table> </div> </div> <div id="dnn_ctr139369_ViewEasyDNNNewsCalendar_pnlEventArchive" class="archive_list events"> <h1 id="dnn_ctr139369_ViewEasyDNNNewsCalendar_EventH1" class="edn_module_title"> <span> Upcoming events</span> <a class="rss" href="https://www.mmha.com/Full-Calendar/ctl/RSS/mid/139380/mcat/139369/rsstype/upevents" title="Events RSS"><span>Events RSS</span></a><a class="export" href="/DesktopModules/EasyDNNnews/iCalendar.ashx?portalid=15&sourcemoduleid=139369&moduleid=139380&social=false&userdnnid=0&groupdnnid=0&upcomevents=true" title="iCalendar export"><span>iCalendar export</span></a> </h1> <ul><li><a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Education/Building-Bridges-Conference">Building Bridges Conference & Products Show (Duluth)<span> (5/8/2025 7:30 AM - 3:00 PM)</span></a><div style="display: none;"><div class="title edn_category_Education_120 edn_category_Events_195"> <span><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/16-1-2025">5/8/2025 7:30 AM - 3:00 PM</a></span> </div> <div class="wrapper edn_category_Education_120 edn_category_Events_195"> <div class="article edn_category_Education_120 edn_category_Events_195"> <p class="title"><a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Education/Building-Bridges-Conference" target="_self">Building Bridges Conference & Products Show (Duluth)</a></p> <div class="content"></div> <a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Education/Building-Bridges-Conference" target="_self">Read more</a> </div> </div></div></li><li><a class="Investors_Club EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3397/Investors-Club-Repair-vs-Replace-Surface-Restoration-and-More">Investors Club: Repair vs. Replace: Surface Restoration, and More<span> (5/13/2025 4:30 PM - 7:30 PM)</span></a><div style="display: none;"><div class="title edn_category_Education_120 edn_category_Events_195 edn_category_Investors_Club_130"> <span><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/16-4-2025">5/13/2025 4:30 PM - 7:30 PM</a></span> </div> <div class="wrapper edn_category_Education_120 edn_category_Events_195 edn_category_Investors_Club_130"> <div class="article edn_category_Education_120 edn_category_Events_195 edn_category_Investors_Club_130"> <p class="title"><a class="Investors_Club EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3397/Investors-Club-Repair-vs-Replace-Surface-Restoration-and-More" target="_self">Investors Club: Repair vs. Replace: Surface Restoration, and More</a></p> <div class="content"></div> <a class="Investors_Club EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3397/Investors-Club-Repair-vs-Replace-Surface-Restoration-and-More" target="_self">Read more</a> </div> </div></div></li><li><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3151/Advanced-De-Escalation">Advanced De-Escalation<span> (5/14/2025 9:00 AM - 11:00 AM)</span></a><div style="display: none;"><div class="title edn_category_Education_120"> <span><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/19-11-2024">5/14/2025 9:00 AM - 11:00 AM</a></span> </div> <div class="wrapper edn_category_Education_120"> <div class="article edn_category_Education_120"> <p class="title"><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3151/Advanced-De-Escalation" target="_self">Advanced De-Escalation</a></p> <div class="content"><p>In Partnership with and Presented by: People Incorporated</p></div> <a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3151/Advanced-De-Escalation" target="_self">Read more</a> </div> </div></div></li><li><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3277/Real-Talk-Real-Results-Leadership-Workshop-SOLD-OUT">Real Talk, Real Results: Leadership Workshop - SOLD OUT<span> (5/19/2025 1:00 PM - 4:00 PM)</span></a><div style="display: none;"><div class="title edn_category_Education_120"> <span><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/31-1-2025">5/19/2025 1:00 PM - 4:00 PM</a></span> </div> <div class="wrapper edn_category_Education_120"> <div class="article edn_category_Education_120"> <p class="title"><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3277/Real-Talk-Real-Results-Leadership-Workshop-SOLD-OUT" target="_self">Real Talk, Real Results: Leadership Workshop - SOLD OUT</a></p> <div class="content"><p>Presented by: Maria Pietroforte, Maria Pietroforte Consulting</p></div> <a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3277/Real-Talk-Real-Results-Leadership-Workshop-SOLD-OUT" target="_self">Read more</a> </div> </div></div></li><li><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3289/In-Person-Basic-Refrigeration-EPA-In-Person-Certification">In-Person Basic Refrigeration & EPA In Person Certification<span> (5/20/2025 9:00 AM - 5/21/2025 3:00 PM)</span></a><div style="display: none;"><div class="title edn_category_Education_120"> <span><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/1-2-2025">5/20/2025 9:00 AM - 5/21/2025 3:00 PM</a></span> </div> <div class="wrapper edn_category_Education_120"> <div class="article edn_category_Education_120"> <p class="title"><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3289/In-Person-Basic-Refrigeration-EPA-In-Person-Certification" target="_self">In-Person Basic Refrigeration & EPA In Person Certification</a></p> <div class="content"></div> <a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3289/In-Person-Basic-Refrigeration-EPA-In-Person-Certification" target="_self">Read more</a> </div> </div></div></li><li><a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Resources/Industry-Insights">Industry Insights<span> (5/20/2025 12:30 PM - 1:30 PM)</span></a><div style="display: none;"><div class="title edn_category_Events_195"> <span><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/20-2-2025">5/20/2025 12:30 PM - 1:30 PM</a></span> </div> <div class="wrapper edn_category_Events_195"> <div class="article edn_category_Events_195"> <p class="title"><a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Resources/Industry-Insights" target="_self">Industry Insights</a></p> <div class="content"><p><strong>Join Meeting: </strong>https://us06web.zoom.us/j/89123987443?pwd=63t9OsNljGHKw24bjp6baTaePhDwKC.1</p></div> <a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Resources/Industry-Insights" target="_self">Read more</a> </div> </div></div></li><li><a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Golf">MHA Golf Classic (Majestic Oaks - Ham Lake)<span> (6/5/2025 8:00 AM - 5:00 PM)</span></a><div style="display: none;"><div class="title edn_category_Events_195"> <span><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/16-1-2025">6/5/2025 8:00 AM - 5:00 PM</a></span> </div> <div class="wrapper edn_category_Events_195"> <div class="article edn_category_Events_195"> <p class="title"><a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Golf" target="_self">MHA Golf Classic (Majestic Oaks - Ham Lake)</a></p> <div class="content"></div> <a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Golf" target="_self">Read more</a> </div> </div></div></li><li><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3145/Fair-Housing">Fair Housing<span> (6/10/2025 9:00 AM - 12:00 PM)</span></a><div style="display: none;"><div class="title edn_category_Education_120"> <span><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/19-11-2024">6/10/2025 9:00 AM - 12:00 PM</a></span> </div> <div class="wrapper edn_category_Education_120"> <div class="article edn_category_Education_120"> <p class="title"><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3145/Fair-Housing" target="_self">Fair Housing</a></p> <div class="content"><p>Presented by: Donna Hanbery, Hanbery & Turner, P.A.</p></div> <a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3145/Fair-Housing" target="_self">Read more</a> </div> </div></div></li><li><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3136/Boiler-Exam-Preparation-Class">Boiler Exam Preparation Class<span> (6/17/2025 8:00 AM - 4:30 PM)</span></a><div style="display: none;"><div class="title edn_category_Education_120"> <span><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/11-2-2025">6/17/2025 8:00 AM - 4:30 PM</a></span> </div> <div class="wrapper edn_category_Education_120"> <div class="article edn_category_Education_120"> <p class="title"><a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3136/Boiler-Exam-Preparation-Class" target="_self">Boiler Exam Preparation Class</a></p> <div class="content"><p>Your instructor: Gordon Norby, Minnesota Chief A Boiler Engineer</p> <p>Make sure you’re ready before you take the boiler exam.</p></div> <a class="Education EDNcategorycolor-default" href="https://www.mmha.com/Full-Calendar/ArtMID/139380/ArticleID/3136/Boiler-Exam-Preparation-Class" target="_self">Read more</a> </div> </div></div></li><li><a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Resources/Industry-Insights">Industry Insights<span> (6/17/2025 12:30 PM - 1:30 PM)</span></a><div style="display: none;"><div class="title edn_category_Events_195"> <span><a href="https://www.mmha.com/Full-Calendar/PID/139380/mcat/139369/acat/2/ev/2/ArtDate/20-2-2025">6/17/2025 12:30 PM - 1:30 PM</a></span> </div> <div class="wrapper edn_category_Events_195"> <div class="article edn_category_Events_195"> <p class="title"><a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Resources/Industry-Insights" target="_self">Industry Insights</a></p> <div class="content"><p><strong>Join Meeting: </strong>https://us06web.zoom.us/j/89123987443?pwd=63t9OsNljGHKw24bjp6baTaePhDwKC.1</p></div> <a class="Events EDNcategorycolor-default" href="https://www.mmha.com/Resources/Industry-Insights" target="_self">Read more</a> </div> </div></div></li></ul> </div> </div> </div><!-- End_Module_139369 --></div> <div class="clear NO-MARGIN NO-PADDING"></div> </div> </div><div class="DnnModule DnnModule-DNN_HTML DnnModule-139367 DnnVersionableControl"><a name="139367"></a> <div class="DNNContainer_noTitle"> <div id="dnn_ctr139367_ContentPane" class="NO-MARGIN NO-PADDING"><!-- Start_Module_139367 --><div id="dnn_ctr139367_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr139367_HtmlModule_lblContent"><p style="text-align: center;"><a aria-label="2025 Key Events" class="FormButton" href="/Portals/15/Events/MHA%202025%20Events.pdf?ver=pTg0F40dR1UpJ4B8d9ffCw%3d%3d" role="link" target="_blank" title="2025 Key Events">2025 Key Events</a> </p> <p> </p></div> </div><!-- End_Module_139367 --></div> <div class="clear NO-MARGIN NO-PADDING"></div> </div> </div></div> </div> </div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </section> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING homeGrayMid"> <div class="row Pane"> <div id="dnn_FullWidth2_Pane" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING"><div class="DnnModule DnnModule-DNN_HTML DnnModule-139366 DnnVersionableControl"><a name="139366"></a> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING homeGrayBox"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div id="dnn_ctr139366_ContentPane" class="col-lg-8 col-md-8 col-sm-12 col-xs-12 homeGrayFW"><!-- Start_Module_139366 --><div id="dnn_ctr139366_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr139366_HtmlModule_lblContent"><div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 NO-PADDING"> <h2>The Advocate Magazine</h2> <p>Stay abreast of current affairs in Multi Housing. </p> <p><a aria-label="Stay Informed" class="FormButton" href="/Resources/Advocate" role="link" title="Stay Informed">Stay Informed</a> </p> </div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING"> </div> <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12 NO-PADDING"><a href="/Resources/Advocate"><img alt="AI Image" aria-label="Advocate Magazine" class="homeGrayImg" role="img" src="/portals/15/Images/General Web Images/Advocate.png?ver=LsLCwfbVdz70YpWTaKy-1g%3d%3d" style="height: 513px; width: 400px;" title="AI Image"></a> </div></div> </div><!-- End_Module_139366 --></div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </section> </div></div> </div> </section> <section class="body col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING oldPanes"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div class="col-lg-8 col-md-8 col-sm-11 col-xs-11 NO-PADDING"> <div class="row Pane"> <div id="dnn_HalfPane1" class="col-sm-6 NO-PADDING DNNEmptyPane"></div> <div id="dnn_HalfPane2" class="col-sm-6 NO-PADDING DNNEmptyPane"></div> </div> <!-- /.row --> <div class="row Pane"> <div id="dnn_ThirdPane1" class="col-sm-4 NO-PADDING DNNEmptyPane"></div> <div id="dnn_ThirdPane2" class="col-sm-4 NO-PADDING DNNEmptyPane"></div> <div id="dnn_ThirdPane3" class="col-sm-4 NO-PADDING DNNEmptyPane"></div> </div> <!-- /.row --> <div class="row Pane"> <div id="dnn_QuarterPane1" class="col-sm-6 col-md-3 NO-PADDING DNNEmptyPane"></div> <div id="dnn_QuarterPane2" class="col-sm-6 col-md-3 NO-PADDING DNNEmptyPane"></div> <div id="dnn_QuarterPane3" class="col-sm-6 col-md-3 NO-PADDING DNNEmptyPane"></div> <div id="dnn_QuarterPane4" class="col-sm-6 col-md-3 NO-PADDING DNNEmptyPane"></div> </div> <!-- /.row --> <div class="row Pane"> <div id="dnn_BottomPane" class="col-sm-12 NO-PADDING dnn-cl"><div class="DnnModule DnnModule-DNN_HTML DnnModule-139652 DnnVersionableControl"><a name="139652"></a> <div class="DNNContainer_noTitle"> <div id="dnn_ctr139652_ContentPane" class="NO-MARGIN NO-PADDING"><!-- Start_Module_139652 --><div id="dnn_ctr139652_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr139652_HtmlModule_lblContent"><p> </p> <center> <p><a href="/Resources/Employment-Postings"><img alt="" src="/portals/15/Images/Employment-Postings.png?ver=TVOJLOG8wS8%3d" style="width: 50%; height: 50%;" title="" /></a></p> </center> <p> </p> </div> </div><!-- End_Module_139652 --></div> <div class="clear NO-MARGIN NO-PADDING"></div> </div> </div><div class="DnnModule DnnModule-DNN_HTML DnnModule-137915 DnnVersionableControl"><a name="137915"></a> <div class="DNNContainer_noTitle"> <div id="dnn_ctr137915_ContentPane" class="NO-MARGIN NO-PADDING"><!-- Start_Module_137915 --><div id="dnn_ctr137915_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr137915_HtmlModule_lblContent"><div rel="margin: 0px; padding: 40px;" style="margin: 0px; padding: 40px;"> <h2 style="text-align: center;">Our Office</h2> </div></div> </div><!-- End_Module_137915 --></div> <div class="clear NO-MARGIN NO-PADDING"></div> </div> </div><div class="DnnModule DnnModule-ContentLayout DnnModule-137916 DnnVersionableControl"><a name="137916"></a> <div class="DNNContainer_noTitle"> <div id="dnn_ctr137916_ContentPane" class="NO-MARGIN NO-PADDING"><!-- Start_Module_137916 --><div id="dnn_ctr137916_ModuleContent" class="DNNModuleContent ModContentLayoutC"> <div id="dnn_ctr137916_View_CL_137916" class="layoutContainer container-fluid dnn-cl"> <div id="dnn_ctr137916_View_Row" class="row"> <div id="dnn_79EC_Pane1" class="pane col-lg-6 col-md-6 col-sm-6 col-xs-12"><div class="DnnModule DnnModule-DNN_HTML DnnModule-139364 DnnVersionableControl"><a name="139364"></a> <div class="DNNContainer_noTitle"> <div id="dnn_ctr137916_View_ctr139364_ContentPane" class="NO-MARGIN NO-PADDING"><!-- Start_Module_139364 --><div id="dnn_ctr137916_View_ctr139364_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr137916_View_ctr139364_HtmlModule_lblContent"><div rel="margin: 0px; padding: 10px;" style="margin: 0px; padding: 10px;"> <div class="div { display: flex; justify-content: center; }" style="text-align: center;"><img alt="" src="/portals/15/Images/General Web Images/MHA Office.jpg?ver=ETm2SNBFznkCnJjxu-D_3g%3d%3d" style="width: 100%; height: 100%;" title="" /></div> </div> </div> </div><!-- End_Module_139364 --></div> <div class="clear NO-MARGIN NO-PADDING"></div> </div> </div></div><div id="dnn_79EC_Pane2" class="pane col-lg-6 col-md-6 col-sm-6 col-xs-12"><div class="DnnModule DnnModule-DNN_HTML DnnModule-139365 DnnVersionableControl"><a name="139365"></a> <div class="DNNContainer_noTitle"> <div id="dnn_ctr137916_View_ctr139365_ContentPane" class="NO-MARGIN NO-PADDING"><!-- Start_Module_139365 --><div id="dnn_ctr137916_View_ctr139365_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr137916_View_ctr139365_HtmlModule_lblContent"><div rel="margin: 0px; padding: 10px;" style="margin: 0px; padding: 10px;"> <style type="text/css">.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 9<span id="selection-marker-1" class="redactor-selection-marker"></span>0%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } </style> <div class="embed-container"> <iframe align="right" frameborder="0" scrolling="yes" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d5656.298657859919!2d-93.32629870423933!3d44.85925469901095!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x87f6244b6bd96d73%3A0x979637c136bb7e87!2sMinnesota%20Multi%20Housing%20Association!5e0!3m2!1sen!2sus!4v1715703522850!5m2!1sen!2sus"> </iframe> </div> </div></div> </div><!-- End_Module_139365 --></div> <div class="clear NO-MARGIN NO-PADDING"></div> </div> </div></div></div> </div> </div><!-- End_Module_137916 --></div> <div class="clear NO-MARGIN NO-PADDING"></div> </div> </div></div> </div> <!-- /.row --> </div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </section> <!--========== END BODY ==========--> <!--========== FOOTER ==========--> <footer class="NO-PADDING"> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div id="oldPanesFooter" class="col-lg-8 col-md-8 col-sm-12 col-xs-12"> <div class="col-sm-6"> <div id="dnn_FooterPane1" class="DNNEmptyPane"></div> </div> <div class="col-sm-6"> <div id="dnn_FooterPane2" class="DNNEmptyPane"></div> </div> </div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </section> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div id="socialFooter" class="col-lg-8 col-md-8 col-sm-12 col-xs-12 NO-PADDING socialFooter"> <div id="dnn_footerSec1" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING footerSec1 DNNEmptyPane"></div> </div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </section> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div id="breakLine" class="col-lg-8 col-md-8 col-sm-12 col-xs-12 breakLine"></div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </section> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div id="mainFooter" class="col-lg-8 col-md-8 col-sm-12 col-xs-12 mainFooter"> <div id="dnn_footerSec2" class="col-lg-5 col-md-4 col-sm-12 col-xs-12 NO-PADDING footerSec2"><div class="DnnModule DnnModule-DNN_HTML DnnModule-139363 DnnVersionableControl"><a name="139363"></a> <div class="DNNContainer_noTitle"> <div id="dnn_ctr139363_ContentPane" class="NO-MARGIN NO-PADDING"><!-- Start_Module_139363 --><style> a#dnn_dnnLogoXS_hypLogo { display: none; } </style><div id="dnn_ctr139363_ModuleContent" class="DNNModuleContent ModDNNHTMLC"> <div id="dnn_ctr139363_HtmlModule_lblContent"><div class="footerLogo"> <p><img src="/portals/15/Images/Logos/MHA-Footer-Logo_mod.svg" role="img" aria-label="MHA Member Logo" title="MHA Member Logo"> </p> <p><a href="./" role="link" title="MHA Home" aria-label="<span" id="selection-marker-1" class="redactor-selection-marker"></a><a href="/Join" class="FormButton footerBtn" role="link" aria-label="Become A Member">Become A Member</a> </p> </div></div> </div><!-- End_Module_139363 --></div> <div class="clear NO-MARGIN NO-PADDING"></div> </div> </div></div> <div id="footerSec3" class="col-lg-2 col-md-3 col-sm-12 col-xs-12 NO-PADDING footerSec3"></div> <div class="footerAddress col-lg-5 col-md-4 col-sm-12 col-xs-12 NO-PADDING footerSec4"> <a href="https://maps.app.goo.gl/DccJLWTZN5Li5wz56" role="link" aria-label="MHA" title="MHA" target="_blank"> <address>7900 Xerxes Avenue South, Suite 170 Bloomington, MN 55431</address> </a> <p> <a href="tel:+1952-854-8500" role="link" aria-label="Call MHA" title="Call MHA" class="footerPhone">(952) 854-8500</a><a href="mailto:[email protected]" role="link" aria-label="Email MHA" class="footerEmail" title="Email MHA">[email protected]</a> </p> <p> Monday-Thursday: 8:00 AM - 4:30 PM | Friday: 8:00 AM - 12:00 PM<br> Saturday & Sunday: Closed | Closures will be posted in advance. </p> <div id="copyright" class="copyright"> <span id="dnn_dnnCopy_lblCopyright" class="SkinObject">© 2025 MHA</span> | <a id="dnn_dnnTerms_hypTerms" class="SkinObject" rel="nofollow" href="https://www.mmha.com/Terms">Terms & Conditions</a> | <a id="dnn_dnnPrivacy_hypPrivacy" class="SkinObject" rel="nofollow" href="https://www.mmha.com/Privacy">Privacy Statement</a> </div> </div> </div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </section> <section class="col-lg-12 col-md-12 col-sm-12 col-xs-12 NO-PADDING NO-MARGIN"> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> <div id="breakLine2" class="col-lg-8 col-md-8 col-sm-12 col-xs-12 breakLine2 footerBtm"></div> <div class="col-lg-2 col-md-2 col-sm-1 col-xs-1 NO-PADDING NO-MARGIN"></div> </section> </footer> <!--========== END FOOTER ==========--> <!--=========== MESSAGE DIALOG ===========--> <div class="modal fade" id="messageModal" tabindex="-1" role="dialog" aria-labelledby="messageModalTitle"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title" id="messageModalTitle">Message Title goes here</h4> </div> <div class="modal-body"> <div id="messageModalBody"> Message goes here... </div> </div> </div> </div> </div> <!--=========== SEARCH DIALOG ===========--> <div class="modal fade" id="searchModal" tabindex="-1" role="dialog" aria-labelledby="searchModalTitle"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title" id="searchModalTitle">Site Search</h4> </div> <div class="modal-body"> <div class="input-group"> <input id="siteSearchInput" type="text" class="form-control" placeholder="What would you like to find?"> <span class="input-group-btn"> <button id="siteSearchButton" class="btn btn-primary" type="button" aria-label="Search"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button> </span> </div> </div> </div> </div> </div> <!--=========== SEARCH JS ===========--> <script src="/Portals/15/skins/mha-2024/_Default-Skin/js/custom.js"></script> <script> function showSiteMessage(title, message) { try { if (!title) { title = ''; } if (!message) { message = ''; } if (title === '') { $('[id=messageModal]').find('.modal-header').hide(); } else { $('[id=messageModal]').find('.modal-header').show(); } if (message === '') { $('[id=messageModal]').find('.modal-body').hide(); } else { $('[id=messageModal]').find('.modal-body').show(); } if (title !== '' || message !== '') { $('[id=messageModal]').find('[id=messageModalTitle]').html(title); $('[id=messageModal]').find('[id=messageModalBody]').html(message); $('[id=messageModal]').modal('show'); } } catch (ex) { console.log(ex.message); } } </script> <!--=========== END MESSAGE DIALOG ===========--> <div class="postback-spinner modal-spinner" style="display: none;"> <i class="fal fa-spinner fa-spin fa-3x fa-fw"></i> <span class="sr-only">Loading...</span> </div> <style> @media screen and (min-width : 0px) and (max-width : 991.99px) { .Mega-Menu-Container { background: transparent !important; border: none !important; max-height: 50px !important; min-width: 50px !important; width: 100% !important; margin: 0 !important; max-width: 100% !important; height: 50px !important; top: -1em; } .Mega-Menu-Container:hover { min-width: 50px !important; right: 0; position: relative; float: right; } } </style> <script> try { addLoadEvent(loadSkinScripts); } catch (ex) { console.log(ex.message); } </script> <input name="ScrollTop" type="hidden" id="ScrollTop" /> <input name="__dnnVariable" type="hidden" id="__dnnVariable" autocomplete="off" value="`{`trackLinks`:`false`,`__scdoff`:`1`,`sf_siteRoot`:`/`,`sf_tabId`:`23169`,`evoq_TabId`:`23169`,`evoq_PageLanguage`:`en-US`,`evoq_ContentItemId`:`-1`,`evoq_UrlReferrer`:``,`evoq_UrlPath`:`https%3a%2f%2fwww.mmha.com%2f`,`evoq_UrlQuery`:`%3fTabId%3d23169%26language%3den-US`,`evoq_ContentItemReferrer`:`-1`,`evoq_PersonalizedUrlReferrer`:`-1`,`evoq_DisableAnalytics`:`False`}" /> <input name="__RequestVerificationToken" type="hidden" value="jRcfSi-dKhPFE1HB_Kd0O8Sx6BrAfanBytkI5eP1VpFYuoKTejrNfT__QQkIeYSFkIQMUA2" /> <!-- 2018.2.710.45 --><div id="RadAjaxManagerSU"> <span id="RadAjaxManager" style="display:none;"></span> </div><div id="RadWindowManager" style="display:none;"> <div id="RadWindowManager_alerttemplate" style="display:none;"> <div class="rwDialogPopup radalert"> <div class="rwDialogText"> {1} </div> <div> <a onclick="$find('{0}').close(true);" class="rwPopupButton" href="javascript:void(0);"> <span class="rwOuterSpan"> <span class="rwInnerSpan">##LOC[OK]##</span> </span> </a> </div> </div> </div><div id="RadWindowManager_prompttemplate" style="display:none;"> <div class="rwDialogPopup radprompt"> <div class="rwDialogText"> {1} </div> <div> <script type="text/javascript"> function RadWindowprompt_detectenter(id, ev, input) { if (!ev) ev = window.event; if (ev.keyCode == 13) { var but = input.parentNode.parentNode.getElementsByTagName("A")[0]; if (but) { if (but.click) but.click(); else if (but.onclick) { but.focus(); var click = but.onclick; but.onclick = null; if (click) click.call(but); } } return false; } else return true; } </script> <input title="Enter Value" onkeydown="return RadWindowprompt_detectenter('{0}', event, this);" type="text" class="rwDialogInput" value="{2}" /> </div> <div> <a onclick="$find('{0}').close(this.parentNode.parentNode.getElementsByTagName('input')[0].value);" class="rwPopupButton" href="javascript:void(0);" ><span class="rwOuterSpan"><span class="rwInnerSpan">##LOC[OK]##</span></span></a> <a onclick="$find('{0}').close(null);" class="rwPopupButton" href="javascript:void(0);"><span class="rwOuterSpan"><span class="rwInnerSpan">##LOC[Cancel]##</span></span></a> </div> </div> </div><div id="RadWindowManager_confirmtemplate" style="display:none;"> <div class="rwDialogPopup radconfirm"> <div class="rwDialogText"> {1} </div> <div> <a onclick="$find('{0}').close(true);" class="rwPopupButton" href="javascript:void(0);" ><span class="rwOuterSpan"><span class="rwInnerSpan">##LOC[OK]##</span></span></a> <a onclick="$find('{0}').close(false);" class="rwPopupButton" href="javascript:void(0);"><span class="rwOuterSpan"><span class="rwInnerSpan">##LOC[Cancel]##</span></span></a> </div> </div> </div><input id="RadWindowManager_ClientState" name="RadWindowManager_ClientState" type="hidden" /> </div><a id="bAjax" href="javascript:__doPostBack('bAjax','')" style="display:inline-block;color:White;background-color:White;border-color:White;border-style:None;height:0px;display:none;"></a> <script type="text/javascript"> //<![CDATA[ Sys.Application.add_init(function() { $create(Telerik.Web.UI.RadAjaxManager, {"_updatePanels":"","ajaxSettings":[],"clientEvents":{OnRequestStart:"OnRequestStart",OnResponseEnd:"onResponseEnd"},"defaultLoadingPanelID":"","enableAJAX":true,"enableHistory":false,"links":[],"styles":[],"uniqueID":"RadAjaxManager","updatePanelsRenderMode":1}, null, null, $get("RadAjaxManager")); }); Sys.Application.add_init(function() { $create(Telerik.Web.UI.RadWindowManager, {"clientStateFieldID":"RadWindowManager_ClientState","formID":"Form","iconUrl":"","minimizeIconUrl":"","name":"RadWindowManager","reloadOnShow":true,"skin":"Default","windowControls":"[]"}, null, null, $get("RadWindowManager")); }); //]]> </script> </form> <!--CDF(Javascript|/js/dnncore.js?cdv=1142|DnnBodyProvider|100)--><!--CDF(Css|/Portals/15/MHA-Hero.css?cdv=1142|DnnPageHeaderProvider|100)--><!--CDF(Javascript|/js/dnn.modalpopup.js?cdv=1142|DnnBodyProvider|50)--><!--CDF(Css|/Resources/Shared/stylesheets/dnndefault/7.0.0/default.css?cdv=1142|DnnPageHeaderProvider|5)--><!--CDF(Css|/Portals/15/skins/mha-2024/skin.css?cdv=1142|DnnPageHeaderProvider|15)--><!--CDF(Css|/Portals/15/containers/mha-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/containers/mha-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/containers/mha-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/containers/mha-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/containers/mha-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/containers/mha-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/containers/mha-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/Containers/MHA-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/containers/mha-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/containers/mha-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/containers/mha-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/Containers/MHA-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/Containers/MHA-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/Containers/MHA-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/Containers/MHA-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/containers/mha-2024/container.css?cdv=1142|DnnPageHeaderProvider|25)--><!--CDF(Css|/Portals/15/portal.css?cdv=1142|DnnPageHeaderProvider|35)--><!--CDF(Css|/Portals/15/skins/mha-2024/NOAH/ToolTip.NOAH.css?cdv=1142|DnnPageHeaderProvider|100)--><!--CDF(Css|/Portals/15/skins/mha-2024/NOAH/ToolTip.NOAH.css?cdv=1142|DnnPageHeaderProvider|100)--><!--CDF(Css|/Portals/15/skins/mha-2024/NOAH/ToolTip.NOAH.css?cdv=1142|DnnPageHeaderProvider|100)--><!--CDF(Css|/Portals/15/skins/mha-2024/NOAH/ToolTip.NOAH.css?cdv=1142|DnnPageHeaderProvider|100)--><!--CDF(Css|/Portals/15/skins/mha-2024/NOAH/ToolTip.NOAH.css?cdv=1142|DnnPageHeaderProvider|100)--><!--CDF(Javascript|/js/dnn.js?cdv=1142|DnnBodyProvider|12)--><!--CDF(Javascript|/js/dnn.servicesframework.js?cdv=1142|DnnBodyProvider|100)--><!--CDF(Css|/Portals/15/skins/mha-2024/MenuNavigation/main-nav.css?cdv=1142|DnnPageHeaderProvider|100)--><!--CDF(Javascript|/DesktopModules/EasyDNNRotator/static/eds_jquery/eds_jq.js?cdv=1142|DnnPageHeaderProvider|5)--><!--CDF(Css|/DesktopModules/EasyDNNRotator/flowplayer/skin/minimalist.css?cdv=1142|DnnPageHeaderProvider|100)--><!--CDF(Css|/DesktopModules/EasyDNNRotator/controls/chameleonrotator/static/common/base.css?cdv=1142|DnnPageHeaderProvider|101)--><!--CDF(Css|/DesktopModules/EasyDNNRotator/controls/chameleonrotator/static/themes/sirius/sirius.css?cdv=1142|DnnPageHeaderProvider|102)--><!--CDF(Javascript|/DesktopModules/EasyDNNRotator/js/jquery.mousewheel.min.js?cdv=1142|DnnBodyProvider|100)--><!--CDF(Javascript|/DesktopModules/EasyDNNRotator/controls/chameleonrotator/static/js/eds2_2.tinyscrollbar.min.js?cdv=1142|DnnBodyProvider|101)--><!--CDF(Javascript|/DesktopModules/EasyDNNRotator/flowplayer/flowplayer_2.2.min.js?cdv=1142|DnnBodyProvider|102)--><!--CDF(Javascript|/DesktopModules/EasyDNNRotator/controls/chameleonrotator/static/js/eds2_2.chameleonSlider_2.1.min.js?cdv=1142|DnnBodyProvider|103)--><!--CDF(Css|/DesktopModules/EasyDNNNews/Templates/_default/Triumph/Triumph.css?cdv=1142|DnnPageHeaderProvider|16)--><!--CDF(Javascript|/DesktopModules/EasyDNNNews/static/qtip/jquery.qtip_2.2.min.js?cdv=1142|DnnBodyProvider|100)--><!--CDF(Css|/DesktopModules/DnnCorp/ContentLayout/Css/bootstrap.min.css?cdv=1142|DnnPageHeaderProvider|100)--><!--CDF(Javascript|/Resources/libraries/jQuery-UI/01_12_01/jquery-ui.js?cdv=1142|DnnPageHeaderProvider|10)--><!--CDF(Javascript|/Resources/libraries/jQuery/03_05_01/jquery.js?cdv=1142|DnnPageHeaderProvider|5)--><!--CDF(Javascript|/Resources/libraries/jQuery-Migrate/03_02_00/jquery-migrate.js?cdv=1142|DnnPageHeaderProvider|6)--> </body> </html>