ibp-max 1.2.2 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/areamap.css +2 -2
  2. package/areamap.js +2 -2
  3. package/fileupload.css +2 -0
  4. package/fileupload.js +2 -0
  5. package/index.css +2 -4
  6. package/index.html +1 -1
  7. package/index.js +2 -3
  8. package/lib.js +2 -0
  9. package/onesearch.js +2 -2
  10. package/package.json +1 -1
  11. package/privacypolicy.js +2 -0
  12. package/translator.js +2 -0
  13. package/0c3174a883da84b248b3.gif +0 -0
  14. package/1d4377e337a155cd6700.svg +0 -238
  15. package/1d876c9791c9e53553de.svg +0 -9
  16. package/3306427311f302ee74ab.svg +0 -15
  17. package/41a2c5da51f5543663a7.woff +0 -0
  18. package/4ba5d1c33635b0e73093.ttf +0 -0
  19. package/6aa0c52f188dc4b825d0.gif +0 -0
  20. package/749973ba090f02a3c9bb.png +0 -0
  21. package/78b0cd31d094f5d28568.eot +0 -0
  22. package/7f01b07148f205f6e825.png +0 -0
  23. package/agorafont.css +0 -2
  24. package/agorafont.css.map +0 -1
  25. package/agorafont.js +0 -2
  26. package/agorafont.js.map +0 -1
  27. package/areamap.css.map +0 -1
  28. package/areamap.js.map +0 -1
  29. package/b231b62df6ad72b806a6.png +0 -0
  30. package/homeflash.css +0 -2
  31. package/homeflash.css.map +0 -1
  32. package/homeflash.js +0 -3
  33. package/homeflash.js.LICENSE.txt +0 -14
  34. package/homeflash.js.map +0 -1
  35. package/index.css.map +0 -1
  36. package/index.js.LICENSE.txt +0 -16
  37. package/index.js.map +0 -1
  38. package/onesearch.js.map +0 -1
  39. package/owlcarousel.css +0 -2
  40. package/owlcarousel.css.map +0 -1
  41. package/owlcarousel.js +0 -2
  42. package/owlcarousel.js.map +0 -1
  43. package/royalslider.css +0 -2
  44. package/royalslider.css.map +0 -1
  45. package/royalslider.js +0 -2
  46. package/royalslider.js.map +0 -1
  47. package/webbuilder.css +0 -2
  48. package/webbuilder.css.map +0 -1
  49. package/webbuilder.js +0 -2
  50. package/webbuilder.js.map +0 -1
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack:///../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/AgoraMenu.js","webpack:///../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/AjaxScroller.js","webpack:///../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/Contact1.1.js","webpack:///../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/Utility.js","webpack:///../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/jquery2.1.1.js","webpack:///../IdcGlobal.IBP.Web/js/common.js","webpack:///../IdcGlobal.IBP.Web/js/material.js","webpack:///../IdcGlobal.IBP.Web/js/mdl-selectfield.js","webpack:///../IdcGlobal.IBP.Web/js/tinycolor.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/make namespace object","webpack:///./Index.ts"],"sourcesContent":["$(function () {\r\n var $topNAvigation = $('header .mdl-layout__header-row nav,.aga-l-nav');\r\n _setHamburberMenu($topNAvigation);\r\n $(window).resize(function () { _setHamburberMenu($topNAvigation); });\r\n});\r\n\r\nfunction _setHamburberMenu($this) {\r\n $this.removeAttr('data-menu-count');\r\n $this.find('ul li.more').css('display', 'inline-block');\r\n var _availableWidth = $this.outerWidth();\r\n var _computedWidth = 0, _nodeCount = 0;\r\n $this.children('ul').children('li:not(.more)').each(function () {\r\n var $self = $(this);\r\n _computedWidth += $self.outerWidth();\r\n if (_computedWidth > (_availableWidth - $this.find('ul li.more').outerWidth())) {\r\n $this.attr('data-menu-count', _nodeCount);\r\n return;\r\n }\r\n _nodeCount++;\r\n });\r\n if (_nodeCount >= ($this.children('ul').children('li:not(.more)').length)) $this.find('ul li.more').hide();\r\n\r\n}","(function ($) {\r\n\r\n //Attach this new method to jQuery\r\n $.fn.extend({\r\n\r\n //This is where you write your plugin's name\r\n AjaxScroller: function (options) {\r\n\r\n //Set the default values, use comma to separate the settings, example:\r\n var _defaults = {\r\n PreviousBtn: '',\r\n NextBtn: '',\r\n SearchBtn: '',\r\n NextBtnTextFormat: '',\r\n NextBtnOnLoadingHtml: '',\r\n ServiceUrl: '',\r\n DataJson: null,\r\n TemplateId: null,\r\n TemplateResetAttributes: null,\r\n Params: '',\r\n PageCount: -1,\r\n PageNumber: 1,\r\n ItemsPerShow: 1,\r\n FullAjax: false,\r\n AutoScroll: false,\r\n AutoScrollSpeed: 0,\r\n Transition: 'FadeIn', /* FadeIn, Append */\r\n ResultType: 'json', /* json,html */\r\n EnableCache: true,\r\n DisableShowIfNotNull: false,\r\n OnlyShowFirstPage: false,\r\n BeforePrevious: null,\r\n AfterPrevious: null,\r\n BeforeNext: null,\r\n AfterNext: null,\r\n ValidateBeforeLoad: null,\r\n BeforeLoad: null,\r\n AfterLoad: null,\r\n AfterInvoke: null,\r\n AfterResultInvoke: null\r\n }\r\n\r\n var _options = $.extend(_defaults, options);\r\n\r\n var _preBtn = null;\r\n var _nxtBtn = null;\r\n var _template = null;\r\n var _scroller = null;\r\n\r\n var _resposeCache = {};\r\n\r\n var _ResultCount = -1;\r\n var _PageCount = -1;\r\n var _PageNumber = 1;\r\n var _PageStartIndex = -1;\r\n var _PageEndIndex = -1;\r\n\r\n var _request = null;\r\n var _this = null;\r\n\r\n //Iterate over the current set of matched elements\r\n return this.each(function () {\r\n Init($(this));\r\n });\r\n\r\n function Init(obj) {\r\n _PageCount = _options.PageCount;\r\n\r\n // Initiating controls and template\r\n _preBtn = $('#' + _options.PreviousBtn);\r\n _nxtBtn = $('#' + _options.NextBtn);\r\n _schBtn = $('#' + _options.SearchBtn);\r\n\r\n _scroller = $(obj);\r\n\r\n if (_options.TemplateId == null || _options.TemplateId == undefined || _options.TemplateId == '') {\r\n _template = $($(_scroller).find('*[tmpl=\"AjaxScrollerTemplate\"]:first'), obj);\r\n } else {\r\n _template = $('#' + _options.TemplateId);\r\n }\r\n\r\n // Activating Previous Button\r\n $(_preBtn).unbind(\"click\");\r\n $(_preBtn).attr({\r\n href: 'javascript:void(0);'\r\n }).click(function () {\r\n LoadPrevious();\r\n });\r\n\r\n // Activating Next Button\r\n $(_nxtBtn).unbind(\"click\");\r\n $(_nxtBtn).attr({\r\n href: 'javascript:void(0);'\r\n }).click(function () {\r\n LoadNext();\r\n });\r\n\r\n // Activating Search Button\r\n $(_schBtn).unbind(\"click\");\r\n $(_schBtn).attr({\r\n href: 'javascript:void(0);'\r\n }).click(function () {\r\n _scroller.html('');\r\n _options.Params = $(_schBtn).attr('data-urlQuery');\r\n _options.PageNumber = 1;\r\n Bind();\r\n });\r\n\r\n ShowHideControls(_options);\r\n\r\n if (_options.FullAjax) {\r\n Bind();\r\n }\r\n if (_options.AutoScroll) setTimeout(function () { LoadNext(); }, _options.AutoScrollSpeed);\r\n }\r\n\r\n function ShowHideControls(optn) {\r\n if (optn == null) {\r\n if (_PageNumber >= _PageCount) _PageNumber = 1;\r\n } else {\r\n if (optn.PageNumber == 1) $(_preBtn).hide(); else $(_preBtn).show();\r\n if (optn.PageNumber >= optn.PageCount) $(_nxtBtn).hide(); else $(_nxtBtn).show();\r\n }\r\n }\r\n\r\n function Clear() {\r\n if (_options.ResultType == 'json') {\r\n $(_scroller).find('*[tmpl=\"AjaxScrollerTemplate\"]').remove();\r\n }\r\n else {\r\n $(_scroller).html('');\r\n }\r\n }\r\n\r\n function ShowItems(html, data) {\r\n if (_options.AfterResultInvoke) {\r\n _options.AfterResultInvoke(_options, data);\r\n }\r\n\r\n if (_options.AfterHtmlResultInvoke) {\r\n _options.AfterHtmlResultInvoke(_options, data, html);\r\n }\r\n\r\n if (_options.OnlyShowFirstPage && _options.PageNumber > 1) {\r\n return;\r\n }\r\n\r\n var _htmlTpml = $('<div></div>').append(html);\r\n $(_htmlTpml).find('*[tmplLoader=\"false\"]').each(function () { $(this).show(); });\r\n $(_htmlTpml).find('*[tmplLoader=\"true\"]').each(function () { $(this).hide(); });\r\n\r\n if (_options.Transition == 'FadeIn') {\r\n $(_scroller).fadeOut('slow', function () {\r\n Clear();\r\n $(_scroller).append($(_htmlTpml).html());\r\n $(_scroller).fadeIn('slow', function () {\r\n if (_options.AfterLoad) {\r\n _options.AfterLoad(_options, data);\r\n }\r\n });\r\n });\r\n }\r\n else if (_options.Transition == 'Append') {\r\n $(_scroller).append($(_htmlTpml).html());\r\n if (_options.AfterLoad) {\r\n _options.AfterLoad(_options, data);\r\n }\r\n }\r\n\r\n if (data != null && data != undefined && data != '' && \r\n _options.NextBtnTextFormat != null && _options.NextBtnTextFormat != undefined && _options.NextBtnTextFormat != '') {\r\n var _iBalCount = data.ResultCount - (data.PageNumber * data.PageSize);\r\n $(_nxtBtn).html(_options.NextBtnTextFormat.replace('{BALCOUNT}', _iBalCount));\r\n }\r\n \r\n\r\n ShowHideControls(data);\r\n }\r\n\r\n function LoadPrevious() {\r\n if (_options.BeforePrevious != null) _options.BeforePrevious(_options);\r\n\r\n if (parseInt(_options.PageNumber) == 1) _options.PageNumber = _PageCount + 1;\r\n if (parseInt(_options.PageNumber) == -1) _options.PageNumber = 2;\r\n\r\n _options.PageNumber--;\r\n Bind();\r\n\r\n if (_options.AfterPrevious != null) _options.AfterPrevious(_options);\r\n }\r\n\r\n function LoadNext() {\r\n if (_options.BeforeNext != null) _options.BeforeNext(_options);\r\n\r\n if (parseInt(_options.PageNumber) == parseInt(_PageCount)) _options.PageNumber = 0;\r\n if (parseInt(_options.PageNumber) == -1) _options.PageNumber = 0;\r\n\r\n _options.PageNumber++;\r\n\r\n if (_options.NextBtnOnLoadingHtml != '') $(_nxtBtn).html(_options.NextBtnOnLoadingHtml);\r\n\r\n Bind();\r\n\r\n if (_options.AutoScroll) setTimeout(function () { LoadNext(); }, _options.AutoScrollSpeed);\r\n\r\n if (_options.AfterNext != null) _options.AfterNext(_options);\r\n }\r\n\r\n function Bind() {\r\n $(_scroller).addClass('AgoraAjaxScrollerIsLoading');\r\n if (_options.BeforeLoad != null) _options.BeforeLoad();\r\n if (_options.ValidateBeforeLoad != null && _options.ValidateBeforeLoad() == true) return;\r\n\r\n if (_options.EnableCache) {\r\n var _cacheKey = _options.Params + '&pageSize=' + _options.ItemsPerShow + '&pageNum=' + _options.PageNumber;\r\n if (_resposeCache[_cacheKey]) {\r\n ShowItems(_resposeCache[_cacheKey]);\r\n return;\r\n }\r\n }\r\n\r\n if (_options.DataJson != null) {\r\n //applyTemplate(_options.DataJson);\r\n applyTemplate(_options.DataJson);\r\n return;\r\n }\r\n\r\n _request = $.ajax({\r\n type: 'POST',\r\n url: _options.ServiceUrl,\r\n data: _options.Params + '&pageSize=' + _options.ItemsPerShow + '&pageNum=' + _options.PageNumber,\r\n dataType: 'json',\r\n success: function (data) {\r\n\r\n //applyTemplate(_options.DataJson);\r\n var _responseHTML = applyTemplate(data);\r\n \r\n if (_options.EnableCache) { _resposeCache[_cacheKey] = _responseHTML; }\r\n\r\n if (_options.EnableCache) { ShowItems(_resposeCache[_cacheKey], data); } else { ShowItems(_responseHTML, data); }\r\n },\r\n statusCode: {\r\n 404: function () {\r\n console.log('Service (agoraGet) not found!');\r\n }\r\n }\r\n });\r\n\r\n if (_options.AfterInvoke != null) _options.AfterInvoke(_request);\r\n $(_scroller).removeClass('AgoraAjaxScrollerIsLoading');\r\n }\r\n\r\n function applyTemplate(data) {\r\n var _tmpl = $('<div></div>').append($(_template).clone());\r\n var _responseHTML = '';\r\n var _templateResetAttributes = _options.TemplateResetAttributes != null ? _options.TemplateResetAttributes.split(',') : [];\r\n for (i = 0; i < _templateResetAttributes.length && $(_tmpl).first() != null && $(_tmpl).first() != undefined; i++) {\r\n $(_tmpl).first().removeAttr(_templateResetAttributes[i]);\r\n }\r\n if (_options.ResultType == 'json') {\r\n\r\n if (data.Items != undefined && data.Items.length != undefined && data.Items.length > 0) {\r\n $.each(data.Items, function (i, item) {\r\n var _tmpValue = '';\r\n $(_tmpl).find('*[tmplValId]').each(function () {\r\n \r\n //reset the css\r\n if (_options.DisableShowIfNotNull) { $(this).css(\"display\", \"\"); }\r\n\r\n if ($(this).attr(\"title\") != undefined && $(this).attr(\"title-tmpl\") != undefined && $(this).attr(\"title-tmpl\").indexOf('FORMAT::') > -1) {\r\n var _valueFormat = $(this).attr(\"title-tmpl\").replace('FORMAT::', '');\r\n var _valueIds = _valueFormat.split('{');\r\n for (i = 0; i < _valueIds.length; i++) {\r\n if (_valueIds[i].indexOf('}') > -1) {\r\n var _valueId = _valueIds[i].substring(0, _valueIds[i].indexOf('}'));\r\n _tempValue = GetJsonValue(item, _valueId);\r\n console.log(item);\r\n _valueFormat = _valueFormat.replace('{' + _valueId + '}', _tempValue);\r\n }\r\n }\r\n $(this).attr('title', _valueFormat);\r\n }\r\n\r\n if ($(this).attr(\"tmplValType\") == undefined || $(this).attr(\"tmplValType\") == '') {\r\n _tempValue = GetJsonValue(item, $(this).attr(\"tmplValId\"));\r\n\r\n if (_tempValue != '' && _tempValue != null && _tempValue != undefined) {\r\n $(this).html(_tempValue);\r\n if (!_options.DisableShowIfNotNull) $(this).show();\r\n }\r\n else {\r\n $(this).hide();\r\n }\r\n }\r\n else if ($(this).attr(\"tmplValId\").indexOf('FORMAT::') > -1) {\r\n var _valueFormat = $(this).attr(\"tmplValId\").replace('FORMAT::', '');\r\n var _valueIds = _valueFormat.split('{');\r\n var _anyValueAvailable = false;\r\n for (i = 0; i < _valueIds.length; i++) {\r\n if (_valueIds[i].indexOf('}') > -1) {\r\n var _valueId = _valueIds[i].substring(0, _valueIds[i].indexOf('}'));\r\n _tempValue = GetJsonValue(item, _valueId);\r\n _valueFormat = _valueFormat.replace('{' + _valueId + '}', _tempValue);\r\n\r\n if (_tempValue != '' && _tempValue != null && _tempValue != undefined) {\r\n _anyValueAvailable = true;\r\n }\r\n }\r\n }\r\n\r\n if (!_anyValueAvailable) {\r\n $(this).hide();\r\n } else {\r\n if (!_options.DisableShowIfNotNull) $(this).show();\r\n }\r\n\r\n if ($(this).attr(\"tmplValType\").indexOf('html') > -1) $(this).html(_valueFormat);\r\n else $(this).attr($(this).attr(\"tmplValType\"), _valueFormat);\r\n }\r\n else {\r\n _tempValue = GetJsonValue(item, $(this).attr(\"tmplValId\"));\r\n if (_tempValue != '' && _tempValue != null && _tempValue != undefined) {\r\n if ($(this).attr(\"tmplValType\").indexOf('html') > -1) $(this).html((($(this).attr('tmplExtra')) ? $(this).attr('tmplExtra') : '') + GetJsonValue(item, $(this).attr(\"tmplValId\")) + (($(this).attr('tmplExtraAfter')) ? $(this).attr('tmplExtraAfter') : ''));\r\n else $(this).attr($(this).attr(\"tmplValType\"), (($(this).attr('tmplExtra')) ? $(this).attr('tmplExtra') : '') + GetJsonValue(item, $(this).attr(\"tmplValId\")) + (($(this).attr('tmplExtraAfter')) ? $(this).attr('tmplExtraAfter') : ''));\r\n if (!_options.DisableShowIfNotNull) $(this).show();\r\n }\r\n else {\r\n $(this).hide();\r\n }\r\n }\r\n });\r\n\r\n\r\n if (_options.OnBindItem != null) _options.OnBindItem($(_tmpl).html());\r\n\r\n _responseHTML += $(_tmpl).html();\r\n });\r\n }\r\n else {\r\n _responseHTML = '';\r\n _ResultCount = data.ResultCount;\r\n _PageCount = data.PageCount;\r\n _PageNumber = data.PageNumber;\r\n _PageStartIndex = data.PageStartIndex;\r\n _PageEndIndex = data.PageEndIndex;\r\n }\r\n\r\n _ResultCount = data.ResultCount;\r\n _PageCount = data.PageCount;\r\n _PageStartIndex = data.PageStartIndex;\r\n _PageEndIndex = data.PageEndIndex;\r\n _options.ItemsPerShow = data.PageSize;\r\n _options.PageNumber = data.PageNumber;\r\n }\r\n else {// if(_options.ResultType == 'html')\r\n _responseHTML = data;\r\n _ResultCount = ($(data).find('span[tmplDataItem=\"ResultCount\"]').html() ? parseInt($(data).find('span[tmplDataItem=\"ResultCount\"]').html()) : 0);\r\n _PageCount = ($(data).find('span[tmplDataItem=\"PageCount\"]').html() ? parseInt($(data).find('span[tmplDataItem=\"PageCount\"]').html()) : 0);\r\n _PageNumber = ($(data).find('span[tmplDataItem=\"PageNumber\"]').html() ? parseInt($(data).find('span[tmplDataItem=\"PageNumber\"]').html()) : 0);\r\n _PageStartIndex = ($(data).find('span[tmplDataItem=\"PageStartIndex\"]').html() ? parseInt($(data).find('span[tmplDataItem=\"PageStartIndex\"]').html()) : 0);\r\n _PageEndIndex = ($(data).find('span[tmplDataItem=\"PageEndIndex\"]').html() ? parseInt($(data).find('span[tmplDataItem=\"PageEndIndex\"]').html()) : 0);\r\n }\r\n return _responseHTML;\r\n }\r\n\r\n this.SetDataJson = function (data) {\r\n _options.DataJson = data;\r\n if (_options.DataJson != null)\r\n applyTemplate(_options.DataJson);\r\n };\r\n\r\n function GetJsonValue(obj, attribute) {\r\n if (attribute.indexOf('.') > -1) {\r\n attributes = attribute.split('.');\r\n if (attributes.length == 2) {\r\n return obj[attributes[0]][attributes[1]];\r\n }\r\n else if (attributes.length == 3) {\r\n return obj[attributes[0]][attributes[1]][attributes[2]];\r\n }\r\n else if (attributes.length == 4) {\r\n return obj[attributes[0]][attributes[1]][attributes[2]][attributes[3]];\r\n }\r\n else if (attributes.length == 5) {\r\n return obj[attributes[0]][attributes[1]][attributes[2]][attributes[3]][attributes[4]];\r\n }\r\n }\r\n else {\r\n return obj[attribute];\r\n }\r\n }\r\n }\r\n });\r\n})(jQuery);","$(document).ready(function () {\r\n if (location.hash == \"#SignUp\") {\r\n OpenPopup();\r\n }\r\n});\r\n\r\nfunction SignUp(containerId, accessUrl, accessUrlViewMode, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraAccess.ashx?action=SignUp',\r\n data: ({ contact: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess != null) if(onSuccess(response.Contact)) return;\r\n if (!isNullOrEmpty(accessUrl) && isNullOrEmpty(accessUrlViewMode)) {\r\n document.location.replace(accessUrl);\r\n //location.reload(true);\r\n } else if (!isNullOrEmpty(accessUrl) && !isNullOrEmpty(accessUrlViewMode) && accessUrlViewMode == 'popup') {\r\n UpdateUserArea(response.UserAreaHtml);\r\n $('#PERFORM_ACTION_TRIGGER').attr('href', accessUrl);\r\n ClosePopup();\r\n OpenPopup();\r\n } else if (isNullOrEmpty(accessUrl) && !isNullOrEmpty(accessUrlViewMode) && accessUrlViewMode == 'stay') {\r\n UpdateUserArea(response.UserAreaHtml);\r\n ClosePopup();\r\n } else {\r\n ClosePopup();\r\n location.replace(((isMultiLingual() ? '/' + getLocale() : '')) + '/dashboard/default.aspx?mode=signUp');\r\n }\r\n $('body').removeClass('restricted-listing');\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid Data. Please retry!');\r\n else onError(10, 'Invalid Data. Please retry!');\r\n break;\r\n case 11: // Duplicate\r\n if (onError == null) alert('The email address you entered is already registered. Please sign in to your existing account or click \"Forgot Password\" for help.');\r\n else onError(11, 'The email address you entered is already registered. Please sign in to your existing account or click \"Forgot Password\" for help.');\r\n break;\r\n case 204:\r\n ShowAlert('SMS Gateway email addresses, which send email as text messages, are not permitted. Please enter a standard email address.', 2000, 'alert_box', null);\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraAccess) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction SignIn(containerId, accessUrl, accessUrlViewMode, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraAccess.ashx?action=SignIn',\r\n data: ({ contact: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess != null) onSuccess(response.Contact);\r\n if (!isNullOrEmpty(accessUrl) && isNullOrEmpty(accessUrlViewMode)) {\r\n document.location.replace(accessUrl);\r\n } else if (!isNullOrEmpty(accessUrl) && !isNullOrEmpty(accessUrlViewMode) && accessUrlViewMode == 'popup') {\r\n UpdateUserArea(response.UserAreaHtml);\r\n $('#PERFORM_ACTION_TRIGGER').attr('href', accessUrl);\r\n ClosePopup();\r\n OpenPopup();\r\n } else if (isNullOrEmpty(accessUrl) && !isNullOrEmpty(accessUrlViewMode) && accessUrlViewMode == 'stay') {\r\n UpdateUserArea(response.UserAreaHtml);\r\n ClosePopup();\r\n } else {\r\n ClosePopup();\r\n location.replace(((isMultiLingual() ? '/' + getLocale() : '')) + '/dashboard/default.aspx?mode=signIn');\r\n }\r\n $('body').removeClass('restricted-listing');\r\n break;\r\n case 401:\r\n if (onError == null) alert('Invalid email address or password. Please try again!');\r\n else onError(401, 'Invalid email address or password. Please try again!');\r\n break;\r\n case 302:\r\n if (!isNullOrEmpty(response.Url)) {\r\n location.href = response.Url;\r\n }\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid email address or password. Please try again!');\r\n else onError(10, 'Invalid email address or password. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraAccess) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction SaveSearch(containerId, accessUrl, accessUrlViewMode, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraAccess.ashx?action=SaveSearch',\r\n data: ({ demand: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('You have successfully saved the search');\r\n else onSuccess(100, 'You have successfully saved the search');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid email address or password. Please try again!');\r\n else onError(10, 'Invalid email address or password. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraAccess) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction RequestInfo(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraRequestInfo.ashx',\r\n data: ({ WebRequest: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('Your request has been submitted successfully');\r\n else onSuccess(100, 'Your request has been submitted successfully');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraRequestInfo) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction NeighborhoodReport(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraNeighborhoodReport.ashx',\r\n data: ({ WebRequest: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('Your Neighborhood Report request has been submitted. A report will be emailed to you within the next 24 business hours.');\r\n else onSuccess(100, 'Your Neighborhood Report request has been submitted. A report will be emailed to you within the next 24 business hours.');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraNeighborhoodReport) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction ContactMortgageSpecialist(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraContactMortgageSpecialist.ashx',\r\n data: ({ WebRequest: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('Thank you for your request. A Mortgage Consultant will contact you shortly.');\r\n else onSuccess(100, 'Thank you for your request. A Mortgage Consultant will contact you shortly.');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (ContactMortgageSpecialist) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\n\r\nfunction RequestShowing(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraRequestShowing.ashx',\r\n data: ({ WebRequest: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('Your request has been submitted successfully');\r\n else onSuccess(100, 'Your request has been submitted successfully');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraRequestShowing) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction TextListing(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraTextListing.ashx',\r\n data: ({ WebRequest: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('Your request has been submitted successfully');\r\n else onSuccess(100, 'Your request has been submitted successfully');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraTextListing) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction EmailListing(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraEmailListing.ashx',\r\n data: ({ WebRequest: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('The property details has been sent successfully');\r\n else onSuccess(100, 'The property details has been sent successfully');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraEmailListing) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction ContactUs(containerId, onValidate, onSuccess, onError, contactType) {\r\n var $form = $('#' + containerId);\r\n var _formXml = GetFormXml($form);\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraContactUs.ashx',\r\n data: ({ WebRequest: _formXml, ContactType: contactType }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('Your request has been submitted successfully');\r\n else onSuccess(100, 'Your request has been submitted successfully');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 401: function () {\r\n try {\r\n $form.find('[data-captcha-reload]').trigger('click');\r\n } catch (e) { }\r\n },\r\n 404: function () {\r\n alert('Service (agoraContactUs) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\n\r\nfunction SellAHome(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraSellAHome.ashx',\r\n data: ({ WebRequest: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('Your request has been submitted successfully');\r\n else onSuccess(100, 'Your request has been submitted successfully');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraContactUs) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction MaintenanceService(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/MaintenanceService.ashx',\r\n data: ({ WebRequest: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('Your request has been submitted successfully');\r\n else onSuccess(100, 'Your request has been submitted successfully');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraContactUs) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction OrderReloc(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraOrderReloc.ashx',\r\n data: ({ WebRequest: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('Your request has been submitted successfully');\r\n else onSuccess(100, 'Your request has been submitted successfully');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraOrderReloc) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\n\r\n\r\nfunction ForgotPassword(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraForgotPassword.ashx',\r\n data: ({ Contact: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('Please check your email shortly for instructions on resetting your password.');\r\n else onSuccess(100, 'Please check your email shortly for instructions on resetting your password.');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('An account with that email address cannot be found. Please try again.');\r\n else onError(10, 'An account with that email address cannot be found. Please try again.');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (ForgotPassword) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\n\r\nfunction CompanyNewsLetter(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraCompanyNewsLetter.ashx',\r\n data: ({ WebRequest: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('You have registered for newsletter successfully');\r\n else onSuccess(100, 'You have registered for newsletter successfully');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraEmailListing) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\n\r\nfunction EmailFriend(containerId, onValidate, onSuccess, onError) {\r\n var _formXml = GetFormXml($('#' + containerId));\r\n\r\n // Checking whether the required field validation is succcess\r\n if (_formXml == null) return;\r\n\r\n // Checking whether the custom validation is success\r\n if (onValidate) {\r\n if (!onValidate(_formXml)) return;\r\n }\r\n\r\n // Checking credentials using Ajax\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraEmailFriend.ashx',\r\n data: ({ WebRequest: _formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (onSuccess == null) alert('The details has been sent successfully');\r\n else onSuccess(100, 'The details has been sent successfully');\r\n ClosePopup();\r\n break;\r\n case 1: // Connection Error\r\n if (onError == null) alert('Unable to connect to Database!');\r\n else onError(1, 'Please enter a valid Password');\r\n break;\r\n case 2: // Execute Error\r\n if (onError == null) alert('Query execution failure!');\r\n else onError(2, 'Query execution failure!');\r\n break;\r\n case 9: // Custom Error\r\n if (onError == null) alert(response.Message);\r\n else onError(11, response.Message);\r\n break;\r\n case 10: // Invalid\r\n if (onError == null) alert('Invalid input parameters. Please try again!');\r\n else onError(10, 'Invalid input parameters. Please try again!');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraEmailListing) not found!');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction UpdateUserArea(html) {\r\n $('#DIV_USER_AREA').html(html);\r\n}\r\n\r\nfunction PerformAction(action, queryString) {\r\n var _accessUrl = '';\r\n var _accessFireWall = ((isMultiLingual() ? '/' + getLocale() : '')) + '/dashboard/Access.aspx';\r\n\r\n if (action != 'SignUp' && action != 'SignIn' && action != 'MarketTrends') {\r\n if (!IsSignedIn()) {\r\n _accessUrl = _accessFireWall + '?view=popup&accessUrl=' + escape('/dashboard/' + action + '.aspx');\r\n if (!isNullOrEmpty(queryString)) _accessUrl += '?' + escape(queryString);\r\n } else {\r\n _accessUrl = ((isMultiLingual() ? '/' + getLocale() : '')) + '/dashboard/' + action + '.aspx';\r\n if (!isNullOrEmpty(queryString)) _accessUrl += '?' + queryString;\r\n }\r\n } else if (action == 'MarketTrends') {\r\n _accessUrl = '/dashboard/MarketTrends.aspx?' + queryString;\r\n } else {\r\n _accessUrl = _accessFireWall;\r\n if (!isNullOrEmpty(queryString)) _accessUrl += '?' + queryString;\r\n }\r\n\r\n $('#PERFORM_ACTION_TRIGGER').attr('href', _accessUrl);\r\n $('#PERFORM_ACTION_TRIGGER').trigger('click');\r\n}\r\n\r\nfunction IsSignedIn() {\r\n if (isNullOrEmpty($('#CONTACT_GUID'))) return false;\r\n if (isNullOrEmpty($('#CONTACT_GUID').val())) return false;\r\n if ($('#CONTACT_GUID').val().length != 36) return false;\r\n return true;\r\n}\r\n\r\nfunction ContactOffice(email) {\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraContactOffice.ashx',\r\n data: ({\r\n Name: $(\"#textname\").val(),\r\n Email: $(\"#txtEmail\").val(),\r\n ToEmail: email,\r\n Subject: $(\"#textsubject\").val(),\r\n comment: $(\"#textmsg\").val()\r\n }),\r\n dataType: 'text',\r\n success: function (response) {\r\n if (response == \"100\") {\r\n alert('Your request has been submitted successfully');\r\n ClosePopup();\r\n }\r\n },\r\n error: function (response) {\r\n if (onError == null) alert('Unknown Error. Please try later!');\r\n else onError(99, 'Unknown Error. Please try later');\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraContactUs) not found!');\r\n }\r\n }\r\n });\r\n}","function GetFormXml(container) {\r\n // This is an auto generated field to block script/programs to submit form automatically. \r\n //console.log(\"Element Length:\" + $(container).find($('input[id^=\"txtFaxInfo\"]')).length);\r\n if ($(container).find($('input[id^=\"txtFaxInfo\"]')).length > 0 && $(container).find($('input[id^=\"txtFaxInfo\"]')).val() != '') return null;\r\n\r\n var _entityXml = [];\r\n var _tempXml = '';\r\n var _tempValue = '';\r\n var _tempLabel = '';\r\n var _isValidated = true;\r\n\r\n $(container).find('*[FormNode=\"true\"]').each(function () {\r\n _tempValue = '';\r\n\r\n if ($(this).attr('type') == 'checkbox') {\r\n var _delimiter = '';\r\n try {\r\n if ($(container).find('input[type=\"checkbox\"][name=\"' + $(this).attr('name') + '\"]:checked').length > 1) _delimiter = ';';\r\n } catch (err) { }\r\n $(container).find('input[type=\"checkbox\"][name=\"' + $(this).attr('name') + '\"]:checked').each(function () {\r\n _tempValue = _tempValue + $(this).val() + _delimiter;\r\n });\r\n } else if ($(this).attr('type') == 'radio') {\r\n if ($(this).is(':checked')) {\r\n _tempValue = $(this).val();\r\n }\r\n } else if ($(this).attr('captcha')) {\r\n try {\r\n var _captcha = '';\r\n var $captcha = $(this).closest('.captcha').find('[captcha-value]');\r\n _captcha = '<CaptchaValidator ID=\"' + $captcha.attr('captcha-id') + '\">' + $(this).val() + '</CaptchaValidator>';\r\n if (MD5($(this).val()).toLowerCase() != $captcha.attr('captcha-value').toLowerCase()) {\r\n _isValidated = false;\r\n alert($(this).attr('FormMessage'));\r\n return false;\r\n }\r\n _entityXml[\"Captcha\"] = _captcha;\r\n } catch (e) { _isValidated = false; alert(e); return false; }\r\n } else {\r\n _tempValue = $(this).val();\r\n }\r\n\r\n if (isNullOrEmpty(_tempValue)) {\r\n if ($(this).attr('Required') == 'true' || $(this).attr('Required') == 'required') {\r\n _isValidated = false;\r\n alert($(this).attr('FormMessage'));\r\n return false;\r\n }\r\n } else {\r\n if ($(this).attr('FormType') != '') {\r\n if ($(this).attr('FormType') == 'Email' && !isValidEmail(_tempValue)) {\r\n _isValidated = false;\r\n alert($(this).attr('FormMessage'));\r\n return false;\r\n }\r\n }\r\n\r\n if (!isNullOrEmpty($(this).attr('MinLength'))) {\r\n if (parseInt($(this).attr('MinLength')) > _tempValue.length) {\r\n _isValidated = false;\r\n alert($(this).attr('FormMessage'));\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (isNullOrEmpty($(this).attr('Entity'))) return;\r\n if (isNullOrEmpty($(this).attr('Node'))) return;\r\n\r\n _tempXml = _entityXml[$(this).attr('Entity')];\r\n if (isNullOrEmpty(_tempXml)) _entityXml[$(this).attr('Entity')] = '';\r\n\r\n if (!isNullOrEmpty(_tempValue)) {\r\n _tempValue = _tempValue.trim();\r\n if (!isNullOrEmpty($(this).attr('label'))) _tempLabel = ' label=\"' + $(this).attr('label') + '\" '; else _tempLabel = '';\r\n _tempXml = '<' + $(this).attr('Node') + _tempLabel + '>' + ($(this).attr('data-agora-type') != 'xml' ? '<![CDATA[' + _tempValue + ']]>' : _tempValue) + '</' + $(this).attr('Node') + '>';\r\n _entityXml[$(this).attr('Entity')] += _tempXml;\r\n }\r\n });\r\n\r\n if (!_isValidated) return null;\r\n\r\n // Object.keys is not available on IE10, so we need to explicitly declare the function (By Jo)\r\n if (!Object.keys) {\r\n Object.keys = (function () {\r\n 'use strict';\r\n var hasOwnProperty = Object.prototype.hasOwnProperty,\r\n hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'),\r\n dontEnums = [\r\n 'toString',\r\n 'toLocaleString',\r\n 'valueOf',\r\n 'hasOwnProperty',\r\n 'isPrototypeOf',\r\n 'propertyIsEnumerable',\r\n 'constructor'\r\n ],\r\n dontEnumsLength = dontEnums.length;\r\n\r\n return function (obj) {\r\n if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {\r\n throw new TypeError('Object.keys called on non-object');\r\n }\r\n\r\n var result = [], prop, i;\r\n\r\n for (prop in obj) {\r\n if (hasOwnProperty.call(obj, prop)) {\r\n result.push(prop);\r\n }\r\n }\r\n\r\n if (hasDontEnumBug) {\r\n for (i = 0; i < dontEnumsLength; i++) {\r\n if (hasOwnProperty.call(obj, dontEnums[i])) {\r\n result.push(dontEnums[i]);\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n }());\r\n }\r\n // end of Object.keys declaration for IE10\r\n\r\n\r\n var _formXml = '<d>';\r\n for (p = 0; p < Object.keys(_entityXml).length; p++) {\r\n _formXml += '<' + Object.keys(_entityXml)[p] + '>' + _entityXml[Object.keys(_entityXml)[p]] + '</' + Object.keys(_entityXml)[p] + '>';\r\n }\r\n _formXml += '</d>';\r\n\r\n return escape(_formXml);\r\n}\r\n\r\nfunction composeUrlQuery(options) {\r\n //console.log('Started ...');\r\n if (options == null)\r\n return '';\r\n var urlQuery = '';\r\n var _urlQueryTraverse = new Object();\r\n\r\n var $controls = $(options.select).add($(options.select).find('[urlidentifier]'));\r\n if (options.nonselect != undefined && options.nonselect != null)\r\n $controls = $($controls).not(options.nonselect);\r\n\r\n var $traversedControls = $();\r\n //console.log('Controls fetch started ...');\r\n $($controls).each(function () {\r\n var _queryData = _getQueryDataForField(this, $controls, $traversedControls);\r\n //console.log('QD:' + JSON.stringify(_queryData));\r\n _addToQueryObject(_queryData, _urlQueryTraverse);\r\n });\r\n //console.log('Controls fetch completed ...');\r\n urlQuery = _getUrlQueryFromQueryObject(_urlQueryTraverse);\r\n\r\n if (options.additional != undefined && options.additional != null)\r\n return options.additional(urlQuery);\r\n\r\n return urlQuery;\r\n\r\n function _addToQueryObject(queryData, urlQueryTraverse) {\r\n if (queryData == null) return;\r\n if (queryData instanceof Array) {\r\n for (var key in queryData) {\r\n _addQueryDataToQueryObject(queryData[key], urlQueryTraverse);\r\n }\r\n } else {\r\n _addQueryDataToQueryObject(queryData, urlQueryTraverse);\r\n }\r\n }\r\n\r\n function _addQueryDataToQueryObject(queryData, urlQueryTraverse) {\r\n if (queryData == null) return;\r\n if (urlQueryTraverse[queryData.UrlIdentifier] == null) {\r\n urlQueryTraverse[queryData.UrlIdentifier] = new Array();\r\n }\r\n urlQueryTraverse[queryData.UrlIdentifier].push(queryData);\r\n }\r\n\r\n function _getUrlQueryFromQueryObject(urlQueryTraverse) {\r\n var _urlquery = '';\r\n for (var key in urlQueryTraverse) {\r\n var _isValueOnly = (key.toLowerCase() == '{$value}');\r\n var _valueSeperator = _isValueOnly ? '/' : ';';\r\n var _valueString = '';\r\n var MinMaxObject = null;\r\n for (var subKey in urlQueryTraverse[key]) {\r\n if (urlQueryTraverse[key][subKey].Operation.toLowerCase() == 'min' || urlQueryTraverse[key][subKey].Operation.toLowerCase() == 'max') {\r\n if (MinMaxObject == null) MinMaxObject = { Min: 0, Max: 0 };\r\n if (urlQueryTraverse[key][subKey].Operation.toLowerCase() == 'min') MinMaxObject.Min = urlQueryTraverse[key][subKey].Value;\r\n if (urlQueryTraverse[key][subKey].Operation.toLowerCase() == 'max') MinMaxObject.Max = urlQueryTraverse[key][subKey].Value;\r\n } else if (urlQueryTraverse[key][subKey].Operation.toLowerCase() == 'thes') {\r\n _valueString = urlQueryTraverse[key][subKey].Value.toString().replace(/[^0-9A-z\\\\.]/g, ';');\r\n //.replace(/;+/g, ';')\r\n } else {\r\n _valueString += urlQueryTraverse[key][subKey].Value.toString() + (urlQueryTraverse[key].length > 1 && urlQueryTraverse[key].length - 1 > subKey ? _valueSeperator : '');\r\n }\r\n }\r\n if (MinMaxObject != null) {\r\n if (_isValueOnly)\r\n _urlquery = '/' + MinMaxObject.Min + (MinMaxObject.Max != 0 ? ('-' + MinMaxObject.Max) : '') + _urlquery;\r\n else\r\n _urlquery += '/' + key + '-' + MinMaxObject.Min + (MinMaxObject.Max != 0 ? ('-' + MinMaxObject.Max) : '');\r\n }\r\n else {\r\n if (_isValueOnly)\r\n _urlquery = '/' + _valueString + _urlquery;\r\n else\r\n _urlquery += '/' + key + '-' + _valueString;\r\n\r\n }\r\n }\r\n return _urlquery;\r\n }\r\n\r\n function _getQueryDataForOneSearch(sender, controls, traversedControls) {\r\n\r\n var _queryDataForOneSearch = new Array();\r\n $(sender).parent().find('[onesearchidentifier]').each(function () {\r\n var _queryData = _getQueryDataValueForField(this);\r\n if (_queryData != null)\r\n _queryDataForOneSearch.push(_queryData);\r\n });\r\n if (_queryDataForOneSearch.length == 0 || _checkOneSearchIsMultiSelect(sender))\r\n if (_isNotNullOrEmpty(sender)) {\r\n var _oneSearchTextSearch = _getQueryDataValueForField(sender);\r\n return _oneSearchTextSearch;\r\n }\r\n return _queryDataForOneSearch;\r\n }\r\n\r\n function _checkOneSearchIsMultiSelect(sender) {\r\n return sender != null && $(sender).attr('multiselectboxid') != undefined && $(sender).attr('multiselectboxid') != \"\";\r\n }\r\n\r\n function _getQueryDataForField(sender, controls, traversedControls) {\r\n if ($(sender).attr(\"onesearchname\") != null) {\r\n return _getQueryDataForOneSearch(sender, controls, traversedControls);\r\n } else {\r\n try {\r\n if ($(traversedControls).find(sender).length > 0)\r\n return null;\r\n traversedControls = traversedControls.add(sender);\r\n return _getQueryDataValueForField(sender);\r\n } catch (e) { console.log('Error For Field'); }\r\n }\r\n return null;\r\n }\r\n\r\n function _getQueryDataValueForField(sender) {\r\n try {\r\n if (!_isNotNullOrEmpty(sender))\r\n return null;\r\n } catch (e) {\r\n console.log('Error For Field Value Check:' + $(sender).attr(\"type\"));\r\n }\r\n try {\r\n return { UrlIdentifier: ($(sender).attr('urlidentifier') != null ? $(sender).attr('urlidentifier') : $(sender).attr('onesearchidentifier')), Value: _getValue(sender), Operation: ($(sender).attr('operation') != null ? $(sender).attr('operation') : '') };\r\n } catch (e) {\r\n console.log('Error For Field Value:' + $(sender).prop(\"tagName\"));\r\n }\r\n return null;\r\n }\r\n\r\n function _getValue(sender) {\r\n var _value = $(sender).val();\r\n var _isOneSearch = typeof ($(sender).attr('onesearchidentifier')) != 'undefined';\r\n if (typeof (_value) == 'object') {\r\n var _values = '';\r\n for (var key in _value) {\r\n if (_value[key] != '')\r\n _values += (_values == '' ? '' : ';') + _value[key].replace(/\\-/g, '_').replace(/\\//g, '!').replace(/\\,/g, '@').replace(/\\&/, '$').replace(/\\#/g, '%23');\r\n }\r\n return _values;\r\n } else {\r\n if ($(sender).attr('urlidentifier') != null && $(sender).attr(\"urlidentifier\") == 'price') {\r\n return _value.replace(/\\,/g, '').replace(/\\-/g, '_').replace(/\\//g, '!').replace(/\\&/, '$').replace(/\\@/g, '').replace(/\\#/g, '%23');\r\n } else {\r\n if (_isOneSearch) {\r\n return _value.replace(/\\,/g, '@').replace(/\\-/g, '_').replace(/\\//g, '!').replace(/\\&/, '$').replace(/\\#/g, '%23');\r\n } else {\r\n return _value.replace(/\\-/g, '_').replace(/\\//g, '!').replace(/\\&/, '$').replace(/\\#/g, '%23');\r\n }\r\n }\r\n }\r\n }\r\n\r\n function _replaceWhiteSpace(value) {\r\n return value.replace(/\\s/g, '-');\r\n }\r\n\r\n\r\n function _isNotNullOrEmpty(sender) {\r\n if ($(sender).attr('type') != null && ($(sender).attr('type') == 'radio' || $(sender).attr('type') == 'checkbox')) {\r\n return sender != null && sender != undefined && $(sender).val().trim() != '' && $(sender)[0].checked;\r\n } else if (sender != null && sender != undefined && $(sender).is('select')) {\r\n var _value = $(sender).val();\r\n return typeof (_value) == 'object' ? _value != null && _value != '' : _value.trim() != '';\r\n } else\r\n return sender != null && sender != undefined && $(sender).val().trim() != '';\r\n }\r\n}\r\n\r\nfunction isValidEmail(value) {\r\n var email = document.getElementById('txtEmail');\r\n var filter = /^([a-zA-Z0-9_\\.\\-\\+])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,4})+$/;\r\n\r\n if (!filter.test(value)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nfunction isNullOrEmpty(value) {\r\n if (value == null || value == undefined || value == '') return true;\r\n if (typeof (value) == 'string' && value.trim() == '') return true;\r\n return false;\r\n}\r\n\r\nfunction isNotNullOrZero(Value) {\r\n return Value != null && Value != undefined && Value.length > 0;\r\n}\r\n\r\nfunction isNullOrEmptyControl(ctrl) {\r\n if (ctrl == null || ctrl == undefined) return false;\r\n if ($(ctrl).val() == null || $(ctrl).val() == undefined || $(ctrl).val() == '') return true;\r\n return false;\r\n}\r\n\r\nfunction OpenIWBPopup(url, queryString, within) {\r\n if (!isNullOrEmpty(queryString)) url += '?' + queryString;\r\n $('#PERFORM_IWB_ACTION_TRIGGER').attr('href', url);\r\n $('#PERFORM_IWB_ACTION_TRIGGER').trigger('click');\r\n\r\n if (isNullOrEmpty(within)) within = 1000;\r\n setTimeout(function () {\r\n $('#PERFORM_IWB_ACTION_TRIGGER').trigger('click');\r\n }, within);\r\n}\r\n\r\nfunction CloseIWBPopup() {\r\n $('#MODAL_ACCESS').foundation('reveal', 'close');\r\n}\r\n\r\nfunction OpenPopup(within) {\r\n if (isNullOrEmpty(within)) within = 1000;\r\n setTimeout(function () {\r\n $('#PERFORM_ACTION_TRIGGER').trigger('click');\r\n }, within);\r\n\r\n}\r\n\r\nfunction ClosePopup() {\r\n $('#MODAL_ACCESS').foundation('reveal', 'close');\r\n}\r\n\r\n\r\n\r\n\r\nfunction getFormattedPrice(price) {\r\n var label = \"\";\r\n if (price.toString().length > 0) {\r\n if (price.toString().length <= 6 && price.toString().length > 3) {\r\n label = price.toString().substring(0, price.toString().length - 3) + \"K\";\r\n } else if (price.toString().length > 6) {\r\n label = price.toString().substring(0, price.toString().length - 6) + \".\" + price.toString().substring(price.toString().length - 6, price.toString().length - 5) + \"M\";\r\n } else {\r\n label = price.toString();\r\n }\r\n } else {\r\n label = \"N/A\";\r\n }\r\n return \"$\" + label;\r\n}\r\n\r\nfunction isMultiLingual() {\r\n if ($(\"#MULTILINGUAL\") != null && $(\"#MULTILINGUAL\") != undefined && !isNullOrEmpty($(\"#MULTILINGUAL\").val()) && $(\"#MULTILINGUAL\").val() == \"1\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nfunction getLocale() {\r\n if (isMultiLingual()) return $('#LOCALE').val(); else return \"\";\r\n}\r\n\r\nfunction InitDataSourceRelation(sctrl, pctrl, afterLoad) {\r\n var _source = $('#' + sctrl);\r\n\r\n for (var i = 0; i < pctrl.split(',').length; i++) {\r\n var _parent = $('#' + pctrl.split(',')[i]);\r\n\r\n $(_parent).change(function () {\r\n var _postData = '';\r\n _postData += 'Source=' + $(_source).attr('Source');\r\n _postData += '&AutoSort=' + $(_source).attr('AutoSort');\r\n _postData += '&DefaultItem=' + $(_source).attr('DefaultItem');\r\n\r\n if ($(_source).attr('Source') == \"Xml\") {\r\n _postData += '&XmlFileCode=' + $(_source).attr('XmlFileCode');\r\n _postData += '&XmlDataListKey=' + $(_source).attr('XmlDataListKey');\r\n }\r\n else if ($(_source).attr('Source') == \"Database\") {\r\n _postData += '&DataObjectName=' + $(_source).attr('DataObjectName');\r\n _postData += '&UrlIdentifier=' + $(_source).attr('UrlIdentifier');\r\n _postData += '&AdditionalWhere=' + $(_source).attr('AdditionalWhere');\r\n }\r\n\r\n var _parentValue = '';\r\n\r\n for (var j = 0; j < pctrl.split(',').length; j++) {\r\n var _parentInner = '#' + pctrl.split(',')[j];\r\n\r\n if (j > 0) _parentValue += ',';\r\n if ($(_parentInner).val() == '') {\r\n _parentValue += $(_parentInner + ' input:checked').val();\r\n }\r\n else {\r\n _parentValue += $(_parentInner).val();\r\n }\r\n }\r\n _parentValue = _parentValue.replace('undefined', '');\r\n _postData += '&ParentValue=' + _parentValue;\r\n\r\n $(_source).attr('disabled', 'disabled');\r\n $.ajax({\r\n type: 'POST',\r\n url: '/services/agoraRelationalDataSource.ashx',\r\n data: _postData,\r\n dataType: 'json',\r\n success: function (resultList) {\r\n $(_source).get(0).options.length = 0;\r\n\r\n $.each(resultList, function (index, item) {\r\n $(_source).get(0).options[$(_source).get(0).options.length] = new Option(item.Value, item.Key);\r\n });\r\n\r\n $(_source).removeAttr('disabled');\r\n\r\n if (afterLoad != null) afterLoad($(_source));\r\n },\r\n statusCode: {\r\n 404: function () {\r\n alert('Service (agoraParentDataSource) not found!');\r\n }\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\n\r\nfunction enterFullScreen() {\r\n if (document.documentElement.requestFullscreen) {\r\n document.documentElement.requestFullscreen();\r\n } else if (document.documentElement.mozRequestFullScreen) {\r\n document.documentElement.mozRequestFullScreen();\r\n } else if (document.documentElement.webkitRequestFullscreen) {\r\n document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);\r\n }\r\n}\r\n\r\nfunction exitFullScreen() {\r\n if (document.cancelFullScreen) {\r\n document.cancelFullScreen();\r\n } else if (document.mozCancelFullScreen) {\r\n document.mozCancelFullScreen();\r\n } else if (document.webkitCancelFullScreen) {\r\n document.webkitCancelFullScreen();\r\n }\r\n}\r\n\r\nfunction ShowLoading() {\r\n try {\r\n if ($(\"body\").hasClass('is-busy'))\r\n $(\"body\").removeClass('is-busy');\r\n else\r\n $(\"body\").addClass('is-busy');\r\n } catch (e) { }\r\n}\r\n\r\nvar _agoraMsgDelay = null;\r\nfunction ShowAlert(message, delay, cssClass, type) {\r\n _showAlert(message, delay, cssClass, type, true);\r\n}\r\n\r\nfunction ShowAlert(message, delay, cssClass, type, enableAutoClose) {\r\n _showAlert(message, delay, cssClass, type, enableAutoClose);\r\n}\r\n\r\nfunction ShowAlert(message, delay, cssClass, type, enableAutoClose, enableOKButton) {\r\n _showAlert(message, delay, cssClass, type, enableAutoClose, enableOKButton);\r\n}\r\n\r\nfunction ShowAlert(message, delay, cssClass, type, enableAutoClose, enableOKButton, ActionUrl) {\r\n _showAlert(message, delay, cssClass, type, enableAutoClose, enableOKButton, ActionUrl);\r\n}\r\n\r\nfunction ShowAlert(message, delay, cssClass, type, enableAutoClose, enableOKButton, ActionUrl, DisableCloseButton) {\r\n _showAlert(message, delay, cssClass, type, enableAutoClose, enableOKButton, ActionUrl, DisableCloseButton);\r\n}\r\n\r\nfunction _showAlert(message, delay, cssClass, type, enableAutoClose, enableOKButton, ActionUrl, DisableCloseButton) {\r\n $('body').addClass('alert_box_loaded');\r\n var _msgBox = $('div#agoraAlertMessageBox');\r\n if (_msgBox == null || _msgBox.length < 1) {\r\n _msgBox = $('<div>')\r\n .attr('id', 'agoraAlertMessageBox')\r\n .addClass(cssClass)\r\n .html('<div class=\"message-body\"><span id=\"msg\" class=\"msg\"></span><div id=\"btn_ok\"></div><div id=\"btn_close\"></div></div>');\r\n $(_msgBox).prependTo('body');\r\n }\r\n $(_msgBox).attr('class', '');\r\n $(_msgBox).addClass(cssClass);\r\n $(_msgBox).show();\r\n $(_msgBox).find('span#msg').html(message);\r\n if (!DisableCloseButton) { $(_msgBox).find('div#btn_close').html('<a class=\"closeBtn right\" href=\"javascript:void(0);\" onclick=\"javascript:CloseAlert();\"><i class=\"fa fa-times-circle\"></i></a>'); }\r\n if (enableOKButton) {\r\n $(_msgBox).find('div#btn_ok').html('<a ' + (isNotNullOrZero(ActionUrl) ? 'href=\"' + ActionUrl + '\"' : 'href=\"javascript:void(0);\" onclick=\"javascript:CloseAlert();\"') + ' title=\"Close\" class=\"mdl-button mdl-button--primary mdl-button--raised mdl-js-button mdl-js-ripple-effect\" style=\"align-content: right;\">Ok</a>');\r\n }\r\n clearTimeout(_agoraMsgDelay);\r\n if (enableAutoClose) {\r\n if (delay == null) delay = 4000;\r\n _agoraMsgDelay = setTimeout(function () {\r\n CloseAlert();\r\n }, delay);\r\n }\r\n}\r\n\r\nfunction CloseAlert() {\r\n $('body').removeClass('alert_box_loaded');\r\n $('div#agoraAlertMessageBox').hide();\r\n try {\r\n if ($(\"body\").hasClass('is-busy'))\r\n $(\"body\").removeClass('is-busy');\r\n } catch (e) { }\r\n}\r\n\r\nfunction RecallCkeIFrame() {\r\n $('img.cke_iframe').each(function () {\r\n $(this).replaceWith(unescape($(this).attr('data-cke-realelement')));\r\n });\r\n}\r\n\r\nfunction EnableNearBySearch(ctrl, urlPrefix, urlSufix, radius, errlandingUrl) {\r\n $(ctrl).each(function () {\r\n $(this).click(function () {\r\n // Checking whether the browser have geolocation support\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(successHandler, errorHandler, { timeout: 20000 });\r\n } else {\r\n alert(\"Geolocation functionality not available\");\r\n }\r\n function successHandler(position) {\r\n var _latitude = position.coords.latitude.toString().replace('-', '_');\r\n var _longitude = position.coords.longitude.toString().replace('-', '_');\r\n location.href = urlPrefix + \"/rlat-\" + _latitude + \"/rlon-\" + _longitude + \"/rad-\" + radius + urlSufix;\r\n }\r\n function errorHandler(err) {\r\n if (err.message.indexOf(\"Only secure origins are allowed\") == 0) { alert(\"Your browser does not support this feature\"); }\r\n else if (err.code == 1 /* PERMISSION_DENIED */) { alert(\"Permission denied to access geolocation\"); }\r\n else if (err.code == 2 /* POSITION_UNAVAILABLE */) { alert(\"Your geolocation is not available\"); }\r\n else if (err.code == 3 /* TIMEOUT */) { alert(\"Your geolocation is not available\"); }\r\n else { alert(\"Your geolocation is not available\"); }\r\n location.href = errlandingUrl;\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction BackToTop(sender) {\r\n var _navigatorPosition = $(sender).closest('[data-back-to-top-container]').offset();\r\n if (_navigatorPosition != null) {\r\n $('html,body').animate({ scrollTop: _navigatorPosition.top }, 700);\r\n } else {\r\n $('html,body').animate({ scrollTop: 0 }, 700);\r\n }\r\n}\r\n\r\nfunction TopToBottom(sender) {\r\n $('html,body').animate({ scrollTop: $(window).height() - $('#agora-layout-header').height() }, 700);\r\n}\r\n\r\nfunction EnableGoogleEventTracking() {\r\n $(document).on('click', '[data-ga-track]', null, function () {\r\n try {\r\n var _track = $(this).data('ga-track');\r\n GoogleAnalyticLogEvent(_track);\r\n } catch (e) { }\r\n });\r\n}\r\n\r\nfunction GoogleAnalyticLogEvent(track) {\r\n if (ga == null || typeof (ga) == 'undefined') return;\r\n var _param = track.split(',');\r\n switch (_param.length) {\r\n case 3:\r\n ga('send', 'event', _param[0], _param[1], _param[2]);\r\n break;\r\n case 2:\r\n ga('send', 'event', _param[0], _param[1]);\r\n break;\r\n }\r\n}\r\n\r\nfunction EnableStickyHeader(startPoint) {\r\n if (startPoint == null) startPoint = 0;\r\n\r\n (function (sender) {\r\n var _oldValue = 0;\r\n var $context = $(sender);\r\n $(window).on('scroll', _checkState);\r\n function _checkState() {\r\n var _newValue = $(window).scrollTop();\r\n if (_newValue > startPoint) $context.addClass('scroll'); else $context.removeClass('scroll').removeClass('scroll-down').removeClass('scroll-up');\r\n if (_oldValue > _newValue) $context.addClass('scroll-up').removeClass('scroll-down');\r\n if (_oldValue < _newValue) $context.addClass('scroll-down').removeClass('scroll-up');\r\n _oldValue = _newValue;\r\n };\r\n _checkState();\r\n })($('body'));\r\n}\r\n\r\nfunction CloseAgoraDropDownOnBodyClick() {\r\n $(document).on('reset', '.agora-dropdown', null, function () { try { var state = $(this).children('input').get(0); if (state.checked) state.checked = false; } catch (e) { } });\r\n $('body').on('click', function (e) {\r\n try {\r\n var $target = $(e.target);\r\n if ($target.is('input') || $(document).find($target).length==0) return;\r\n var $dropDowncontainer = $target.closest('.agora-dropdown');\r\n if ($dropDowncontainer.length == 0) {\r\n $('.agora-dropdown').trigger('reset');\r\n } else {\r\n if ($dropDowncontainer.hasClass('actions') && !$target.hasClass('agora-dropdown-handle') && $dropDowncontainer.children('input:checked').length > 0) {\r\n $dropDowncontainer.trigger('reset');\r\n } else {\r\n $('.agora-dropdown').not($dropDowncontainer).trigger('reset');\r\n }\r\n }\r\n } catch (ex) { }\r\n });\r\n}\r\n\r\n\r\nfunction MdlReloadControlState(item, parent, noAction) {\r\n if (noAction == null || noAction == undefined) {\r\n noAction = false;\r\n }\r\n $this = item;\r\n $parent = parent;\r\n var $partner = $(\"#\" + $parent.attr(\"data-search-partner\"));\r\n var $valueBind = $('#' + $parent.attr(\"data-search-value-bind\"));\r\n var $searchView = $('#' + $parent.attr(\"data-search-view\"));\r\n switch ($parent.attr(\"data-search\")) {\r\n case \"SelectBox\":\r\n try {\r\n $parent.parent().find('[data-search-enable-for]').each(function () {\r\n $(this).addClass('mdl-cell--hide');\r\n $(this).find('input:checkbox').each(function () {\r\n if (!noAction) {\r\n $(this).removeAttr('checked');\r\n if ($(this).closest('.mdl-js-checkbox').length > 0) $(this).closest('.mdl-js-checkbox')[0].MaterialCheckbox.uncheck();\r\n }\r\n });\r\n $(this).find('select option').each(function () {\r\n $(this).removeAttr('selected');\r\n $(this).closest('.mdl-js-selectfield')[0].MaterialSelectfield.mdlDowngrade_();\r\n });\r\n });\r\n } catch (err) { console.log(err.message); }\r\n $('[data-search-enable-for=\"' + $parent.val() + '\"]').removeClass('mdl-cell--hide');\r\n $searchView.html($parent.attr(\"data-search-name-label\") + ' (' + $parent.parent().find('[data-search-enable-for=\"' + $parent.val() + '\"]').find(\"input[type=checkbox]:checked\").length + ')');\r\n break;\r\n case \"group\":\r\n var $groupParent = $this.closest('[data-search-group]');\r\n $searchView = $('#' + $groupParent.attr(\"data-search-view\"));\r\n var _count = $groupParent.find('[data-search=\"group\"] input[type=checkbox]:checked').length;\r\n var _readList = {};\r\n\r\n $groupParent.find('[data-search=\"group\"] [data-type=\"dropdown\"]').each(function () {\r\n var $_temp = $(this);\r\n if($_temp.val()!=\"\" && typeof($_temp.data('default-item')!='undefined') && $_temp.val()!=$_temp.data('default-item'))\r\n {\r\n _count++;\r\n }\r\n });\r\n\r\n $groupParent.find('[data-search=\"group\"] input[type=text]').each(function () {\r\n var $_temp = $(this);\r\n var _key = $_temp.attr('urlidentifier');\r\n if (isNotNullOrZero($_temp.val()) && typeof (_readList[_key]) == 'undefined')\r\n _readList[_key] = _count++;\r\n });\r\n $searchView.html($groupParent.attr(\"data-search-name-label\") + ' (' + _count + ')');\r\n break;\r\n case \"checkList\":\r\n try {\r\n if ($parent.attr('data-search-child') != null && $parent.attr('data-search-child') == \"true\" && $parent.parents().find('[data-search-parent=\"true\"]').length > 0) {\r\n $searchView.html($parent.attr(\"data-search-name-label\") + ' (' + $parent.parent().find(\"input[type=checkbox]:checked\").length + ')');\r\n } else {\r\n $searchView.html($parent.attr(\"data-search-name-label\") + ' (' + $parent.find(\"input[type=checkbox]:checked\").length + ')');\r\n }\r\n } catch (err) {\r\n console.log(err.message);\r\n $searchView.html($parent.attr(\"data-search-name-label\") + ' (' + $parent.find(\"input[type=checkbox]:checked\").length + ')');\r\n }\r\n break;\r\n case \"singleItem\":\r\n if ($this.length > 0) {\r\n $parent.children().removeClass(\"select\");\r\n try {\r\n var _labelPosition = $parent.attr('data-search-name-label-position');\r\n var _selectOption = typeof ($parent.attr('data-select')) != undefined && $parent.attr('data-select') != null && $parent.attr('data-select') != '' ? $parent.attr('data-select') : '';\r\n if (typeof _labelPosition !== typeof undefined && _labelPosition !== false && _labelPosition == 'left') {\r\n if (_selectOption == 'label') {\r\n $searchView.html($parent.attr(\"data-search-name-label\") + $this.attr(\"label\"));\r\n $searchView.attr('data-selected-value', $this.attr(\"value\"));\r\n }\r\n else\r\n $searchView.html($parent.attr(\"data-search-name-label\") + $this.attr(\"value\"));\r\n }\r\n else {\r\n if (_selectOption == 'label') {\r\n $searchView.html($this.attr(\"label\") + $parent.attr(\"data-search-name-label\"));\r\n $searchView.attr('data-selected-value', $this.attr(\"value\"));\r\n }\r\n else\r\n $searchView.html($this.attr(\"value\") + $parent.attr(\"data-search-name-label\"));\r\n }\r\n\r\n try {\r\n var _showCountOnly = $parent.attr('data-search-name-label-showCountOnly');\r\n if (typeof (_showCountOnly) != 'undefined' && _showCountOnly != false) {\r\n $searchView.html($parent.attr(\"data-search-name-label\") + ' (' + $this.length + ')');\r\n }\r\n } catch (err) { console.log(err.message); }\r\n\r\n try {\r\n var _skipLabelAppendList = $parent.attr('data-search-name-label-skip-for').split(',');\r\n for (i = 0; i < _skipLabelAppendList.length; ++i) {\r\n if (typeof _skipLabelAppendList[i] != undefined && _skipLabelAppendList[i] != null && _skipLabelAppendList[i] == $this.attr(\"value\")) {\r\n $searchView.html($this.attr(\"value\"));\r\n }\r\n }\r\n } catch (err) { console.log(err.message); }\r\n }\r\n catch (err) {\r\n $searchView.html($this.attr(\"value\") + $parent.attr(\"data-search-name-label\"));\r\n }\r\n $this.addClass(\"select\");\r\n if (IsNotNull($this.attr(\"value\"))) {\r\n $valueBind.attr(\"value\", $this.attr(\"value\"));\r\n } else {\r\n $valueBind.attr(\"value\", \"\");\r\n }\r\n }\r\n break;\r\n case \"oneSearch\":\r\n $searchView.html($this.attr('data-search-name-label') + ' (' + ($('.multiselect-context .agora-onesearch-multi-sel-item-cont').length) + ')');\r\n break;\r\n case \"range\":\r\n $partner.removeClass(\"mdl-cell--hide\");\r\n $parent.addClass(\"mdl-cell--hide\");\r\n if ($this.length > 0) {\r\n if (IsNotNull($this.attr(\"value\"))) {\r\n $valueBind.val($this.attr(\"value\"));\r\n } else {\r\n $valueBind.val(\"\");\r\n }\r\n }\r\n if ($valueBind.closest('.mdl-js-textfield').length > 0 && $valueBind.closest('.mdl-js-textfield').get(0).MaterialTextfield) $valueBind.closest('.mdl-js-textfield').get(0).MaterialTextfield.checkDirty();\r\n $searchView.html(BindRangeView($parent));\r\n break;\r\n }\r\n}\r\n\r\n\r\n//Search Controle\r\nfunction BindRangeView(Parent) {\r\n var _minMax = new getMinMax(Parent);\r\n if (IsNotNull(_minMax.Min) && IsNotNull(_minMax.Max) && parseInt(_minMax.Min) > parseInt(_minMax.Max)) {\r\n alert(\"Minimum value should not exceed the maximum value\");\r\n $('#' + Parent.attr(\"data-search-value-bind\")).attr(\"value\", \"\");\r\n $(\"#\" + $('#' + Parent.attr(\"data-search-partner\")).attr(\"data-search-value-bind\")).attr(\"value\", \"\");\r\n return Parent.attr(\"data-search-name-label\");\r\n } else {\r\n switch ($(\"#\" + Parent.attr(\"data-search-value-bind\")).attr(\"operation\")) {\r\n case \"min\":\r\n var _minValue = _minMax.Min;\r\n var $partner = $(\"#\" + Parent.attr(\"data-search-partner\"));\r\n\r\n if (typeof ($partner.data('is-init')) == 'undefined') {\r\n $partner.data('init-value', $partner.html());\r\n $partner.data('is-init', true);\r\n }\r\n\r\n if (IsNotNull(_minValue)) {\r\n $partner.empty();\r\n var _isSelect = $(\"#\" + Parent.attr(\"data-search-partner\")).is('select');\r\n var tagName = _isSelect ? 'option' : 'li';\r\n if (_isSelect) $partner.append('<option value=\"\"></option>');\r\n for (var i = 0; i < 5; ++i) {\r\n switch (Parent.attr(\"data-search-type\")) {\r\n case \"price\":\r\n var _rangeToIncrement = _getIncrementValue(_minValue, Parent);\r\n _minValue = _getRoundOfValue(_minValue, _rangeToIncrement);\r\n _minValue = (parseInt(_minValue) + _rangeToIncrement);\r\n $partner.append('<' + tagName + ' value=\"' + _minValue + '\" tabindex=\"22\"><span>$' + _minValue.toString().replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\") + '</span></' + tagName + '>');\r\n break;\r\n case \"year\":\r\n _minValue = (parseInt(_minValue) + 5);\r\n $partner.append('<' + tagName + ' value=\"' + _minValue + '\" tabindex=\"22\"><span>' + _minValue + '</span></' + tagName + '>');\r\n break;\r\n default:\r\n if (isNotNullOrZero(Parent.attr('data-default-increment')))\r\n {\r\n _minValue = (parseInt(_minValue) + parseInt(Parent.attr('data-default-increment')));\r\n $partner.append('<' + tagName + ' value=\"' + _minValue + '\" tabindex=\"22\"><span>' + _minValue + '</span></' + tagName + '>');\r\n }\r\n break;\r\n }\r\n }\r\n $partner.append('<' + tagName + ' value=\"0\" tabindex=\"22\"><span>Any</span></' + tagName + '>');\r\n }\r\n else {\r\n if (typeof ($partner.data('is-init')) != 'undefined' && $partner.data('is-init') == true) {\r\n $partner.html($partner.data('init-value'));\r\n }\r\n }\r\n break;\r\n case \"max\":\r\n var _maxValue = _minMax.Max;\r\n var $partner = $(\"#\" + Parent.attr(\"data-search-partner\"));\r\n if (typeof ($partner.data('is-init')) == 'undefined') {\r\n $partner.data('init-value', $partner.html());\r\n $partner.data('is-init', true);\r\n }\r\n if (IsNotNull(_maxValue)) {\r\n $partner.empty();\r\n var _isSelect = $(\"#\" + Parent.attr(\"data-search-partner\")).is('select');\r\n var tagName = _isSelect ? 'option' : 'li';\r\n if (_isSelect) $partner.append('<option value=\"\"></option>');\r\n var _rangeToDecrement = _getDecrementValue(_maxValue, Parent);\r\n _maxValue = _getRoundOfValue(_maxValue, _rangeToDecrement);\r\n for (var i = 0; i < 5; ++i) {\r\n switch (Parent.attr(\"data-search-type\")) {\r\n case \"price\":\r\n _maxValue = (parseInt(_maxValue) - _rangeToDecrement);\r\n if (_maxValue > 0) {\r\n $partner.prepend('<' + tagName + ' value=\"' + _maxValue + '\" tabindex=\"22\"><span>$' + _maxValue.toString().replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\") + '</span></' + tagName + '>');\r\n }\r\n break;\r\n case \"year\":\r\n _maxValue = (parseInt(_maxValue) - 5);\r\n if (_maxValue > 0) {\r\n $partner.append('<' + tagName + ' value=\"' + _maxValue + '\" tabindex=\"22\"><span>' + _maxValue + '</span></' + tagName + '>');\r\n }\r\n break;\r\n default:\r\n if (isNotNullOrZero(Parent.attr('data-default-decrement'))) {\r\n var isSetMaxVal;\r\n if (isNullOrEmpty(isSetMaxVal))\r\n {\r\n _maxValue = _minMax.Max;\r\n isSetMaxVal = 'Yes';\r\n }\r\n _maxValue = (parseInt(_maxValue) - parseInt(Parent.attr('data-default-decrement')));\r\n if (_maxValue > 0) {\r\n $partner.prepend('<' + tagName + ' value=\"' + _maxValue + '\" tabindex=\"22\"><span>' + _maxValue + '</span></' + tagName + '>');\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n $partner.prepend('<' + tagName + ' value=\"0\" tabindex=\"22\"><span>Any</span></' + tagName + '>');\r\n }\r\n else {\r\n if (typeof ($partner.data('is-init')) != 'undefined' && $partner.data('is-init') == true) {\r\n $partner.html($partner.data('init-value'));\r\n }\r\n }\r\n break;\r\n }\r\n switch (Parent.attr(\"data-search-type\")) {\r\n case \"price\":\r\n if (IsNotNull(_minMax.Min) && IsNotNull(_minMax.Max)) {\r\n return _formattoPrice(_minMax.Min) + \"-\" + _formattoPrice(_minMax.Max);\r\n } else if (IsNotNull(_minMax.Min) && !IsNotNull(_minMax.Max)) {\r\n return _formattoPrice(_minMax.Min) + \"+\";\r\n } else if (!IsNotNull(_minMax.Min) && IsNotNull(_minMax.Max)) {\r\n return \"<\" + _formattoPrice(_minMax.Max);\r\n } else {\r\n return Parent.attr(\"data-search-name-label\");\r\n }\r\n break;\r\n default:\r\n if (IsNotNull(_minMax.Min) && IsNotNull(_minMax.Max)) {\r\n return _minMax.Min + \"-\" + _minMax.Max;\r\n } else if (IsNotNull(_minMax.Min) && !IsNotNull(_minMax.Max)) {\r\n return _minMax.Min + \"+\";\r\n } else if (!IsNotNull(_minMax.Min) && IsNotNull(_minMax.Max)) {\r\n return \"<\" + _minMax.Max;\r\n } else {\r\n return Parent.attr(\"data-search-name-label\");\r\n }\r\n break;\r\n }\r\n\r\n function _formattoPrice(num) {\r\n console.log('Formatt : ' + num);\r\n try {\r\n var _label = num;\r\n if (num == null || num == undefined || num == '') _label = '0';\r\n if (num >= 1000000) {\r\n _label = '$' + (_label / 1000000).toFixed(2).replace(/\\.?0+$/, \"\") + 'M';\r\n }\r\n else if (num >= 1000) {\r\n _label = '$' + (_label / 1000).toFixed(2).replace(/\\.?0+$/, \"\") + 'K';\r\n }\r\n else {\r\n _label = '$' + _label.replace(/\\.0+$/, \"\");\r\n }\r\n return _label;\r\n } catch (e) { }\r\n return '0';\r\n }\r\n\r\n function _getIncrementValue(value, parent) {\r\n try {\r\n var _stage = $(parent).data('stage');\r\n var _minValueText = $(parent).data('min-value');\r\n var _minValue = 1000000;\r\n var _stageValue = 100000;\r\n try {\r\n if (!isNullOrEmpty(_stage))\r\n _stageValue = parseInt(_stage, 10);\r\n if (typeof (_minValue) != 'undefined' && _minValue != null && _minValue != '')\r\n _minValue = parseInt(_minValueText, 10);\r\n\r\n } catch (e) { }\r\n return parseInt(value) < _minValue ? 25000 : (parseInt(value) < _minValue * 10 ? 50000 : _stageValue);\r\n } catch (e) { }\r\n return 100000;\r\n }\r\n\r\n function _getDecrementValue(value, parent) {\r\n try {\r\n var _stage = $(parent).data('stage');\r\n var _stageValue = 100000;\r\n try {\r\n if (!isNullOrEmpty(_stage))\r\n _stageValue = parseInt(_stage, 10);\r\n } catch (e) { }\r\n return parseInt(value) < 100000 ? 10000 : (parseInt(value) < 1000000 ? 50000 : _stageValue);\r\n } catch (e) { }\r\n return 100000;\r\n }\r\n\r\n function _getRoundOfValue(value, incrementalValue) {\r\n try {\r\n return (parseInt(value) - (parseInt(value) % incrementalValue)).toString();\r\n } catch (e) { }\r\n return value;\r\n }\r\n }\r\n}\r\n\r\nfunction getMinMax(Parent) {\r\n var _minValue = 0, _maxValue = 0;\r\n switch ($(\"#\" + Parent.attr(\"data-search-value-bind\")).attr(\"operation\")) {\r\n case \"min\":\r\n _minValue = $(\"#\" + Parent.attr(\"data-search-value-bind\")).val();\r\n _maxValue = $(\"#\" + $(\"#\" + Parent.attr(\"data-search-partner\")).attr(\"data-search-value-bind\")).val();\r\n break;\r\n case \"max\":\r\n _minValue = $(\"#\" + $(\"#\" + Parent.attr(\"data-search-partner\")).attr(\"data-search-value-bind\")).val();\r\n _maxValue = $(\"#\" + Parent.attr(\"data-search-value-bind\")).val();\r\n break;\r\n }\r\n return { Min: _minValue, Max: _maxValue };\r\n}\r\n\r\n\r\n// Numeric only control handler\r\njQuery.fn.ForceNumericOnly =\r\nfunction () {\r\n return this.each(function () {\r\n $(this).keydown(function (e) {\r\n var key = e.charCode || e.keyCode || 0;\r\n if (e.shiftKey) key=0\r\n // allow backspace, tab, delete, enter, arrows, numbers and keypad numbers ONLY\r\n // home, end, period, and numpad decimal\r\n return (\r\n key == 8 ||\r\n key == 9 ||\r\n key == 13 ||\r\n key == 46 ||\r\n key == 110 ||\r\n key == 190 ||\r\n (key >= 35 && key <= 40) ||\r\n (key >= 48 && key <= 57) ||\r\n (key >= 96 && key <= 105));\r\n });\r\n });\r\n};\r\n\r\n$(\"[data-numeric-only]\").ForceNumericOnly();\r\n\r\n$(document).ready(function () {\r\n $(\"[data-numeric-only]\").ForceNumericOnly();\r\n});\r\n\r\n// Allow bookmark considering the page header with animate scroll\r\n$(document).on('click', '[data-page-scroll]', _scrollForPageScroll);\r\n$(document).on('tap', '[data-page-scroll]', _scrollForPageScroll);\r\nfunction _scrollForPageScroll() {\r\n var $this = $(this);\r\n var $referencedItem = $('#' + $this.data('page-scroll'));\r\n var _itemPosition = $referencedItem != undefined && $referencedItem != null && $referencedItem.length > 0 ? $referencedItem.offset().top : 0;\r\n var _offset = 0;\r\n try {\r\n var _value = $this.data('page-scroll-offset');\r\n if (typeof (_value) != 'undefined' && _value != '') _offset = parseInt(_value);\r\n else _offset = $('#agora-layout-header').height();\r\n } catch (e) { }\r\n $(\"html, body\").animate({ scrollTop: (_itemPosition - _offset) }, 1500);\r\n try {\r\n var $referencedTabItem = $('#' + $this.data('page-scroll-tab-id'));\r\n $referencedTabItem.trigger('click');\r\n } catch (e) { }\r\n}\r\n\r\n\r\n\r\n// Button to move top of the page\r\n$(document).on('click', '[data-back-to-top]', function () {\r\n BackToTop(this);\r\n});\r\n\r\n$(document).on('tap', '[data-back-to-top]', function () {\r\n BackToTop(this);\r\n});\r\n\r\n// Button to move bottom of the page\r\n$(document).on('click', '[data-back-to-down]', function () {\r\n TopToBottom(this);\r\n});\r\n\r\n$(document).on('tap', '[data-back-to-down]', function () {\r\n TopToBottom(this);\r\n});\r\n\r\n\r\n/* This code will allow to give a redirect url to a container\r\n data-href=\"<url>\"\r\n target=\"_blank\"\r\n*/\r\n$(document).on('click', '[data-href]', function (e) {\r\n if ($(e.target).closest('[data-non-click-content]').length > 0) return;\r\n if (!isNullOrEmpty($(this).data('href'))) {\r\n if (!isNullOrEmpty($(this).data('target'))) {\r\n window.open($(this).data('href'), $(this).data('target'));\r\n } else {\r\n location.href = $(this).data('href');\r\n }\r\n }\r\n});\r\n\r\n/*recurstion for fire event when class name is changed*/\r\nfunction OnClassBehaviorChange(ctrl, handler) {\r\n if (!IsNullorEmpty($(ctrl).attr('oldClassName')) && $(ctrl).attr('oldClassName') != $(ctrl).attr('class')) handler();\r\n $(ctrl).attr('oldClassName', $(ctrl).attr('class'));\r\n setTimeout(function () { OnClassBehaviorChange(ctrl, handler); }, 100);\r\n}\r\n\r\nfunction AnimatePlaceholderText(ctrl, pht, idx) {\r\n var _pht = pht;\r\n if (idx == 0) {\r\n _pht = ctrl.attr('placeholder');\r\n ctrl.attr('placeholder', '');\r\n }\r\n if (idx == _pht.length) return;\r\n\r\n setTimeout(function () {\r\n ctrl.attr('placeholder', _pht.substr(0, ++idx)); \r\n AnimatePlaceholderText(ctrl, _pht, idx);\r\n }, 150);\r\n}\r\n\r\n\r\nfunction AddReadMore(minLimit, lblMore, lblLess) {\r\n //This limit you can set after how much characters you want to show Read More.\r\n var carLmt = minLimit;\r\n // Text to show when text is collapsed\r\n var readMoreTxt = lblMore;\r\n // Text to show when text is expanded\r\n var readLessTxt = lblLess;\r\n\r\n\r\n //Traverse all selectors with this class and manupulate HTML part to show Read More\r\n $(\".addReadMore\").each(function () {\r\n if ($(this).find(\".firstSec\").length)\r\n return;\r\n\r\n var allstr = $(this).text();\r\n if (allstr.length > carLmt) {\r\n var firstSet = allstr.substring(0, carLmt);\r\n var secdHalf = allstr.substring(carLmt, allstr.length);\r\n var strtoadd = firstSet + \"<span class='SecSec'>\" + secdHalf + \"</span><span class='readMore' title='Click to Show More'>\" + readMoreTxt + \"</span><span class='readLess' title='Click to Show Less'>\" + readLessTxt + \"</span>\";\r\n $(this).html(strtoadd);\r\n }\r\n\r\n });\r\n //Read More and Read Less Click Event binding\r\n $(document).on(\"click\", \".readMore,.readLess\", function () {\r\n $(this).closest(\".addReadMore\").toggleClass(\"showlesscontent showmorecontent\");\r\n });\r\n}\r\n","/*\n * jQuery JavaScript Library v2.1.1\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-05-01T17:11Z\n */\n!function(a,b){\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error(\"jQuery requires a window with a document\");return b(a)}:b(a)}(\"undefined\"!=typeof window?window:this,function(a,b){function c(a){var b=a.length,c=_.type(a);return\"function\"===c||_.isWindow(a)?!1:1===a.nodeType&&b?!0:\"array\"===c||0===b||\"number\"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(_.isFunction(b))return _.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return _.grep(a,function(a){return a===b!==c});if(\"string\"==typeof b){if(hb.test(b))return _.filter(b,a,c);b=_.filter(b,a)}return _.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=ob[a]={};return _.each(a.match(nb)||[],function(a,c){b[c]=!0}),b}function g(){Z.removeEventListener(\"DOMContentLoaded\",g,!1),a.removeEventListener(\"load\",g,!1),_.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=_.expando+Math.random()}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d=\"data-\"+b.replace(ub,\"-$1\").toLowerCase(),c=a.getAttribute(d),\"string\"==typeof c){try{c=\"true\"===c?!0:\"false\"===c?!1:\"null\"===c?null:+c+\"\"===c?+c:tb.test(c)?_.parseJSON(c):c}catch(e){}sb.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return Z.activeElement}catch(a){}}function m(a,b){return _.nodeName(a,\"table\")&&_.nodeName(11!==b.nodeType?b:b.firstChild,\"tr\")?a.getElementsByTagName(\"tbody\")[0]||a.appendChild(a.ownerDocument.createElement(\"tbody\")):a}function n(a){return a.type=(null!==a.getAttribute(\"type\"))+\"/\"+a.type,a}function o(a){var b=Kb.exec(a.type);return b?a.type=b[1]:a.removeAttribute(\"type\"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)rb.set(a[c],\"globalEval\",!b||rb.get(b[c],\"globalEval\"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(rb.hasData(a)&&(f=rb.access(a),g=rb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)_.event.add(b,e,j[e][c])}sb.hasData(a)&&(h=sb.access(a),i=_.extend({},h),sb.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||\"*\"):a.querySelectorAll?a.querySelectorAll(b||\"*\"):[];return void 0===b||b&&_.nodeName(a,b)?_.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();\"input\"===c&&yb.test(a.type)?b.checked=a.checked:(\"input\"===c||\"textarea\"===c)&&(b.defaultValue=a.defaultValue)}function t(b,c){var d,e=_(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:_.css(e[0],\"display\");return e.detach(),f}function u(a){var b=Z,c=Ob[a];return c||(c=t(a,b),\"none\"!==c&&c||(Nb=(Nb||_(\"<iframe frameborder='0' width='0' height='0'/>\")).appendTo(b.documentElement),b=Nb[0].contentDocument,b.write(),b.close(),c=t(a,b),Nb.detach()),Ob[a]=c),c}function v(a,b,c){var d,e,f,g,h=a.style;return c=c||Rb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(\"\"!==g||_.contains(a.ownerDocument,a)||(g=_.style(a,b)),Qb.test(g)&&Pb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+\"\":g}function w(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}function x(a,b){if(b in a)return b;for(var c=b[0].toUpperCase()+b.slice(1),d=b,e=Xb.length;e--;)if(b=Xb[e]+c,b in a)return b;return d}function y(a,b,c){var d=Tb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||\"px\"):b}function z(a,b,c,d,e){for(var f=c===(d?\"border\":\"content\")?4:\"width\"===b?1:0,g=0;4>f;f+=2)\"margin\"===c&&(g+=_.css(a,c+wb[f],!0,e)),d?(\"content\"===c&&(g-=_.css(a,\"padding\"+wb[f],!0,e)),\"margin\"!==c&&(g-=_.css(a,\"border\"+wb[f]+\"Width\",!0,e))):(g+=_.css(a,\"padding\"+wb[f],!0,e),\"padding\"!==c&&(g+=_.css(a,\"border\"+wb[f]+\"Width\",!0,e)));return g}function A(a,b,c){var d=!0,e=\"width\"===b?a.offsetWidth:a.offsetHeight,f=Rb(a),g=\"border-box\"===_.css(a,\"boxSizing\",!1,f);if(0>=e||null==e){if(e=v(a,b,f),(0>e||null==e)&&(e=a.style[b]),Qb.test(e))return e;d=g&&(Y.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+z(a,b,c||(g?\"border\":\"content\"),d,f)+\"px\"}function B(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=rb.get(d,\"olddisplay\"),c=d.style.display,b?(f[g]||\"none\"!==c||(d.style.display=\"\"),\"\"===d.style.display&&xb(d)&&(f[g]=rb.access(d,\"olddisplay\",u(d.nodeName)))):(e=xb(d),\"none\"===c&&e||rb.set(d,\"olddisplay\",e?c:_.css(d,\"display\"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&\"none\"!==d.style.display&&\"\"!==d.style.display||(d.style.display=b?f[g]||\"\":\"none\"));return a}function C(a,b,c,d,e){return new C.prototype.init(a,b,c,d,e)}function D(){return setTimeout(function(){Yb=void 0}),Yb=_.now()}function E(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=wb[d],e[\"margin\"+c]=e[\"padding\"+c]=a;return b&&(e.opacity=e.width=a),e}function F(a,b,c){for(var d,e=(cc[b]||[]).concat(cc[\"*\"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function G(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},n=a.style,o=a.nodeType&&xb(a),p=rb.get(a,\"fxshow\");c.queue||(h=_._queueHooks(a,\"fx\"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,_.queue(a,\"fx\").length||h.empty.fire()})})),1===a.nodeType&&(\"height\"in b||\"width\"in b)&&(c.overflow=[n.overflow,n.overflowX,n.overflowY],j=_.css(a,\"display\"),k=\"none\"===j?rb.get(a,\"olddisplay\")||u(a.nodeName):j,\"inline\"===k&&\"none\"===_.css(a,\"float\")&&(n.display=\"inline-block\")),c.overflow&&(n.overflow=\"hidden\",l.always(function(){n.overflow=c.overflow[0],n.overflowX=c.overflow[1],n.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],$b.exec(e)){if(delete b[d],f=f||\"toggle\"===e,e===(o?\"hide\":\"show\")){if(\"show\"!==e||!p||void 0===p[d])continue;o=!0}m[d]=p&&p[d]||_.style(a,d)}else j=void 0;if(_.isEmptyObject(m))\"inline\"===(\"none\"===j?u(a.nodeName):j)&&(n.display=j);else{p?\"hidden\"in p&&(o=p.hidden):p=rb.access(a,\"fxshow\",{}),f&&(p.hidden=!o),o?_(a).show():l.done(function(){_(a).hide()}),l.done(function(){var b;rb.remove(a,\"fxshow\");for(b in m)_.style(a,b,m[b])});for(d in m)g=F(o?p[d]:0,d,l),d in p||(p[d]=g.start,o&&(g.end=g.start,g.start=\"width\"===d||\"height\"===d?1:0))}}function H(a,b){var c,d,e,f,g;for(c in a)if(d=_.camelCase(c),e=b[d],f=a[c],_.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=_.cssHooks[d],g&&\"expand\"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function I(a,b,c){var d,e,f=0,g=bc.length,h=_.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Yb||D(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:_.extend({},b),opts:_.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Yb||D(),duration:c.duration,tweens:[],createTween:function(b,c){var d=_.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(H(k,j.opts.specialEasing);g>f;f++)if(d=bc[f].call(j,a,k,j.opts))return d;return _.map(k,F,j),_.isFunction(j.opts.start)&&j.opts.start.call(a,j),_.fx.timer(_.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function J(a){return function(b,c){\"string\"!=typeof b&&(c=b,b=\"*\");var d,e=0,f=b.toLowerCase().match(nb)||[];if(_.isFunction(c))for(;d=f[e++];)\"+\"===d[0]?(d=d.slice(1)||\"*\",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function K(a,b,c,d){function e(h){var i;return f[h]=!0,_.each(a[h]||[],function(a,h){var j=h(b,c,d);return\"string\"!=typeof j||g||f[j]?g?!(i=j):void 0:(b.dataTypes.unshift(j),e(j),!1)}),i}var f={},g=a===vc;return e(b.dataTypes[0])||!f[\"*\"]&&e(\"*\")}function L(a,b){var c,d,e=_.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&_.extend(!0,a,d),a}function M(a,b,c){for(var d,e,f,g,h=a.contents,i=a.dataTypes;\"*\"===i[0];)i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader(\"Content-Type\"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+\" \"+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function N(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if(\"*\"===f)f=i;else if(\"*\"!==i&&i!==f){if(g=j[i+\" \"+f]||j[\"* \"+f],!g)for(e in j)if(h=e.split(\" \"),h[1]===f&&(g=j[i+\" \"+h[0]]||j[\"* \"+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a[\"throws\"])b=g(b);else try{b=g(b)}catch(l){return{state:\"parsererror\",error:g?l:\"No conversion from \"+i+\" to \"+f}}}return{state:\"success\",data:b}}function O(a,b,c,d){var e;if(_.isArray(b))_.each(b,function(b,e){c||zc.test(a)?d(a,e):O(a+\"[\"+(\"object\"==typeof e?b:\"\")+\"]\",e,c,d)});else if(c||\"object\"!==_.type(b))d(a,b);else for(e in b)O(a+\"[\"+e+\"]\",b[e],c,d)}function P(a){return _.isWindow(a)?a:9===a.nodeType&&a.defaultView}var Q=[],R=Q.slice,S=Q.concat,T=Q.push,U=Q.indexOf,V={},W=V.toString,X=V.hasOwnProperty,Y={},Z=a.document,$=\"2.1.1\",_=function(a,b){return new _.fn.init(a,b)},ab=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,bb=/^-ms-/,cb=/-([\\da-z])/gi,db=function(a,b){return b.toUpperCase()};_.fn=_.prototype={jquery:$,constructor:_,selector:\"\",length:0,toArray:function(){return R.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:R.call(this)},pushStack:function(a){var b=_.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return _.each(this,a,b)},map:function(a){return this.pushStack(_.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(R.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:T,sort:Q.sort,splice:Q.splice},_.extend=_.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for(\"boolean\"==typeof g&&(j=g,g=arguments[h]||{},h++),\"object\"==typeof g||_.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(_.isPlainObject(d)||(e=_.isArray(d)))?(e?(e=!1,f=c&&_.isArray(c)?c:[]):f=c&&_.isPlainObject(c)?c:{},g[b]=_.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},_.extend({expando:\"jQuery\"+($+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return\"function\"===_.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!_.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return\"object\"!==_.type(a)||a.nodeType||_.isWindow(a)?!1:a.constructor&&!X.call(a.constructor.prototype,\"isPrototypeOf\")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+\"\":\"object\"==typeof a||\"function\"==typeof a?V[W.call(a)]||\"object\":typeof a},globalEval:function(a){var b,c=eval;a=_.trim(a),a&&(1===a.indexOf(\"use strict\")?(b=Z.createElement(\"script\"),b.text=a,Z.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(bb,\"ms-\").replace(cb,db)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,d){var e,f=0,g=a.length,h=c(a);if(d){if(h)for(;g>f&&(e=b.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=b.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=b.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=b.call(a[f],f,a[f]),e===!1)break;return a},trim:function(a){return null==a?\"\":(a+\"\").replace(ab,\"\")},makeArray:function(a,b){var d=b||[];return null!=a&&(c(Object(a))?_.merge(d,\"string\"==typeof a?[a]:a):T.call(d,a)),d},inArray:function(a,b,c){return null==b?-1:U.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,d){var e,f=0,g=a.length,h=c(a),i=[];if(h)for(;g>f;f++)e=b(a[f],f,d),null!=e&&i.push(e);else for(f in a)e=b(a[f],f,d),null!=e&&i.push(e);return S.apply([],i)},guid:1,proxy:function(a,b){var c,d,e;return\"string\"==typeof b&&(c=a[b],b=a,a=c),_.isFunction(a)?(d=R.call(arguments,2),e=function(){return a.apply(b||this,d.concat(R.call(arguments)))},e.guid=a.guid=a.guid||_.guid++,e):void 0},now:Date.now,support:Y}),_.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"),function(a,b){V[\"[object \"+b+\"]\"]=b.toLowerCase()});var eb=/*\n * Sizzle CSS Selector Engine v1.10.19\n * http://sizzlejs.com/\n *\n * Copyright 2013 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-04-18\n */\n function (a) { function b(a, b, c, d) { var e, f, g, h, i, j, l, n, o, p; if ((b ? b.ownerDocument || b : O) !== G && F(b), b = b || G, c = c || [], !a || \"string\" != typeof a) return c; if (1 !== (h = b.nodeType) && 9 !== h) return []; if (I && !d) { if (e = sb.exec(a)) if (g = e[1]) { if (9 === h) { if (f = b.getElementById(g), !f || !f.parentNode) return c; if (f.id === g) return c.push(f), c } else if (b.ownerDocument && (f = b.ownerDocument.getElementById(g)) && M(b, f) && f.id === g) return c.push(f), c } else { if (e[2]) return _.apply(c, b.getElementsByTagName(a)), c; if ((g = e[3]) && v.getElementsByClassName && b.getElementsByClassName) return _.apply(c, b.getElementsByClassName(g)), c } if (v.qsa && (!J || !J.test(a))) { if (n = l = N, o = b, p = 9 === h && a, 1 === h && \"object\" !== b.nodeName.toLowerCase()) { for (j = z(a), (l = b.getAttribute(\"id\")) ? n = l.replace(ub, \"\\\\$&\") : b.setAttribute(\"id\", n), n = \"[id='\" + n + \"'] \", i = j.length; i--;)j[i] = n + m(j[i]); o = tb.test(a) && k(b.parentNode) || b, p = j.join(\",\") } if (p) try { return _.apply(c, o.querySelectorAll(p)), c } catch (q) { } finally { l || b.removeAttribute(\"id\") } } } return B(a.replace(ib, \"$1\"), b, c, d) } function c() { function a(c, d) { return b.push(c + \" \") > w.cacheLength && delete a[b.shift()], a[c + \" \"] = d } var b = []; return a } function d(a) { return a[N] = !0, a } function e(a) { var b = G.createElement(\"div\"); try { return !!a(b) } catch (c) { return !1 } finally { b.parentNode && b.parentNode.removeChild(b), b = null } } function f(a, b) { for (var c = a.split(\"|\"), d = a.length; d--;)w.attrHandle[c[d]] = b } function g(a, b) { var c = b && a, d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || W) - (~a.sourceIndex || W); if (d) return d; if (c) for (; c = c.nextSibling;)if (c === b) return -1; return a ? 1 : -1 } function h(a) { return function (b) { var c = b.nodeName.toLowerCase(); return \"input\" === c && b.type === a } } function i(a) { return function (b) { var c = b.nodeName.toLowerCase(); return (\"input\" === c || \"button\" === c) && b.type === a } } function j(a) { return d(function (b) { return b = +b, d(function (c, d) { for (var e, f = a([], c.length, b), g = f.length; g--;)c[e = f[g]] && (c[e] = !(d[e] = c[e])) }) }) } function k(a) { return a && typeof a.getElementsByTagName !== V && a } function l() { } function m(a) { for (var b = 0, c = a.length, d = \"\"; c > b; b++)d += a[b].value; return d } function n(a, b, c) { var d = b.dir, e = c && \"parentNode\" === d, f = Q++; return b.first ? function (b, c, f) { for (; b = b[d];)if (1 === b.nodeType || e) return a(b, c, f) } : function (b, c, g) { var h, i, j = [P, f]; if (g) { for (; b = b[d];)if ((1 === b.nodeType || e) && a(b, c, g)) return !0 } else for (; b = b[d];)if (1 === b.nodeType || e) { if (i = b[N] || (b[N] = {}), (h = i[d]) && h[0] === P && h[1] === f) return j[2] = h[2]; if (i[d] = j, j[2] = a(b, c, g)) return !0 } } } function o(a) { return a.length > 1 ? function (b, c, d) { for (var e = a.length; e--;)if (!a[e](b, c, d)) return !1; return !0 } : a[0] } function p(a, c, d) { for (var e = 0, f = c.length; f > e; e++)b(a, c[e], d); return d } function q(a, b, c, d, e) { for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h)); return g } function r(a, b, c, e, f, g) { return e && !e[N] && (e = r(e)), f && !f[N] && (f = r(f, g)), d(function (d, g, h, i) { var j, k, l, m = [], n = [], o = g.length, r = d || p(b || \"*\", h.nodeType ? [h] : h, []), s = !a || !d && b ? r : q(r, m, a, h, i), t = c ? f || (d ? a : o || e) ? [] : g : s; if (c && c(s, t, h, i), e) for (j = q(t, n), e(j, [], h, i), k = j.length; k--;)(l = j[k]) && (t[n[k]] = !(s[n[k]] = l)); if (d) { if (f || a) { if (f) { for (j = [], k = t.length; k--;)(l = t[k]) && j.push(s[k] = l); f(null, t = [], j, i) } for (k = t.length; k--;)(l = t[k]) && (j = f ? bb.call(d, l) : m[k]) > -1 && (d[j] = !(g[j] = l)) } } else t = q(t === g ? t.splice(o, t.length) : t), f ? f(null, g, t, i) : _.apply(g, t) }) } function s(a) { for (var b, c, d, e = a.length, f = w.relative[a[0].type], g = f || w.relative[\" \"], h = f ? 1 : 0, i = n(function (a) { return a === b }, g, !0), j = n(function (a) { return bb.call(b, a) > -1 }, g, !0), k = [function (a, c, d) { return !f && (d || c !== C) || ((b = c).nodeType ? i(a, c, d) : j(a, c, d)) }]; e > h; h++)if (c = w.relative[a[h].type]) k = [n(o(k), c)]; else { if (c = w.filter[a[h].type].apply(null, a[h].matches), c[N]) { for (d = ++h; e > d && !w.relative[a[d].type]; d++); return r(h > 1 && o(k), h > 1 && m(a.slice(0, h - 1).concat({ value: \" \" === a[h - 2].type ? \"*\" : \"\" })).replace(ib, \"$1\"), c, d > h && s(a.slice(h, d)), e > d && s(a = a.slice(d)), e > d && m(a)) } k.push(c) } return o(k) } function t(a, c) { var e = c.length > 0, f = a.length > 0, g = function (d, g, h, i, j) { var k, l, m, n = 0, o = \"0\", p = d && [], r = [], s = C, t = d || f && w.find.TAG(\"*\", j), u = P += null == s ? 1 : Math.random() || .1, v = t.length; for (j && (C = g !== G && g); o !== v && null != (k = t[o]); o++) { if (f && k) { for (l = 0; m = a[l++];)if (m(k, g, h)) { i.push(k); break } j && (P = u) } e && ((k = !m && k) && n--, d && p.push(k)) } if (n += o, e && o !== n) { for (l = 0; m = c[l++];)m(p, r, g, h); if (d) { if (n > 0) for (; o--;)p[o] || r[o] || (r[o] = Z.call(i)); r = q(r) } _.apply(i, r), j && !d && r.length > 0 && n + c.length > 1 && b.uniqueSort(i) } return j && (P = u, C = s), p }; return e ? d(g) : g } var u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N = \"sizzle\" + -new Date, O = a.document, P = 0, Q = 0, R = c(), S = c(), T = c(), U = function (a, b) { return a === b && (E = !0), 0 }, V = \"undefined\", W = 1 << 31, X = {}.hasOwnProperty, Y = [], Z = Y.pop, $ = Y.push, _ = Y.push, ab = Y.slice, bb = Y.indexOf || function (a) { for (var b = 0, c = this.length; c > b; b++)if (this[b] === a) return b; return -1 }, cb = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\", db = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\", eb = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\", fb = eb.replace(\"w\", \"w#\"), gb = \"\\\\[\" + db + \"*(\" + eb + \")(?:\" + db + \"*([*^$|!~]?=)\" + db + \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + fb + \"))|)\" + db + \"*\\\\]\", hb = \":(\" + eb + \")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + gb + \")*)|.*)\\\\)|)\", ib = new RegExp(\"^\" + db + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + db + \"+$\", \"g\"), jb = new RegExp(\"^\" + db + \"*,\" + db + \"*\"), kb = new RegExp(\"^\" + db + \"*([>+~]|\" + db + \")\" + db + \"*\"), lb = new RegExp(\"=\" + db + \"*([^\\\\]'\\\"]*?)\" + db + \"*\\\\]\", \"g\"), mb = new RegExp(hb), nb = new RegExp(\"^\" + fb + \"$\"), ob = { ID: new RegExp(\"^#(\" + eb + \")\"), CLASS: new RegExp(\"^\\\\.(\" + eb + \")\"), TAG: new RegExp(\"^(\" + eb.replace(\"w\", \"w*\") + \")\"), ATTR: new RegExp(\"^\" + gb), PSEUDO: new RegExp(\"^\" + hb), CHILD: new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + db + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + db + \"*(?:([+-]|)\" + db + \"*(\\\\d+)|))\" + db + \"*\\\\)|)\", \"i\"), bool: new RegExp(\"^(?:\" + cb + \")$\", \"i\"), needsContext: new RegExp(\"^\" + db + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + db + \"*((?:-\\\\d)?\\\\d*)\" + db + \"*\\\\)|)(?=[^-]|$)\", \"i\") }, pb = /^(?:input|select|textarea|button)$/i, qb = /^h\\d$/i, rb = /^[^{]+\\{\\s*\\[native \\w/, sb = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/, tb = /[+~]/, ub = /'|\\\\/g, vb = new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\" + db + \"?|(\" + db + \")|.)\", \"ig\"), wb = function (a, b, c) { var d = \"0x\" + b - 65536; return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) }; try { _.apply(Y = ab.call(O.childNodes), O.childNodes), Y[O.childNodes.length].nodeType } catch (xb) { _ = { apply: Y.length ? function (a, b) { $.apply(a, ab.call(b)) } : function (a, b) { for (var c = a.length, d = 0; a[c++] = b[d++];); a.length = c - 1 } } } v = b.support = {}, y = b.isXML = function (a) { var b = a && (a.ownerDocument || a).documentElement; return b ? \"HTML\" !== b.nodeName : !1 }, F = b.setDocument = function (a) { var b, c = a ? a.ownerDocument || a : O, d = c.defaultView; return c !== G && 9 === c.nodeType && c.documentElement ? (G = c, H = c.documentElement, I = !y(c), d && d !== d.top && (d.addEventListener ? d.addEventListener(\"unload\", function () { F() }, !1) : d.attachEvent && d.attachEvent(\"onunload\", function () { F() })), v.attributes = e(function (a) { return a.className = \"i\", !a.getAttribute(\"className\") }), v.getElementsByTagName = e(function (a) { return a.appendChild(c.createComment(\"\")), !a.getElementsByTagName(\"*\").length }), v.getElementsByClassName = rb.test(c.getElementsByClassName) && e(function (a) { return a.innerHTML = \"<div class='a'></div><div class='a i'></div>\", a.firstChild.className = \"i\", 2 === a.getElementsByClassName(\"i\").length }), v.getById = e(function (a) { return H.appendChild(a).id = N, !c.getElementsByName || !c.getElementsByName(N).length }), v.getById ? (w.find.ID = function (a, b) { if (typeof b.getElementById !== V && I) { var c = b.getElementById(a); return c && c.parentNode ? [c] : [] } }, w.filter.ID = function (a) { var b = a.replace(vb, wb); return function (a) { return a.getAttribute(\"id\") === b } }) : (delete w.find.ID, w.filter.ID = function (a) { var b = a.replace(vb, wb); return function (a) { var c = typeof a.getAttributeNode !== V && a.getAttributeNode(\"id\"); return c && c.value === b } }), w.find.TAG = v.getElementsByTagName ? function (a, b) { return typeof b.getElementsByTagName !== V ? b.getElementsByTagName(a) : void 0 } : function (a, b) { var c, d = [], e = 0, f = b.getElementsByTagName(a); if (\"*\" === a) { for (; c = f[e++];)1 === c.nodeType && d.push(c); return d } return f }, w.find.CLASS = v.getElementsByClassName && function (a, b) { return typeof b.getElementsByClassName !== V && I ? b.getElementsByClassName(a) : void 0 }, K = [], J = [], (v.qsa = rb.test(c.querySelectorAll)) && (e(function (a) { a.innerHTML = \"<select msallowclip=''><option selected=''></option></select>\", a.querySelectorAll(\"[msallowclip^='']\").length && J.push(\"[*^$]=\" + db + \"*(?:''|\\\"\\\")\"), a.querySelectorAll(\"[selected]\").length || J.push(\"\\\\[\" + db + \"*(?:value|\" + cb + \")\"), a.querySelectorAll(\":checked\").length || J.push(\":checked\") }), e(function (a) { var b = c.createElement(\"input\"); b.setAttribute(\"type\", \"hidden\"), a.appendChild(b).setAttribute(\"name\", \"D\"), a.querySelectorAll(\"[name=d]\").length && J.push(\"name\" + db + \"*[*^$|!~]?=\"), a.querySelectorAll(\":enabled\").length || J.push(\":enabled\", \":disabled\"), a.querySelectorAll(\"*,:x\"), J.push(\",.*:\") })), (v.matchesSelector = rb.test(L = H.matches || H.webkitMatchesSelector || H.mozMatchesSelector || H.oMatchesSelector || H.msMatchesSelector)) && e(function (a) { v.disconnectedMatch = L.call(a, \"div\"), L.call(a, \"[s!='']:x\"), K.push(\"!=\", hb) }), J = J.length && new RegExp(J.join(\"|\")), K = K.length && new RegExp(K.join(\"|\")), b = rb.test(H.compareDocumentPosition), M = b || rb.test(H.contains) ? function (a, b) { var c = 9 === a.nodeType ? a.documentElement : a, d = b && b.parentNode; return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d))) } : function (a, b) { if (b) for (; b = b.parentNode;)if (b === a) return !0; return !1 }, U = b ? function (a, b) { if (a === b) return E = !0, 0; var d = !a.compareDocumentPosition - !b.compareDocumentPosition; return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !v.sortDetached && b.compareDocumentPosition(a) === d ? a === c || a.ownerDocument === O && M(O, a) ? -1 : b === c || b.ownerDocument === O && M(O, b) ? 1 : D ? bb.call(D, a) - bb.call(D, b) : 0 : 4 & d ? -1 : 1) } : function (a, b) { if (a === b) return E = !0, 0; var d, e = 0, f = a.parentNode, h = b.parentNode, i = [a], j = [b]; if (!f || !h) return a === c ? -1 : b === c ? 1 : f ? -1 : h ? 1 : D ? bb.call(D, a) - bb.call(D, b) : 0; if (f === h) return g(a, b); for (d = a; d = d.parentNode;)i.unshift(d); for (d = b; d = d.parentNode;)j.unshift(d); for (; i[e] === j[e];)e++; return e ? g(i[e], j[e]) : i[e] === O ? -1 : j[e] === O ? 1 : 0 }, c) : G }, b.matches = function (a, c) { return b(a, null, null, c) }, b.matchesSelector = function (a, c) { if ((a.ownerDocument || a) !== G && F(a), c = c.replace(lb, \"='$1']\"), !(!v.matchesSelector || !I || K && K.test(c) || J && J.test(c))) try { var d = L.call(a, c); if (d || v.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d } catch (e) { } return b(c, G, null, [a]).length > 0 }, b.contains = function (a, b) { return (a.ownerDocument || a) !== G && F(a), M(a, b) }, b.attr = function (a, b) { (a.ownerDocument || a) !== G && F(a); var c = w.attrHandle[b.toLowerCase()], d = c && X.call(w.attrHandle, b.toLowerCase()) ? c(a, b, !I) : void 0; return void 0 !== d ? d : v.attributes || !I ? a.getAttribute(b) : (d = a.getAttributeNode(b)) && d.specified ? d.value : null }, b.error = function (a) { throw new Error(\"Syntax error, unrecognized expression: \" + a) }, b.uniqueSort = function (a) { var b, c = [], d = 0, e = 0; if (E = !v.detectDuplicates, D = !v.sortStable && a.slice(0), a.sort(U), E) { for (; b = a[e++];)b === a[e] && (d = c.push(e)); for (; d--;)a.splice(c[d], 1) } return D = null, a }, x = b.getText = function (a) { var b, c = \"\", d = 0, e = a.nodeType; if (e) { if (1 === e || 9 === e || 11 === e) { if (\"string\" == typeof a.textContent) return a.textContent; for (a = a.firstChild; a; a = a.nextSibling)c += x(a) } else if (3 === e || 4 === e) return a.nodeValue } else for (; b = a[d++];)c += x(b); return c }, w = b.selectors = { cacheLength: 50, createPseudo: d, match: ob, attrHandle: {}, find: {}, relative: { \">\": { dir: \"parentNode\", first: !0 }, \" \": { dir: \"parentNode\" }, \"+\": { dir: \"previousSibling\", first: !0 }, \"~\": { dir: \"previousSibling\" } }, preFilter: { ATTR: function (a) { return a[1] = a[1].replace(vb, wb), a[3] = (a[3] || a[4] || a[5] || \"\").replace(vb, wb), \"~=\" === a[2] && (a[3] = \" \" + a[3] + \" \"), a.slice(0, 4) }, CHILD: function (a) { return a[1] = a[1].toLowerCase(), \"nth\" === a[1].slice(0, 3) ? (a[3] || b.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * (\"even\" === a[3] || \"odd\" === a[3])), a[5] = +(a[7] + a[8] || \"odd\" === a[3])) : a[3] && b.error(a[0]), a }, PSEUDO: function (a) { var b, c = !a[6] && a[2]; return ob.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || \"\" : c && mb.test(c) && (b = z(c, !0)) && (b = c.indexOf(\")\", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3)) } }, filter: { TAG: function (a) { var b = a.replace(vb, wb).toLowerCase(); return \"*\" === a ? function () { return !0 } : function (a) { return a.nodeName && a.nodeName.toLowerCase() === b } }, CLASS: function (a) { var b = R[a + \" \"]; return b || (b = new RegExp(\"(^|\" + db + \")\" + a + \"(\" + db + \"|$)\")) && R(a, function (a) { return b.test(\"string\" == typeof a.className && a.className || typeof a.getAttribute !== V && a.getAttribute(\"class\") || \"\") }) }, ATTR: function (a, c, d) { return function (e) { var f = b.attr(e, a); return null == f ? \"!=\" === c : c ? (f += \"\", \"=\" === c ? f === d : \"!=\" === c ? f !== d : \"^=\" === c ? d && 0 === f.indexOf(d) : \"*=\" === c ? d && f.indexOf(d) > -1 : \"$=\" === c ? d && f.slice(-d.length) === d : \"~=\" === c ? (\" \" + f + \" \").indexOf(d) > -1 : \"|=\" === c ? f === d || f.slice(0, d.length + 1) === d + \"-\" : !1) : !0 } }, CHILD: function (a, b, c, d, e) { var f = \"nth\" !== a.slice(0, 3), g = \"last\" !== a.slice(-4), h = \"of-type\" === b; return 1 === d && 0 === e ? function (a) { return !!a.parentNode } : function (b, c, i) { var j, k, l, m, n, o, p = f !== g ? \"nextSibling\" : \"previousSibling\", q = b.parentNode, r = h && b.nodeName.toLowerCase(), s = !i && !h; if (q) { if (f) { for (; p;) { for (l = b; l = l[p];)if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1; o = p = \"only\" === a && !o && \"nextSibling\" } return !0 } if (o = [g ? q.firstChild : q.lastChild], g && s) { for (k = q[N] || (q[N] = {}), j = k[a] || [], n = j[0] === P && j[1], m = j[0] === P && j[2], l = n && q.childNodes[n]; l = ++n && l && l[p] || (m = n = 0) || o.pop();)if (1 === l.nodeType && ++m && l === b) { k[a] = [P, n, m]; break } } else if (s && (j = (b[N] || (b[N] = {}))[a]) && j[0] === P) m = j[1]; else for (; (l = ++n && l && l[p] || (m = n = 0) || o.pop()) && ((h ? l.nodeName.toLowerCase() !== r : 1 !== l.nodeType) || !++m || (s && ((l[N] || (l[N] = {}))[a] = [P, m]), l !== b));); return m -= e, m === d || m % d === 0 && m / d >= 0 } } }, PSEUDO: function (a, c) { var e, f = w.pseudos[a] || w.setFilters[a.toLowerCase()] || b.error(\"unsupported pseudo: \" + a); return f[N] ? f(c) : f.length > 1 ? (e = [a, a, \"\", c], w.setFilters.hasOwnProperty(a.toLowerCase()) ? d(function (a, b) { for (var d, e = f(a, c), g = e.length; g--;)d = bb.call(a, e[g]), a[d] = !(b[d] = e[g]) }) : function (a) { return f(a, 0, e) }) : f } }, pseudos: { not: d(function (a) { var b = [], c = [], e = A(a.replace(ib, \"$1\")); return e[N] ? d(function (a, b, c, d) { for (var f, g = e(a, null, d, []), h = a.length; h--;)(f = g[h]) && (a[h] = !(b[h] = f)) }) : function (a, d, f) { return b[0] = a, e(b, null, f, c), !c.pop() } }), has: d(function (a) { return function (c) { return b(a, c).length > 0 } }), contains: d(function (a) { return function (b) { return (b.textContent || b.innerText || x(b)).indexOf(a) > -1 } }), lang: d(function (a) { return nb.test(a || \"\") || b.error(\"unsupported lang: \" + a), a = a.replace(vb, wb).toLowerCase(), function (b) { var c; do if (c = I ? b.lang : b.getAttribute(\"xml:lang\") || b.getAttribute(\"lang\")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + \"-\"); while ((b = b.parentNode) && 1 === b.nodeType); return !1 } }), target: function (b) { var c = a.location && a.location.hash; return c && c.slice(1) === b.id }, root: function (a) { return a === H }, focus: function (a) { return a === G.activeElement && (!G.hasFocus || G.hasFocus()) && !!(a.type || a.href || ~a.tabIndex) }, enabled: function (a) { return a.disabled === !1 }, disabled: function (a) { return a.disabled === !0 }, checked: function (a) { var b = a.nodeName.toLowerCase(); return \"input\" === b && !!a.checked || \"option\" === b && !!a.selected }, selected: function (a) { return a.parentNode && a.parentNode.selectedIndex, a.selected === !0 }, empty: function (a) { for (a = a.firstChild; a; a = a.nextSibling)if (a.nodeType < 6) return !1; return !0 }, parent: function (a) { return !w.pseudos.empty(a) }, header: function (a) { return qb.test(a.nodeName) }, input: function (a) { return pb.test(a.nodeName) }, button: function (a) { var b = a.nodeName.toLowerCase(); return \"input\" === b && \"button\" === a.type || \"button\" === b }, text: function (a) { var b; return \"input\" === a.nodeName.toLowerCase() && \"text\" === a.type && (null == (b = a.getAttribute(\"type\")) || \"text\" === b.toLowerCase()) }, first: j(function () { return [0] }), last: j(function (a, b) { return [b - 1] }), eq: j(function (a, b, c) { return [0 > c ? c + b : c] }), even: j(function (a, b) { for (var c = 0; b > c; c += 2)a.push(c); return a }), odd: j(function (a, b) { for (var c = 1; b > c; c += 2)a.push(c); return a }), lt: j(function (a, b, c) { for (var d = 0 > c ? c + b : c; --d >= 0;)a.push(d); return a }), gt: j(function (a, b, c) { for (var d = 0 > c ? c + b : c; ++d < b;)a.push(d); return a }) } }, w.pseudos.nth = w.pseudos.eq; for (u in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) w.pseudos[u] = h(u); for (u in { submit: !0, reset: !0 }) w.pseudos[u] = i(u); return l.prototype = w.filters = w.pseudos, w.setFilters = new l, z = b.tokenize = function (a, c) { var d, e, f, g, h, i, j, k = S[a + \" \"]; if (k) return c ? 0 : k.slice(0); for (h = a, i = [], j = w.preFilter; h;) { (!d || (e = jb.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), d = !1, (e = kb.exec(h)) && (d = e.shift(), f.push({ value: d, type: e[0].replace(ib, \" \") }), h = h.slice(d.length)); for (g in w.filter) !(e = ob[g].exec(h)) || j[g] && !(e = j[g](e)) || (d = e.shift(), f.push({ value: d, type: g, matches: e }), h = h.slice(d.length)); if (!d) break } return c ? h.length : h ? b.error(a) : S(a, i).slice(0) }, A = b.compile = function (a, b) { var c, d = [], e = [], f = T[a + \" \"]; if (!f) { for (b || (b = z(a)), c = b.length; c--;)f = s(b[c]), f[N] ? d.push(f) : e.push(f); f = T(a, t(e, d)), f.selector = a } return f }, B = b.select = function (a, b, c, d) { var e, f, g, h, i, j = \"function\" == typeof a && a, l = !d && z(a = j.selector || a); if (c = c || [], 1 === l.length) { if (f = l[0] = l[0].slice(0), f.length > 2 && \"ID\" === (g = f[0]).type && v.getById && 9 === b.nodeType && I && w.relative[f[1].type]) { if (b = (w.find.ID(g.matches[0].replace(vb, wb), b) || [])[0], !b) return c; j && (b = b.parentNode), a = a.slice(f.shift().value.length) } for (e = ob.needsContext.test(a) ? 0 : f.length; e-- && (g = f[e], !w.relative[h = g.type]);)if ((i = w.find[h]) && (d = i(g.matches[0].replace(vb, wb), tb.test(f[0].type) && k(b.parentNode) || b))) { if (f.splice(e, 1), a = d.length && m(f), !a) return _.apply(c, d), c; break } } return (j || A(a, l))(d, b, !I, c, tb.test(a) && k(b.parentNode) || b), c }, v.sortStable = N.split(\"\").sort(U).join(\"\") === N, v.detectDuplicates = !!E, F(), v.sortDetached = e(function (a) { return 1 & a.compareDocumentPosition(G.createElement(\"div\")) }), e(function (a) { return a.innerHTML = \"<a href='#'></a>\", \"#\" === a.firstChild.getAttribute(\"href\") }) || f(\"type|href|height|width\", function (a, b, c) { return c ? void 0 : a.getAttribute(b, \"type\" === b.toLowerCase() ? 1 : 2) }), v.attributes && e(function (a) { return a.innerHTML = \"<input/>\", a.firstChild.setAttribute(\"value\", \"\"), \"\" === a.firstChild.getAttribute(\"value\") }) || f(\"value\", function (a, b, c) { return c || \"input\" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue }), e(function (a) { return null == a.getAttribute(\"disabled\") }) || f(cb, function (a, b, c) { var d; return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null }), b }(a); _.find = eb, _.expr = eb.selectors, _.expr[\":\"] = _.expr.pseudos, _.unique = eb.uniqueSort, _.text = eb.getText, _.isXMLDoc = eb.isXML, _.contains = eb.contains; var fb = _.expr.match.needsContext, gb = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/, hb = /^.[^:#\\[\\.,]*$/; _.filter = function (a, b, c) { var d = b[0]; return c && (a = \":not(\" + a + \")\"), 1 === b.length && 1 === d.nodeType ? _.find.matchesSelector(d, a) ? [d] : [] : _.find.matches(a, _.grep(b, function (a) { return 1 === a.nodeType })) }, _.fn.extend({ find: function (a) { var b, c = this.length, d = [], e = this; if (\"string\" != typeof a) return this.pushStack(_(a).filter(function () { for (b = 0; c > b; b++)if (_.contains(e[b], this)) return !0 })); for (b = 0; c > b; b++)_.find(a, e[b], d); return d = this.pushStack(c > 1 ? _.unique(d) : d), d.selector = this.selector ? this.selector + \" \" + a : a, d }, filter: function (a) { return this.pushStack(d(this, a || [], !1)) }, not: function (a) { return this.pushStack(d(this, a || [], !0)) }, is: function (a) { return !!d(this, \"string\" == typeof a && fb.test(a) ? _(a) : a || [], !1).length } }); var ib, jb = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/, kb = _.fn.init = function (a, b) { var c, d; if (!a) return this; if (\"string\" == typeof a) { if (c = \"<\" === a[0] && \">\" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : jb.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || ib).find(a) : this.constructor(b).find(a); if (c[1]) { if (b = b instanceof _ ? b[0] : b, _.merge(this, _.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : Z, !0)), gb.test(c[1]) && _.isPlainObject(b)) for (c in b) _.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]); return this } return d = Z.getElementById(c[2]), d && d.parentNode && (this.length = 1, this[0] = d), this.context = Z, this.selector = a, this } return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : _.isFunction(a) ? \"undefined\" != typeof ib.ready ? ib.ready(a) : a(_) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), _.makeArray(a, this)) }; kb.prototype = _.fn, ib = _(Z); var lb = /^(?:parents|prev(?:Until|All))/, mb = { children: !0, contents: !0, next: !0, prev: !0 }; _.extend({ dir: function (a, b, c) { for (var d = [], e = void 0 !== c; (a = a[b]) && 9 !== a.nodeType;)if (1 === a.nodeType) { if (e && _(a).is(c)) break; d.push(a) } return d }, sibling: function (a, b) { for (var c = []; a; a = a.nextSibling)1 === a.nodeType && a !== b && c.push(a); return c } }), _.fn.extend({ has: function (a) { var b = _(a, this), c = b.length; return this.filter(function () { for (var a = 0; c > a; a++)if (_.contains(this, b[a])) return !0 }) }, closest: function (a, b) { for (var c, d = 0, e = this.length, f = [], g = fb.test(a) || \"string\" != typeof a ? _(a, b || this.context) : 0; e > d; d++)for (c = this[d]; c && c !== b; c = c.parentNode)if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && _.find.matchesSelector(c, a))) { f.push(c); break } return this.pushStack(f.length > 1 ? _.unique(f) : f) }, index: function (a) { return a ? \"string\" == typeof a ? U.call(_(a), this[0]) : U.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function (a, b) { return this.pushStack(_.unique(_.merge(this.get(), _(a, b)))) }, addBack: function (a) { return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) } }), _.each({ parent: function (a) { var b = a.parentNode; return b && 11 !== b.nodeType ? b : null }, parents: function (a) { return _.dir(a, \"parentNode\") }, parentsUntil: function (a, b, c) { return _.dir(a, \"parentNode\", c) }, next: function (a) { return e(a, \"nextSibling\") }, prev: function (a) { return e(a, \"previousSibling\") }, nextAll: function (a) { return _.dir(a, \"nextSibling\") }, prevAll: function (a) { return _.dir(a, \"previousSibling\") }, nextUntil: function (a, b, c) { return _.dir(a, \"nextSibling\", c) }, prevUntil: function (a, b, c) { return _.dir(a, \"previousSibling\", c) }, siblings: function (a) { return _.sibling((a.parentNode || {}).firstChild, a) }, children: function (a) { return _.sibling(a.firstChild) }, contents: function (a) { return a.contentDocument || _.merge([], a.childNodes) } }, function (a, b) { _.fn[a] = function (c, d) { var e = _.map(this, b, c); return \"Until\" !== a.slice(-5) && (d = c), d && \"string\" == typeof d && (e = _.filter(d, e)), this.length > 1 && (mb[a] || _.unique(e), lb.test(a) && e.reverse()), this.pushStack(e) } }); var nb = /\\S+/g, ob = {}; _.Callbacks = function (a) { a = \"string\" == typeof a ? ob[a] || f(a) : _.extend({}, a); var b, c, d, e, g, h, i = [], j = !a.once && [], k = function (f) { for (b = a.memory && f, c = !0, h = e || 0, e = 0, g = i.length, d = !0; i && g > h; h++)if (i[h].apply(f[0], f[1]) === !1 && a.stopOnFalse) { b = !1; break } d = !1, i && (j ? j.length && k(j.shift()) : b ? i = [] : l.disable()) }, l = { add: function () { if (i) { var c = i.length; !function f(b) { _.each(b, function (b, c) { var d = _.type(c); \"function\" === d ? a.unique && l.has(c) || i.push(c) : c && c.length && \"string\" !== d && f(c) }) }(arguments), d ? g = i.length : b && (e = c, k(b)) } return this }, remove: function () { return i && _.each(arguments, function (a, b) { for (var c; (c = _.inArray(b, i, c)) > -1;)i.splice(c, 1), d && (g >= c && g--, h >= c && h--) }), this }, has: function (a) { return a ? _.inArray(a, i) > -1 : !(!i || !i.length) }, empty: function () { return i = [], g = 0, this }, disable: function () { return i = j = b = void 0, this }, disabled: function () { return !i }, lock: function () { return j = void 0, b || l.disable(), this }, locked: function () { return !j }, fireWith: function (a, b) { return !i || c && !j || (b = b || [], b = [a, b.slice ? b.slice() : b], d ? j.push(b) : k(b)), this }, fire: function () { return l.fireWith(this, arguments), this }, fired: function () { return !!c } }; return l }, _.extend({ Deferred: function (a) { var b = [[\"resolve\", \"done\", _.Callbacks(\"once memory\"), \"resolved\"], [\"reject\", \"fail\", _.Callbacks(\"once memory\"), \"rejected\"], [\"notify\", \"progress\", _.Callbacks(\"memory\")]], c = \"pending\", d = { state: function () { return c }, always: function () { return e.done(arguments).fail(arguments), this }, then: function () { var a = arguments; return _.Deferred(function (c) { _.each(b, function (b, f) { var g = _.isFunction(a[b]) && a[b]; e[f[1]](function () { var a = g && g.apply(this, arguments); a && _.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + \"With\"](this === d ? c.promise() : this, g ? [a] : arguments) }) }), a = null }).promise() }, promise: function (a) { return null != a ? _.extend(a, d) : d } }, e = {}; return d.pipe = d.then, _.each(b, function (a, f) { var g = f[2], h = f[3]; d[f[1]] = g.add, h && g.add(function () { c = h }, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function () { return e[f[0] + \"With\"](this === e ? d : this, arguments), this }, e[f[0] + \"With\"] = g.fireWith }), d.promise(e), a && a.call(e, e), e }, when: function (a) { var b, c, d, e = 0, f = R.call(arguments), g = f.length, h = 1 !== g || a && _.isFunction(a.promise) ? g : 0, i = 1 === h ? a : _.Deferred(), j = function (a, c, d) { return function (e) { c[a] = this, d[a] = arguments.length > 1 ? R.call(arguments) : e, d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d) } }; if (g > 1) for (b = new Array(g), c = new Array(g), d = new Array(g); g > e; e++)f[e] && _.isFunction(f[e].promise) ? f[e].promise().done(j(e, d, f)).fail(i.reject).progress(j(e, c, b)) : --h; return h || i.resolveWith(d, f), i.promise() } }); var pb; _.fn.ready = function (a) { return _.ready.promise().done(a), this }, _.extend({ isReady: !1, readyWait: 1, holdReady: function (a) { a ? _.readyWait++ : _.ready(!0) }, ready: function (a) { (a === !0 ? --_.readyWait : _.isReady) || (_.isReady = !0, a !== !0 && --_.readyWait > 0 || (pb.resolveWith(Z, [_]), _.fn.triggerHandler && (_(Z).triggerHandler(\"ready\"), _(Z).off(\"ready\")))) } }), _.ready.promise = function (b) { return pb || (pb = _.Deferred(), \"complete\" === Z.readyState ? setTimeout(_.ready) : (Z.addEventListener(\"DOMContentLoaded\", g, !1), a.addEventListener(\"load\", g, !1))), pb.promise(b) }, _.ready.promise(); var qb = _.access = function (a, b, c, d, e, f, g) { var h = 0, i = a.length, j = null == c; if (\"object\" === _.type(c)) { e = !0; for (h in c) _.access(a, b, h, c[h], !0, f, g) } else if (void 0 !== d && (e = !0, _.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function (a, b, c) { return j.call(_(a), c) })), b)) for (; i > h; h++)b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c))); return e ? a : j ? b.call(a) : i ? b(a[0], c) : f }; _.acceptData = function (a) { return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType }, h.uid = 1, h.accepts = _.acceptData, h.prototype = { key: function (a) { if (!h.accepts(a)) return 0; var b = {}, c = a[this.expando]; if (!c) { c = h.uid++; try { b[this.expando] = { value: c }, Object.defineProperties(a, b) } catch (d) { b[this.expando] = c, _.extend(a, b) } } return this.cache[c] || (this.cache[c] = {}), c }, set: function (a, b, c) { var d, e = this.key(a), f = this.cache[e]; if (\"string\" == typeof b) f[b] = c; else if (_.isEmptyObject(f)) _.extend(this.cache[e], b); else for (d in b) f[d] = b[d]; return f }, get: function (a, b) { var c = this.cache[this.key(a)]; return void 0 === b ? c : c[b] }, access: function (a, b, c) { var d; return void 0 === b || b && \"string\" == typeof b && void 0 === c ? (d = this.get(a, b), void 0 !== d ? d : this.get(a, _.camelCase(b))) : (this.set(a, b, c), void 0 !== c ? c : b) }, remove: function (a, b) { var c, d, e, f = this.key(a), g = this.cache[f]; if (void 0 === b) this.cache[f] = {}; else { _.isArray(b) ? d = b.concat(b.map(_.camelCase)) : (e = _.camelCase(b), b in g ? d = [b, e] : (d = e, d = d in g ? [d] : d.match(nb) || [])), c = d.length; for (; c--;)delete g[d[c]] } }, hasData: function (a) { return !_.isEmptyObject(this.cache[a[this.expando]] || {}) }, discard: function (a) { a[this.expando] && delete this.cache[a[this.expando]] } }; var rb = new h, sb = new h, tb = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/, ub = /([A-Z])/g; _.extend({ hasData: function (a) { return sb.hasData(a) || rb.hasData(a) }, data: function (a, b, c) { return sb.access(a, b, c) }, removeData: function (a, b) { sb.remove(a, b) }, _data: function (a, b, c) { return rb.access(a, b, c) }, _removeData: function (a, b) { rb.remove(a, b) } }), _.fn.extend({ data: function (a, b) { var c, d, e, f = this[0], g = f && f.attributes; if (void 0 === a) { if (this.length && (e = sb.get(f), 1 === f.nodeType && !rb.get(f, \"hasDataAttrs\"))) { for (c = g.length; c--;)g[c] && (d = g[c].name, 0 === d.indexOf(\"data-\") && (d = _.camelCase(d.slice(5)), i(f, d, e[d]))); rb.set(f, \"hasDataAttrs\", !0) } return e } return \"object\" == typeof a ? this.each(function () { sb.set(this, a) }) : qb(this, function (b) { var c, d = _.camelCase(a); if (f && void 0 === b) { if (c = sb.get(f, a), void 0 !== c) return c; if (c = sb.get(f, d), void 0 !== c) return c; if (c = i(f, d, void 0), void 0 !== c) return c } else this.each(function () { var c = sb.get(this, d); sb.set(this, d, b), -1 !== a.indexOf(\"-\") && void 0 !== c && sb.set(this, a, b) }) }, null, b, arguments.length > 1, null, !0) }, removeData: function (a) { return this.each(function () { sb.remove(this, a) }) } }), _.extend({ queue: function (a, b, c) { var d; return a ? (b = (b || \"fx\") + \"queue\", d = rb.get(a, b), c && (!d || _.isArray(c) ? d = rb.access(a, b, _.makeArray(c)) : d.push(c)), d || []) : void 0 }, dequeue: function (a, b) { b = b || \"fx\"; var c = _.queue(a, b), d = c.length, e = c.shift(), f = _._queueHooks(a, b), g = function () { _.dequeue(a, b) }; \"inprogress\" === e && (e = c.shift(), d--), e && (\"fx\" === b && c.unshift(\"inprogress\"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire() }, _queueHooks: function (a, b) { var c = b + \"queueHooks\"; return rb.get(a, c) || rb.access(a, c, { empty: _.Callbacks(\"once memory\").add(function () { rb.remove(a, [b + \"queue\", c]) }) }) } }), _.fn.extend({ queue: function (a, b) { var c = 2; return \"string\" != typeof a && (b = a, a = \"fx\", c--), arguments.length < c ? _.queue(this[0], a) : void 0 === b ? this : this.each(function () { var c = _.queue(this, a, b); _._queueHooks(this, a), \"fx\" === a && \"inprogress\" !== c[0] && _.dequeue(this, a) }) }, dequeue: function (a) { return this.each(function () { _.dequeue(this, a) }) }, clearQueue: function (a) { return this.queue(a || \"fx\", []) }, promise: function (a, b) { var c, d = 1, e = _.Deferred(), f = this, g = this.length, h = function () { --d || e.resolveWith(f, [f]) }; for (\"string\" != typeof a && (b = a, a = void 0), a = a || \"fx\"; g--;)c = rb.get(f[g], a + \"queueHooks\"), c && c.empty && (d++, c.empty.add(h)); return h(), e.promise(b) } }); var vb = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source, wb = [\"Top\", \"Right\", \"Bottom\", \"Left\"], xb = function (a, b) { return a = b || a, \"none\" === _.css(a, \"display\") || !_.contains(a.ownerDocument, a) }, yb = /^(?:checkbox|radio)$/i; !function () { var a = Z.createDocumentFragment(), b = a.appendChild(Z.createElement(\"div\")), c = Z.createElement(\"input\"); c.setAttribute(\"type\", \"radio\"), c.setAttribute(\"checked\", \"checked\"), c.setAttribute(\"name\", \"t\"), b.appendChild(c), Y.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, b.innerHTML = \"<textarea>x</textarea>\", Y.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue }(); var zb = \"undefined\"; Y.focusinBubbles = \"onfocusin\" in a; var Ab = /^key/, Bb = /^(?:mouse|pointer|contextmenu)|click/, Cb = /^(?:focusinfocus|focusoutblur)$/, Db = /^([^.]*)(?:\\.(.+)|)$/; _.event = {\r\n global: {}, add: function (a, b, c, d, e) { var f, g, h, i, j, k, l, m, n, o, p, q = rb.get(a); if (q) for (c.handler && (f = c, c = f.handler, e = f.selector), c.guid || (c.guid = _.guid++), (i = q.events) || (i = q.events = {}), (g = q.handle) || (g = q.handle = function (b) { return typeof _ !== zb && _.event.triggered !== b.type ? _.event.dispatch.apply(a, arguments) : void 0 }), b = (b || \"\").match(nb) || [\"\"], j = b.length; j--;)h = Db.exec(b[j]) || [], n = p = h[1], o = (h[2] || \"\").split(\".\").sort(), n && (l = _.event.special[n] || {}, n = (e ? l.delegateType : l.bindType) || n, l = _.event.special[n] || {}, k = _.extend({ type: n, origType: p, data: d, handler: c, guid: c.guid, selector: e, needsContext: e && _.expr.match.needsContext.test(e), namespace: o.join(\".\") }, f), (m = i[n]) || (m = i[n] = [], m.delegateCount = 0, l.setup && l.setup.call(a, d, o, g) !== !1 || a.addEventListener && a.addEventListener(n, g, { capture: false, passive: n.indexOf('touch') > -1 && n.indexOf('scroll')>-1})),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),_.event.global[n]=!0)},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=rb.hasData(a)&&rb.get(a);if(q&&(i=q.events)){for(b=(b||\"\").match(nb)||[\"\"],j=b.length;j--;)if(h=Db.exec(b[j])||[],n=p=h[1],o=(h[2]||\"\").split(\".\").sort(),n){for(l=_.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp(\"(^|\\\\.)\"+o.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(\"**\"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||_.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)_.event.remove(a,n+b[j],c,d,!0);_.isEmptyObject(i)&&(delete q.handle,rb.remove(a,\"events\"))}},trigger:function(b,c,d,e){var f,g,h,i,j,k,l,m=[d||Z],n=X.call(b,\"type\")?b.type:b,o=X.call(b,\"namespace\")?b.namespace.split(\".\"):[];if(g=h=d=d||Z,3!==d.nodeType&&8!==d.nodeType&&!Cb.test(n+_.event.triggered)&&(n.indexOf(\".\")>=0&&(o=n.split(\".\"),n=o.shift(),o.sort()),j=n.indexOf(\":\")<0&&\"on\"+n,b=b[_.expando]?b:new _.Event(n,\"object\"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=o.join(\".\"),b.namespace_re=b.namespace?new RegExp(\"(^|\\\\.)\"+o.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:_.makeArray(c,[b]),l=_.event.special[n]||{},e||!l.trigger||l.trigger.apply(d,c)!==!1)){if(!e&&!l.noBubble&&!_.isWindow(d)){for(i=l.delegateType||n,Cb.test(i+n)||(g=g.parentNode);g;g=g.parentNode)m.push(g),h=g;\nh===(d.ownerDocument||Z)&&m.push(h.defaultView||h.parentWindow||a)}for(f=0;(g=m[f++])&&!b.isPropagationStopped();)b.type=f>1?i:l.bindType||n,k=(rb.get(g,\"events\")||{})[b.type]&&rb.get(g,\"handle\"),k&&k.apply(g,c),k=j&&g[j],k&&k.apply&&_.acceptData(g)&&(b.result=k.apply(g,c),b.result===!1&&b.preventDefault());return b.type=n,e||b.isDefaultPrevented()||l._default&&l._default.apply(m.pop(),c)!==!1||!_.acceptData(d)||j&&_.isFunction(d[n])&&!_.isWindow(d)&&(h=d[j],h&&(d[j]=null),_.event.triggered=n,d[n](),_.event.triggered=void 0,h&&(d[j]=h)),b.result}},dispatch:function(a){a=_.event.fix(a);var b,c,d,e,f,g=[],h=R.call(arguments),i=(rb.get(this,\"events\")||{})[a.type]||[],j=_.event.special[a.type]||{};if(h[0]=a,a.delegateTarget=this,!j.preDispatch||j.preDispatch.call(this,a)!==!1){for(g=_.event.handlers.call(this,a,i),b=0;(e=g[b++])&&!a.isPropagationStopped();)for(a.currentTarget=e.elem,c=0;(f=e.handlers[c++])&&!a.isImmediatePropagationStopped();)(!a.namespace_re||a.namespace_re.test(f.namespace))&&(a.handleObj=f,a.data=f.data,d=((_.event.special[f.origType]||{}).handle||f.handler).apply(e.elem,h),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()));return j.postDispatch&&j.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||\"click\"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||\"click\"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+\" \",void 0===d[e]&&(d[e]=f.needsContext?_(e,this).index(i)>=0:_.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:\"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),fixHooks:{},keyHooks:{props:\"char charCode key keyCode\".split(\" \"),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:\"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||Z,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[_.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];for(g||(this.fixHooks[e]=g=Bb.test(e)?this.mouseHooks:Ab.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new _.Event(f),b=d.length;b--;)c=d[b],a[c]=f[c];return a.target||(a.target=Z),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==l()&&this.focus?(this.focus(),!1):void 0},delegateType:\"focusin\"},blur:{trigger:function(){return this===l()&&this.blur?(this.blur(),!1):void 0},delegateType:\"focusout\"},click:{trigger:function(){return\"checkbox\"===this.type&&this.click&&_.nodeName(this,\"input\")?(this.click(),!1):void 0},_default:function(a){return _.nodeName(a.target,\"a\")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=_.extend(new _.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?_.event.trigger(e,null,b):_.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},_.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},_.Event=function(a,b){return this instanceof _.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?j:k):this.type=a,b&&_.extend(this,b),this.timeStamp=a&&a.timeStamp||_.now(),void(this[_.expando]=!0)):new _.Event(a,b)},_.Event.prototype={isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=j,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=j,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=j,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},_.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(a,b){_.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!_.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),Y.focusinBubbles||_.each({focus:\"focusin\",blur:\"focusout\"},function(a,b){var c=function(a){_.event.simulate(b,a.target,_.event.fix(a),!0)};_.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=rb.access(d,b);e||d.addEventListener(a,c,!0),rb.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=rb.access(d,b)-1;e?rb.access(d,b,e):(d.removeEventListener(a,c,!0),rb.remove(d,b))}}}),_.fn.extend({on:function(a,b,c,d,e){var f,g;if(\"object\"==typeof a){\"string\"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&(\"string\"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=k;else if(!d)return this;return 1===e&&(f=d,d=function(a){return _().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=_.guid++)),this.each(function(){_.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,_(a.delegateTarget).off(d.namespace?d.origType+\".\"+d.namespace:d.origType,d.selector,d.handler),this;if(\"object\"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||\"function\"==typeof b)&&(c=b,b=void 0),c===!1&&(c=k),this.each(function(){_.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){_.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?_.event.trigger(a,b,c,!0):void 0}});var Eb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,Fb=/<([\\w:]+)/,Gb=/<|&#?\\w+;/,Hb=/<(?:script|style|link)/i,Ib=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Jb=/^$|\\/(?:java|ecma)script/i,Kb=/^true\\/(.*)/,Lb=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g,Mb={option:[1,\"<select multiple='multiple'>\",\"</select>\"],thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};Mb.optgroup=Mb.option,Mb.tbody=Mb.tfoot=Mb.colgroup=Mb.caption=Mb.thead,Mb.th=Mb.td,_.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=_.contains(a.ownerDocument,a);if(!(Y.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||_.isXMLDoc(a)))for(g=r(h),f=r(a),d=0,e=f.length;e>d;d++)s(f[d],g[d]);if(b)if(c)for(f=f||r(a),g=g||r(h),d=0,e=f.length;e>d;d++)q(f[d],g[d]);else q(a,h);return g=r(h,\"script\"),g.length>0&&p(g,!i&&r(a,\"script\")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,n=a.length;n>m;m++)if(e=a[m],e||0===e)if(\"object\"===_.type(e))_.merge(l,e.nodeType?[e]:e);else if(Gb.test(e)){for(f=f||k.appendChild(b.createElement(\"div\")),g=(Fb.exec(e)||[\"\",\"\"])[1].toLowerCase(),h=Mb[g]||Mb._default,f.innerHTML=h[1]+e.replace(Eb,\"<$1></$2>\")+h[2],j=h[0];j--;)f=f.lastChild;_.merge(l,f.childNodes),f=k.firstChild,f.textContent=\"\"}else l.push(b.createTextNode(e));for(k.textContent=\"\",m=0;e=l[m++];)if((!d||-1===_.inArray(e,d))&&(i=_.contains(e.ownerDocument,e),f=r(k.appendChild(e),\"script\"),i&&p(f),c))for(j=0;e=f[j++];)Jb.test(e.type||\"\")&&c.push(e);return k},cleanData:function(a){for(var b,c,d,e,f=_.event.special,g=0;void 0!==(c=a[g]);g++){if(_.acceptData(c)&&(e=c[rb.expando],e&&(b=rb.cache[e]))){if(b.events)for(d in b.events)f[d]?_.event.remove(c,d):_.removeEvent(c,d,b.handle);rb.cache[e]&&delete rb.cache[e]}delete sb.cache[c[sb.expando]]}}}),_.fn.extend({text:function(a){return qb(this,function(a){return void 0===a?_.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?_.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||_.cleanData(r(c)),c.parentNode&&(b&&_.contains(c.ownerDocument,c)&&p(r(c,\"script\")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(_.cleanData(r(a,!1)),a.textContent=\"\");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return _.clone(this,a,b)})},html:function(a){return qb(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if(\"string\"==typeof a&&!Hb.test(a)&&!Mb[(Fb.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(Eb,\"<$1></$2>\");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(_.cleanData(r(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,_.cleanData(r(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=S.apply([],a);var c,d,e,f,g,h,i=0,j=this.length,k=this,l=j-1,m=a[0],p=_.isFunction(m);if(p||j>1&&\"string\"==typeof m&&!Y.checkClone&&Ib.test(m))return this.each(function(c){var d=k.eq(c);p&&(a[0]=m.call(this,c,d.html())),d.domManip(a,b)});if(j&&(c=_.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(e=_.map(r(c,\"script\"),n),f=e.length;j>i;i++)g=c,i!==l&&(g=_.clone(g,!0,!0),f&&_.merge(e,r(g,\"script\"))),b.call(this[i],g,i);if(f)for(h=e[e.length-1].ownerDocument,_.map(e,o),i=0;f>i;i++)g=e[i],Jb.test(g.type||\"\")&&!rb.access(g,\"globalEval\")&&_.contains(h,g)&&(g.src?_._evalUrl&&_._evalUrl(g.src):_.globalEval(g.textContent.replace(Lb,\"\")))}return this}}),_.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){_.fn[a]=function(a){for(var c,d=[],e=_(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),_(e[g])[b](c),T.apply(d,c.get());return this.pushStack(d)}});var Nb,Ob={},Pb=/^margin/,Qb=new RegExp(\"^(\"+vb+\")(?!px)[a-z%]+$\",\"i\"),Rb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};!function(){function b(){g.style.cssText=\"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute\",g.innerHTML=\"\",e.appendChild(f);var b=a.getComputedStyle(g,null);c=\"1%\"!==b.top,d=\"4px\"===b.width,e.removeChild(f)}var c,d,e=Z.documentElement,f=Z.createElement(\"div\"),g=Z.createElement(\"div\");g.style&&(g.style.backgroundClip=\"content-box\",g.cloneNode(!0).style.backgroundClip=\"\",Y.clearCloneStyle=\"content-box\"===g.style.backgroundClip,f.style.cssText=\"border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute\",f.appendChild(g),a.getComputedStyle&&_.extend(Y,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return null==d&&b(),d},reliableMarginRight:function(){var b,c=g.appendChild(Z.createElement(\"div\"));return c.style.cssText=g.style.cssText=\"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0\",c.style.marginRight=c.style.width=\"0\",g.style.width=\"1px\",e.appendChild(f),b=!parseFloat(a.getComputedStyle(c,null).marginRight),e.removeChild(f),b}}))}(),_.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Sb=/^(none|table(?!-c[ea]).+)/,Tb=new RegExp(\"^(\"+vb+\")(.*)$\",\"i\"),Ub=new RegExp(\"^([+-])=(\"+vb+\")\",\"i\"),Vb={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Wb={letterSpacing:\"0\",fontWeight:\"400\"},Xb=[\"Webkit\",\"O\",\"Moz\",\"ms\"];_.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=v(a,\"opacity\");return\"\"===c?\"1\":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{\"float\":\"cssFloat\"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=_.camelCase(b),i=a.style;return b=_.cssProps[h]||(_.cssProps[h]=x(i,h)),g=_.cssHooks[b]||_.cssHooks[h],void 0===c?g&&\"get\"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,\"string\"===f&&(e=Ub.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(_.css(a,b)),f=\"number\"),null!=c&&c===c&&(\"number\"!==f||_.cssNumber[h]||(c+=\"px\"),Y.clearCloneStyle||\"\"!==c||0!==b.indexOf(\"background\")||(i[b]=\"inherit\"),g&&\"set\"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=_.camelCase(b);return b=_.cssProps[h]||(_.cssProps[h]=x(a.style,h)),g=_.cssHooks[b]||_.cssHooks[h],g&&\"get\"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=v(a,b,d)),\"normal\"===e&&b in Wb&&(e=Wb[b]),\"\"===c||c?(f=parseFloat(e),c===!0||_.isNumeric(f)?f||0:e):e}}),_.each([\"height\",\"width\"],function(a,b){_.cssHooks[b]={get:function(a,c,d){return c?Sb.test(_.css(a,\"display\"))&&0===a.offsetWidth?_.swap(a,Vb,function(){return A(a,b,d)}):A(a,b,d):void 0},set:function(a,c,d){var e=d&&Rb(a);return y(a,c,d?z(a,b,d,\"border-box\"===_.css(a,\"boxSizing\",!1,e),e):0)}}}),_.cssHooks.marginRight=w(Y.reliableMarginRight,function(a,b){return b?_.swap(a,{display:\"inline-block\"},v,[a,\"marginRight\"]):void 0}),_.each({margin:\"\",padding:\"\",border:\"Width\"},function(a,b){_.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f=\"string\"==typeof c?c.split(\" \"):[c];4>d;d++)e[a+wb[d]+b]=f[d]||f[d-2]||f[0];return e}},Pb.test(a)||(_.cssHooks[a+b].set=y)}),_.fn.extend({css:function(a,b){return qb(this,function(a,b,c){var d,e,f={},g=0;if(_.isArray(b)){for(d=Rb(a),e=b.length;e>g;g++)f[b[g]]=_.css(a,b[g],!1,d);return f}return void 0!==c?_.style(a,b,c):_.css(a,b)},a,b,arguments.length>1)},show:function(){return B(this,!0)},hide:function(){return B(this)},toggle:function(a){return\"boolean\"==typeof a?a?this.show():this.hide():this.each(function(){xb(this)?_(this).show():_(this).hide()})}}),_.Tween=C,C.prototype={constructor:C,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||\"swing\",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(_.cssNumber[c]?\"\":\"px\")},cur:function(){var a=C.propHooks[this.prop];return a&&a.get?a.get(this):C.propHooks._default.get(this)},run:function(a){var b,c=C.propHooks[this.prop];return this.pos=b=this.options.duration?_.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):C.propHooks._default.set(this),this}},C.prototype.init.prototype=C.prototype,C.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=_.css(a.elem,a.prop,\"\"),b&&\"auto\"!==b?b:0):a.elem[a.prop]},set:function(a){_.fx.step[a.prop]?_.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[_.cssProps[a.prop]]||_.cssHooks[a.prop])?_.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},C.propHooks.scrollTop=C.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},_.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},_.fx=C.prototype.init,_.fx.step={};var Yb,Zb,$b=/^(?:toggle|show|hide)$/,_b=new RegExp(\"^(?:([+-])=|)(\"+vb+\")([a-z%]*)$\",\"i\"),ac=/queueHooks$/,bc=[G],cc={\"*\":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=_b.exec(b),f=e&&e[3]||(_.cssNumber[a]?\"\":\"px\"),g=(_.cssNumber[a]||\"px\"!==f&&+d)&&_b.exec(_.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||\".5\",g/=h,_.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};_.Animation=_.extend(I,{tweener:function(a,b){_.isFunction(a)?(b=a,a=[\"*\"]):a=a.split(\" \");for(var c,d=0,e=a.length;e>d;d++)c=a[d],cc[c]=cc[c]||[],cc[c].unshift(b)},prefilter:function(a,b){b?bc.unshift(a):bc.push(a)}}),_.speed=function(a,b,c){var d=a&&\"object\"==typeof a?_.extend({},a):{complete:c||!c&&b||_.isFunction(a)&&a,duration:a,easing:c&&b||b&&!_.isFunction(b)&&b};return d.duration=_.fx.off?0:\"number\"==typeof d.duration?d.duration:d.duration in _.fx.speeds?_.fx.speeds[d.duration]:_.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue=\"fx\"),d.old=d.complete,d.complete=function(){_.isFunction(d.old)&&d.old.call(this),d.queue&&_.dequeue(this,d.queue)},d},_.fn.extend({fadeTo:function(a,b,c,d){return this.filter(xb).css(\"opacity\",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=_.isEmptyObject(a),f=_.speed(b,c,d),g=function(){var b=I(this,_.extend({},a),f);(e||rb.get(this,\"finish\"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return\"string\"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||\"fx\",[]),this.each(function(){var b=!0,e=null!=a&&a+\"queueHooks\",f=_.timers,g=rb.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ac.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&_.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||\"fx\"),this.each(function(){var b,c=rb.get(this),d=c[a+\"queue\"],e=c[a+\"queueHooks\"],f=_.timers,g=d?d.length:0;for(c.finish=!0,_.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),_.each([\"toggle\",\"show\",\"hide\"],function(a,b){var c=_.fn[b];_.fn[b]=function(a,d,e){return null==a||\"boolean\"==typeof a?c.apply(this,arguments):this.animate(E(b,!0),a,d,e)}}),_.each({slideDown:E(\"show\"),slideUp:E(\"hide\"),slideToggle:E(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(a,b){_.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),_.timers=[],_.fx.tick=function(){var a,b=0,c=_.timers;for(Yb=_.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||_.fx.stop(),Yb=void 0},_.fx.timer=function(a){_.timers.push(a),a()?_.fx.start():_.timers.pop()},_.fx.interval=13,_.fx.start=function(){Zb||(Zb=setInterval(_.fx.tick,_.fx.interval))},_.fx.stop=function(){clearInterval(Zb),Zb=null},_.fx.speeds={slow:600,fast:200,_default:400},_.fn.delay=function(a,b){return a=_.fx?_.fx.speeds[a]||a:a,b=b||\"fx\",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=Z.createElement(\"input\"),b=Z.createElement(\"select\"),c=b.appendChild(Z.createElement(\"option\"));a.type=\"checkbox\",Y.checkOn=\"\"!==a.value,Y.optSelected=c.selected,b.disabled=!0,Y.optDisabled=!c.disabled,a=Z.createElement(\"input\"),a.value=\"t\",a.type=\"radio\",Y.radioValue=\"t\"===a.value}();var dc,ec,fc=_.expr.attrHandle;_.fn.extend({attr:function(a,b){return qb(this,_.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){_.removeAttr(this,a)})}}),_.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===zb?_.prop(a,b,c):(1===f&&_.isXMLDoc(a)||(b=b.toLowerCase(),d=_.attrHooks[b]||(_.expr.match.bool.test(b)?ec:dc)),void 0===c?d&&\"get\"in d&&null!==(e=d.get(a,b))?e:(e=_.find.attr(a,b),null==e?void 0:e):null!==c?d&&\"set\"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+\"\"),c):void _.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(nb);if(f&&1===a.nodeType)for(;c=f[e++];)d=_.propFix[c]||c,_.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!Y.radioValue&&\"radio\"===b&&_.nodeName(a,\"input\")){var c=a.value;return a.setAttribute(\"type\",b),c&&(a.value=c),b}}}}}),ec={set:function(a,b,c){return b===!1?_.removeAttr(a,c):a.setAttribute(c,c),c}},_.each(_.expr.match.bool.source.match(/\\w+/g),function(a,b){var c=fc[b]||_.find.attr;fc[b]=function(a,b,d){var e,f;return d||(f=fc[b],fc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,fc[b]=f),e}});var gc=/^(?:input|select|textarea|button)$/i;_.fn.extend({prop:function(a,b){return qb(this,_.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[_.propFix[a]||a]})}}),_.extend({propFix:{\"for\":\"htmlFor\",\"class\":\"className\"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!_.isXMLDoc(a),f&&(b=_.propFix[b]||b,e=_.propHooks[b]),void 0!==c?e&&\"set\"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&\"get\"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute(\"tabindex\")||gc.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),Y.optSelected||(_.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),_.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){_.propFix[this.toLowerCase()]=this});var hc=/[\\t\\r\\n\\f]/g;_.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=\"string\"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||\"\").match(nb)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(\" \"+c.className+\" \").replace(hc,\" \"):\" \")){for(f=0;e=b[f++];)d.indexOf(\" \"+e+\" \")<0&&(d+=e+\" \");g=_.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||\"string\"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||\"\").match(nb)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(\" \"+c.className+\" \").replace(hc,\" \"):\"\")){for(f=0;e=b[f++];)for(;d.indexOf(\" \"+e+\" \")>=0;)d=d.replace(\" \"+e+\" \",\" \");g=a?_.trim(d):\"\",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return\"boolean\"==typeof b&&\"string\"===c?b?this.addClass(a):this.removeClass(a):this.each(_.isFunction(a)?function(c){_(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if(\"string\"===c)for(var b,d=0,e=_(this),f=a.match(nb)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else(c===zb||\"boolean\"===c)&&(this.className&&rb.set(this,\"__className__\",this.className),this.className=this.className||a===!1?\"\":rb.get(this,\"__className__\")||\"\")})},hasClass:function(a){for(var b=\" \"+a+\" \",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(\" \"+this[c].className+\" \").replace(hc,\" \").indexOf(b)>=0)return!0;return!1}});var ic=/\\r/g;_.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=_.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,_(this).val()):a,null==e?e=\"\":\"number\"==typeof e?e+=\"\":_.isArray(e)&&(e=_.map(e,function(a){return null==a?\"\":a+\"\"})),b=_.valHooks[this.type]||_.valHooks[this.nodeName.toLowerCase()],b&&\"set\"in b&&void 0!==b.set(this,e,\"value\")||(this.value=e))});if(e)return b=_.valHooks[e.type]||_.valHooks[e.nodeName.toLowerCase()],b&&\"get\"in b&&void 0!==(c=b.get(e,\"value\"))?c:(c=e.value,\"string\"==typeof c?c.replace(ic,\"\"):null==c?\"\":c)}}}),_.extend({valHooks:{option:{get:function(a){var b=_.find.attr(a,\"value\");return null!=b?b:_.trim(_.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f=\"select-one\"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(Y.optDisabled?c.disabled:null!==c.getAttribute(\"disabled\"))||c.parentNode.disabled&&_.nodeName(c.parentNode,\"optgroup\"))){if(b=_(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=_.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=_.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),_.each([\"radio\",\"checkbox\"],function(){_.valHooks[this]={set:function(a,b){return _.isArray(b)?a.checked=_.inArray(_(a).val(),b)>=0:void 0}},Y.checkOn||(_.valHooks[this].get=function(a){return null===a.getAttribute(\"value\")?\"on\":a.value})}),_.each(\"blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu\".split(\" \"),function(a,b){_.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),_.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,\"**\"):this.off(b,a||\"**\",c)}});var jc=_.now(),kc=/\\?/;_.parseJSON=function(a){return JSON.parse(a+\"\")},_.parseXML=function(a){var b,c;if(!a||\"string\"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,\"text/xml\")}catch(d){b=void 0}return(!b||b.getElementsByTagName(\"parsererror\").length)&&_.error(\"Invalid XML: \"+a),b};var lc,mc,nc=/#.*$/,oc=/([?&])_=[^&]*/,pc=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,qc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rc=/^(?:GET|HEAD)$/,sc=/^\\/\\//,tc=/^([\\w.+-]+:)(?:\\/\\/(?:[^\\/?#]*@|)([^\\/?#:]*)(?::(\\d+)|)|)/,uc={},vc={},wc=\"*/\".concat(\"*\");try{mc=location.href}catch(xc){mc=Z.createElement(\"a\"),mc.href=\"\",mc=mc.href}lc=tc.exec(mc.toLowerCase())||[],_.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:mc,type:\"GET\",isLocal:qc.test(lc[1]),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":wc,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":_.parseJSON,\"text xml\":_.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?L(L(a,_.ajaxSettings),b):L(_.ajaxSettings,a)},ajaxPrefilter:J(uc),ajaxTransport:J(vc),ajax:function(a,b){function c(a,b,c,g){var i,k,r,s,u,w=b;2!==t&&(t=2,h&&clearTimeout(h),d=void 0,f=g||\"\",v.readyState=a>0?4:0,i=a>=200&&300>a||304===a,c&&(s=M(l,v,c)),s=N(l,s,v,i),i?(l.ifModified&&(u=v.getResponseHeader(\"Last-Modified\"),u&&(_.lastModified[e]=u),u=v.getResponseHeader(\"etag\"),u&&(_.etag[e]=u)),204===a||\"HEAD\"===l.type?w=\"nocontent\":304===a?w=\"notmodified\":(w=s.state,k=s.data,r=s.error,i=!r)):(r=w,(a||!w)&&(w=\"error\",0>a&&(a=0))),v.status=a,v.statusText=(b||w)+\"\",i?o.resolveWith(m,[k,w,v]):o.rejectWith(m,[v,w,r]),v.statusCode(q),q=void 0,j&&n.trigger(i?\"ajaxSuccess\":\"ajaxError\",[v,l,i?k:r]),p.fireWith(m,[v,w]),j&&(n.trigger(\"ajaxComplete\",[v,l]),--_.active||_.event.trigger(\"ajaxStop\")))}\"object\"==typeof a&&(b=a,a=void 0),b=b||{};var d,e,f,g,h,i,j,k,l=_.ajaxSetup({},b),m=l.context||l,n=l.context&&(m.nodeType||m.jquery)?_(m):_.event,o=_.Deferred(),p=_.Callbacks(\"once memory\"),q=l.statusCode||{},r={},s={},t=0,u=\"canceled\",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!g)for(g={};b=pc.exec(f);)g[b[1].toLowerCase()]=b[2];b=g[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return d&&d.abort(b),c(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,l.url=((a||l.url||mc)+\"\").replace(nc,\"\").replace(sc,lc[1]+\"//\"),l.type=b.method||b.type||l.method||l.type,l.dataTypes=_.trim(l.dataType||\"*\").toLowerCase().match(nb)||[\"\"],null==l.crossDomain&&(i=tc.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]===lc[1]&&i[2]===lc[2]&&(i[3]||(\"http:\"===i[1]?\"80\":\"443\"))===(lc[3]||(\"http:\"===lc[1]?\"80\":\"443\")))),l.data&&l.processData&&\"string\"!=typeof l.data&&(l.data=_.param(l.data,l.traditional)),K(uc,l,b,v),2===t)return v;j=l.global,j&&0===_.active++&&_.event.trigger(\"ajaxStart\"),l.type=l.type.toUpperCase(),l.hasContent=!rc.test(l.type),e=l.url,l.hasContent||(l.data&&(e=l.url+=(kc.test(e)?\"&\":\"?\")+l.data,delete l.data),l.cache===!1&&(l.url=oc.test(e)?e.replace(oc,\"$1_=\"+jc++):e+(kc.test(e)?\"&\":\"?\")+\"_=\"+jc++)),l.ifModified&&(_.lastModified[e]&&v.setRequestHeader(\"If-Modified-Since\",_.lastModified[e]),_.etag[e]&&v.setRequestHeader(\"If-None-Match\",_.etag[e])),(l.data&&l.hasContent&&l.contentType!==!1||b.contentType)&&v.setRequestHeader(\"Content-Type\",l.contentType),v.setRequestHeader(\"Accept\",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(\"*\"!==l.dataTypes[0]?\", \"+wc+\"; q=0.01\":\"\"):l.accepts[\"*\"]);for(k in l.headers)v.setRequestHeader(k,l.headers[k]);if(l.beforeSend&&(l.beforeSend.call(m,v,l)===!1||2===t))return v.abort();u=\"abort\";for(k in{success:1,error:1,complete:1})v[k](l[k]);if(d=K(vc,l,b,v)){v.readyState=1,j&&n.trigger(\"ajaxSend\",[v,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){v.abort(\"timeout\")},l.timeout));try{t=1,d.send(r,c)}catch(w){if(!(2>t))throw w;c(-1,w)}}else c(-1,\"No Transport\");return v},getJSON:function(a,b,c){return _.get(a,b,c,\"json\")},getScript:function(a,b){return _.get(a,void 0,b,\"script\")}}),_.each([\"get\",\"post\"],function(a,b){_[b]=function(a,c,d,e){return _.isFunction(c)&&(e=e||d,d=c,c=void 0),_.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),_.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(a,b){_.fn[b]=function(a){return this.on(b,a)}}),_._evalUrl=function(a){return _.ajax({url:a,type:\"GET\",dataType:\"script\",async:!1,global:!1,\"throws\":!0})},_.fn.extend({wrapAll:function(a){var b;return _.isFunction(a)?this.each(function(b){_(this).wrapAll(a.call(this,b))}):(this[0]&&(b=_(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(_.isFunction(a)?function(b){_(this).wrapInner(a.call(this,b))}:function(){var b=_(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=_.isFunction(a);return this.each(function(c){_(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){_.nodeName(this,\"body\")||_(this).replaceWith(this.childNodes)}).end()}}),_.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},_.expr.filters.visible=function(a){return!_.expr.filters.hidden(a)};var yc=/%20/g,zc=/\\[\\]$/,Ac=/\\r?\\n/g,Bc=/^(?:submit|button|image|reset|file)$/i,Cc=/^(?:input|select|textarea|keygen)/i;_.param=function(a,b){var c,d=[],e=function(a,b){b=_.isFunction(b)?b():null==b?\"\":b,d[d.length]=encodeURIComponent(a)+\"=\"+encodeURIComponent(b)};if(void 0===b&&(b=_.ajaxSettings&&_.ajaxSettings.traditional),_.isArray(a)||a.jquery&&!_.isPlainObject(a))_.each(a,function(){e(this.name,this.value)\n});else for(c in a)O(c,a[c],b,e);return d.join(\"&\").replace(yc,\"+\")},_.fn.extend({serialize:function(){return _.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=_.prop(this,\"elements\");return a?_.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!_(this).is(\":disabled\")&&Cc.test(this.nodeName)&&!Bc.test(a)&&(this.checked||!yb.test(a))}).map(function(a,b){var c=_(this).val();return null==c?null:_.isArray(c)?_.map(c,function(a){return{name:b.name,value:a.replace(Ac,\"\\r\\n\")}}):{name:b.name,value:c.replace(Ac,\"\\r\\n\")}}).get()}}),_.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Dc=0,Ec={},Fc={0:200,1223:204},Gc=_.ajaxSettings.xhr();a.ActiveXObject&&_(a).on(\"unload\",function(){for(var a in Ec)Ec[a]()}),Y.cors=!!Gc&&\"withCredentials\"in Gc,Y.ajax=Gc=!!Gc,_.ajaxTransport(function(a){var b;return Y.cors||Gc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Dc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c[\"X-Requested-With\"]||(c[\"X-Requested-With\"]=\"XMLHttpRequest\");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Ec[g],b=f.onload=f.onerror=null,\"abort\"===a?f.abort():\"error\"===a?d(f.status,f.statusText):d(Fc[f.status]||f.status,f.statusText,\"string\"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b(\"error\"),b=Ec[g]=b(\"abort\");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),_.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/(?:java|ecma)script/},converters:{\"text script\":function(a){return _.globalEval(a),a}}}),_.ajaxPrefilter(\"script\",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type=\"GET\")}),_.ajaxTransport(\"script\",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=_(\"<script>\").prop({async:!0,charset:a.scriptCharset,src:a.url}).on(\"load error\",c=function(a){b.remove(),c=null,a&&e(\"error\"===a.type?404:200,a.type)}),Z.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Hc=[],Ic=/(=)\\?(?=&|$)|\\?\\?/;_.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var a=Hc.pop()||_.expando+\"_\"+jc++;return this[a]=!0,a}}),_.ajaxPrefilter(\"json jsonp\",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ic.test(b.url)?\"url\":\"string\"==typeof b.data&&!(b.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Ic.test(b.data)&&\"data\");return h||\"jsonp\"===b.dataTypes[0]?(e=b.jsonpCallback=_.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ic,\"$1\"+e):b.jsonp!==!1&&(b.url+=(kc.test(b.url)?\"&\":\"?\")+b.jsonp+\"=\"+e),b.converters[\"script json\"]=function(){return g||_.error(e+\" was not called\"),g[0]},b.dataTypes[0]=\"json\",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Hc.push(e)),g&&_.isFunction(f)&&f(g[0]),g=f=void 0}),\"script\"):void 0}),_.parseHTML=function(a,b,c){if(!a||\"string\"!=typeof a)return null;\"boolean\"==typeof b&&(c=b,b=!1),b=b||Z;var d=gb.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=_.buildFragment([a],b,e),e&&e.length&&_(e).remove(),_.merge([],d.childNodes))};var Jc=_.fn.load;_.fn.load=function(a,b,c){if(\"string\"!=typeof a&&Jc)return Jc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(\" \");return h>=0&&(d=_.trim(a.slice(h)),a=a.slice(0,h)),_.isFunction(b)?(c=b,b=void 0):b&&\"object\"==typeof b&&(e=\"POST\"),g.length>0&&_.ajax({url:a,type:e,dataType:\"html\",data:b}).done(function(a){f=arguments,g.html(d?_(\"<div>\").append(_.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},_.expr.filters.animated=function(a){return _.grep(_.timers,function(b){return a===b.elem}).length};var Kc=a.document.documentElement;_.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=_.css(a,\"position\"),l=_(a),m={};\"static\"===k&&(a.style.position=\"relative\"),h=l.offset(),f=_.css(a,\"top\"),i=_.css(a,\"left\"),j=(\"absolute\"===k||\"fixed\"===k)&&(f+i).indexOf(\"auto\")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),_.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),\"using\"in b?b.using.call(a,m):l.css(m)}},_.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){_.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,_.contains(b,d)?(typeof d.getBoundingClientRect!==zb&&(e=d.getBoundingClientRect()),c=P(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return\"fixed\"===_.css(c,\"position\")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),_.nodeName(a[0],\"html\")||(d=a.offset()),d.top+=_.css(a[0],\"borderTopWidth\",!0),d.left+=_.css(a[0],\"borderLeftWidth\",!0)),{top:b.top-d.top-_.css(c,\"marginTop\",!0),left:b.left-d.left-_.css(c,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||Kc;a&&!_.nodeName(a,\"html\")&&\"static\"===_.css(a,\"position\");)a=a.offsetParent;return a||Kc})}}),_.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(b,c){var d=\"pageYOffset\"===c;_.fn[b]=function(e){return qb(this,function(b,e,f){var g=P(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),_.each([\"top\",\"left\"],function(a,b){_.cssHooks[b]=w(Y.pixelPosition,function(a,c){return c?(c=v(a,b),Qb.test(c)?_(a).position()[b]+\"px\":c):void 0})}),_.each({Height:\"height\",Width:\"width\"},function(a,b){_.each({padding:\"inner\"+a,content:b,\"\":\"outer\"+a},function(c,d){_.fn[d]=function(d,e){var f=arguments.length&&(c||\"boolean\"!=typeof d),g=c||(d===!0||e===!0?\"margin\":\"border\");return qb(this,function(b,c,d){var e;return _.isWindow(b)?b.document.documentElement[\"client\"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body[\"scroll\"+a],e[\"scroll\"+a],b.body[\"offset\"+a],e[\"offset\"+a],e[\"client\"+a])):void 0===d?_.css(b,c,g):_.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),_.fn.size=function(){return this.length},_.fn.andSelf=_.fn.addBack,\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return _});var Lc=a.jQuery,Mc=a.$;return _.noConflict=function(b){return a.$===_&&(a.$=Mc),b&&a.jQuery===_&&(a.jQuery=Lc),_},typeof b===zb&&(a.jQuery=a.$=_),_});\n","window.agRequest = {\r\n GET: async function (serviceUrl, data) {\r\n var queryString = '';\r\n for (var key in data) {\r\n queryString = queryString + ((queryString != '' ? '&' : '') + key + '=' + data[key]);\r\n }\r\n serviceUrl += serviceUrl.indexOf('?') > -1 ? '&' : '?' + queryString;\r\n var request = await fetch(serviceUrl, {\r\n method: \"GET\",\r\n cache: \"no-cache\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n }\r\n });\r\n\r\n return request.json();\r\n },\r\n POST: async function (serviceUrl, data) {\r\n var formData = new URLSearchParams();\r\n for (var key in data) {\r\n formData.append(key, data[key]);\r\n }\r\n var request = await fetch(serviceUrl, {\r\n method: \"POST\",\r\n cache: \"no-cache\",\r\n body: formData\r\n });\r\n\r\n return request.json();\r\n }\r\n};\r\n\r\nwindow.agRefresh = function () {\r\n \r\n document.body.dispatchEvent(new CustomEvent('ag.refresh'));\r\n\r\n};\r\n\r\n(async function () {\r\n\r\n var isSynced = false;\r\n\r\n document.body.addEventListener('ag.user.in', function (e) {\r\n set(e.detail); \r\n });\r\n\r\n document.body.addEventListener('ag.agent.in', function (e) {\r\n\r\n setAgent(e.detail);\r\n document.body.dispatchEvent(new CustomEvent('ag.sync.autoupdate'));\r\n });\r\n\r\n document.body.addEventListener('ag.user.out', function (e) {\r\n\r\n set(null);\r\n\r\n });\r\n\r\n document.body.addEventListener('ag.agent.out', function (e) {\r\n\r\n setAgent(null);\r\n\r\n });\r\n\r\n async function get() {\r\n var current = null;\r\n if (window.localStorage.getItem('AGUSER') != null) {\r\n current = JSON.parse(window.localStorage.getItem('AGUSER'))\r\n }\r\n return current;\r\n }\r\n\r\n async function getAgent() {\r\n var current = null;\r\n if (window.localStorage.getItem('AGAGENT') != null) {\r\n current = JSON.parse(window.localStorage.getItem('AGAGENT'))\r\n }\r\n return current;\r\n }\r\n\r\n async function set(user) {\r\n if (user == null) {\r\n window.localStorage.removeItem('AGUSER');\r\n document.body.dispatchEvent(new CustomEvent('ag.user.clear'));\r\n }\r\n else {\r\n if (user.Guid) {\r\n var localUser = {};\r\n localUser.Guid = user.Guid;\r\n localUser.Name = user.Name;\r\n localUser.FirstName = user.FirstName;\r\n localUser.LastName = user.LastName;\r\n localUser.Email = user.Email;\r\n localUser.Phone = user.Phone;\r\n localUser.MobilePhone = user.MobilePhone;\r\n window.localStorage.setItem('AGUSER', JSON.stringify(localUser));\r\n update();\r\n }\r\n }\r\n }\r\n\r\n async function setAgent(agent) {\r\n if (agent == null) {\r\n window.localStorage.removeItem('AGAGENT');\r\n document.body.dispatchEvent(new CustomEvent('ag.agent.clear'));\r\n }\r\n else {\r\n if (agent.Guid) {\r\n var localUser = {};\r\n localUser.Guid = agent.Guid;\r\n localUser.Name = agent.Name;\r\n localUser.Role = agent.Role;\r\n window.localStorage.setItem('AGAGENT', JSON.stringify(localUser));\r\n update();\r\n }\r\n }\r\n }\r\n\r\n async function update() {\r\n\r\n }\r\n\r\n async function render() {\r\n var userStates = document.querySelectorAll('[ag-user]'); \r\n userStates.forEach(function (item, i) { renderStates(item, i); });\r\n }\r\n\r\n async function renderStates(item, i) {\r\n\r\n item.classList.add('is-applied');\r\n var currentState = item.cloneNode(true);\r\n var current = await get();\r\n if (current != null) {\r\n initPropertyCollection();\r\n var logginedNode = await getLoginedItem(current, i);\r\n item.parentElement.insertBefore(logginedNode, item);\r\n item.remove();\r\n if (!(typeof (componentHandler) == 'undefined')) {\r\n componentHandler.upgradeDom();\r\n }\r\n setForms(current);\r\n }\r\n }\r\n\r\n async function initPropertyCollection() {\r\n if (isSynced) {\r\n updatePropertyCollection();\r\n } else {\r\n document.body.addEventListener('ag.sync.verified.contact', function () {\r\n updatePropertyCollection();\r\n });\r\n }\r\n document.body.addEventListener('ag.lazy.refresh', function () {\r\n updatePropertyCollection();\r\n });\r\n document.body.addEventListener('ag.user.refresh.collection', function () {\r\n updatePropertyCollection(true);\r\n });\r\n document.body.addEventListener('ag.user.clear.collection', function () {\r\n window.localStorage.removeItem('AGUSERCOLLECTION3');\r\n });\r\n document.body.addEventListener('ag.user.clear', function () {\r\n document.body.dispatchEvent(new CustomEvent('ag.user.clear.collection'));\r\n });\r\n }\r\n\r\n async function updatePropertyCollection(isForced) {\r\n var collectionType = 3;\r\n var items = await getPropertyCollection(collectionType, isForced);\r\n var itemsExtracted = items.Items.reduce(function (result, current) {\r\n return result ? [...result, ...current.Items] : [...current.Items];\r\n }, []);\r\n itemsExtracted.forEach(async function (item) {\r\n renderPropertyCollectionItem(item, collectionType);\r\n });\r\n }\r\n\r\n async function renderPropertyCollectionItem(item, type) {\r\n var itemDom = document.querySelectorAll('[data-perform-action-url*=\"pk=' + item.PK + '\"][data-perform-action-url*=\"rt=' + item.RT + '\"]');\r\n itemDom.forEach(async function (dom) {\r\n dom.setAttribute('ag-user-collection', type);\r\n });\r\n }\r\n\r\n async function getPropertyCollection(collectionType, isForced) {\r\n return new Promise(async function (resolve, reject) {\r\n var propertyCollection = null;\r\n var propertyCollectionString = isForced ? null : window.localStorage.getItem('AGUSERCOLLECTION' + collectionType);\r\n if (propertyCollectionString != null) {\r\n propertyCollection = JSON.parse(propertyCollectionString);\r\n resolve(propertyCollection);\r\n return;\r\n }\r\n propertyCollection = await window.agRequest.GET('/services/agoraClient.ashx', { type: 'USERCOLLECTION', collectionType: collectionType });\r\n window.localStorage.setItem('AGUSERCOLLECTION' + collectionType, JSON.stringify(propertyCollection));\r\n resolve(propertyCollection);\r\n });\r\n\r\n\r\n }\r\n\r\n async function getLoginedItem(contact, i) {\r\n var wrapper = new c('div');\r\n wrapper.a('ag-user', '');\r\n var holder = wrapper.n('a');\r\n holder.a('id', 'dash-boardh-'+i).a('class', 'user-logged-in mdl-button mdl-js-button mdl-js-ripple-effect')\r\n holder.n('i').a('class', 'aga-person');\r\n holder.n('b').a('class', 'no-translate').h(contact.Name);\r\n wrapper.n('input').a('type', 'hidden').a('id', 'CONTACT_GUID').a('value', contact.Guid);\r\n var options = wrapper.n('ul');\r\n options.a('class', 'mdl-menu mdl-menu--bottom-right mdl-js-menu atag').a('for', 'dash-boardh-' + i).a('role', 'complementary').a('aria-labelledby', 'dash-boardh-' + i);\r\n options.n('li').a('class', 'mdl-menu__item chipitem').n('a').h(contact.Name);\r\n options.n('li').a('class', 'mdl-menu__item').n('a').a('href', '/dashboard/default.aspx').h('Dashboard');\r\n options.n('li').a('class', 'mdl-menu__item mdl-menu__item--full-bleed-divider').a('data-modaldialog-src', '/dashboard/EditProfile.aspx').a('data-modaldialog-ajax', 'true').a('data-modaldialog', '').h('Edit Profile');\r\n options.n('li').a('class', 'mdl-menu__item').n('a').a('href', '/dashboard/SignOut.aspx').a('data-agora-icon', '').h('Log out').cl(function () {\r\n document.body.dispatchEvent(new CustomEvent('ag.user.out'));\r\n });\r\n return wrapper.node;\r\n }\r\n\r\n function setForms(user) {\r\n for (var key in user) {\r\n if (typeof (user[key]) != 'undefined')\r\n document.querySelectorAll('input[node=\"' + key + '\"]').forEach(function (nodeField) {\r\n nodeField.value = user[key];\r\n nodeField.dispatchEvent(new CustomEvent('input'));\r\n });\r\n } \r\n } \r\n\r\n function c(name) {\r\n this.node = document.createElement(name);\r\n return this;\r\n }\r\n\r\n c.prototype.a = function (name, value) {\r\n this.node.setAttribute(name, value)\r\n return this;\r\n }\r\n\r\n c.prototype.n = function (name) {\r\n var item = new c(name);\r\n this.node.appendChild(item.node);\r\n return item;\r\n }\r\n\r\n c.prototype.h = function (text) {\r\n this.node.innerHTML = text;\r\n return this;\r\n }\r\n\r\n c.prototype.cl = function (action) {\r\n this.node.removeEventListener('click', action);\r\n this.node.addEventListener('click', action);\r\n return this;\r\n }\r\n\r\n function init() {\r\n render();\r\n\r\n document.body.addEventListener('ag.refresh', async function () {\r\n var current = await get();\r\n if (current != null)\r\n setForms(current);\r\n });\r\n document.body.addEventListener('ag.sync.autoupdate', async function () {\r\n var currentAgent = await getAgent(); \r\n if (currentAgent != null) {\r\n document.body.dispatchEvent(new CustomEvent('ag.sync.set', { detail: { agentguid: currentAgent.Guid, eventType: 'autoagent' } }));\r\n setTimeout(function () { document.body.dispatchEvent(new CustomEvent('ag.sync.autoupdate')); },60*1000);\r\n }\r\n \r\n \r\n });\r\n document.body.addEventListener('ag.sync.check', async function () {\r\n var current = await get();\r\n var currentAgent = await getAgent();\r\n var currentValuesString = window.localStorage.getItem('AGSYNC'); \r\n if (currentValuesString != null && (current != null || currentAgent != null)) {\r\n var currentValue = JSON.parse(currentValuesString);\r\n var changeRequire = false;\r\n if (current!=null && currentValue.ContactGuid != current.Guid) {\r\n document.body.dispatchEvent(new CustomEvent('ag.sync.set', { detail: { contactguid: current.Guid, eventType: 'contact' } }));\r\n changeRequire = true;\r\n }\r\n\r\n if (currentAgent != null && (currentValue.AgentGuid != currentAgent.Guid || currentValue.Role != currentAgent.Role)) {\r\n document.body.dispatchEvent(new CustomEvent('ag.sync.set', { detail: { agentguid: currentAgent.Guid, agentrole: currentAgent.Role, eventType: 'agent' } }));\r\n changeRequire = true;\r\n }\r\n\r\n if (changeRequire) return;\r\n }\r\n document.body.dispatchEvent(new CustomEvent('ag.sync.verified.contact')); \r\n isSynced = true;\r\n });\r\n\r\n document.body.addEventListener('ag.sync.verified', async function () {\r\n document.body.dispatchEvent(new CustomEvent('ag.sync.verified.contact'));\r\n isSynced = true;\r\n });\r\n\r\n document.body.addEventListener('ag.sync.verified.agent', function () {\r\n window.location.reload();\r\n });\r\n }\r\n\r\n window.agUser = {\r\n collection: {\r\n refresh: function () {\r\n document.body.dispatchEvent(new CustomEvent('ag.user.refresh.collection'));\r\n }\r\n }\r\n };\r\n\r\n init();\r\n\r\n})();\r\n\r\n(async function () {\r\n\r\n async function checkForSync() {\r\n var currentValuesString = window.localStorage.getItem('AGSYNC');\r\n if (currentValuesString != null) {\r\n var currentValue = JSON.parse(currentValuesString);\r\n var updatedOn = new Date(currentValue.updatedOn);\r\n var currentDateTime = new Date();\r\n currentDateTime.setMinutes(currentDateTime.getMinutes() - 1);\r\n if (updatedOn > currentDateTime) {\r\n document.body.dispatchEvent(new CustomEvent('ag.sync.verified'));\r\n return;\r\n }\r\n }\r\n readFromServer();\r\n }\r\n\r\n async function readFromServer() {\r\n var dataToReview = await window.agRequest.GET('/services/agoraClient.ashx', { type: 'SYNC' });\r\n dataToReview.updatedOn = new Date();\r\n window.localStorage.setItem('AGSYNC', JSON.stringify(dataToReview));\r\n document.body.dispatchEvent(new CustomEvent('ag.sync.check'));\r\n }\r\n\r\n async function init() {\r\n document.body.addEventListener('ag.sync.set', async function (e) {\r\n await window.agRequest.POST('/services/agoraClient.ashx', Object.assign({ type: 'SET' }, e.detail));\r\n if (e.detail?.eventType)\r\n document.body.dispatchEvent(new CustomEvent('ag.sync.verified.' + e.detail.eventType));\r\n });\r\n\r\n document.body.addEventListener('ag.sync.invalid', async function (e) {\r\n document.body.dispatchEvent(new CustomEvent('ag.sync.reset'));\r\n window.location.reload();\r\n });\r\n\r\n checkForSync();\r\n }\r\n\r\n init();\r\n})();\r\n\r\nvar agevent = new CustomEvent(\"onAgoraLoad\");\r\ndocument.dispatchEvent(agevent);\r\ndocument.isAgoraLoaded = true;\r\nagevent = new CustomEvent('onCssLoad');\r\ndocument.dispatchEvent(agevent);\r\ndocument.isCssLoaded = true;\r\n\r\nagora(function () {\r\n EnableTabContents();\r\n openContacusForm();\r\n cssLoad(function () { document.body.classList.add('css-loaded'); window.dispatchEvent(new CustomEvent('resize')); });\r\n if (componentHandler) componentHandler.upgradeDom();\r\n\r\n EnableDynamicQueryList()\r\n //Formitting mobile phone form field \r\n $('[node=\"MobilePhone\"]').not(\".disablephoneformat\").formatter({\r\n 'pattern': '({{999}}) {{999}}-{{9999}}'\r\n });\r\n\r\n // Date Formatting\r\n\r\n //$('[data-datemanuall]').val(new Date().toLocaleDateString('en-US'));\r\n $('[data-datemanuall]').formatter({\r\n 'pattern': '{{99}}/{{99}}/{{9999}}'\r\n });\r\n\r\n // End\r\n\r\n $('[node=\"ShowingDate\"]').attr('min', getFormattedDate(new Date()));\r\n $('[node=\"ShowingDate\"]').attr('max', getMaxDate(new Date()));\r\n\r\n $('section.footer ul.mdl-mega-footer__link-list li a[href=\"JavaScript:Void(0);\"]').each(function () {\r\n $(this).parent('li').addClass(\"mdl-cell--hide\");\r\n });\r\n $('section.footer ul.mdl-mega-footer__link-list li a[href=\"JavaScript:Void(0)\"]').each(function () {\r\n $(this).parent('li').addClass(\"mdl-cell--hide\");\r\n });\r\n $('body.company.company-template .mdl-layout__drawer .mdl-navigation ul li.have-child a:not(.mdl-button)').click(function () {\r\n $(this).parent().children('label').trigger('click');\r\n });\r\n\r\n\r\n if (window.location.hash) {\r\n if (window.location.hash == '#managebanner') {\r\n $('[data-banner-edit]').trigger('click');\r\n var currentURL = window.location.href;\r\n window.history.replaceState(null, null, currentURL.replace('#managebanner', ''));\r\n }\r\n if (window.location.hash == '#add-testimonial') {\r\n $(\"#IwbPopUpArea\").AgoraDialogModal({ ServiceUrl: '/PopUps/Testimonial/addTestimonial.aspx', ParentCss: 'testimonial', EnableAjaxHtmlLoad: true });\r\n }\r\n }\r\n\r\n // start tab index ----\r\n\r\n //try {\r\n // // remove TabIndex\r\n // removeTagAttibute('tabindex');\r\n // // end tabindex \r\n // var _index = 1;\r\n // $('input:not(:button,:hidden,:checkbox,:radio),textarea').each(function () {\r\n // var OnesearchName = $(this).attr(\"onesearchname\");\r\n // if ('a[href]: not([href ^= \"mailto\\\\:\"], [href$ = \"#\"], [href ^= \"javascript:void(0)\"])') {\r\n // $(this).attr(\"tabindex\", _index);\r\n // _index++;\r\n // } else {\r\n // $(this).attr(\"tabindex\", \"-1\");\r\n // } \r\n // if (OnesearchName != 'undefined' || OnesearchName != 'homePropertyFields' || OnesearchName != 'agentFields' || OnesearchName != 'propertyFields') {\r\n // $(this).attr(\"tabindex\", \"-1\");\r\n // }\r\n // });\r\n //} catch (err) { }\r\n\r\n try {\r\n $('div').each(function () {\r\n if ($(this).attr(\"tabindex\")) {\r\n $(this).removeAttr(\"tabindex\")\r\n }\r\n });\r\n var _index = 1;\r\n\r\n $('a:visible,textarea,input:not(:hidden),select,input:radio').each(function () {\r\n\r\n if ($(this).attr(\"tabindex\")) {\r\n $(this).attr(\"tabindex\", _index);\r\n _index++;\r\n }\r\n $(this).attr(\"tabindex\", _index);\r\n _index++;\r\n\r\n });\r\n\r\n } catch (err) { }\r\n\r\n // End start tab index ----\r\n\r\n // ADA Complainces\r\n $(document).on(\"click\", \"[data-for]\", function (e) {\r\n try {\r\n var _for = $(this).data('for');\r\n $('[for=\"' + _for + '\"]').trigger(\"click\");\r\n } catch (e) { }\r\n });\r\n // END\r\n\r\n $(document).on('keyup', '[node=\"MobilePhone\"]', {}, function () {\r\n try {\r\n $(this).val($(this).val().replace(/t/gi, '')); // Special Case: \"t\" replaced from number \r\n if ($(this).closest('.mdl-js-textfield').length > 0)\r\n $(this).closest('.mdl-js-textfield')[0].MaterialTextfield.checkDirty();\r\n } catch (e) { }\r\n });\r\n\r\n EnableStickyHeader();\r\n cssLoad(function () { EnableFlowlessHeader(); });\r\n EnableDynamicContentLoad();\r\n EnableSearchBar();\r\n EnableSearchForm();\r\n EnableLeadForm();\r\n EnableSlider();\r\n CloseAgoraDropDownOnBodyClick();\r\n EnableConverter();\r\n EnableDemandImport();\r\n EnableHJNImport();\r\n EnableYelpImport();\r\n EnableAreaMapImport();\r\n EnableAVMControl();\r\n getAvmFunction();\r\n ReloadProperttypestate();\r\n EnableGoogleTagManager();\r\n EnableGoogleSearch();\r\n EnableBrytecore();\r\n\r\n});\r\n\r\nvar ThemeManager = new Theme();\r\nfunction Theme() {\r\n var _self = this;\r\n _self.Palette = function (hex) {\r\n return _self.PaletteGenerator(hex);\r\n };\r\n\r\n _self.PaletteGenerator = function (hex) {\r\n this.multiply = function (rgb1, rgb2) {\r\n rgb1.b = Math.floor(rgb1.b * rgb2.b / 255);\r\n rgb1.g = Math.floor(rgb1.g * rgb2.g / 255);\r\n rgb1.r = Math.floor(rgb1.r * rgb2.r / 255);\r\n return tinycolor('rgb ' + rgb1.r + ' ' + rgb1.g + ' ' + rgb1.b);\r\n };\r\n var baseLight = tinycolor('#ffffff');\r\n var baseDark = this.multiply(tinycolor(hex).toRgb(), tinycolor(hex).toRgb());\r\n var baseTriad = tinycolor(hex).tetrad();\r\n return {\r\n '50': tinycolor.mix(baseLight, hex, 12)\r\n , '100': tinycolor.mix(baseLight, hex, 30)\r\n , '200': tinycolor.mix(baseLight, hex, 50)\r\n , '300': tinycolor.mix(baseLight, hex, 70)\r\n , '400': tinycolor.mix(baseLight, hex, 85)\r\n , '500': tinycolor.mix(baseLight, hex, 100)\r\n , '600': tinycolor.mix(baseDark, hex, 87)\r\n , '700': tinycolor.mix(baseDark, hex, 70)\r\n , '800': tinycolor.mix(baseDark, hex, 54)\r\n , '900': tinycolor.mix(baseDark, hex, 25)\r\n , 'A100': tinycolor.mix(baseDark, baseTriad[4], 15).saturate(80).lighten(65)\r\n , 'A200': tinycolor.mix(baseDark, baseTriad[4], 15).saturate(80).lighten(55)\r\n , 'A400': tinycolor.mix(baseDark, baseTriad[4], 15).saturate(100).lighten(45)\r\n , 'A700': tinycolor.mix(baseDark, baseTriad[4], 15).saturate(100).lighten(40)\r\n };\r\n\r\n };\r\n};\r\n\r\n\r\nfunction getFormattedDate(date) {\r\n var _month = (date.getMonth() + 1);\r\n var monthStr = _month + '';\r\n var _day = date.getDate() + '';\r\n var _year = date.getFullYear() + '';\r\n return _year + '-' + monthStr.padStart(2, '0') + '-' + _day.padStart(2, '0');\r\n}\r\n\r\nfunction getMaxDate(date) {\r\n var date = new Date();\r\n var d = date.getDate();\r\n date.setMonth(date.getMonth() + 3);\r\n return getFormattedDate(date);\r\n\r\n}\r\n\r\nfunction EnableStickyHeader() {\r\n $(window).resize(_resize);\r\n //setTimeout(_resize, 800);\r\n _resize();\r\n window.homeFlashLoaded = function () {\r\n _resize();\r\n }\r\n if (typeof (window.homeFlashLoadedInitially) != 'undefined') {\r\n _resize();\r\n }\r\n function _resize() {\r\n if ($(\"body.company\").length > 0) {\r\n var headerHeight = $(\"header\").outerHeight();\r\n var windowScrollTop = $(window).scrollTop();\r\n if ($('.company').length > 0 && !$(\".body_propertymapsearch \").length > 0) {\r\n windowScrollTop > 1 ? $(\"header:not(.open-house-registration)\").addClass(\"collapsed slideInDown animated floating-head\").removeClass(\"active-block\") : $(\"header:not(.open-house-registration)\").removeClass(\"collapsed slideInDown animated\").addClass(\"active-block\");\r\n windowScrollTop > 1 ? $(\"body\").addClass(\"scroll\") : $(\"body\").removeClass(\"scroll\");\r\n //if (!$(\"body.company.with-title-slider\").length > 0 && !$(\".body_propertymapsearch \").length > 0 && $('header').hasClass(\"floating-head\")) { $(\"body.company main.mdl-layout__content\").css(\"margin-top\", headerHeight); }\r\n //if (!$(\".body_propertymapsearch \").length > 0) { $(\"body.company main.mdl-layout__content\").css(\"margin-top\", headerHeight); console.log(headerHeight); }\r\n }\r\n $(window).scroll(function () {\r\n var windowScrollTop = $(window).scrollTop();\r\n if ($('.company').length > 0 && !$(\".body_propertymapsearch \").length > 0) {\r\n windowScrollTop > 1 ? $(\"header:not(.open-house-registration)\").addClass(\"collapsed slideInDown animated floating-head\").removeClass(\"active-block\") : $(\"header:not(.open-house-registration)\").removeClass(\"collapsed slideInDown animated\").addClass(\"active-block\");\r\n windowScrollTop > 1 ? $(\"body\").addClass(\"scroll\") : $(\"body\").removeClass(\"scroll\");\r\n //if (!$(\"body.company.with-title-slider\").length > 0 && !$(\".body_propertymapsearch \").length > 0) { $(\"body.company main.mdl-layout__content\").css(\"margin-top\", headerHeight); }\r\n //if (!$(\".body_propertymapsearch \").length > 0) { $(\"body.company main.mdl-layout__content\").css(\"margin-top\", headerHeight); console.log(headerHeight); }\r\n }\r\n });\r\n }\r\n }\r\n $(document).on(\"click\", \".mdl-layout__drawer-btn\", function () {\r\n $(\".mdl-layout__drawer-button\").trigger(\"click\");\r\n });\r\n}\r\n\r\nfunction EnableFlowlessHeader() {\r\n var $AutoHeader = $('.agora-layout-header-auto');\r\n var $actualHeader = $('.agora-layout-header');\r\n function setHeader() {\r\n $AutoHeader.outerHeight($actualHeader.outerHeight());\r\n $('body').addClass('agora-layout-header-auto-height');\r\n }\r\n if ($AutoHeader.length > 0) {\r\n setHeader();\r\n $(window).on(\"load resize\", function () {\r\n setHeader();\r\n });\r\n }\r\n $actualHeader.find('img.logo').load(setHeader);\r\n}\r\n\r\nfunction EnableGoogleTagManager() {\r\n var _tagManagerStack = [];\r\n\r\n function _pushEvent(event) {\r\n _tagManagerStack.push(event);\r\n }\r\n\r\n function _popEvent() {\r\n return _tagManagerStack.pop();\r\n }\r\n\r\n function _googleTagManager(params) {\r\n var _isDebug = window.location.host.indexOf('localhost') > -1;\r\n try {\r\n if (_isDebug) {\r\n console.log('GTM');\r\n console.log(params);\r\n } else {\r\n console.log('GTM');\r\n console.log(params);\r\n if (typeof (dataLayerSub) != 'undefined' && dataLayerSub != null) dataLayerSub.push(params);\r\n if (typeof (dataLayer) != 'undefined' && dataLayer != null) dataLayer.push(params);\r\n }\r\n } catch (e) { console.log(e); }\r\n }\r\n\r\n function _getGTMTagType($node) {\r\n if ($node.is('[data-gtm-track]')) return 2;\r\n else if ($node.is('[data-gtm-track-event]')) return 1;\r\n return 0;\r\n }\r\n\r\n function _parseToParams($node) {\r\n var _nodeType = _getGTMTagType($node);\r\n var _gtmParams = {};\r\n var _gtmArray = [];\r\n try {\r\n var _gtm = $node.data('gtm-track');\r\n var _gtmParts = _gtm.split(',');\r\n if (_gtmParts.length > 0) _gtmParams.event = _gtmParts[0];\r\n _gtmArray.push(_gtmParams.event);\r\n\r\n if (_gtmParts[0] == _gtmParts[1]) { _gtmParams = $.parseJSON($node.attr('data-' + _gtmParts[1].toLowerCase()).replace(/\\'/gi, '\"')); }\r\n else {\r\n for (var i = 1; i < _gtmParts.length; i++) {\r\n try {\r\n\r\n _gtmParams[_gtmParts[i]] = null;\r\n var _nodeParamValue = $node.data(_gtmParts[i].toLowerCase());\r\n _nodeParamValue = (_nodeParamValue[0] == '{' && _nodeParamValue[_nodeParamValue.length - 1] == '}' ? $.parseJSON(_nodeParamValue.replace(/\\'/gi, '\"')) : _nodeParamValue);\r\n\r\n if (typeof (_nodeParamValue) != 'undefined') {\r\n if ($node.is('[data-isarray]'))\r\n _gtmArray.push(_nodeParamValue);\r\n else\r\n _gtmParams[_gtmParts[i]] = _nodeParamValue;\r\n }\r\n\r\n } catch (ex) { }\r\n }\r\n }\r\n } catch (e) { }\r\n return $node.is('[data-isarray]') ? _gtmArray : _gtmParams;\r\n }\r\n\r\n function _googleTagManagerTrack($node) {\r\n _googleTagManager(_parseToParams($node));\r\n }\r\n\r\n $(document).on('track', '[data-gtm-track]', null, function (e) {\r\n _googleTagManagerTrack($(this));\r\n });\r\n\r\n //Form Success Event\r\n $(document).on('success', '[data-request][data-gtm-track]', null, function (e) {\r\n $(this).trigger('track');\r\n });\r\n\r\n $(document).on('click', '[data-gtm-click][data-gtm-track]', null, function (e) {\r\n $(this).trigger('track');\r\n });\r\n\r\n $(document).on('gtm-track', 'body', null, function (e, data) {\r\n _googleTagManager(data);\r\n });\r\n\r\n}\r\n\r\nfunction SaveOrderXML() {\r\n var $sender = $(\"#fromorder .widget\").toArray();\r\n var _xml = \"<d>\";\r\n for (i = 0; i < $sender.length; i++) {\r\n _xml = _xml + ('<Fields><WidgetFields><MasterKey><![CDATA[' + $($sender[i]).attr('data-masterkey') + ']]></MasterKey><WidgetOrder><![CDATA[' + $($sender[i]).attr('data-order') + ']]></WidgetOrder><Label><![CDATA[' + $($sender[i]).attr('data-value') + ']]></Label><WidgetStatus><![CDATA[' + $($sender[i]).attr('data-showorhide') + ']]></WidgetStatus></WidgetFields></Fields>');\r\n }\r\n _xml += '</d>';\r\n $.ajax({\r\n type: 'POST',\r\n url: '/services/webbuilder/agoraWidget.ashx',\r\n data: { fields: _xml, type: 'Form', widgetname: '' },\r\n dataType: 'json',\r\n success: function (response) {\r\n if (response.success == 1) {\r\n ShowAlert('Widget sucessfully Added.', 3000, 'alert_box', null);\r\n agoraClearCache(function () {\r\n ClosePopup();\r\n location.reload();\r\n });\r\n } else {\r\n ShowAlert('Something went wrong!. Please try again.', 3000, 'alert_box', null);\r\n }\r\n },\r\n error: function (e) {\r\n console.log('Error: ' + e);\r\n }\r\n });\r\n}\r\n\r\nfunction EnableSearchForm() {\r\n function searchActon(sender) {\r\n setTimeout(function () {\r\n var $sender = $(sender);\r\n var $form = $sender.closest('[data-search-form]');\r\n var _urlQuery = composeUrlQuery({ select: $form });\r\n var _rt = $form.data('search-form');\r\n var $sort = $('[data-sort-object=\"' + _rt + '\"]');\r\n var _default = $form.data('default-search');\r\n var _defaultSort = $form.data('default-sort');\r\n if ((typeof (_default) != 'undefined' && _default != '' && _urlQuery.indexOf('/address-') == -1 && _urlQuery.indexOf('/mls-') == -1)) _urlQuery += _default;\r\n if ($sort.length > 0) {\r\n var _sortValue = $sort.val();\r\n _urlQuery += _sortValue != null && _sortValue != '' ? _sortValue : '';\r\n }\r\n else if (typeof (_defaultSort) != 'undefined' && _defaultSort != null && _defaultSort != '') _urlQuery += _defaultSort;\r\n $form.triggerHandler('search', [{ query: _urlQuery }]);\r\n }, 200);\r\n }\r\n\r\n $(document).on('click', '[data-search-form] [data-search-button]', {}, function () {\r\n searchActon(this);\r\n });\r\n $(document).on('keydown', '[data-search-form] [data-search-action]', {}, function (e) {\r\n if (e.keyCode == 13)\r\n searchActon(this);\r\n });\r\n\r\n $('[data-search-form]').on('search', function (e, data) {\r\n var $sender = $(this);\r\n var $prefix = $sender.data('search-prefix');\r\n var _prefix = (IsNotNull($prefix) && $prefix != 'undefined') ? $prefix : GetSearchPrefixForRecordType($sender.data('search-form'));\r\n var pattern = /^\\/\\//;\r\n if (!pattern.test((_prefix != null && _prefix != '' && _prefix != 'undefined' ? _prefix : '') + data.query))\r\n window.location = (_prefix != null && _prefix != '' && _prefix != 'undefined' ? _prefix : '') + data.query;\r\n });\r\n}\r\n\r\n$(document).on(\"click\", \"[data-detail-link]\", function (e) {\r\n try {\r\n if ($(e.target).closest('[data-non-click-content]').length > 0) return;\r\n if ($('[data-pcode]').data('pcode') == 'PSB' && location.pathname.startsWith('/property-search-map')) {\r\n $(\".detailTarget\").removeAttr('data-detail-link');\r\n }\r\n else if (!e.ctrlKey) {\r\n e.preventDefault();\r\n var $this = $(this);\r\n var _detailUrl = $this.closest('.property').find('[data-detail-url]').data('detail-url');\r\n if (_detailUrl != null && _detailUrl != '' && $('[data-pcode]').data('pcode') !== 'PSB')\r\n window.open(_detailUrl);\r\n else if (_detailUrl != null && _detailUrl != '' && $('[data-pcode]').data('pcode') == 'PSB') {\r\n window.open(_detailUrl, '_self');\r\n }\r\n //newpage();\r\n }\r\n } catch (e) { console.log(e); }\r\n});\r\n\r\n\r\nfunction isElementVisible(el) {\r\n var rect = el.getBoundingClientRect(),\r\n vWidth = window.innerWidth || document.documentElement.clientWidth,\r\n vHeight = window.innerHeight || document.documentElement.clientHeight,\r\n efp = function (x, y) { return document.elementFromPoint(x, y) };\r\n\r\n // Return false if it's not in the viewport\r\n if (rect.right < 0 || rect.bottom < 0\r\n || rect.left > vWidth || rect.top > vHeight)\r\n return false;\r\n\r\n // Return true if any of its four corners are visible\r\n return (\r\n el.contains(efp(rect.left, rect.top))\r\n || el.contains(efp(rect.right, rect.top))\r\n || el.contains(efp(rect.right, rect.bottom))\r\n || el.contains(efp(rect.left, rect.bottom))\r\n );\r\n}\r\n\r\nfunction OnSelectOneSearchItemToForm(item, controlID) {\r\n $('[id$=\"' + controlID + '\"]').closest('[data-search-form]').data('item', item);\r\n}\r\n\r\nfunction OnSuccessOneSearchItem(controlID) {\r\n var item = $('[id$=\"' + controlID + '\"]').closest('[data-search-form]').data('item');\r\n var searchType = typeof (item) != 'undefined' && item != null && typeof (item.rt) != 'undefined' ? item.rt : '';\r\n switch (searchType) {\r\n case \"LOCATION\":\r\n $('[id$=\"' + controlID + '\"]').closest('[data-search-form]').find('[data-search-button]').trigger('click');\r\n break;\r\n }\r\n}\r\n\r\nfunction ClearFormval($form) {\r\n $($form).find('input,select,textarea').each(function () {\r\n if ($(this).is('input[type=\"checkbox\"]')) {\r\n if ($(this).closest('.mdl-js-checkbox').length > 0)\r\n $(this).closest('.mdl-js-checkbox')[0].MaterialCheckbox.uncheck();\r\n else\r\n $(this).prop('checked', false);\r\n } else if ($(this).is('input[type=\"radio\"]')) {\r\n if ($(this).closest('.mdl-js-radio').length > 0)\r\n $(this).closest('.mdl-js-radio')[0].MaterialRadio.uncheck();\r\n else\r\n $(this).prop('checked', false);\r\n }\r\n else if ($(this).is('input[type=\"text\"]') || $(this).is('textarea')) {\r\n $(this).val('');\r\n if ($(this).closest('.mdl-js-textfield').length > 0)\r\n $(this).closest('.mdl-js-textfield')[0].MaterialTextfield.checkDirty();\r\n } else if ($(this).is('select')) {\r\n $(this).prop(\"selectedIndex\", 0);\r\n if ($(this).closest('.mdl-js-selectfield').length > 0)\r\n $(this).closest('.mdl-js-selectfield')[0].MaterialSelectfield.mdlDowngrade_();\r\n }\r\n else if ($(this).is('input[type=\"file\"]')) {\r\n $(this).val('');\r\n }\r\n });\r\n if (!(typeof (componentHandler) == 'undefined')) {\r\n componentHandler.upgradeDom();\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nfunction EnableBrytecore() {\r\n var _bryteCoreStack = [];\r\n\r\n function _pushEvent(event) {\r\n _bryteCoreStack.push(event);\r\n }\r\n\r\n function _popEvent() {\r\n return _bryteCoreStack.pop();\r\n }\r\n\r\n function _bryteCore(event, params) {\r\n var _isDebug = window.location.host.indexOf('localhost') > -1;\r\n var _isStage = window.location.host.indexOf('stage') > -1;\r\n try {\r\n if (_isDebug || _isStage) {\r\n console.log('BRT');\r\n console.log(\"event : \" + event);\r\n console.log(\"data : \" + params);\r\n } else {\r\n if (typeof (brytescore) != 'undefined' && brytescore != null) {\r\n console.log('BRTTRUE');\r\n console.log(\"event : \" + event);\r\n console.log(\"data : \" + params); brytescore(event, params);\r\n }\r\n }\r\n } catch (e) { console.log(e); }\r\n }\r\n\r\n function _getBRTTagType($node) {\r\n if ($node.is('[data-brt-track]')) return 2;\r\n else if ($node.is('[data-brt-track-event]')) return 1;\r\n return 0;\r\n }\r\n\r\n function _parseToParams($node) {\r\n var _nodeType = _getBRTTagType($node);\r\n var _brtParams = {};\r\n try {\r\n var _brt = $node.attr('data-brt-track');\r\n var _brtParts = _brt.split(',');\r\n //if (_brtParts.length > 0) _brtParams.events = _brtParts[0];\r\n for (var i = 1; i < _brtParts.length; i++) {\r\n try {\r\n _brtParams[_brtParts[i]] = null;\r\n var _nodeParamValue = $node.attr('data-' + _brtParts[i].toLowerCase());\r\n console.log(_nodeParamValue);\r\n if (_brtParts[i].toLowerCase() == \"islead\") { _brtParams[_brtParts[i]] = true; }\r\n if (typeof (_nodeParamValue) != 'undefined' && _brtParts[i].toLowerCase() != \"islead\")\r\n _brtParams[_brtParts[i]] = _nodeParamValue[0] == '{' && _nodeParamValue[_nodeParamValue.length - 1] == '}' ? $.parseJSON(_nodeParamValue.replace(/\\'/gi, '\"')) : _nodeParamValue;\r\n } catch (ex) { }\r\n }\r\n } catch (e) { }\r\n return _brtParams;\r\n }\r\n\r\n function _parseToEvents($node) {\r\n var _nodeType = _getBRTTagType($node);\r\n var _brtEvents;\r\n try {\r\n var _brt = $node.attr('data-brt-track');\r\n var _brtParts = _brt.split(',');\r\n if (_brtParts.length > 0) _brtEvents = _brtParts[0];\r\n } catch (e) { }\r\n return _brtEvents;\r\n }\r\n\r\n\r\n function _bryteCoreTrack($node) {\r\n _bryteCore(_parseToEvents($node), _parseToParams($node));\r\n }\r\n\r\n\r\n $(document).on('track', '[data-brt-track]', null, function (e) {\r\n _bryteCoreTrack($(this));\r\n });\r\n\r\n\r\n $(document).on('click', '[data-brt-click][data-brt-track]', null, function (e) {\r\n $(this).trigger('track');\r\n });\r\n\r\n $(document).on('brt-track', 'body', null, function (e, data) {\r\n _bryteCore(data);\r\n });\r\n}\r\nfunction getBRTSearchtags(urlQuery, trackContainer, ResultCount) {\r\n var _brtParams = '';\r\n var _events = trackContainer.data('brt-track');\r\n var _searchUrl = trackContainer.attr('data-searchurl');\r\n try {\r\n _brtParts = urlQuery.split('/');\r\n if (ResultCount != '' && ResultCount != '0') _brtParams += writeTag('resultsCount', ResultCount.replace(',', ''));\r\n for (var i = 0; i < _brtParts.length; i++) {\r\n var _nodeParamValue;\r\n var _singleQuerySplit = {};\r\n var _termValue;\r\n var _urlterm;\r\n try {\r\n _singleQuerySplit = _brtParts[i].split('-');\r\n console.log(_singleQuerySplit);\r\n if (_singleQuerySplit.length == 1) {\r\n _urlterm = _singleQuerySplit[0];\r\n if (_urlterm == 'fore') { _brtParams += writeTag('isForeclosureAcreage', true); }\r\n }\r\n if (_singleQuerySplit.length == 2) {\r\n _urlterm = _singleQuerySplit[0];\r\n _termValue = _singleQuerySplit[1];\r\n var _nodeTag = $('[data-search-form=\"QUICKSEARCH\"]').find('[UrlIdentifier=\"' + _urlterm + '\"][data-brt-tag]').data('brt-tag');\r\n if (typeof (_nodeTag) != 'undefined') {\r\n _brtParams += writeTag(_nodeTag, _termValue);\r\n }\r\n }\r\n if (_singleQuerySplit[0] == 'price' && _singleQuerySplit.length == 3) {\r\n _urlterm = _singleQuerySplit[0];\r\n var _nodeTag1 = $('[data-search-form=\"QUICKSEARCH\"]').find('[Operation=\"min\"][UrlIdentifier=\"' + _urlterm + '\"][data-brt-tag]').data('brt-tag');\r\n var _nodeTag2 = $('[data-search-form=\"QUICKSEARCH\"]').find('[Operation=\"max\"][UrlIdentifier=\"' + _urlterm + '\"][data-brt-tag]').data('brt-tag');\r\n if (typeof (_nodeTag1) != 'undefined' && typeof (_nodeTag2) != 'undefined') { _brtParams += writeTag(_nodeTag1, _singleQuerySplit[1]); _brtParams += writeTag(_nodeTag2, _singleQuerySplit[2]); }\r\n }\r\n\r\n ////\r\n //if (_singleQuerySplit[0] == 'l' || _singleQuerySplit[0] == 'county') {\r\n // _urlterm = _singleQuerySplit[0];\r\n // _termValue = _singleQuerySplit[1].replace(/^;|;$/g, '');\r\n // var _defaultEvent;\r\n // var _stringArray = '[' + _termValue.split(';') + ']';\r\n // _defaultEvent = _urlterm == 'l' ? 'cities' : _urlterm == 'county' ? 'counties' : '';\r\n // _brtParams += writeTag(_defaultEvent, _stringArray);\r\n //}\r\n ////\r\n\r\n if ((_singleQuerySplit[0] == 'lat' || _singleQuerySplit[0] == 'lon') && _singleQuerySplit.length == 3) {\r\n if (_singleQuerySplit[0] == 'lat') {\r\n var _latPoint1 = _singleQuerySplit[1];\r\n var _latPoint2 = _singleQuerySplit[2];\r\n }\r\n if (_singleQuerySplit[0] == 'lon') {\r\n var _lonPoint1 = _singleQuerySplit[1];\r\n var _lonPoint2 = _singleQuerySplit[2];\r\n var _boundary = '[{\"latitude\":' + _latPoint1 + ' , \"longitude\":' + _lonPoint1.replace('_', '-') + ' },{\"latitude\":' + _latPoint2 + ' , \"longitude\":' + _lonPoint2.replace('_', '-') + ' }]';\r\n _brtParams += writeTag('boundaries', _boundary);\r\n }\r\n }\r\n if (_singleQuerySplit[0] == 'type') {\r\n _termValue = _singleQuerySplit[1];\r\n if (_termValue.indexOf('Single Family') > -1) { _brtParams += writeTag('isSingleFamily', true); }\r\n if (_termValue.indexOf('Condo') > -1) { _brtParams += writeTag('isCondo', true); }\r\n if (_termValue.indexOf('Land') > -1) { _brtParams += writeTag('isLot', true); }\r\n if (_termValue.indexOf('Multi') > -1) { _brtParams += writeTag('isMultiFamily', true); }\r\n }\r\n }\r\n catch (ex) { }\r\n }\r\n if (trackContainer.data('search-form-type') == 'PropertyMapSearch') { _brtParams += writeTag('isMapSearch', true); }\r\n _brtParams += writeTag('searchURL', '\"' + _searchUrl + '\"', true);\r\n var _searchObj = '{' + _brtParams + '}';\r\n trackContainer.attr('data-search', _searchObj);\r\n\r\n _events = _events.replace('searchURL', 'search');\r\n }\r\n catch (e) { }\r\n return _events;\r\n}\r\n\r\nfunction writeTag(name, value, isLastNode) {\r\n var _trailingComma = '';\r\n _trailingComma = isLastNode ? _trailingComma : ',';\r\n return '\"' + name + '\" : ' + value + _trailingComma;\r\n}\r\n\r\nfunction getBRTContact(sender) {\r\n var _formTag = sender.attr('data-form');\r\n var _contactEmail = sender.find('[node=\"Email\"]').val();\r\n var _contactFName = sender.find('[node=\"FirstName\"]').val();\r\n var _contactLName = sender.find('[node=\"LastName\"]').val();\r\n var _contactPhone = sender.find('[node=\"MobilePhone\"]').val();\r\n var _contactRemarks = sender.find('[node=\"Remarks\"]').val();\r\n var _formTagJSON = $.parseJSON('{' + _formTag + '}');\r\n\r\n var _formObj = {};\r\n _formObj.fromEmail = _contactEmail;\r\n _formObj.fromName = _contactFName + ' ' + _contactLName;\r\n _formObj.fromTelephone = {};\r\n _formObj.fromTelephone.mobile = _contactPhone;\r\n _formObj.message = _contactRemarks;\r\n for (var key in _formTagJSON)\r\n _formObj[key] = _formTagJSON[key];\r\n //_formObj. = '{\"fromEmail\":\"' + _contactEmail + '\",\"fromName\":\"' + _contactFName + ' ' + _contactLName + '\",\"fromTelephone\":{\"mobile\": \"' + _contactPhone + '\"},\"message\":\"' + _contactRemarks + '\",' + _formTag + '}';\r\n return _formObj;\r\n}\r\n\r\nfunction getBRTEvents(sender) {\r\n var _brtEvents;\r\n try {\r\n var _brt = sender.attr('data-brt-track');\r\n var _brtParts = _brt.split(',');\r\n if (_brtParts.length > 0) _brtEvents = _brtParts[0];\r\n } catch (e) { }\r\n return _brtEvents;\r\n}\r\n\r\nfunction EnableDynamicContentLoad() {\r\n $(document).on('init', '[data-dynamic-content]', {}, function () {\r\n var $sender = $(this);\r\n var $loader = $sender.find('[data-loader]');\r\n var $loadContext = $sender.find('[data-context]');\r\n if ($loadContext.length == 0)\r\n $loadContext = $sender;\r\n $loader.removeClass('mdl-cell--hide');\r\n var _url = $sender.data('dynamic-content');\r\n $.ajax({\r\n type: \"GET\",\r\n url: _url,\r\n success: function (data) {\r\n $loadContext.html(data);\r\n $loader.addClass('mdl-cell--hide');\r\n },\r\n failure: function (data) {\r\n $loader.addClass('mdl-cell--hide');\r\n },\r\n error: function (data) {\r\n $loader.addClass('mdl-cell--hide');\r\n }\r\n });\r\n\r\n });\r\n\r\n $('[data-dynamic-content]:not([data-dynamic-content-trigger]:not([data-init]))').trigger('init');\r\n $('[data-dynamic-content][data-dynamic-content-trigger]:not([data-init])').each(function () {\r\n var $this = $(this);\r\n var $trigger = $('#' + $this.data('dynamic-content-trigger'));\r\n if ($trigger.length > 0) {\r\n $trigger.on('change', function () { if ($(this).is(':checked')) { $this.trigger('init'); $trigger.off('change'); } })\r\n $trigger.find(':checked').trigger('change');\r\n }\r\n });\r\n}\r\n\r\nfunction EnableSearchBar() {\r\n function _getWidth() { return $(window).width(); }\r\n function _isValidExtendedSearchView() { return _getWidth() < 1025; }\r\n function _performSearchBarTrigger() { if (_isValidExtendedSearchView()) _openFilterWindow(); }\r\n function _openFilterWindow() { $('body').addClass('search-bar-opened'); }\r\n function _closeFilterWindow() { $('body').removeClass('search-bar-opened'); }\r\n $('.SearchBar [data-search=\"oneSearch\"]').on('focusin', _performSearchBarTrigger);\r\n $('.SearchBar [data-search-label=\"oneSearch\"]').on('click', _performSearchBarTrigger);\r\n $('.SearchBar [data-search-close]').on('click', _closeFilterWindow);\r\n $(window).on('resize', function () { if (!_isValidExtendedSearchView()) _closeFilterWindow });\r\n}\r\n\r\nfunction getBRTSearchtags(urlQuery, trackContainer, ResultCount) {\r\n var _brtParams = '';\r\n var _events = trackContainer.data('brt-track');\r\n var _searchUrl = trackContainer.attr('data-searchurl');\r\n try {\r\n _brtParts = urlQuery.split('/');\r\n if (ResultCount != '' && ResultCount != '0') _brtParams += writeTag('resultsCount', ResultCount.replace(',', ''));\r\n for (var i = 0; i < _brtParts.length; i++) {\r\n var _nodeParamValue;\r\n var _singleQuerySplit = {};\r\n var _termValue;\r\n var _urlterm;\r\n try {\r\n _singleQuerySplit = _brtParts[i].split('-');\r\n console.log(_singleQuerySplit);\r\n if (_singleQuerySplit.length == 1) {\r\n _urlterm = _singleQuerySplit[0];\r\n if (_urlterm == 'fore') { _brtParams += writeTag('isForeclosureAcreage', true); }\r\n }\r\n if (_singleQuerySplit.length == 2) {\r\n _urlterm = _singleQuerySplit[0];\r\n _termValue = _singleQuerySplit[1];\r\n var _nodeTag = $('[data-search-form=\"QUICKSEARCH\"]').find('[UrlIdentifier=\"' + _urlterm + '\"][data-brt-tag]').data('brt-tag');\r\n if (typeof (_nodeTag) != 'undefined') {\r\n _brtParams += writeTag(_nodeTag, _termValue);\r\n }\r\n }\r\n if (_singleQuerySplit[0] == 'price' && _singleQuerySplit.length == 3) {\r\n _urlterm = _singleQuerySplit[0];\r\n var _nodeTag1 = $('[data-search-form=\"QUICKSEARCH\"]').find('[Operation=\"min\"][UrlIdentifier=\"' + _urlterm + '\"][data-brt-tag]').data('brt-tag');\r\n var _nodeTag2 = $('[data-search-form=\"QUICKSEARCH\"]').find('[Operation=\"max\"][UrlIdentifier=\"' + _urlterm + '\"][data-brt-tag]').data('brt-tag');\r\n if (typeof (_nodeTag1) != 'undefined' && typeof (_nodeTag2) != 'undefined') { _brtParams += writeTag(_nodeTag1, _singleQuerySplit[1]); _brtParams += writeTag(_nodeTag2, _singleQuerySplit[2]); }\r\n }\r\n\r\n ////\r\n //if (_singleQuerySplit[0] == 'l' || _singleQuerySplit[0] == 'county') {\r\n // _urlterm = _singleQuerySplit[0];\r\n // _termValue = _singleQuerySplit[1].replace(/^;|;$/g, '');\r\n // var _defaultEvent;\r\n // var _stringArray = '[' + _termValue.split(';') + ']';\r\n // _defaultEvent = _urlterm == 'l' ? 'cities' : _urlterm == 'county' ? 'counties' : '';\r\n // _brtParams += writeTag(_defaultEvent, _stringArray);\r\n //}\r\n ////\r\n\r\n if ((_singleQuerySplit[0] == 'lat' || _singleQuerySplit[0] == 'lon') && _singleQuerySplit.length == 3) {\r\n if (_singleQuerySplit[0] == 'lat') {\r\n var _latPoint1 = _singleQuerySplit[1];\r\n var _latPoint2 = _singleQuerySplit[2];\r\n }\r\n if (_singleQuerySplit[0] == 'lon') {\r\n var _lonPoint1 = _singleQuerySplit[1];\r\n var _lonPoint2 = _singleQuerySplit[2];\r\n var _boundary = '[{\"latitude\":' + _latPoint1 + ' , \"longitude\":' + _lonPoint1.replace('_', '-') + ' },{\"latitude\":' + _latPoint2 + ' , \"longitude\":' + _lonPoint2.replace('_', '-') + ' }]';\r\n _brtParams += writeTag('boundaries', _boundary);\r\n }\r\n }\r\n if (_singleQuerySplit[0] == 'type') {\r\n _termValue = _singleQuerySplit[1];\r\n if (_termValue.indexOf('Single Family') > -1) { _brtParams += writeTag('isSingleFamily', true); }\r\n if (_termValue.indexOf('Condo') > -1) { _brtParams += writeTag('isCondo', true); }\r\n if (_termValue.indexOf('Land') > -1) { _brtParams += writeTag('isLot', true); }\r\n if (_termValue.indexOf('Multi') > -1) { _brtParams += writeTag('isMultiFamily', true); }\r\n }\r\n }\r\n catch (ex) { }\r\n }\r\n if (trackContainer.data('search-form-type') == 'PropertyMapSearch') { _brtParams += writeTag('isMapSearch', true); }\r\n _brtParams += writeTag('searchURL', '\"' + _searchUrl + '\"', true);\r\n var _searchObj = '{' + _brtParams + '}';\r\n trackContainer.attr('data-search', _searchObj);\r\n\r\n _events = _events.replace('searchURL', 'search');\r\n }\r\n catch (e) { }\r\n return _events;\r\n}\r\n\r\n\r\n// Fix: The validation MDL text box not to turn red on load\r\n\r\n\r\nfunction UpdateUserAreaHtml(html) { $('#USERAREA').html(html); }\r\n\r\nfunction attachLeadFormConsentStatement() {\r\n $(\"[data-request-submit],[data-submit-tatext]\").each(function () {\r\n\r\n if ($(this).attr('no-consentmessage') === undefined) { // if no consent message is needed in form, use 'no-consentmessage' attribute\r\n if ($(this).attr(\"no-checkbox\") !== undefined) { // hide checkbox option , use 'no-checkbox' attribute\r\n if ($(this).attr(\"consent-attached\") != \"true\") {\r\n if ($(this).parent().parent().html().indexOf('Cancel') > 0) {\r\n $(this).parent().parent().before('<div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet acknowledgement-policy\">By submitting your information, you consent to receive marketing/informational content by email, SMS, and/or phone. Message and data rates may apply. You may opt out at any time per our <a aria-label=\"policy\" role=\"link\" target=\"_blank\" href=\"/privacy-policy\"><u>Privacy Policy</u></a>.</span> </div>');\r\n }\r\n else {\r\n $(this).parent().before('<div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet acknowledgement-policy\">By submitting your information, you consent to receive marketing/informational content by email, SMS, and/or phone. Message and data rates may apply. You may opt out at any time per our <a aria-label=\"policy\" role=\"link\" target=\"_blank\" href=\"/privacy-policy\"><u>Privacy Policy</u></a>.</div>');\r\n }\r\n $(this).attr('consent-attached', 'true');\r\n }\r\n return;\r\n }\r\n if ($(this).attr(\"consent-attached\") != \"true\") {\r\n if ($(this).parent().parent().html().indexOf('Cancel') > 0) {\r\n $(this).parent().parent().before('<div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet acknowledgement-policy\"><label class=\"mdl-checkbox mdl-js-checkbox \" ><input type=\"checkbox\" node=\"Consent\" class=\"mdl-checkbox__input\"><span class=\"mdl-checkbox__label\">By submitting your information, you consent to receive marketing/informational content by email, SMS, and/or phone. Message and data rates may apply. You may opt out at any time per our <a aria-label=\"policy\" role=\"link\" target=\"_blank\" href=\"/privacy-policy\"><u>Privacy Policy</u></a>.</span> </label></div>');\r\n }\r\n else {\r\n $(this).parent().before('<div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet acknowledgement-policy\"><label class=\"mdl-checkbox mdl-js-checkbox \" ><input type=\"checkbox\" node=\"Consent\" class=\"mdl-checkbox__input\"> <span class=\"mdl-checkbox__label\">By submitting your information, you consent to receive marketing/informational content by email, SMS, and/or phone. Message and data rates may apply. You may opt out at any time per our <a aria-label=\"policy\" role=\"link\" target=\"_blank\" href=\"/privacy-policy\"><u>Privacy Policy</u></a>.</span></label></div>');\r\n }\r\n $(this).attr('consent-attached', 'true');\r\n }\r\n }\r\n\r\n\r\n });\r\n}\r\n\r\nfunction EnableLeadForm() {\r\n attachLeadFormConsentStatement();\r\n $(document).on('click', 'a.emailform,a.email-agent', null, function () {\r\n try {\r\n var _relAgentKey = $(this).attr('rel');\r\n if (_relAgentKey == null || typeof (_relAgentKey) == 'undefined' || _relAgentKey.trim() == '') return;\r\n var _agentKey = parseInt(_relAgentKey);\r\n $(\"#ContactMeModal\").AgoraDialogModal({ ServiceUrl: '/PopUps/LeadForm/ContactUs.aspx?agentkey=' + _agentKey, EnableAjaxHtmlLoad: true });\r\n } catch (e) { }\r\n });\r\n\r\n $(document).on('change', '[Node=\"LeadFormOwnerOffice\"]', null, function () {\r\n try {\r\n $(\"#hdnLeadofficename\").attr(\"value\", this.options[this.selectedIndex].text);\r\n\r\n } catch (e) { }\r\n\r\n });\r\n\r\n $(document).on('engage', '[data-request-submit]', null, function () {\r\n try {\r\n var $sender = $(this);\r\n $sender.addClass('loading');\r\n ShowLoading();\r\n } catch (e) { }\r\n });\r\n $(document).on('disengage', '[data-request-submit]', null, function () {\r\n try {\r\n var $sender = $(this);\r\n $sender.removeClass('loading');\r\n ShowLoading();\r\n } catch (e) { }\r\n });\r\n\r\n $(document).on('end', '[data-request-submit],[data-website-sign-up-button]', null, function () {\r\n try {\r\n var $sender = $(this);\r\n var $form = $sender.parents('[data-request]');\r\n var $dataReveal = null;\r\n var $trackForm = null;\r\n var $requestType = $sender.parents('[data-request]').data('request');\r\n if ($('[data-trackid]').length > 0) {\r\n $trackForm = $('[data-trackid]').data('trackid');\r\n $requestType = $trackForm;\r\n }\r\n\r\n var $mlsNumber = $sender.parents('[data-request]').find('[node=\"PropertyMlsnumber\"]').val();\r\n var _succesUrl = $sender.parents('[data-request]').data('request-success') + '?type=' + $sender.parents('[data-request]').data('request') + '&stype=' + $sender.parents('[data-request]').data('request-subtype') + '&IsPageReload=' + $sender.parents('[data-request]').data('reloadpage');\r\n\r\n var _trackVal = ($requestType == \"RequestShowing\" || $requestType == \"RequestInfo\") ? $('body').find('[data-listing-gtm-track]').data('formsubmitted') : $('body').find('[data-form-gtm-track]').data('formsubmitted');\r\n switch ($requestType) {\r\n case \"RequestShowing\":\r\n _trackVal = _trackVal.replace(\"'requestShowing':'false'\", \"'requestShowing':'true'\");\r\n _trackVal = _trackVal.replace(\"'listingID':'MLS'\", \"'listingID':'\" + $mlsNumber + \"'\");\r\n _trackVal = _trackVal.replace(\"'FormID':'contactForm'\", \"'form_id':'\" + $requestType + \"'\");\r\n _trackVal = _trackVal.replace(\"'FormId':'requestDetails'\", \"'form_id':'\" + $requestType + \"'\");\r\n $('body').find('[data-listing-gtm-track]').attr('data-formsubmitted', _trackVal);\r\n $('body').find('[data-listing-gtm-track]').trigger('track');\r\n break;\r\n case \"RequestInfo\":\r\n _trackVal = _trackVal.replace(\"'listingID':'MLS'\", \"'listingID':'\" + $mlsNumber + \"'\");\r\n _trackVal = _trackVal.replace(\"'FormID':'contactForm'\", \"'form_id':'\" + $requestType + \"'\");\r\n _trackVal = _trackVal.replace(\"'FormId':'requestDetails'\", \"'form_id':'\" + $requestType + \"'\");\r\n $('body').find('[data-listing-gtm-track]').attr('data-formsubmitted', _trackVal);\r\n $('body').find('[data-listing-gtm-track]').trigger('track');\r\n break;\r\n default:\r\n _trackVal = _trackVal.replace(\"'FormID':'contactForm'\", \"'form_id':'\" + $requestType + \"'\");\r\n _trackVal = _trackVal.replace(\"'FormId':'requestDetails'\", \"'form_id':'\" + $requestType + \"'\");\r\n $('body').find('[data-form-gtm-track]').attr('data-formsubmitted', _trackVal);\r\n $('body').find('[data-form-gtm-track]').trigger('track');\r\n break;\r\n }\r\n\r\n //$('[data-success-gaw-track]').trigger('track');\r\n\r\n if (!$sender.parents('[data-request]').is('[data-inline-form]')) {\r\n $dataReveal = $sender.parents('[data-reveal]');\r\n } else {\r\n $dataReveal = $($sender.parents('[data-request]').data('inline-form'));\r\n $sender.parents('[data-request]').find('input').val('');\r\n }\r\n }\r\n catch (e) { }\r\n finally {\r\n if (typeof (_succesUrl) != 'undefined' && !_succesUrl.startsWith('undefined')) {\r\n setTimeout(function () {\r\n $(\"#IwbPopUpArea\").AgoraDialogModal({ ServiceUrl: _succesUrl, EnableAjaxHtmlLoad: true });\r\n }, 700);\r\n }\r\n }\r\n });\r\n\r\n $(document).on('error', '[data-request-submit]', null, function (event, response) {\r\n console.log(response);\r\n try {\r\n var $dataReveal = null;\r\n var $sender = $(this);\r\n var responseNumber = 'undefined';\r\n if (!$sender.parents('[data-request]').is('[data-inline-form]')) {\r\n $dataReveal = $sender.parents('[data-reveal]');\r\n } else {\r\n $dataReveal = $($sender.parents('[data-request]').data('inline-form'));\r\n $sender.parents('[data-request]').find('input').val('');\r\n }\r\n setTimeout(function () {\r\n if (responseNumber != undefined && response.response.response.Number == '403') {\r\n $(\"#IwbPopUpArea\").AgoraDialogModal({ ServiceUrl: '/PopUps/LeadForm/Error.aspx?response=403', EnableAjaxHtmlLoad: true });\r\n clearTimeout()\r\n }\r\n else {\r\n $(\"#IwbPopUpArea\").AgoraDialogModal({ ServiceUrl: '/PopUps/LeadForm/Error.aspx', EnableAjaxHtmlLoad: true });\r\n\r\n }\r\n }, 700);\r\n } catch (e) { }\r\n });\r\n\r\n function Contactvalidate() {\r\n var val;\r\n $('#ContactUs_Form :input').each(function () {\r\n if (($(this).prop('required') == true && $(this).val().length <= 0) || ($(this).attr('node') == 'Email' && !isValidEmail($(this).val()))) {\r\n ShowAlert($(this).attr('formmessage'), 3000, 'alert_box', null);\r\n $(this).parent(\"div\").addClass(\"is-invalid\");\r\n val = false;\r\n return false;\r\n }\r\n else {\r\n $(this).parent(\"div\").removeClass(\"is-invalid\");\r\n val = true;\r\n return true;\r\n }\r\n\r\n });\r\n return val;\r\n }\r\n\r\n $(document).on('click', '[data-request-submit]', null, function () {\r\n var $sender = $(this);\r\n try {\r\n $sender.trigger('engage');\r\n var $senderForm = $sender.parents('[data-request]');\r\n var _phone = $senderForm.find('[node=\"MobilePhone\"]').val();\r\n _phone = IsNotNull(_phone) ? _phone.replace(/[^0-9]/gi, '') : _phone;\r\n var _email = $senderForm.find('[node=\"Email\"]').val();\r\n var _consent = $senderForm.find('[node=\"Consent\"]');\r\n\r\n if (IsNotNull(_email) && !isValideEmail(_email)) { ShowAlert('Please ensure you enter a valid email address.', 3000, 'alert_box', null); $sender.trigger('disengage'); return; }\r\n if (IsNotNull($senderForm.find('[node=\"MobilePhone\"]').val()) && _phone.length < 10 && !$senderForm.find('[node=\"MobilePhone\"]').hasClass('disablephoneformat')) { ShowAlert(!isNullOrEmpty($senderForm.find('[node=\"MobilePhone\"]').attr('formmessage')) ? $senderForm.find('[node=\"MobilePhone\"]').attr('formmessage') : 'Please enter a 10-digit phone number. For example: (123) 123-1234', 3000, 'alert_box', null); $sender.trigger('disengage'); return; }\r\n else if (IsNotNull($senderForm.find('[node=\"MobilePhone\"]').val()) && _phone.length < 4 && $senderForm.find('[node=\"MobilePhone\"]').hasClass('disablephoneformat')) { ShowAlert(!isNullOrEmpty($senderForm.find('[node=\"MobilePhone\"]').attr('formmessage')) ? $senderForm.find('[node=\"MobilePhone\"]').attr('formmessage') : 'Please enter a 10-digit phone number. For example: (123) 123-1234', 3000, 'alert_box', null); $sender.trigger('disengage'); return; }\r\n if (_consent.length > 0 && !_consent.prop('checked')) {\r\n ShowAlert('Please check the box to give your consent to be contacted.', 3000, 'alert_box', null);\r\n $sender.trigger('disengage');\r\n return;\r\n }\r\n console.log('$senderForm', $senderForm);\r\n var _formXml = GetFormXml($senderForm);\r\n if (_formXml == null) {\r\n $sender.trigger('disengage');\r\n return;\r\n }\r\n var _isValid = null;\r\n try {\r\n _isValid = $senderForm.triggerHandler('validate', _formXml);\r\n } catch (e) { }\r\n if (typeof (_isValid) != 'undefined' && _isValid != null && !_isValid) {\r\n $sender.trigger('disengage');\r\n return;\r\n }\r\n setRecaptchaToken($(this))\r\n var _type = $senderForm.data('request');\r\n SubmitRequest($sender, _type, _formXml, function (sender, response) {\r\n $sender.trigger('disengage');\r\n $sender.trigger('end');\r\n }, function (sender, response) {\r\n $sender.trigger('disengage');\r\n $sender.trigger('error', { response: response });\r\n }, function (sender, response) {\r\n $sender.trigger('disengage');\r\n });\r\n } catch (e) { console.log('Error : ' + e); $sender.trigger('disengage'); }\r\n });\r\n}\r\nfunction setRecaptchaToken(sender) {\r\n\r\n $.ajax({\r\n url: '/services/RegenerateToken.aspx/token',\r\n type: \"POST\",\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n success: function (result) {\r\n\r\n console.log(\"scucess\", result.d);\r\n if (sender.parents('[data-request]').find('[node = \"CaptchaToken\"]').length) {\r\n sender.parents('[data-request]').find('[node = \"CaptchaToken\"]').attr(\"value\", result.d);\r\n }\r\n },\r\n error: function (err) {\r\n }\r\n });\r\n\r\n}\r\nfunction EnableAVMControl() {\r\n $(\"#btnwhatmyhomeworth\").click(function () {\r\n var $sender = $(this);\r\n console.log('here');\r\n if ($(\"#txt_home-evaluation\").val() != '') {\r\n if ($sender.is('[data-enable-alert]')) ShowAlert($sender.data('enable-alert'), 3000, 'alert_box', null);\r\n var textfieldmask = /((\\s|\\,)?(\\s|\\,|\\-)?)/gi;\r\n if (textfieldmask.test($(\"#txt_home-evaluation\").val())) {\r\n var _url = \"/avm?address=\" + ($(\"#txt_home-evaluation\").val());\r\n\r\n window.location.href = _url;\r\n $('#txt_home-evaluation').val('');\r\n } else { setTimeout(function () { }, 200); alert(\"Please enter a valid Address with both City and State (ex: Mobile, STATE (CITY))\"); }\r\n\r\n } else {\r\n setTimeout(function () { }, 200);\r\n alert(\"Please enter a valid Address\");\r\n }\r\n });\r\n\r\n $('#txt_home-evaluation').keypress(function (e) {\r\n var key = e.which;\r\n\r\n if (key == 13) {\r\n $(\"#btnwhatmyhomeworth\").on('click');\r\n return false;\r\n }\r\n });\r\n}\r\n\r\n$(document).on('click', '[data-adfenix-track-phone]', function () {\r\n\r\n if (window.adfenix) {\r\n console.log(\"contactrequestclick\");\r\n window.adfenix.track('contactrequestclick');\r\n }\r\n});\r\n\r\nfunction getAvmFunction() {\r\n $('[data-search-avm-button]').click(function () {\r\n var address = $(\"#txt_home-evaluation\").val();\r\n if ($(\"#txt_home-evaluation\").val() != '') {\r\n\r\n var _originUrl = document.referrer;\r\n if (_originUrl.match(\"/buyselljourney\")) {\r\n if (window.adfenix) {\r\n window.adfenix.track('contactrequestclick');\r\n }\r\n }\r\n var textfieldmask = /((\\s|\\,)?(\\s|\\,|\\-)?)/gi;\r\n if (textfieldmask.test(address)) {\r\n var _url = \"/avm?address=\" + address;\r\n\r\n window.open(_url);\r\n $('#txt_home-evaluation').val('');\r\n } else { alert(\"Please enter a valid Address with both City and State (ex: Mobile, CA (California))\"); }\r\n\r\n } else {\r\n alert(\"Please enter a valid Address\");\r\n }\r\n });\r\n\r\n\r\n\r\n $('#txt_home-evaluation').keypress(function (e) {\r\n var key = e.which;\r\n\r\n if (key == 13) {\r\n $(\"[data-search-avm-button]\").on('click');\r\n return false;\r\n }\r\n });\r\n}\r\n\r\nfunction openContacusForm() {\r\n if (window.location.hash == \"#contact\") {\r\n $(\"#IBPmodalcontainer\").AgoraDialogModal({ ServiceUrl: '/PopUps/LeadForm/ContactUs.aspx?IsCustomerCare=true', EnableAjaxHtmlLoad: true });\r\n }\r\n}\r\nfunction ContactCustomerCare() {\r\n $(\"#IBPmodalcontainer\").AgoraDialogModal({ ServiceUrl: '/PopUps/LeadForm/ContactUs.aspx?IsCustomerCare=true', EnableAjaxHtmlLoad: true });\r\n}\r\n\r\nfunction EnableDynamicQueryList() {\r\n $(document).on('init', '[data-query-list]', {}, function () {\r\n new DynamicQueryList(this);\r\n\r\n });\r\n\r\n $('[data-query-list-template]').each(function () {\r\n var $item = $(this);\r\n var templateType = $item.data('query-list-template');\r\n $item.html('');\r\n $item.load('/services/agoraTemplateService.aspx?type=' + templateType, function () {\r\n if (!(typeof (componentHandler) == 'undefined')) {\r\n componentHandler.upgradeDom();\r\n }\r\n $item.trigger('init');\r\n });\r\n });\r\n\r\n $('[data-query-list]:not([data-query-list-trigger]:not([data-init]))').trigger('init');\r\n $('[data-query-list][data-query-list-trigger]:not([data-init])').each(function () {\r\n var $this = $(this);\r\n var $trigger = $('#' + $this.data('query-list-trigger'));\r\n if ($trigger.length > 0) {\r\n $trigger.on('change', function () { if ($(this).is(':checked')) { $this.trigger('init'); $trigger.off('change'); } })\r\n $trigger.find(':checked').trigger('change');\r\n }\r\n });\r\n\r\n function DynamicQueryList(sender) {\r\n var _self = this;\r\n var tab_load;\r\n _self._serviceUrl = '/services/agoraGetFeaturedProperties.ashx';\r\n _self._disableOwlCarousel = false;\r\n _self._enableDemandScroll = false;\r\n _self._enableShowmoreButton = false;\r\n _self.$sender = $(sender);\r\n _self.$id = $(sender).attr(\"id\");\r\n _self.$Itemcontainer = $('[data-item-container=' + _self.$sender.data('query-list-trigger') + ']');\r\n _self.$buttonScroll = $('a[data-page-scroll=' + _self.$id + ']');\r\n _self.$template = _self.$sender.find('[data-item-template]');\r\n _self.$context = _self.$sender.find('[data-items-context]');\r\n _self.$noItemContext = _self.$sender.find('[data-no-items-context]');\r\n _self.$noItemContextLabel = $(\"label[for='\" + _self.$sender.data('query-list-trigger') + \"']\");\r\n _self.$contextItemExists = _self.$sender.find('[data-if-items-context]');\r\n _self.count = $('input[data-tab-loaded]').length;\r\n _self.$next = _self.$sender.find('[data-items-load-next]');\r\n _self.$loader = _self.$sender.find('[data-loader]');\r\n _self.$showmorebutton = _self.$sender.find('[data-showmore-button=\"' + _self.$sender.data('query-list-trigger') + '\"]');\r\n\r\n _self._itemSliderSetting = _self.$sender.data('owl-slider-setting');\r\n\r\n if (typeof _self._itemSliderSetting !== 'undefined') {\r\n \r\n if (_self._itemSliderSetting.slice && _self._itemSliderSetting.slice(-1) === '1') {\r\n _self._itemSliderSetting = '1,1,1';\r\n }\r\n }\r\n\r\n _self._itemsCount = _self.$sender.data('page-size');\r\n _self._extraParams = _self.$sender.data('extra-params');\r\n\r\n _self._stage = { 0: { items: 1, nav: true }, 640: { items: 2, nav: true }, 1024: { items: 3, nav: true, loop: false }, 1440: { items: 4, nav: true, loop: false } };\r\n if (typeof (_self._itemSliderSetting) != 'undefined') {\r\n \r\n var _items = _self._itemSliderSetting.split(',');\r\n var _i = 0;\r\n for (var _key in _self._stage)\r\n _self._stage[_key].items = _items[_i++];\r\n }\r\n _self._rt = _self.$sender.data('rt');\r\n _self._ownerRT = _self.$sender.data('owner-rt');\r\n _self._urlQuery = _self.$sender.data('urlquery');\r\n\r\n if (typeof (_self._itemsCount) == 'undefined') _self._itemsCount = 12;\r\n if (typeof (_self._urlQuery) == 'undefined') _self._urlQuery = '';\r\n if (typeof (_self._extraParams) == 'undefined') _self._extraParams = '';\r\n\r\n _self._ownerKey = _self.$sender.data('owner-key');\r\n if (IsNotNull(_self.$sender.data('service-url'))) _self._serviceUrl = _self.$sender.data('service-url');\r\n if (_self.$sender.data('enable-demandscroll') == '1') { _self._disableOwlCarousel = true; _self._enableDemandScroll = true; }\r\n if (_self.$sender.data('enable-showmore-button') == '1') { _self._disableOwlCarousel = true; _self._enableShowmoreButton = true; }\r\n\r\n if (_self.$sender.data('view-mode') == \"gallery\") {\r\n _self._disableOwlCarousel = true;\r\n }\r\n\r\n var _itemShow = _self.$sender.data('slider-view');\r\n\r\n _self._isInit = true;\r\n if (_self.$loader.length > 0) _self.$loader.removeClass('mdl-cell--hide')\r\n _self.$context.on('next', function () {\r\n if (!_self.$context.data('is-busy')) {\r\n if (_self.$context.data('page') < _self.$context.data('page-count')) {\r\n _self.$context.data('is-busy', true);\r\n _self.$context.data('page', _self.$context.data('page') + 1);\r\n _self.$next.trigger('click');\r\n }\r\n }\r\n });\r\n\r\n function isVisible() {\r\n var _contentPosition = 0; var _contentHeight = 0;\r\n var _screenHeight = $(window).height();\r\n var _viewMin = $(window).scrollTop();\r\n var _viewMax = _viewMin + _screenHeight;\r\n _contentPosition = _self.$context.offset();\r\n _contentHeight = _self.$context.outerHeight() + 1;\r\n var _contentMin = _contentPosition.top;\r\n var _contentMax = _contentMin + _contentHeight;\r\n return (_viewMax >= _contentMin && _viewMin >= _contentMax);\r\n }\r\n function dynamicScroll() {\r\n console.log(\"_self\", _self);\r\n console.log(\"_self.$context\", _self.$context);\r\n\r\n if (!_self.$context.data('is-busy')) {\r\n if (isVisible) {\r\n if (_self.$context.data('page') < _self.$context.data('page-count')) {\r\n _self.$context.data('is-busy', true);\r\n _self.$context.data('page', _self.$context.data('page') + 1);\r\n _self.$next.trigger('click');\r\n }\r\n }\r\n }\r\n }\r\n function getFirstElementChecked() {\r\n if (_self.count > 0 && tab_load == undefined) {\r\n getFirstElementChecked1();\r\n tab_load = 1;\r\n }\r\n else {\r\n if (_self.$noItemContextLabel.length > 0) {\r\n $('input[type=\"radio\"].query-list:not(.query-list-loaded)').removeAttr('checked');\r\n var _checkedCount = $('input[type=\"radio\"]:not(.query-list):checked').filter(':first').length;\r\n if (_checkedCount == 0) $('input[id=\"' + $('label.query-list-loaded').filter(':first').attr('for') + '\"]')[0].checked = true;\r\n }\r\n }\r\n }\r\n //Changed For tab issue\r\n function getFirstElementChecked1() {\r\n $('input[id=\"' + $('label.mdl-cell--hide').attr('for') + '\"]').attr('data-tab-value', '0');\r\n if (_self.$noItemContextLabel.length > 0) {\r\n setTimeout(function () {\r\n $('input[id=\"' + $('label.query-list-loaded').filter(':first').attr('for') + '\"]').attr('data-tab-loaded', 'true').attr('data-tab-value', '1');\r\n var c = $('input[data-tab-value]').length;\r\n if (_self.count != c) return;\r\n setTimeout(function () {\r\n $('input[data-tab-value=\"1\"]')[0].checked = true;\r\n }, 500);\r\n }, 300);\r\n }\r\n }\r\n _self.$context.AjaxScroller({\r\n NextBtn: _self.$next.attr('id'),\r\n PreviousBtn: null,\r\n TemplateId: _self.$template.attr('id'),\r\n ServiceUrl: _self._serviceUrl,\r\n Params: 'ownerRT=' + _self._ownerRT + '&ownerPK=' + _self._ownerKey + '&RT=' + _self._rt + '&urlQuery=' + _self._urlQuery + '&Q=' + _self._urlQuery + _self._extraParams,\r\n FullAjax: true,\r\n Transition: 'FadeIn',\r\n EnableCache: false,\r\n PageNumber: 1,\r\n DemandScroll: _self._enableDemandScroll,\r\n DemandScrollContext: _self.$context,\r\n ShowNextPage: _self._enableShowmoreButton,\r\n ItemsPerShow: _self._itemsCount,\r\n success: function (data) {\r\n console.log(data.ResultCount);\r\n },\r\n OnlyShowFirstPage: true,\r\n AfterHtmlResultInvoke: function (options, data, dataHtml) {\r\n _self.$loader.addClass('mdl-cell--hide');\r\n $('input[id=\"' + _self.$sender.data('query-list-trigger') + '\"]').addClass('query-list').attr('data-tab-value', '1');\r\n console.log(\"data.ResultCount\", data.ResultCount);\r\n if (_self.$sender.data('query-list-trigger') == 'radAgentBio3' && data.ResultCount > 0)\r\n $('.featured-hld-mylistings').removeClass('mdl-cell--hide');\r\n var _remains = (data.ResultCount - (options.ItemsPerShow * data.PageNumber));\r\n if (_remains > 0) {\r\n { _self.$showmorebutton.html('<b>' + _remains + '</b> More Properties'); }\r\n }\r\n else { _self.$showmorebutton.addClass('mdl-cell--hide'); }\r\n if (data.ResultCount < 1) {\r\n //if (!$sender.hasAttribute(\"data-is-visible-noitemcontext\")) {\r\n _self.$noItemContext.removeClass('mdl-cell--hide');\r\n _self.$noItemContext.addClass('Context-no-data-avaliable');\r\n // if (_self.$noItemContext.length > 0) { _self.$noItemContext.addClass('mdl-cell--hide'); }\r\n //}\r\n } else {\r\n _self.$contextItemExists.removeClass('mdl-cell--hide');\r\n _self.$sender.removeClass('mdl-cell--hide');\r\n\r\n _self.$noItemContextLabel.addClass('query-list-loaded');\r\n\r\n $('input[id=\"' + _self.$sender.data('query-list-trigger') + '\"]').addClass('query-list-loaded');\r\n\r\n if (_self.$noItemContextLabel.length > 0) { _self.$noItemContextLabel.removeClass('mdl-cell--hide'); }\r\n\r\n if (_self.$Itemcontainer.length > 0) { _self.$Itemcontainer.removeClass('mdl-cell--hide'); }\r\n\r\n if (_self.$buttonScroll.length > 0) { _self.$buttonScroll.removeClass('mdl-cell--hide'); }\r\n\r\n }\r\n\r\n\r\n if (data.PageNumber > 1) {\r\n var t = $('<div>').html(dataHtml);\r\n $(t).find('.item').each(function () {\r\n var s = $('<div>').append($(this));\r\n if (!_self._disableOwlCarousel) _self.$context.trigger('add.owl.carousel', $(s).html());\r\n if (options.DemandScroll) _self.$context.append((s).html());\r\n if (options.ShowNextPage) _self.$context.append((s).html());\r\n });\r\n $(t).find('.property').each(function () {\r\n var s = $('<div>').append($(this));\r\n _self.$context.trigger('add.owl.carousel', $(s).html())\r\n });\r\n _self.$context.trigger('refresh.owl.carousel');\r\n }\r\n setTimeout(function () {\r\n _self.$sender.find('.property:not(.init)').each(function () {\r\n GetPropertyImageGallery($(this));\r\n $(document).trigger('enable-converter');\r\n });\r\n }, 1000);\r\n },\r\n AfterResultInvoke: function (options, data) {\r\n\r\n\r\n if (data.PageNumber >= 1 && options.ShowNextPage) {\r\n _self.$context.data('position', 0);\r\n _self.$context.data('page', data.PageNumber);\r\n _self.$context.data('page-count', data.PageCount);\r\n _self.$context.data('page-size', data.PageSize);\r\n _self.$context.data('is-busy', false);\r\n getFirstElementChecked();\r\n $(_self.$showmorebutton).click(function () {\r\n _self.$showmorebutton.addClass('loading');\r\n dynamicScroll();\r\n _self.$sender.find('.property:not(.init)').each(function () {\r\n GetPropertyImageGallery($(this));\r\n });\r\n });\r\n _self.$showmorebutton.removeClass('loading');\r\n }\r\n else {\r\n _self.$context.data('is-busy', false);\r\n }\r\n\r\n if (data.PageNumber <= 1 && options.DemandScroll) {\r\n setTimeout(function () {\r\n _self.$context.data('position', 0);\r\n _self.$context.data('page', data.PageNumber);\r\n _self.$context.data('page-count', data.PageCount);\r\n _self.$context.data('page-size', data.PageSize);\r\n _self.$context.data('is-busy', false);\r\n $(document).trigger('enable-converter');\r\n\r\n getFirstElementChecked();\r\n\r\n $(window).scroll(function () {\r\n dynamicScroll();\r\n _self.$sender.find('.property:not(.init)').each(function () {\r\n GetPropertyImageGallery($(this));\r\n });\r\n });\r\n }, 10);\r\n }\r\n else {\r\n _self.$context.data('is-busy', false);\r\n }\r\n\r\n if (data.PageNumber <= 1 && !_self._disableOwlCarousel) {\r\n setTimeout(function () {\r\n _self.$context.data('position', 0);\r\n _self.$context.data('page', data.PageNumber);\r\n _self.$context.data('page-count', data.PageCount);\r\n _self.$context.data('page-size', data.PageSize);\r\n _self.$context.data('is-busy', false);\r\n\r\n getFirstElementChecked();\r\n\r\n _self.$context.on('initialized.owl.carousel', function () {\r\n _self.$sender.find('.property:not(.init)').each(function () {\r\n GetPropertyImageGallery($(this));\r\n });\r\n $(document).trigger('enable-converter');\r\n });\r\n _self.$context.on('refreshed.owl.carousel', function () {\r\n _self.$sender.find('.property:not(.init)').each(function () {\r\n GetPropertyImageGallery($(this));\r\n });\r\n $(document).trigger('enable-converter');\r\n });\r\n _self.$context.on('changed.owl.carousel', function (e) {\r\n if (e.property && e.property.name == \"position\" && _self.$context.data('position') < e.property.value) {\r\n _self.$context.data('position', parseInt(e.property.value));\r\n _self.$context.trigger('next');\r\n }\r\n });\r\n\r\n\r\n if (_itemShow == 'undefined' || isNaN(_itemShow)) {\r\n _itemShow = 3;\r\n }\r\n\r\n _self.$context.owlCarousel({\r\n loop: false,\r\n margin: 10,\r\n lazyLoad: true,\r\n items: _itemShow,\r\n nav: true,\r\n navText: [\"<i class='aga aga-keyboard-arrow-left'></i>\", \"<i class='aga aga-keyboard-arrow-right'></i>\"],\r\n dots: false,\r\n responsiveClass: true,\r\n responsive: _self._stage\r\n });\r\n //_bindScrollerTrigger($context, $next, data.PageNumber, data.PageCount);\r\n }, 60);\r\n } else {\r\n _self.$context.data('is-busy', false);\r\n //$sender.find('.property:not(.init)').each(function () {\r\n // GetPropertyImageGallery($(this));\r\n //});\r\n }\r\n }\r\n\r\n });\r\n }\r\n}\r\n\r\nfunction EnableSlider() {\r\n var $sliders = $('[data-owl-slider]');\r\n $sliders.each(function () {\r\n new _createSlider(this);\r\n });\r\n\r\n function _createSlider(sender) {\r\n var _gallerySlider = null;\r\n var dataResponsive = $(\".owl-slider\").attr(\"data-responsive\");\r\n if (dataResponsive != undefined) {\r\n var array = dataResponsive.split(',').map(Number);\r\n var len = array.length;\r\n if (len == 4) {\r\n _gallerySlider = { margin: 1, responsive: { 0: { items: array[0], nav: true }, 640: { items: array[1], nav: true }, 1024: { items: array[2], nav: true }, 1280: { items: array[3], nav: true, loop: false } } };\r\n }\r\n }\r\n var _property = { margin: 8, responsive: { 0: { items: 1, nav: true }, 640: { items: 2, nav: true }, 1024: { items: 3, nav: true, loop: false } } };\r\n var _gallery = { margin: 1, responsive: { 0: { items: 1, nav: true }, 640: { items: 2, nav: true }, 1024: { items: 3, nav: true, loop: false } } };\r\n var _custom = { margin: 8, responsive: { 0: { items: 1, nav: true }, 640: { items: 2, nav: true }, 840: { items: 3, nav: true, loop: false } } };\r\n var _customdots = { margin: 8, responsive: { 0: { items: 1, dots: true, nav: true }, 640: { items: 2, dots: true, nav: true }, 1024: { items: 3, nav: true, dots: true, loop: false } } };\r\n var _fullwidth = { margin: 8, responsive: { 0: { items: 1, dots: true, nav: true }, 640: { items: 2, dots: true, nav: true }, 1024: { items: 3, dots: true, nav: true }, 1200: { items: 4, nav: true, dots: true, loop: false } } };\r\n var _settings = { property: _property, gallery: _gallery, custom: _custom, customdots: _customdots, fullwidth: _fullwidth };\r\n var _self = sender;\r\n _self.$this = $(sender);\r\n _self.key = _self.$this.data('owl-slider');\r\n _self.margin = _settings[_self.key].margin;\r\n if (_gallerySlider != null) {\r\n _self.responsive = _gallerySlider.responsive;\r\n } else {\r\n _self.responsive = _settings[_self.key].responsive;\r\n }\r\n _self.autoplay = _self.$this.data('owl-slider-autoplay');\r\n _self.autoplayTimeout = _self.$this.data('owl-slider-timeout');\r\n _self.loop = _settings[_self.key].loop;\r\n if ((_self.key == 'custom') || (_self.key == 'customdots') || (_self.key == 'fullwidth')) {\r\n var _settingsLoop = _self.$this.data('owl-slider-loop');\r\n if (typeof (_settingsLoop) != 'undefined') {\r\n _self.loop = _settingsLoop;\r\n for (var _key in _self.responsive) _self.responsive[_key].loop = _self.loop;\r\n }\r\n var _settingsMargin = _self.$this.data('owl-slider-margin');\r\n if (typeof (_settingsMargin) != 'undefined') {\r\n\r\n _self.margin = _settingsMargin;\r\n }\r\n var _settingsResponsive = _self.$this.data('owl-slider-responsive');\r\n if (typeof (_settingsResponsive) != 'undefined') {\r\n var _items = _settingsResponsive.split(',');\r\n var _i = 0;\r\n for (var _key in _self.responsive)\r\n _self.responsive[_key].items = _items[_i++];\r\n }\r\n var _settingsAutoplay = _self.$this.data('owl-slider-autoplay');\r\n if (typeof (_settingsAutoplay) != 'undefined') {\r\n _self.autoplay = _settingsAutoplay;\r\n _self.autoplayTimeout = _self.$this.data('owl-slider-timeout');\r\n }\r\n }\r\n\r\n _self.$this.on('initialized.owl.carousel', function () {\r\n //_self.$this.find('.property:not(.init)').each(function () {\r\n // GetPropertyImageGallery($(this));\r\n //});\r\n $(document).trigger('enable-converter');\r\n });\r\n\r\n _self.$this.on('loaded.owl.lazy', function () {\r\n _self.$this.find('.owl-item.active .property:not(.init)').each(function () {\r\n GetPropertyImageGallery($(this));\r\n });\r\n });\r\n var _options = {};\r\n var _optionsGiven = _self.$this.data('owl-slider-options');\r\n if (typeof (_optionsGiven) != 'undefined') {\r\n _optionsGiven = _optionsGiven.replace(/\\'/gi, \"\\\"\");\r\n _options = $.parseJSON(_optionsGiven);\r\n }\r\n _self.$this.owlCarousel($.extend({\r\n margin: _self.margin,\r\n lazyLoad: true,\r\n nav: true,\r\n navText: [\"<i aria-label='left' class='aga aga-keyboard-arrow-left'></i>\", \"<i aria-label='right' class='aga aga-keyboard-arrow-right'></i>\"],\r\n dots: false,\r\n autoplay: _self.autoplay,\r\n autoplayTimeout: _self.autoplayTimeout,\r\n responsiveClass: true,\r\n loop: true,\r\n responsive: _self.responsive\r\n }, _options));\r\n }\r\n}\r\n\r\n\r\nfunction SubmitRequest(sender, type, formXml, success, error, idle) {\r\n if (sender != null) {\r\n }\r\n if (sender.parents('[data-request]').is('[data-brt-track]')) {\r\n var _formJson = '\"form\":' + JSON.stringify(getBRTContact(sender.parents('[data-request][data-brt-track]')));\r\n if (sender.parents('[data-request=\"RequestShowing\"][data-brt-track]').is('[data-requesteddatetime]')) _formJson += ',\"requesteddatetime\":\"' + sender.parents('[data-request][data-brt-track]').attr('data-requesteddatetime') + '\"';\r\n var _formEvent = getBRTEvents(sender.parents('[data-request][data-brt-track]'));\r\n }\r\n $.ajax({\r\n type: 'POST',\r\n url: ((isMultiLingual() ? '/' + getLocale() : '')) + '/services/agoraRequest.ashx?action=' + ((type != undefined && type != null && type != '') ? type : 'none'),\r\n data: ({ lead: formXml }),\r\n dataType: 'json',\r\n success: function (response) {\r\n //if (reCaptchaAgora)\r\n // reCaptchaAgora.reset();\r\n switch (response.Number) {\r\n case 100: // Success\r\n if (success != undefined && success != null) {\r\n success(sender, response);\r\n return;\r\n }\r\n break;\r\n case 1: // Connection Error\r\n if (error != null) {\r\n error(sender, response);\r\n return;\r\n }\r\n ShowAlert('Unable to submit your request at the moment. Please try again later.', 3000, 'alert_box', null);\r\n break;\r\n case 2: // Execute Error\r\n if (error != null) {\r\n error(sender, { response: response });\r\n return;\r\n }\r\n case 403: // Execute Error\r\n if (error != null) {\r\n error(sender, { response: response });\r\n return;\r\n }\r\n ShowAlert('Unable to submit your request at the moment. Please try again later.', 3000, 'alert_box', null);\r\n break;\r\n case 9: // Custom Error\r\n if (error != null) {\r\n error(sender, response);\r\n return;\r\n }\r\n ShowAlert(response.Message, 3000, 'alert_box', null);\r\n break;\r\n case 10: // Invalid\r\n if (error != null) {\r\n error(sender, response);\r\n return;\r\n }\r\n ShowAlert('Unable to submit your request at the moment. Please try again later.', 3000, 'alert_box', null);\r\n break;\r\n case 201: // Captcha Error\r\n if (error != null) {\r\n error(sender, response);\r\n return;\r\n }\r\n case 202:\r\n if (success != undefined && success != null) {\r\n success(sender, response);\r\n //if (reCaptchaAgora) {\r\n // reCaptchaAgora.active();\r\n //}\r\n return;\r\n }\r\n break;\r\n case 203:\r\n if (idle != undefined && idle != null) {\r\n //idle(sender, response);\r\n //if (reCaptchaAgora) {\r\n // reCaptchaAgora.active();\r\n //}\r\n error(sender, response);\r\n return;\r\n }\r\n break;\r\n case 204:\r\n ShowAlert('SMS Gateway email addresses, which send email as text messages, are not permitted. Please enter a standard email address.', 2000, 'alert_box', null); sender.trigger('disengage');\r\n break;\r\n }\r\n },\r\n error: function (response) {\r\n if (error != null) {\r\n error(sender, response);\r\n //if (reCaptchaAgora)\r\n // reCaptchaAgora.reset();\r\n return;\r\n }\r\n\r\n ShowAlert('Unknown Error. Please try later!', 3000, 'alert_box', null);\r\n },\r\n statusCode: {\r\n 404: function () {\r\n ShowAlert('Service (agoraRequest) not found!', 3000, 'alert_box', null);\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction GetSearchPrefixForRecordType(recordType) {\r\n switch (recordType) {\r\n case 'PROPERTY': return '/property-search-map';\r\n case 'PROPERTYRENT': return '/property-search-map-on-rent';\r\n case 'PROPERTYSOLD': return '/property-search-map/sold';\r\n case 'AGENT': return '/real-estate-agents';\r\n case 'OFFICE': return '/real-estate-offices';\r\n case 'BLOG': return '/blog/search';\r\n case 'AGENTTEAM': return '/real-estate-agents';\r\n }\r\n return '/';\r\n}\r\n\r\nfunction GetSearchPrefixResulForRecordType(recordType) {\r\n switch (recordType) {\r\n case 'PROPERTY': return '/homes/sale';\r\n case 'PROPERTYRENT': return '/property-search-map-on-rent';\r\n case 'PROPERTYSOLD': return '/property-search-map/sold';\r\n case 'AGENT': return '/real-estate-agents';\r\n case 'OFFICE': return '/real-estate-offices';\r\n case 'BLOG': return '/blog/search';\r\n case 'AGENTTEAM': return '/real-estate-agents';\r\n }\r\n return '/';\r\n}\r\n\r\nfunction GetDefaultSortForRecordType(recordType) {\r\n switch (recordType) {\r\n case 'PROPERTY': return '/dsort-p';\r\n case 'PROPERTYRENT': return '/dsort-p';\r\n case 'AGENT': return '/sort-n';\r\n case 'AGENTTEAM': return '/sort-n';\r\n case 'OFFICE': return '/sort-n';\r\n }\r\n return '';\r\n}\r\n\r\n\r\n//Perform Action Extented for MDL POP Up\r\n$(document).on('click', '[data-perform-action]', function (event) {\r\n var triggerElement = $(this);\r\n if (triggerElement.prop('disabled')) {\r\n return;\r\n }\r\n triggerElement.prop('disabled', true);\r\n setTimeout(function () {\r\n triggerElement.prop('disabled', false);\r\n }, 2000);\r\n _performAction($(this));\r\n});\r\n$(document).on('tap', '[data-perform-action]', function (event) {\r\n _performAction($(this));\r\n});\r\nfunction _performAction(item) {\r\n var $this = item;\r\n var _actionType = $this.data('perform-action');\r\n var _actionUrl = $this.data('perform-action-url');\r\n var _urlQuery = $('#hdnurlquery').val();\r\n\r\n switch (_actionType) {\r\n case \"SaveSearch\":\r\n var type = $('[data-save-search-type]').data('save-search-type');\r\n var urlQuery = $('[data-save-search-url]').data('save-search-url');\r\n _actionUrl = _actionUrl + '&type=' + type + '&q=' + urlQuery;\r\n break;\r\n case \"SaveListing\":\r\n break;\r\n }\r\n PerformAction(_actionType, _actionUrl);\r\n}\r\n\r\n\r\nfunction IsNotNull(Value) {\r\n return Value != null && Value != undefined && Value.length > 0 && Value != \"0\" && Value != 0;\r\n}\r\n\r\nfunction IsNotNullOrIsZero(Value) {\r\n return Value != null && Value != undefined && Value.length > 0;\r\n}\r\n\r\nfunction isValideEmail(email) {\r\n var regex = /^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$/;\r\n return regex.test(email);\r\n}\r\n\r\n$(document).on('click', '[data-website-update-profile]', null, function () {\r\n var $sender = $(this);\r\n var $senderForm = $sender.parents('[data-request]');\r\n $sender.addClass('loading');\r\n var _phone = $senderForm.find('[node=\"MobilePhone\"]').val();\r\n _phone = IsNotNull(_phone) ? _phone.replace(/[^0-9]/gi, '') : _phone;\r\n if (IsNotNull(_phone) && _phone.length < 10) { ShowAlert('Please enter a 10-digit phone number. For example: (123) 123-1234', 3000, 'alert_box', null); $sender.removeClass('loading'); return; }\r\n if ($senderForm.find('#Password').val() != $senderForm.find('#Confirm_Password').val()) { alert('Password mismatch !'); $sender.removeClass('loading'); return; }\r\n var _formXML = GetFormXml($senderForm);\r\n $.ajax({\r\n type: 'POST',\r\n url: '/services/agoraDashboardAction.ashx',\r\n data: ({ ActionType: 'UpdateUserDetail', contact: _formXML }),\r\n dataType: 'json',\r\n success: function (result) {\r\n if (result.Status == 1) {\r\n $sender.parents('[data-request][data-brt-track]').trigger('success');\r\n if (result.Contact)\r\n document.body.dispatchEvent(new CustomEvent('ag.user.in', { detail: result.Contact }));\r\n ShowAlert('Your account profile has been updated successfully.', 3000, 'alert_box', null);\r\n window.location.reload();\r\n }\r\n else {\r\n ShowAlert(\"Failed, please try again later.\", 3000, 'alert_box', null);\r\n }\r\n },\r\n statusCode: {\r\n 404: function () {\r\n ShowAlert('Sorry for the inconvenience this facility is currently unavailable please try later.', 3000, 'alert_box', null);\r\n }\r\n }\r\n });\r\n setTimeout(function () { $sender.removeClass('loading'); }, 200);\r\n});\r\n\r\nfunction GetPropertyImageGallery($this) {\r\n var $itemContext = $this;\r\n var $slideContext = $itemContext.find('.slides');\r\n $slideContext.attr('data-css-slider', '0');\r\n var mlsNumber = $itemContext.find('[data-mk]').data('mk');\r\n var mlsBoard = $itemContext.find('[data-mlsboard]').data('mlsboard');\r\n var url = $itemContext.find('[data-detail-url]').data('detail-url');\r\n var projectCode = $('[data-pcode]').data('pcode');\r\n var imageTemplate = $itemContext.find('[data-mls-photo]').data('mls-photo');\r\n var nativeTab = $itemContext.find('[data-native-tab]').data('native-tab');\r\n if (!IsNotNull(imageTemplate)) imageTemplate = '/images/company/' + projectCode + '/NoPhotoImage/image-not-found.jpg';\r\n var count = parseInt($slideContext.data('value'), 10);\r\n var $itemWithIDContext = $itemContext.closest('[id]');\r\n var uID = $itemContext.length == 0 ? \"un\" : $itemWithIDContext.attr('id').replace(/\\$/gi, '');\r\n buildFirstTemplate(imageTemplate, count, uID + new Date().getMilliseconds(), mlsBoard, mlsNumber, $slideContext, url, nativeTab);\r\n $itemContext.addClass('init');\r\n}\r\n\r\nfunction buildFirstTemplate(template, count, uID, mlsBoard, mlsNumber, $slideContext, url, nativeTab) {\r\n var i = 0, prefix = (uID + mlsBoard + mlsNumber + '_');\r\n $('<input type=\"radio\" aria-label=\"' + (prefix + 'slider') + '\" name=\"' + (prefix + 'slider') + '\" id=\"' + (prefix + i) + '\" checked />').appendTo($slideContext);\r\n var $navigations = $('<div class=\"nav\"></div>');\r\n //var $next = $('<label data-css-slider-nav=\"propphoto\" for=\"' + (prefix + (i + 1)) + '\" class=\"next\"></label>');\r\n //var $prev = $('<label data-css-slider-nav=\"propphoto\" for=\"' + (prefix + (parseInt(count, 10) - 1)) + '\" class=\"prev\"></label>');\r\n var $next = $('<label aria-label=\"next\" aria-controls=\"myCarousel-items\" data-css-slider-nav=\"propphoto\" for=\"' + (prefix + (i + 1)) + '\" class=\"next\"><span aria-label=\"next\" class=\"visuallyhidden\">next</span></label>');\r\n var $prev = $('<label aria-label=\"prev\" aria-controls=\"myCarousel-items\" data-css-slider-nav=\"propphoto\" for=\"' + (prefix + (parseInt(count, 10) - 1)) + '\" class=\"prev\"><span aria-label=\"prev\" class=\"visuallyhidden\">prev</span></label>');\r\n $prev.on('click', _loadMore);\r\n $next.on('click', _loadMore);\r\n $prev.appendTo($navigations);\r\n $next.appendTo($navigations);\r\n if ($('[data-pcode]').data('pcode') == 'PSB') { var target = ''; } else { var target = 'target = \"_blank\"'; }\r\n if (nativeTab != 'undefined' && nativeTab != '' && nativeTab == 1)\r\n target = '';\r\n var $node = $('<li class=\"slide-container\" aria-roledescription=\"carousel\" role=\"contentinfo\"><div class=\"slide\"><div class=\"Prop_img\" role=\"img\" aria-label=\"bannerImage\" style=\"background-image:url(\\'' + template + '\\');\"><a aria-label=\"' + (prefix + 'slider') + '\"' + target + 'href=\"' + url + '\"></a></div></div></li>');\r\n $node.append($navigations);\r\n $node.appendTo($slideContext);\r\n function _loadMore() {\r\n var $sender = $(this);\r\n $prev.off('click');\r\n $next.off('click');\r\n $.ajax({ url: '/services/agoraPropertyPhotos.aspx', data: { mlsboard: mlsBoard, mlsno: mlsNumber, container: prefix }, success: function (response) { $slideContext.append(response); $sender.trigger('click'); } });\r\n }\r\n}\r\n\r\nfunction getPhoto(count, i, template) {\r\n if (IsNotNull(template)) {\r\n return template.replace(String(template.match(/\\_[0-9]+\\./g)), \"_\" + i + \".\") + \"?mw=800&amp;mh=480\";\r\n } else {\r\n return \"/images/NoPhotoImage/image-not-found.jpg\";\r\n }\r\n}\r\n\r\n$(document).on(\"click\", '[data-css-slider-nav]', null, function () {\r\n var $self = $(this);\r\n var val = $self.attr('for');\r\n var $control = $self.closest('[data-css-slider]').find('[data-id=\"' + val + '\"]');\r\n $control.attr(\"style\", $control.data('src'));\r\n});\r\n\r\n\r\nfunction EnableDemandImport() {\r\n _init();\r\n function _init() {\r\n $(\"img[data-demand-key]\").each(function () {\r\n GetProperties($(this), $(this).data('demand-url'), $(this).data('demand-key'), $(this).data('layout'));\r\n });\r\n }\r\n $(document).on('click', '[data-ck-href]', null, function () {\r\n GetProperties($(this).parents('[data-ck-propertylist]:first'), $(this).data('ck-href'), $(this).parents('[data-ck-propertylist]:first').data('ck-demand-key'), $(this).parents('[data-ck-propertylist]:first').data('ck-demand-layout'));\r\n });\r\n\r\n\r\n $(document).on('change', '[data-ck-propertylist] [data-sort-object=\"CMNCMN\"]', {}, function () {\r\n GetProperties($(this).parents('[data-ck-propertylist]:first'), $(this).parents('[data-ck-property-url]:first').data('ck-property-url'), $(this).parents('[data-ck-propertylist]:first').data('ck-demand-key'), $(this).parents('[data-ck-propertylist]:first').data('ck-demand-layout'));\r\n });\r\n\r\n function GetProperties($this, url, demandKey, layout) {\r\n var isEditMode = $this.closest('div[contenteditable]').attr('contenteditable');\r\n if (!isEditMode && typeof (url) != 'undefined' || typeof (demandKey) != 'undefined') {\r\n //ShowLoading();\r\n layout = (typeof (layout) != 'undefined' ? layout : \"gallery\");\r\n switch (layout.toLowerCase()) {\r\n case \"gallery\":\r\n var $sort = $this.find('[data-sort-object=\"CMNCMN\"]');\r\n if (($sort != 'undefined' && $sort != null && $sort.length > 0) || !url.match(/(^|\\/)(d)?sort\\-[a-z]+/g))\r\n url = (_getCMNCMNSortBy($this) + '/' + (url.replace('http://', '').replace(/(^|\\/)(d)?sort\\-[a-z]+/g, ''))).replace('//', '/');\r\n $.ajax({\r\n type: 'POST',\r\n url: '/services/agoraGetGalleryView.aspx',\r\n data: { UrlQuery: url, TypeOfSearch: 'SALE', IsContentPage: \"true\", DemandKey: demandKey },\r\n dataType: 'html',\r\n success: function (response) {\r\n var isEditMode = $this.closest('div[contenteditable]').attr('contenteditable');\r\n if (!isEditMode) {\r\n var $html = '<section class=\"result-page\" data-ck-propertylist=\"\" data-ck-demand-key=\"' + demandKey + '\" data-ck-property-url=\"' + url + '\" data-ck-demand-layout=\"' + layout + '\">' + response + '</section>';\r\n $this.after($html);\r\n $this.remove();\r\n if (!(typeof (componentHandler) == 'undefined')) {\r\n componentHandler.upgradeDom();\r\n }\r\n //$('#propertyGrid').find('.property:not(.init)').each(function () {\r\n // GetPropertyImageGallery($(this));\r\n //});\r\n $('[data-ck-demand-key=\"' + demandKey + '\"] #propertyGrid').each(function () {\r\n $(this).find('.property:not(.init)').each(function () {\r\n GetPropertyImageGallery($(this));\r\n });\r\n });\r\n //ShowLoading();\r\n }\r\n },\r\n error: function () {\r\n ShowLoading();\r\n }\r\n });\r\n break;\r\n case \"carousel\":\r\n $.ajax({\r\n type: 'POST',\r\n url: '/services/agoraGetCarouselItem.aspx',\r\n data: { UrlQuery: url, TypeOfSearch: 'SALE', IsContentPage: \"true\", DemandKey: demandKey },\r\n dataType: 'html',\r\n success: function (response) {\r\n var isEditMode = $this.closest('div[contenteditable]').attr('contenteditable');\r\n if (!isEditMode) {\r\n var $html = '<section class=\"result-page\" data-ck-propertylist=\"\" data-ck-demand-key=\"' + demandKey + '\" data-ck-property-url=\"' + url + '\" data-ck-demand-layout=\"' + layout + '\">' + response + '</section>';\r\n $this.after($html);\r\n $('[data-query-list]:not(.init)[data-service-url][data-rt^=\"CMN\"]').each(function () {\r\n $(this).trigger('init');\r\n $(this).addClass('init');\r\n });\r\n $this.remove();\r\n if (!(typeof (componentHandler) == 'undefined')) {\r\n componentHandler.upgradeDom();\r\n }\r\n //ShowLoading();\r\n }\r\n },\r\n error: function () {\r\n ShowLoading();\r\n }\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n function _getCMNCMNSortBy($parent) {\r\n var $sort = $parent.find('[data-sort-object=\"CMNCMN\"]');\r\n if ($sort != 'undefined' && $sort != null && $sort.length > 0 && IsNotNull($sort.val())) {\r\n return $sort.val();\r\n }\r\n return GetDefaultSortForRecordType('PROPERTY');\r\n }\r\n}\r\n\r\nfunction EnableHJNImport() {\r\n _hjInit();\r\n var _prevScrollTop = jQuery(window).scrollTop();\r\n function _hjInit() {\r\n $(\"img[data-demograhics]:not(img[data-init-completed])\").each(function () {\r\n var $self = $(this);\r\n var isEditMode = $self.closest('div[contenteditable]').attr('contenteditable');\r\n if (!isEditMode) {\r\n if (isOnScreen($self)) {\r\n $self.attr('data-init-completed', \"1\");\r\n GetHJN($self, $self.data('hjn-id'));\r\n }\r\n else {\r\n $(window).scroll(function () {\r\n if ((jQuery(window).scrollTop() > _prevScrollTop && jQuery(window).scrollTop() - _prevScrollTop < 10) || (_prevScrollTop > jQuery(window).scrollTop() && _prevScrollTop - jQuery(window).scrollTop() < 10)) return;\r\n _prevScrollTop = jQuery(window).scrollTop();\r\n if (isOnScreen($self) && !$self.attr('data-init-completed')) {\r\n GetHJN($self, $self.data('hjn-id'));\r\n $self.attr('data-init-completed', \"1\");\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction GetHJN($this, hjnId) {\r\n var date = new Date();\r\n var _containerIdSufix = date.getFullYear() + (\"0\" + (date.getMonth() + 1)).slice(-2) + (\"0\" + date.getDate()).slice(-2) + (\"0\" + date.getHours() + 1).slice(-2) + (\"0\" + date.getMinutes()).slice(-2) + (\"0\" + date.getSeconds()).slice(-2) + (\"0\" + date.getMilliseconds()).slice(-2);\r\n var isEditMode = $this.closest('div[contenteditable]').attr('contenteditable');\r\n if (!isEditMode && typeof (hjnId) != 'undefined') {\r\n var html = '<iframe class=\"iframe demographics\" id=\"hj__' + _containerIdSufix + '\" src=\"/services/homeJunctionPlugin.aspx?q=' + hjnId + '\" width=\"100%\" style=\"height: 1500px;\" ></iframe>';\r\n $this.after(html);\r\n $this.remove();\r\n if (!(typeof (componentHandler) == 'undefined')) {\r\n componentHandler.upgradeDom();\r\n }\r\n }\r\n}\r\nfunction getDocHeight(doc) {\r\n doc = doc || document;\r\n var body = doc.body, html = doc.documentElement;\r\n var height = Math.max(body.scrollHeight, body.offsetHeight,\r\n html.clientHeight, html.scrollHeight, html.offsetHeight);\r\n return height;\r\n}\r\n\r\nfunction resetIframeHeight(ifrm) {\r\n var doc = ifrm.contentDocument ? ifrm.contentDocument :\r\n ifrm.contentWindow.document;\r\n //console.log(getDocHeight(doc) + \"px\");\r\n $(ifrm).height(getDocHeight(doc) + \"px\");\r\n}\r\nfunction isOnScreen(elem) {\r\n if (elem.length == 0) {\r\n return;\r\n }\r\n var $window = jQuery(window);\r\n var viewport_top = $window.scrollTop();\r\n var viewport_height = $window.height();\r\n var viewport_bottom = viewport_top + viewport_height;\r\n var $elem = jQuery(elem);\r\n var top = $elem.offset().top;\r\n var height = $elem.height();\r\n var bottom = top + height;\r\n\r\n return (top >= viewport_top && top < viewport_bottom) ||\r\n (bottom > viewport_top && bottom <= viewport_bottom) ||\r\n (height > viewport_height && top <= viewport_top && bottom >= viewport_bottom)\r\n}\r\nfunction EnableYelpImport() {\r\n _yelpInit();\r\n var _prevScrollTop = jQuery(window).scrollTop();\r\n function _yelpInit() {\r\n $('img[data-yelp-control]:not(img[data-init-completed]').each(function () {\r\n var $self = $(this);\r\n var isEditMode = $self.closest('div[contenteditable]').attr('contenteditable');\r\n if (!isEditMode) {\r\n if (isOnScreen($self)) {\r\n $self.attr('data-init-completed', \"1\");\r\n processYelpControlSearch($self);\r\n }\r\n else {\r\n $(window).scroll(function () {\r\n if ((jQuery(window).scrollTop() > _prevScrollTop && jQuery(window).scrollTop() - _prevScrollTop < 10) || (_prevScrollTop > jQuery(window).scrollTop() && _prevScrollTop - jQuery(window).scrollTop() < 10)) return;\r\n _prevScrollTop = jQuery(window).scrollTop();\r\n if (isOnScreen($self) && !$self.attr('data-init-completed')) {\r\n $self.attr('data-init-completed', \"1\");\r\n processYelpControlSearch($self);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n}\r\nfunction processYelpControlSearch($sender) {\r\n var location = $sender.data('location');\r\n var latitude = $sender.data('latitude');\r\n var longitude = $sender.data('longitude');\r\n var date = new Date();\r\n var _containerIdSufix = date.getFullYear() + (\"0\" + (date.getMonth() + 1)).slice(-2) + (\"0\" + date.getDate()).slice(-2) + (\"0\" + date.getHours() + 1).slice(-2) + (\"0\" + date.getMinutes()).slice(-2) + (\"0\" + date.getSeconds()).slice(-2) + (\"0\" + date.getMilliseconds()).slice(-2);\r\n $.ajax({\r\n url: '/services/agoraYelpWidget.aspx',\r\n data: { 'location': location, 'latitude': latitude, 'longitude': longitude, containerIdSufix: _containerIdSufix },\r\n type: 'GET',\r\n dataType: 'html',\r\n success: function (result) {\r\n var isEditMode = $sender.closest('div[contenteditable]').attr('contenteditable');\r\n if (!isEditMode) {\r\n $sender.after(result);\r\n $sender.remove();\r\n if (!(typeof (componentHandler) == 'undefined')) {\r\n componentHandler.upgradeDom();\r\n }\r\n $(\".yelp-import-result-\" + _containerIdSufix).find(\".owl-carousel\").owlCarousel({\r\n items: 4, // THIS IS IMPORTANT\r\n nav: true,\r\n navText: [\"<i class='aga-keyboard-arrow-left'></i>\", \"<i class='aga-keyboard-arrow-right'></i>\"],\r\n responsive: {\r\n 0: { items: 1 },\r\n 480: { items: 1 }, // from zero to 480 screen width 4 items\r\n 768: { items: 2 }, // from 480 screen widthto 768 6 items\r\n 1024: {\r\n items: 4 // from 768 screen width to 1024 8 items\r\n }\r\n },\r\n });\r\n }\r\n },\r\n error: function () {\r\n }\r\n });\r\n}\r\n\r\nfunction EnableAreaMapImport() {\r\n _areamapInit();\r\n var _prevScrollTop = jQuery(window).scrollTop();\r\n function _areamapInit() {\r\n $('img[data-areamap-control]:not(img[data-init-completed]').each(function () {\r\n var $self = $(this);\r\n var isEditMode = $self.closest('div[contenteditable]').attr('contenteditable');\r\n if (!isEditMode) {\r\n if (isOnScreen($self)) {\r\n $self.attr('data-init-completed', \"1\");\r\n getAreaMapControl($self);\r\n }\r\n else {\r\n $(window).scroll(function () {\r\n if ((jQuery(window).scrollTop() > _prevScrollTop && jQuery(window).scrollTop() - _prevScrollTop < 10) || (_prevScrollTop > jQuery(window).scrollTop() && _prevScrollTop - jQuery(window).scrollTop() < 10)) return;\r\n _prevScrollTop = jQuery(window).scrollTop();\r\n if (isOnScreen($self) && !$self.attr('data-init-completed')) {\r\n $self.attr('data-init-completed', \"1\");\r\n getAreaMapControl($self);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n}\r\nfunction getAreaMapControl($sender) {\r\n var latitude = $sender.data('latitude');\r\n var longitude = $sender.data('longitude');\r\n $.ajax({\r\n url: '/services/agoraAreaMapWidget.aspx',\r\n data: { 'latitude': latitude, 'longitude': longitude },\r\n type: 'GET',\r\n dataType: 'html',\r\n success: function (result) {\r\n var isEditMode = $sender.closest('div[contenteditable]').attr('contenteditable');\r\n if (!isEditMode) {\r\n $sender.after(result);\r\n $sender.remove();\r\n if (!(typeof (componentHandler) == 'undefined')) {\r\n componentHandler.upgradeDom();\r\n }\r\n }\r\n },\r\n error: function () {\r\n }\r\n });\r\n}\r\n\r\nfunction EnableConverter() {\r\n var _converterID = 1;\r\n if (typeof (AgoraCurrencyConvertions) != 'undefined' && AgoraCurrencyConvertions != null) {\r\n _init();\r\n $(document).on('enable-converter', _enableConverter);\r\n _enableConverter();\r\n }\r\n\r\n function _init() {\r\n $('[data-currency-converter-master]').each(function () {\r\n var $handle = $(this);\r\n $handle.html(_getConvertionControl());\r\n $handle.find('[data-converter-options]').on('change', function (e) {\r\n _setConverter($(this));\r\n _updateMasterValue($handle);\r\n $('[data-converter]').trigger('update');\r\n });\r\n _updateMasterValue($handle);\r\n });\r\n }\r\n\r\n function _enableConverter() {\r\n if (!(typeof (AgoraCurrencyConvertions) != 'undefined' && AgoraCurrencyConvertions != null)) return;\r\n $('[data-converter]:not([data-is-upgraded]),[data-converter][data-is-template]').each(function (index, element) {\r\n var $placeholder = $(element);\r\n var $state = $('<label data-converter-handle=\"\" for=\"converter_' + _converterID + '\"></label>');\r\n var $contextHTML = $('<div></div>');\r\n $contextHTML.append($('<div data-converter-control=\"\"></div>').append($('<b data-converter-value=\"\"></b>').append($placeholder.html())).append($state));\r\n $placeholder.html($contextHTML.html());\r\n _converterID++;\r\n $placeholder.on('update', function (e) {\r\n _convertValue($(this).closest('[data-converter]'));\r\n });\r\n\r\n $placeholder.attr('data-is-upgraded', 'true');\r\n //$placeholder.find('a i').on('click', function () { if (!$(this).parent().hasClass('active')) $(this).parent().addClass('active'); else $(this).parent().removeClass('active'); });\r\n $placeholder.trigger('update')\r\n });\r\n }\r\n\r\n\r\n function _getConvertionControl() {\r\n if (AgoraCurrencyConvertions && AgoraCurrencyConvertions != null && AgoraCurrencyConvertions.ExchangeRate && AgoraCurrencyConvertions.ExchangeRate.Rates && AgoraCurrencyConvertions.ExchangeRate.Rates.length > 0) {\r\n var $control = $('<select data-converter-options=\"\"></select>');\r\n for (var key in AgoraCurrencyConvertions.ExchangeRate.Rates) {\r\n $('<option value=\\\"' + AgoraCurrencyConvertions.ExchangeRate.Rates[key].Code + '\\\" data-currency=\\\"' + AgoraCurrencyConvertions.ExchangeRate.Rates[key].Code + '\\\" data-currency-constant=\\\"' + AgoraCurrencyConvertions.ExchangeRate.Rates[key].Constant + '\\\" ' + (AgoraCurrencyConvertions.ExchangeRate.Rates[key].Notation && AgoraCurrencyConvertions.ExchangeRate.Rates[key].Notation != '' ? ' data-currency-notation=\\\"' + AgoraCurrencyConvertions.ExchangeRate.Rates[key].Notation + '\\\"' : '') + '>' + AgoraCurrencyConvertions.ExchangeRate.Rates[key].Name + '</option>').appendTo($control);\r\n }\r\n return $control;\r\n }\r\n return '';\r\n };\r\n\r\n function _setConverter(sender) {\r\n var $current = $(sender).find('option:selected');\r\n var _constant = $current.data('currency-constant');\r\n var _code = $current.data('currency');\r\n var _notation = $current.data('currency-notation');\r\n var _haveNotation = typeof (_notation) != 'undefined' && _notation != null && _notation != '';\r\n setCookie('_converter_constant', _constant, 30);\r\n setCookie('_converter_representation', _haveNotation ? _notation : '', 30);\r\n setCookie('_converter_code', _code, 30);\r\n try {\r\n $(sender).blur();\r\n } catch (e) { }\r\n }\r\n\r\n function _convertValue(converter) {\r\n var $converter = $(converter);\r\n var $handle = $converter.find('[data-converter-handle]');\r\n var $select = $converter.find('[data-converter-options]');\r\n var $value = $converter.find('[data-converter-value]');\r\n var _intermediateCode = getCookie('_converter_code');\r\n var _intermediateConstant = getCookie('_converter_constant');\r\n var _intermediateRepresentation = getCookie('_converter_representation');\r\n var _hideCurrencyCode = getCookie('_converter_hide_currenycode');\r\n var _constant = _intermediateCode == '' ? 1 : _intermediateConstant;\r\n var _representation = _intermediateCode == '' ? '$' : _intermediateRepresentation;\r\n var _code = _intermediateCode == '' ? 'USD' : _intermediateCode;\r\n var _hideCode = _hideCurrencyCode == '' ? '0' : _hideCurrencyCode;\r\n _hideCode != '1' ? $handle.attr('data-converter-handle', _code) : '';\r\n $select.val(_code);\r\n _update(_constant, _representation, _code);\r\n function _update(constant, representation, code) {\r\n if (constant != null && code != null && constant != '' && code != '') {\r\n try {\r\n var _value1 = parseFloat($converter.data('converter'));\r\n var _value2 = parseFloat(constant);\r\n var _value3 = _value1 * _value2;\r\n var _valuePart = Math.floor(_value3).toString().replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\r\n $value.text((representation != '' ? representation : '') + '' + _valuePart);\r\n } catch (e) { console.log(e); $value.text('N/A'); }\r\n }\r\n }\r\n };\r\n\r\n function _getAgoraExchangeItem(code) {\r\n for (var key in AgoraCurrencyConvertions.ExchangeRate.Rates) {\r\n if (AgoraCurrencyConvertions.ExchangeRate.Rates[key].Code == code)\r\n return AgoraCurrencyConvertions.ExchangeRate.Rates[key];\r\n }\r\n return null;\r\n }\r\n\r\n function _updateMasterValue(converter) {\r\n var $converter = $(converter);\r\n var $handle = $converter;\r\n var _intermediateCode = getCookie('_converter_code');\r\n var _default = $handle.data('currency-default');\r\n var $hideCode = $handle.data('hide-currencycode');\r\n if (_intermediateCode == '' && (typeof (_default) != 'undefined' && _default != '')) {\r\n var _agoraExchangeItem = _getAgoraExchangeItem(_default);\r\n if (_agoraExchangeItem != null) {\r\n _intermediateCode = _agoraExchangeItem.Code;\r\n var _haveNotation = typeof (_agoraExchangeItem.Notation) != 'undefined' && _agoraExchangeItem.Notation != null && _agoraExchangeItem.Notation != '';\r\n setCookie('_converter_constant', _agoraExchangeItem.Constant, 30);\r\n setCookie('_converter_representation', _haveNotation ? _agoraExchangeItem.Notation : '', 30);\r\n setCookie('_converter_code', _agoraExchangeItem.Code, 30);\r\n setCookie('_converter_hide_currenycode', $hideCode, 30);\r\n }\r\n }\r\n var $select = $converter.find('[data-converter-options]');\r\n var $value = $converter.find('[data-converter-value]');\r\n var _intermediateConstant = getCookie('_converter_constant');\r\n var _intermediateRepresentation = getCookie('_converter_representation');\r\n var _constant = _intermediateCode == '' ? 1 : _intermediateConstant;\r\n var _representation = _intermediateCode == '' ? '$' : _intermediateRepresentation;\r\n var _code = _intermediateCode == '' ? 'USD' : _intermediateCode;\r\n $handle.attr('data-converter-handle', _code);\r\n $select.val(_code);\r\n };\r\n\r\n};\r\n\r\nfunction setCookie(cname, cvalue, exdays) {\r\n var d = new Date();\r\n d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\r\n var expires = \"expires=\" + d.toUTCString();\r\n document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/\";\r\n}\r\n\r\nfunction getCookie(cname) {\r\n var name = cname + \"=\";\r\n var decodedCookie = decodeURIComponent(document.cookie);\r\n var ca = decodedCookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) == 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n}\r\nDate.prototype.yyyymmddhhmmss = function () {\r\n var yyyy = this.getFullYear();\r\n var mm = this.getMonth() < 9 ? \"0\" + (this.getMonth() + 1) : (this.getMonth() + 1); // getMonth() is zero-based\r\n var dd = this.getDate() < 10 ? \"0\" + this.getDate() : this.getDate();\r\n var hh = this.getHours() < 10 ? \"0\" + this.getHours() : this.getHours();\r\n var min = this.getMinutes() < 10 ? \"0\" + this.getMinutes() : this.getMinutes();\r\n var ss = this.getSeconds() < 10 ? \"0\" + this.getSeconds() : this.getSeconds();\r\n return \"\".concat(yyyy).concat(mm).concat(dd).concat(hh).concat(min).concat(ss);\r\n};\r\n\r\nfunction ReloadProperttypestate() {\r\n var val = $('[data-proptype] :selected').val();\r\n var selector = '[data-parent-val=' + '\"' + val + '\"]';\r\n $('[data-parent-val]').removeClass('mdl-cell--hide').addClass('mdl-cell--hide');\r\n $(selector).removeClass('mdl-cell--hide');\r\n\r\n}\r\n\r\n$(document).on('change', '[data-proptype]', {}, function () {\r\n $parent = $(this);\r\n var val = $('[data-proptype] :selected').val();\r\n var selector = '[data-parent-val=' + '\"' + val + '\"]';\r\n $('[data-parent-val]').removeClass('mdl-cell--hide').addClass('mdl-cell--hide');\r\n $('[data-parent-val] input[type=\"checkbox\"]').each(function () {\r\n if ($(this).closest('.mdl-js-checkbox').length > 0) {\r\n $('#homePropTypeLabel').html($parent.attr(\"data-search-name-label\") + ' (all)');\r\n $(this).closest('.mdl-js-checkbox')[0].MaterialCheckbox.uncheck();\r\n }\r\n else\r\n $(this).prop('checked', false);\r\n });\r\n\r\n $(selector).removeClass('mdl-cell--hide');\r\n doSearch(true);\r\n});\r\n\r\nfunction openYouTubeEmbedVideo(src, title) {\r\n $(\"#IwbPopUpArea\").AgoraDialogModal({ ServiceUrl: '/PopUps/PlayEmbedYoutubeVideo.aspx?Title=' + title + '&Src=' + src, EnableAjaxHtmlLoad: true });\r\n}\r\n\r\nfunction EnableTabContents() {\r\n setTabContent(getLocationHref());\r\n $('[data-tab-url]').click(function () {\r\n var $dataCount = $('body').find('[data-content=\"' + $(this).data('tab-url') + '\"]').length;\r\n if ($dataCount > 0) {\r\n setTabContent($(this).data('tab-url'));\r\n window.history.pushState(\"\", \"\", \"/\" + $(this).data('tab-url'));\r\n }\r\n else { window.location.href = $(this).data('tab-url'); }\r\n });\r\n\r\n function getLocationHref() {\r\n var defaultItem = $('a[data-tab-url]')[0];\r\n var _href = window.location.href.substring(window.location.href.lastIndexOf('/') + 1);\r\n return !isNullOrEmpty(_href) ? _href : $(defaultItem).data('tab-url');\r\n }\r\n\r\n function setTabContent(url) {\r\n _setDefaults();\r\n $('[data-content=\"' + url + '\"]').removeClass('mdl-cell--hide');\r\n $('a[data-tab-url=\"' + url + '\"]').addClass('active-class');\r\n }\r\n\r\n function _setDefaults() {\r\n $('[data-content]').each(function () {\r\n if (!$(this).hasClass('mdl-cell--hide'))\r\n $(this).addClass('mdl-cell--hide');\r\n });\r\n $('a[data-tab-url]').each(function () {\r\n if ($(this).hasClass('active-class'))\r\n $(this).removeClass('active-class');\r\n });\r\n }\r\n\r\n window.addEventListener('popstate', function (event) {\r\n setTabContent(getLocationHref());\r\n });\r\n}\r\n\r\n\r\n\r\nfunction get_video_thumb(url, callback) {\r\n var id = get_video_id(url);\r\n if (id['type'] == 'y') {\r\n return processYouTube(id);\r\n } else if (id['type'] == 'v') {\r\n $.ajax({\r\n url: 'http://vimeo.com/api/v2/video/' + id['id'] + '.json',\r\n dataType: 'jsonp',\r\n success: function (data) {\r\n callback({ type: 'v', id: id['id'], url: data[0].thumbnail_large });\r\n }\r\n });\r\n }\r\n function processYouTube(id) {\r\n if (!id) { throw new Error('Unsupported YouTube URL'); }\r\n callback({ type: 'y', id: id['id'], url: 'https://i2.ytimg.com/vi/' + id['id'] + '/hqdefault.jpg' });\r\n }\r\n}\r\nfunction getYoutubeVideoId(url) {\r\n if (url.indexOf('youtube.com') > -1) {\r\n if (url.indexOf('v=') > -1) { id = url.split('v=')[1].split('&')[0]; }\r\n else if (url.indexOf('embed') > -1) { id = url.split('embed/')[1].split('?')[0]; };\r\n return id;\r\n }\r\n}\r\n\r\nfunction get_video_id(url) {\r\n var id;\r\n var a;\r\n if (url.indexOf('youtube.com') > -1) {\r\n if (url.indexOf('v=') > -1) { id = url.split('v=')[1].split('&')[0]; }\r\n else if (url.indexOf('embed') > -1) { id = url.split('embed/')[1].split('?')[0]; };\r\n return processYouTube(id);\r\n }\r\n else if (url.indexOf('youtu.be') > -1) { id = url.split(/v\\/|v=|youtu\\.be\\//)[1].split(/[?&]/)[0]; return processYouTube(id); }\r\n else if (url.indexOf('vimeo.com') > -1) {\r\n if (url.match(/https?:\\/\\/(www\\.)?vimeo.com\\/(\\d+)($|\\/)/)) { id = url.split('/')[3]; }\r\n else if (url.match(/^vimeo.com\\/channels\\/[\\d\\w]+#[0-9]+/)) { id = url.split('#')[1]; }\r\n else if (url.match(/vimeo.com\\/groups\\/[\\d\\w]+\\/videos\\/[0-9]+/)) { id = url.split('/')[4]; }\r\n else if (url.match(/player.vimeo.com\\/video\\/[0-9]+/)) { id = url.split('/')[2]; }\r\n else { throw new Error('Unsupported Vimeo URL'); }\r\n }\r\n else { throw new Error('Unrecognised URL'); }\r\n a = { type: 'v', id: id };\r\n return a;\r\n function processYouTube(id) {\r\n if (!id) { throw new Error('Unsupported YouTube URL'); }\r\n a = { type: 'y', id: id };\r\n return (a); // default.jpg OR hqdefault.jpg\r\n }\r\n}\r\n\r\n\r\nfunction getSearchUrlTermValue(urlQuery, searchterm) {\r\n\r\n var _urlquerySplit = urlQuery.split('/');\r\n var _value = '';\r\n for (var i = 0; i < _urlquerySplit.length; i++) {\r\n if (_urlquerySplit[i].split('-')[0] == searchterm)\r\n _value = _urlquerySplit[i].split('-')[1];\r\n }\r\n return _value;\r\n}\r\n\r\nfunction removeTagAttibute(attributeName) {\r\n var allTags = '*';\r\n var specificTags = ['ARTICLE', 'INPUT', 'A', 'DIV', 'SELECT', 'INPUT', 'TEXTAREA'];\r\n\r\n var allelems = document.querySelectorAll(specificTags);\r\n for (i = 0, j = 0; i < allelems.length; i++) {\r\n allelems[i].removeAttribute(attributeName);\r\n }\r\n}\r\n\r\nfunction GetYoutubeVideoimage(embededURL) {\r\n if (IsNotNull(embededURL)) {\r\n var videoImage = '';\r\n var youtube_video_id = embededURL.match(/youtube\\.com.*(\\?v=|\\/embed\\/)(.{11})/).pop();\r\n if (youtube_video_id.length == 11) {\r\n var videoImage = '//img.youtube.com/vi/' + youtube_video_id + '/0.jpg';\r\n }\r\n return videoImage\r\n }\r\n}\r\n\r\nfunction EnableGoogleSearch() {\r\n $(document).on('keydown', '[data-google-locationsearch=\"Enable\"]', null, function () { EnableGoogleLocationSearch(); });\r\n $(document).on('keyup', '[data-google-locationsearch=\"Enable\"]', null, function () { $('[data-google-locationsearch=\"Enable\"]').removeAttr('placeholder'); });\r\n}\r\nfunction EnableGoogleLocationSearch() {\r\n var autocomplete = new google.maps.places.Autocomplete($('[data-google-locationsearch=\"Enable\"]')[0], {});\r\n}\r\n\r\nwindow.onload = window.onresize = function () {\r\n setTimeout(EnableFlowlessHeader, 100);\r\n};\r\n\r\nfunction initMapDefault() {\r\n if (window.onMapLoaded) window.onMapLoaded();\r\n}\r\n\r\nfunction fixNavigationAfterGoogleTranslate() {\r\n if ($('select.goog-te-combo') == null) return;\r\n\r\n $('select.goog-te-combo').change(function () {\r\n setTimeout(function () {\r\n window.dispatchEvent(new Event('resize'));\r\n }, 1000);\r\n });\r\n}\r\n\r\nfunction normalizeMaterialControls(context) {\r\n var $context = $(context);\r\n //generic\r\n $context.find('[data-upgraded]').removeAttr('data-upgraded');\r\n $context.find('.is-upgraded').removeClass('.is-upgraded');\r\n //textfield\r\n\r\n //radio\r\n $context.find('.mdl-radio').children('*:not(input):not(.mdl-radio__label)').remove();\r\n\r\n //checkbox\r\n $context.find('.mdl-checkbox').children('*:not(input):not(.mdl-checkbox__label)').remove();\r\n\r\n //selectfield\r\n $context.find('.mdl-selectfield').children('*:not(select):not(label)').remove();\r\n\r\n setIDsAndNames($context);\r\n setTimeout(function () { resetIDsAndNames($context) }, 500);\r\n}\r\nfunction setIDsAndNames($container) {\r\n $container.find('[data-id]').each(function () {\r\n var $this = $(this);\r\n $this.attr('id', $this.attr('data-id'));\r\n $this.removeAttr('data-id');\r\n });\r\n $container.find('[data-name]').each(function () {\r\n var $this = $(this);\r\n $this.attr('name', $this.attr('data-name'));\r\n $this.removeAttr('data-name');\r\n });\r\n}\r\n\r\nfunction resetIDsAndNames($container) {\r\n $container.find('[id]').each(function () {\r\n var $this = $(this);\r\n $this.attr('data-id', $this.attr('id'));\r\n $this.removeAttr('id');\r\n });\r\n $container.find('[name]').each(function () {\r\n var $this = $(this);\r\n $this.attr('data-name', $this.attr('name'));\r\n $this.removeAttr('name');\r\n });\r\n}\r\n\r\nagora(function () {\r\n\r\n if ($(\".footer-drop-items\").length > 0) {\r\n $(document).click(function (e) {\r\n var container = $(\".footer-drop-items\");\r\n if (!container.is(e.target) &&\r\n !container.has(e.target).length) {\r\n container.find(\".sidewardsDrop\").css({ display: 'none' });\r\n $('.footer-drop-items input[type=\"radio\"]').prop('checked', false);\r\n }\r\n });\r\n\r\n $('.footer-drop-items input[type=\"radio\"]').change(function () {\r\n $(this).parent().find(\".sidewardsDrop\").css({ display: 'block' });\r\n });\r\n\r\n }\r\n\r\n});\r\n",";(function() {\n\"use strict\";\n\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * A component handler interface using the revealing module design pattern.\n * More details on this design pattern here:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @author Jason Mayes.\n */\n/* exported componentHandler */\n\n// Pre-defining the componentHandler interface, for closure documentation and\n// static verification.\nvar componentHandler = {\n /**\n * Searches existing DOM for elements of our component type and upgrades them\n * if they have not already been upgraded.\n *\n * @param {string=} optJsClass the programatic name of the element class we\n * need to create a new instance of.\n * @param {string=} optCssClass the name of the CSS class elements of this\n * type will have.\n */\n upgradeDom: function(optJsClass, optCssClass) {},\n /**\n * Upgrades a specific element rather than all in the DOM.\n *\n * @param {!Element} element The element we wish to upgrade.\n * @param {string=} optJsClass Optional name of the class we want to upgrade\n * the element to.\n */\n upgradeElement: function(element, optJsClass) {},\n /**\n * Upgrades a specific list of elements rather than all in the DOM.\n *\n * @param {!Element|!Array<!Element>|!NodeList|!HTMLCollection} elements\n * The elements we wish to upgrade.\n */\n upgradeElements: function(elements) {},\n /**\n * Upgrades all registered components found in the current DOM. This is\n * automatically called on window load.\n */\n upgradeAllRegistered: function() {},\n /**\n * Allows user to be alerted to any upgrades that are performed for a given\n * component type\n *\n * @param {string} jsClass The class name of the MDL component we wish\n * to hook into for any upgrades performed.\n * @param {function(!HTMLElement)} callback The function to call upon an\n * upgrade. This function should expect 1 parameter - the HTMLElement which\n * got upgraded.\n */\n registerUpgradedCallback: function(jsClass, callback) {},\n /**\n * Registers a class for future use and attempts to upgrade existing DOM.\n *\n * @param {componentHandler.ComponentConfigPublic} config the registration configuration\n */\n register: function(config) {},\n /**\n * Downgrade either a given node, an array of nodes, or a NodeList.\n *\n * @param {!Node|!Array<!Node>|!NodeList} nodes\n */\n downgradeElements: function(nodes) {}\n};\n\ncomponentHandler = (function() {\n 'use strict';\n\n /** @type {!Array<componentHandler.ComponentConfig>} */\n var registeredComponents_ = [];\n\n /** @type {!Array<componentHandler.Component>} */\n var createdComponents_ = [];\n\n var componentConfigProperty_ = 'mdlComponentConfigInternal_';\n\n /**\n * Searches registered components for a class we are interested in using.\n * Optionally replaces a match with passed object if specified.\n *\n * @param {string} name The name of a class we want to use.\n * @param {componentHandler.ComponentConfig=} optReplace Optional object to replace match with.\n * @return {!Object|boolean}\n * @private\n */\n function findRegisteredClass_(name, optReplace) {\n for (var i = 0; i < registeredComponents_.length; i++) {\n if (registeredComponents_[i].className === name) {\n if (typeof optReplace !== 'undefined') {\n registeredComponents_[i] = optReplace;\n }\n return registeredComponents_[i];\n }\n }\n return false;\n }\n\n /**\n * Returns an array of the classNames of the upgraded classes on the element.\n *\n * @param {!Element} element The element to fetch data from.\n * @return {!Array<string>}\n * @private\n */\n function getUpgradedListOfElement_(element) {\n var dataUpgraded = element.getAttribute('data-upgraded');\n // Use `['']` as default value to conform the `,name,name...` style.\n return dataUpgraded === null ? [''] : dataUpgraded.split(',');\n }\n\n /**\n * Returns true if the given element has already been upgraded for the given\n * class.\n *\n * @param {!Element} element The element we want to check.\n * @param {string} jsClass The class to check for.\n * @returns {boolean}\n * @private\n */\n function isElementUpgraded_(element, jsClass) {\n var upgradedList = getUpgradedListOfElement_(element);\n return upgradedList.indexOf(jsClass) !== -1;\n }\n\n /**\n * Create an event object.\n *\n * @param {string} eventType The type name of the event.\n * @param {boolean} bubbles Whether the event should bubble up the DOM.\n * @param {boolean} cancelable Whether the event can be canceled.\n * @returns {!Event}\n */\n function createEvent_(eventType, bubbles, cancelable) {\n if ('CustomEvent' in window && typeof window.CustomEvent === 'function') {\n return new CustomEvent(eventType, {\n bubbles: bubbles,\n cancelable: cancelable\n });\n } else {\n var ev = document.createEvent('Events');\n ev.initEvent(eventType, bubbles, cancelable);\n return ev;\n }\n }\n\n /**\n * Searches existing DOM for elements of our component type and upgrades them\n * if they have not already been upgraded.\n *\n * @param {string=} optJsClass the programatic name of the element class we\n * need to create a new instance of.\n * @param {string=} optCssClass the name of the CSS class elements of this\n * type will have.\n */\n function upgradeDomInternal(optJsClass, optCssClass) {\n if (typeof optJsClass === 'undefined' &&\n typeof optCssClass === 'undefined') {\n for (var i = 0; i < registeredComponents_.length; i++) {\n upgradeDomInternal(registeredComponents_[i].className,\n registeredComponents_[i].cssClass);\n }\n } else {\n var jsClass = /** @type {string} */ (optJsClass);\n if (typeof optCssClass === 'undefined') {\n var registeredClass = findRegisteredClass_(jsClass);\n if (registeredClass) {\n optCssClass = registeredClass.cssClass;\n }\n }\n\n var elements = document.querySelectorAll('.' + optCssClass);\n for (var n = 0; n < elements.length; n++) {\n upgradeElementInternal(elements[n], jsClass);\n }\n }\n }\n\n /**\n * Upgrades a specific element rather than all in the DOM.\n *\n * @param {!Element} element The element we wish to upgrade.\n * @param {string=} optJsClass Optional name of the class we want to upgrade\n * the element to.\n */\n function upgradeElementInternal(element, optJsClass) {\n // Verify argument type.\n if (!(typeof element === 'object' && element instanceof Element)) {\n throw new Error('Invalid argument provided to upgrade MDL element.');\n }\n // Allow upgrade to be canceled by canceling emitted event.\n var upgradingEv = createEvent_('mdl-componentupgrading', true, true);\n element.dispatchEvent(upgradingEv);\n if (upgradingEv.defaultPrevented) {\n return;\n }\n\n var upgradedList = getUpgradedListOfElement_(element);\n var classesToUpgrade = [];\n // If jsClass is not provided scan the registered components to find the\n // ones matching the element's CSS classList.\n if (!optJsClass) {\n var classList = element.classList;\n registeredComponents_.forEach(function(component) {\n // Match CSS & Not to be upgraded & Not upgraded.\n if (classList.contains(component.cssClass) &&\n classesToUpgrade.indexOf(component) === -1 &&\n !isElementUpgraded_(element, component.className)) {\n classesToUpgrade.push(component);\n }\n });\n } else if (!isElementUpgraded_(element, optJsClass)) {\n classesToUpgrade.push(findRegisteredClass_(optJsClass));\n }\n\n // Upgrade the element for each classes.\n for (var i = 0, n = classesToUpgrade.length, registeredClass; i < n; i++) {\n registeredClass = classesToUpgrade[i];\n if (registeredClass) {\n // Mark element as upgraded.\n upgradedList.push(registeredClass.className);\n element.setAttribute('data-upgraded', upgradedList.join(','));\n var instance = new registeredClass.classConstructor(element);\n instance[componentConfigProperty_] = registeredClass;\n createdComponents_.push(instance);\n // Call any callbacks the user has registered with this component type.\n for (var j = 0, m = registeredClass.callbacks.length; j < m; j++) {\n registeredClass.callbacks[j](element);\n }\n\n if (registeredClass.widget) {\n // Assign per element instance for control over API\n element[registeredClass.className] = instance;\n }\n } else {\n throw new Error(\n 'Unable to find a registered component for the given class.');\n }\n\n var upgradedEv = createEvent_('mdl-componentupgraded', true, false);\n element.dispatchEvent(upgradedEv);\n }\n }\n\n /**\n * Upgrades a specific list of elements rather than all in the DOM.\n *\n * @param {!Element|!Array<!Element>|!NodeList|!HTMLCollection} elements\n * The elements we wish to upgrade.\n */\n function upgradeElementsInternal(elements) {\n if (!Array.isArray(elements)) {\n if (elements instanceof Element) {\n elements = [elements];\n } else {\n elements = Array.prototype.slice.call(elements);\n }\n }\n for (var i = 0, n = elements.length, element; i < n; i++) {\n element = elements[i];\n if (element instanceof HTMLElement) {\n upgradeElementInternal(element);\n if (element.children.length > 0) {\n upgradeElementsInternal(element.children);\n }\n }\n }\n }\n\n /**\n * Registers a class for future use and attempts to upgrade existing DOM.\n *\n * @param {componentHandler.ComponentConfigPublic} config\n */\n function registerInternal(config) {\n // In order to support both Closure-compiled and uncompiled code accessing\n // this method, we need to allow for both the dot and array syntax for\n // property access. You'll therefore see the `foo.bar || foo['bar']`\n // pattern repeated across this method.\n var widgetMissing = (typeof config.widget === 'undefined' &&\n typeof config['widget'] === 'undefined');\n var widget = true;\n\n if (!widgetMissing) {\n widget = config.widget || config['widget'];\n }\n\n var newConfig = /** @type {componentHandler.ComponentConfig} */ ({\n classConstructor: config.constructor || config['constructor'],\n className: config.classAsString || config['classAsString'],\n cssClass: config.cssClass || config['cssClass'],\n widget: widget,\n callbacks: []\n });\n\n registeredComponents_.forEach(function(item) {\n if (item.cssClass === newConfig.cssClass) {\n throw new Error('The provided cssClass has already been registered: ' + item.cssClass);\n }\n if (item.className === newConfig.className) {\n throw new Error('The provided className has already been registered');\n }\n });\n\n if (config.constructor.prototype\n .hasOwnProperty(componentConfigProperty_)) {\n throw new Error(\n 'MDL component classes must not have ' + componentConfigProperty_ +\n ' defined as a property.');\n }\n\n var found = findRegisteredClass_(config.classAsString, newConfig);\n\n if (!found) {\n registeredComponents_.push(newConfig);\n }\n }\n\n /**\n * Allows user to be alerted to any upgrades that are performed for a given\n * component type\n *\n * @param {string} jsClass The class name of the MDL component we wish\n * to hook into for any upgrades performed.\n * @param {function(!HTMLElement)} callback The function to call upon an\n * upgrade. This function should expect 1 parameter - the HTMLElement which\n * got upgraded.\n */\n function registerUpgradedCallbackInternal(jsClass, callback) {\n var regClass = findRegisteredClass_(jsClass);\n if (regClass) {\n regClass.callbacks.push(callback);\n }\n }\n\n /**\n * Upgrades all registered components found in the current DOM. This is\n * automatically called on window load.\n */\n function upgradeAllRegisteredInternal() {\n for (var n = 0; n < registeredComponents_.length; n++) {\n upgradeDomInternal(registeredComponents_[n].className);\n }\n }\n\n /**\n * Check the component for the downgrade method.\n * Execute if found.\n * Remove component from createdComponents list.\n *\n * @param {?componentHandler.Component} component\n */\n function deconstructComponentInternal(component) {\n if (component) {\n var componentIndex = createdComponents_.indexOf(component);\n createdComponents_.splice(componentIndex, 1);\n\n var upgrades = component.element_.getAttribute('data-upgraded').split(',');\n var componentPlace = upgrades.indexOf(component[componentConfigProperty_].classAsString);\n upgrades.splice(componentPlace, 1);\n component.element_.setAttribute('data-upgraded', upgrades.join(','));\n\n var ev = createEvent_('mdl-componentdowngraded', true, false);\n component.element_.dispatchEvent(ev);\n }\n }\n\n /**\n * Downgrade either a given node, an array of nodes, or a NodeList.\n *\n * @param {!Node|!Array<!Node>|!NodeList} nodes\n */\n function downgradeNodesInternal(nodes) {\n /**\n * Auxiliary function to downgrade a single node.\n * @param {!Node} node the node to be downgraded\n */\n var downgradeNode = function(node) {\n createdComponents_.filter(function(item) {\n return item.element_ === node;\n }).forEach(deconstructComponentInternal);\n };\n if (nodes instanceof Array || nodes instanceof NodeList) {\n for (var n = 0; n < nodes.length; n++) {\n downgradeNode(nodes[n]);\n }\n } else if (nodes instanceof Node) {\n downgradeNode(nodes);\n } else {\n throw new Error('Invalid argument provided to downgrade MDL nodes.');\n }\n }\n\n // Now return the functions that should be made public with their publicly\n // facing names...\n return {\n upgradeDom: upgradeDomInternal,\n upgradeElement: upgradeElementInternal,\n upgradeElements: upgradeElementsInternal,\n upgradeAllRegistered: upgradeAllRegisteredInternal,\n registerUpgradedCallback: registerUpgradedCallbackInternal,\n register: registerInternal,\n downgradeElements: downgradeNodesInternal\n };\n})();\n\n/**\n * Describes the type of a registered component type managed by\n * componentHandler. Provided for benefit of the Closure compiler.\n *\n * @typedef {{\n * constructor: Function,\n * classAsString: string,\n * cssClass: string,\n * widget: (string|boolean|undefined)\n * }}\n */\ncomponentHandler.ComponentConfigPublic; // jshint ignore:line\n\n/**\n * Describes the type of a registered component type managed by\n * componentHandler. Provided for benefit of the Closure compiler.\n *\n * @typedef {{\n * constructor: !Function,\n * className: string,\n * cssClass: string,\n * widget: (string|boolean),\n * callbacks: !Array<function(!HTMLElement)>\n * }}\n */\ncomponentHandler.ComponentConfig; // jshint ignore:line\n\n/**\n * Created component (i.e., upgraded element) type as managed by\n * componentHandler. Provided for benefit of the Closure compiler.\n *\n * @typedef {{\n * element_: !HTMLElement,\n * className: string,\n * classAsString: string,\n * cssClass: string,\n * widget: string\n * }}\n */\ncomponentHandler.Component; // jshint ignore:line\n\n// Export all symbols, for the benefit of Closure compiler.\n// No effect on uncompiled code.\ncomponentHandler['upgradeDom'] = componentHandler.upgradeDom;\ncomponentHandler['upgradeElement'] = componentHandler.upgradeElement;\ncomponentHandler['upgradeElements'] = componentHandler.upgradeElements;\ncomponentHandler['upgradeAllRegistered'] =\n componentHandler.upgradeAllRegistered;\ncomponentHandler['registerUpgradedCallback'] =\n componentHandler.registerUpgradedCallback;\ncomponentHandler['register'] = componentHandler.register;\ncomponentHandler['downgradeElements'] = componentHandler.downgradeElements;\nwindow.componentHandler = componentHandler;\nwindow['componentHandler'] = componentHandler;\n\nwindow.addEventListener('load', function() {\n 'use strict';\n\n /**\n * Performs a \"Cutting the mustard\" test. If the browser supports the features\n * tested, adds a mdl-js class to the <html> element. It then upgrades all MDL\n * components requiring JavaScript.\n */\n if ('classList' in document.createElement('div') &&\n 'querySelector' in document &&\n 'addEventListener' in window && Array.prototype.forEach) {\n document.documentElement.classList.add('mdl-js');\n componentHandler.upgradeAllRegistered();\n } else {\n /**\n * Dummy function to avoid JS errors.\n */\n componentHandler.upgradeElement = function() {};\n /**\n * Dummy function to avoid JS errors.\n */\n componentHandler.register = function() {};\n }\n});\n\n// Source: https://github.com/darius/requestAnimationFrame/blob/master/requestAnimationFrame.js\n// Adapted from https://gist.github.com/paulirish/1579671 which derived from\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n// requestAnimationFrame polyfill by Erik Möller.\n// Fixes from Paul Irish, Tino Zijdel, Andrew Mao, Klemen Slavič, Darius Bacon\n// MIT license\nif (!Date.now) {\n /**\n * Date.now polyfill.\n * @return {number} the current Date\n */\n Date.now = function () {\n return new Date().getTime();\n };\n Date['now'] = Date.now;\n}\nvar vendors = [\n 'webkit',\n 'moz'\n];\nfor (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp + 'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vp + 'CancelAnimationFrame'] || window[vp + 'CancelRequestAnimationFrame'];\n window['requestAnimationFrame'] = window.requestAnimationFrame;\n window['cancelAnimationFrame'] = window.cancelAnimationFrame;\n}\nif (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n /**\n * requestAnimationFrame polyfill.\n * @param {!Function} callback the callback function.\n */\n window.requestAnimationFrame = function (callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function () {\n callback(lastTime = nextTime);\n }, nextTime - now);\n };\n window.cancelAnimationFrame = clearTimeout;\n window['requestAnimationFrame'] = window.requestAnimationFrame;\n window['cancelAnimationFrame'] = window.cancelAnimationFrame;\n}\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Button MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialButton = function MaterialButton(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialButton'] = MaterialButton;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialButton.prototype.Constant_ = {};\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialButton.prototype.CssClasses_ = {\n RIPPLE_EFFECT: 'mdl-js-ripple-effect',\n RIPPLE_CONTAINER: 'mdl-button__ripple-container',\n RIPPLE: 'mdl-ripple'\n};\n/**\n * Handle blur of element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialButton.prototype.blurHandler_ = function (event) {\n if (event) {\n this.element_.blur();\n }\n};\n// Public methods.\n/**\n * Disable button.\n *\n * @public\n */\nMaterialButton.prototype.disable = function () {\n this.element_.disabled = true;\n};\nMaterialButton.prototype['disable'] = MaterialButton.prototype.disable;\n/**\n * Enable button.\n *\n * @public\n */\nMaterialButton.prototype.enable = function () {\n this.element_.disabled = false;\n};\nMaterialButton.prototype['enable'] = MaterialButton.prototype.enable;\n/**\n * Initialize element.\n */\nMaterialButton.prototype.init = function () {\n if (this.element_) {\n if (this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {\n var rippleContainer = document.createElement('span');\n rippleContainer.classList.add(this.CssClasses_.RIPPLE_CONTAINER);\n this.rippleElement_ = document.createElement('span');\n this.rippleElement_.classList.add(this.CssClasses_.RIPPLE);\n rippleContainer.appendChild(this.rippleElement_);\n this.boundRippleBlurHandler = this.blurHandler_.bind(this);\n this.rippleElement_.addEventListener('mouseup', this.boundRippleBlurHandler);\n this.element_.appendChild(rippleContainer);\n }\n this.boundButtonBlurHandler = this.blurHandler_.bind(this);\n this.element_.addEventListener('mouseup', this.boundButtonBlurHandler);\n this.element_.addEventListener('mouseleave', this.boundButtonBlurHandler);\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialButton,\n classAsString: 'MaterialButton',\n cssClass: 'mdl-js-button',\n widget: true\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Checkbox MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialCheckbox = function MaterialCheckbox(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialCheckbox'] = MaterialCheckbox;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialCheckbox.prototype.Constant_ = { TINY_TIMEOUT: 0.001 };\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialCheckbox.prototype.CssClasses_ = {\n INPUT: 'mdl-checkbox__input',\n BOX_OUTLINE: 'mdl-checkbox__box-outline',\n FOCUS_HELPER: 'mdl-checkbox__focus-helper',\n TICK_OUTLINE: 'mdl-checkbox__tick-outline',\n RIPPLE_EFFECT: 'mdl-js-ripple-effect',\n RIPPLE_IGNORE_EVENTS: 'mdl-js-ripple-effect--ignore-events',\n RIPPLE_CONTAINER: 'mdl-checkbox__ripple-container',\n RIPPLE_CENTER: 'mdl-ripple--center',\n RIPPLE: 'mdl-ripple',\n IS_FOCUSED: 'is-focused',\n IS_DISABLED: 'is-disabled',\n IS_CHECKED: 'is-checked',\n IS_UPGRADED: 'is-upgraded'\n};\n/**\n * Handle change of state.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialCheckbox.prototype.onChange_ = function (event) {\n this.updateClasses_();\n};\n/**\n * Handle focus of element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialCheckbox.prototype.onFocus_ = function (event) {\n this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n};\n/**\n * Handle lost focus of element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialCheckbox.prototype.onBlur_ = function (event) {\n this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\n};\n/**\n * Handle mouseup.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialCheckbox.prototype.onMouseUp_ = function (event) {\n this.blur_();\n};\n/**\n * Handle class updates.\n *\n * @private\n */\nMaterialCheckbox.prototype.updateClasses_ = function () {\n this.checkDisabled();\n this.checkToggleState();\n};\n/**\n * Add blur.\n *\n * @private\n */\nMaterialCheckbox.prototype.blur_ = function () {\n // TODO: figure out why there's a focus event being fired after our blur,\n // so that we can avoid this hack.\n window.setTimeout(function () {\n this.inputElement_.blur();\n }.bind(this), this.Constant_.TINY_TIMEOUT);\n};\n// Public methods.\n/**\n * Check the inputs toggle state and update display.\n *\n * @public\n */\nMaterialCheckbox.prototype.checkToggleState = function () {\n if (this.inputElement_.checked) {\n this.element_.classList.add(this.CssClasses_.IS_CHECKED);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_CHECKED);\n }\n};\nMaterialCheckbox.prototype['checkToggleState'] = MaterialCheckbox.prototype.checkToggleState;\n/**\n * Check the inputs disabled state and update display.\n *\n * @public\n */\nMaterialCheckbox.prototype.checkDisabled = function () {\n if (this.inputElement_.disabled) {\n this.element_.classList.add(this.CssClasses_.IS_DISABLED);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_DISABLED);\n }\n};\nMaterialCheckbox.prototype['checkDisabled'] = MaterialCheckbox.prototype.checkDisabled;\n/**\n * Disable checkbox.\n *\n * @public\n */\nMaterialCheckbox.prototype.disable = function () {\n this.inputElement_.disabled = true;\n this.updateClasses_();\n};\nMaterialCheckbox.prototype['disable'] = MaterialCheckbox.prototype.disable;\n/**\n * Enable checkbox.\n *\n * @public\n */\nMaterialCheckbox.prototype.enable = function () {\n this.inputElement_.disabled = false;\n this.updateClasses_();\n};\nMaterialCheckbox.prototype['enable'] = MaterialCheckbox.prototype.enable;\n/**\n * Check checkbox.\n *\n * @public\n */\nMaterialCheckbox.prototype.check = function () {\n this.inputElement_.checked = true;\n this.updateClasses_();\n};\nMaterialCheckbox.prototype['check'] = MaterialCheckbox.prototype.check;\n/**\n * Uncheck checkbox.\n *\n * @public\n */\nMaterialCheckbox.prototype.uncheck = function () {\n this.inputElement_.checked = false;\n this.updateClasses_();\n};\nMaterialCheckbox.prototype['uncheck'] = MaterialCheckbox.prototype.uncheck;\n/**\n * Initialize element.\n */\nMaterialCheckbox.prototype.init = function () {\n if (this.element_) {\n this.inputElement_ = this.element_.querySelector('.' + this.CssClasses_.INPUT);\n var boxOutline = document.createElement('span');\n boxOutline.classList.add(this.CssClasses_.BOX_OUTLINE);\n var tickContainer = document.createElement('span');\n tickContainer.classList.add(this.CssClasses_.FOCUS_HELPER);\n var tickOutline = document.createElement('span');\n tickOutline.classList.add(this.CssClasses_.TICK_OUTLINE);\n boxOutline.appendChild(tickOutline);\n this.element_.appendChild(tickContainer);\n this.element_.appendChild(boxOutline);\n if (this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {\n this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS);\n this.rippleContainerElement_ = document.createElement('span');\n this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER);\n this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_EFFECT);\n this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER);\n this.boundRippleMouseUp = this.onMouseUp_.bind(this);\n this.rippleContainerElement_.addEventListener('mouseup', this.boundRippleMouseUp);\n var ripple = document.createElement('span');\n ripple.classList.add(this.CssClasses_.RIPPLE);\n this.rippleContainerElement_.appendChild(ripple);\n this.element_.appendChild(this.rippleContainerElement_);\n }\n this.boundInputOnChange = this.onChange_.bind(this);\n this.boundInputOnFocus = this.onFocus_.bind(this);\n this.boundInputOnBlur = this.onBlur_.bind(this);\n this.boundElementMouseUp = this.onMouseUp_.bind(this);\n this.inputElement_.addEventListener('change', this.boundInputOnChange);\n this.inputElement_.addEventListener('focus', this.boundInputOnFocus);\n this.inputElement_.addEventListener('blur', this.boundInputOnBlur);\n this.element_.addEventListener('mouseup', this.boundElementMouseUp);\n this.updateClasses_();\n this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialCheckbox,\n classAsString: 'MaterialCheckbox',\n cssClass: 'mdl-js-checkbox',\n widget: true\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for icon toggle MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialIconToggle = function MaterialIconToggle(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialIconToggle'] = MaterialIconToggle;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialIconToggle.prototype.Constant_ = { TINY_TIMEOUT: 0.001 };\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialIconToggle.prototype.CssClasses_ = {\n INPUT: 'mdl-icon-toggle__input',\n JS_RIPPLE_EFFECT: 'mdl-js-ripple-effect',\n RIPPLE_IGNORE_EVENTS: 'mdl-js-ripple-effect--ignore-events',\n RIPPLE_CONTAINER: 'mdl-icon-toggle__ripple-container',\n RIPPLE_CENTER: 'mdl-ripple--center',\n RIPPLE: 'mdl-ripple',\n IS_FOCUSED: 'is-focused',\n IS_DISABLED: 'is-disabled',\n IS_CHECKED: 'is-checked'\n};\n/**\n * Handle change of state.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialIconToggle.prototype.onChange_ = function (event) {\n this.updateClasses_();\n};\n/**\n * Handle focus of element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialIconToggle.prototype.onFocus_ = function (event) {\n this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n};\n/**\n * Handle lost focus of element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialIconToggle.prototype.onBlur_ = function (event) {\n this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\n};\n/**\n * Handle mouseup.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialIconToggle.prototype.onMouseUp_ = function (event) {\n this.blur_();\n};\n/**\n * Handle class updates.\n *\n * @private\n */\nMaterialIconToggle.prototype.updateClasses_ = function () {\n this.checkDisabled();\n this.checkToggleState();\n};\n/**\n * Add blur.\n *\n * @private\n */\nMaterialIconToggle.prototype.blur_ = function () {\n // TODO: figure out why there's a focus event being fired after our blur,\n // so that we can avoid this hack.\n window.setTimeout(function () {\n this.inputElement_.blur();\n }.bind(this), this.Constant_.TINY_TIMEOUT);\n};\n// Public methods.\n/**\n * Check the inputs toggle state and update display.\n *\n * @public\n */\nMaterialIconToggle.prototype.checkToggleState = function () {\n if (this.inputElement_.checked) {\n this.element_.classList.add(this.CssClasses_.IS_CHECKED);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_CHECKED);\n }\n};\nMaterialIconToggle.prototype['checkToggleState'] = MaterialIconToggle.prototype.checkToggleState;\n/**\n * Check the inputs disabled state and update display.\n *\n * @public\n */\nMaterialIconToggle.prototype.checkDisabled = function () {\n if (this.inputElement_.disabled) {\n this.element_.classList.add(this.CssClasses_.IS_DISABLED);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_DISABLED);\n }\n};\nMaterialIconToggle.prototype['checkDisabled'] = MaterialIconToggle.prototype.checkDisabled;\n/**\n * Disable icon toggle.\n *\n * @public\n */\nMaterialIconToggle.prototype.disable = function () {\n this.inputElement_.disabled = true;\n this.updateClasses_();\n};\nMaterialIconToggle.prototype['disable'] = MaterialIconToggle.prototype.disable;\n/**\n * Enable icon toggle.\n *\n * @public\n */\nMaterialIconToggle.prototype.enable = function () {\n this.inputElement_.disabled = false;\n this.updateClasses_();\n};\nMaterialIconToggle.prototype['enable'] = MaterialIconToggle.prototype.enable;\n/**\n * Check icon toggle.\n *\n * @public\n */\nMaterialIconToggle.prototype.check = function () {\n this.inputElement_.checked = true;\n this.updateClasses_();\n};\nMaterialIconToggle.prototype['check'] = MaterialIconToggle.prototype.check;\n/**\n * Uncheck icon toggle.\n *\n * @public\n */\nMaterialIconToggle.prototype.uncheck = function () {\n this.inputElement_.checked = false;\n this.updateClasses_();\n};\nMaterialIconToggle.prototype['uncheck'] = MaterialIconToggle.prototype.uncheck;\n/**\n * Initialize element.\n */\nMaterialIconToggle.prototype.init = function () {\n if (this.element_) {\n this.inputElement_ = this.element_.querySelector('.' + this.CssClasses_.INPUT);\n if (this.element_.classList.contains(this.CssClasses_.JS_RIPPLE_EFFECT)) {\n this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS);\n this.rippleContainerElement_ = document.createElement('span');\n this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER);\n this.rippleContainerElement_.classList.add(this.CssClasses_.JS_RIPPLE_EFFECT);\n this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER);\n this.boundRippleMouseUp = this.onMouseUp_.bind(this);\n this.rippleContainerElement_.addEventListener('mouseup', this.boundRippleMouseUp);\n var ripple = document.createElement('span');\n ripple.classList.add(this.CssClasses_.RIPPLE);\n this.rippleContainerElement_.appendChild(ripple);\n this.element_.appendChild(this.rippleContainerElement_);\n }\n this.boundInputOnChange = this.onChange_.bind(this);\n this.boundInputOnFocus = this.onFocus_.bind(this);\n this.boundInputOnBlur = this.onBlur_.bind(this);\n this.boundElementOnMouseUp = this.onMouseUp_.bind(this);\n this.inputElement_.addEventListener('change', this.boundInputOnChange);\n this.inputElement_.addEventListener('focus', this.boundInputOnFocus);\n this.inputElement_.addEventListener('blur', this.boundInputOnBlur);\n this.element_.addEventListener('mouseup', this.boundElementOnMouseUp);\n this.updateClasses_();\n this.element_.classList.add('is-upgraded');\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialIconToggle,\n classAsString: 'MaterialIconToggle',\n cssClass: 'mdl-js-icon-toggle',\n widget: true\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for dropdown MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialMenu = function MaterialMenu(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialMenu'] = MaterialMenu;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialMenu.prototype.Constant_ = {\n // Total duration of the menu animation.\n TRANSITION_DURATION_SECONDS: 0.3,\n // The fraction of the total duration we want to use for menu item animations.\n TRANSITION_DURATION_FRACTION: 0.8,\n // How long the menu stays open after choosing an option (so the user can see\n // the ripple).\n CLOSE_TIMEOUT: 150\n};\n/**\n * Keycodes, for code readability.\n *\n * @enum {number}\n * @private\n */\nMaterialMenu.prototype.Keycodes_ = {\n ENTER: 13,\n ESCAPE: 27,\n SPACE: 32,\n UP_ARROW: 38,\n DOWN_ARROW: 40\n};\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialMenu.prototype.CssClasses_ = {\n CONTAINER: 'mdl-menu__container',\n OUTLINE: 'mdl-menu__outline',\n ITEM: 'mdl-menu__item',\n ITEM_RIPPLE_CONTAINER: 'mdl-menu__item-ripple-container',\n RIPPLE_EFFECT: 'mdl-js-ripple-effect',\n RIPPLE_IGNORE_EVENTS: 'mdl-js-ripple-effect--ignore-events',\n RIPPLE: 'mdl-ripple',\n // Statuses\n IS_UPGRADED: 'is-upgraded',\n IS_VISIBLE: 'is-visible',\n IS_ANIMATING: 'is-animating',\n // Alignment options\n BOTTOM_LEFT: 'mdl-menu--bottom-left',\n // This is the default.\n BOTTOM_RIGHT: 'mdl-menu--bottom-right',\n TOP_LEFT: 'mdl-menu--top-left',\n TOP_RIGHT: 'mdl-menu--top-right',\n UNALIGNED: 'mdl-menu--unaligned'\n};\n/**\n * Initialize element.\n */\nMaterialMenu.prototype.init = function () {\n if (this.element_) {\n // Create container for the menu.\n var container = document.createElement('div');\n container.classList.add(this.CssClasses_.CONTAINER);\n this.element_.parentElement.insertBefore(container, this.element_);\n this.element_.parentElement.removeChild(this.element_);\n container.appendChild(this.element_);\n this.container_ = container;\n // Create outline for the menu (shadow and background).\n var outline = document.createElement('div');\n outline.classList.add(this.CssClasses_.OUTLINE);\n this.outline_ = outline;\n container.insertBefore(outline, this.element_);\n // Find the \"for\" element and bind events to it.\n var forElId = this.element_.getAttribute('for') || this.element_.getAttribute('data-mdl-for');\n var forEl = null;\n if (forElId) {\n forEl = document.getElementById(forElId);\n if (forEl) {\n this.forElement_ = forEl;\n forEl.addEventListener('click', this.handleForClick_.bind(this));\n forEl.addEventListener('keydown', this.handleForKeyboardEvent_.bind(this));\n }\n }\n var items = this.element_.querySelectorAll('.' + this.CssClasses_.ITEM);\n this.boundItemKeydown_ = this.handleItemKeyboardEvent_.bind(this);\n this.boundItemClick_ = this.handleItemClick_.bind(this);\n for (var i = 0; i < items.length; i++) {\n // Add a listener to each menu item.\n items[i].addEventListener('click', this.boundItemClick_);\n // Add a tab index to each menu item.\n items[i].tabIndex = '-1';\n // Add a keyboard listener to each menu item.\n items[i].addEventListener('keydown', this.boundItemKeydown_);\n }\n // Add ripple classes to each item, if the user has enabled ripples.\n if (this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {\n this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS);\n for (i = 0; i < items.length; i++) {\n var item = items[i];\n var rippleContainer = document.createElement('span');\n rippleContainer.classList.add(this.CssClasses_.ITEM_RIPPLE_CONTAINER);\n var ripple = document.createElement('span');\n ripple.classList.add(this.CssClasses_.RIPPLE);\n rippleContainer.appendChild(ripple);\n item.appendChild(rippleContainer);\n item.classList.add(this.CssClasses_.RIPPLE_EFFECT);\n }\n }\n // Copy alignment classes to the container, so the outline can use them.\n if (this.element_.classList.contains(this.CssClasses_.BOTTOM_LEFT)) {\n this.outline_.classList.add(this.CssClasses_.BOTTOM_LEFT);\n }\n if (this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT)) {\n this.outline_.classList.add(this.CssClasses_.BOTTOM_RIGHT);\n }\n if (this.element_.classList.contains(this.CssClasses_.TOP_LEFT)) {\n this.outline_.classList.add(this.CssClasses_.TOP_LEFT);\n }\n if (this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)) {\n this.outline_.classList.add(this.CssClasses_.TOP_RIGHT);\n }\n if (this.element_.classList.contains(this.CssClasses_.UNALIGNED)) {\n this.outline_.classList.add(this.CssClasses_.UNALIGNED);\n }\n container.classList.add(this.CssClasses_.IS_UPGRADED);\n }\n};\n/**\n * Handles a click on the \"for\" element, by positioning the menu and then\n * toggling it.\n *\n * @param {Event} evt The event that fired.\n * @private\n */\nMaterialMenu.prototype.handleForClick_ = function (evt) {\n if (this.element_ && this.forElement_) {\n var rect = this.forElement_.getBoundingClientRect();\n var forRect = this.forElement_.parentElement.getBoundingClientRect();\n if (this.element_.classList.contains(this.CssClasses_.UNALIGNED)) {\n } else if (this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT)) {\n // Position below the \"for\" element, aligned to its right.\n this.container_.style.right = forRect.right - rect.right + 'px';\n this.container_.style.top = this.forElement_.offsetTop + this.forElement_.offsetHeight + 'px';\n } else if (this.element_.classList.contains(this.CssClasses_.TOP_LEFT)) {\n // Position above the \"for\" element, aligned to its left.\n this.container_.style.left = this.forElement_.offsetLeft + 'px';\n this.container_.style.bottom = forRect.bottom - rect.top + 'px';\n } else if (this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)) {\n // Position above the \"for\" element, aligned to its right.\n this.container_.style.right = forRect.right - rect.right + 'px';\n this.container_.style.bottom = forRect.bottom - rect.top + 'px';\n } else {\n // Default: position below the \"for\" element, aligned to its left.\n this.container_.style.left = this.forElement_.offsetLeft + 'px';\n this.container_.style.top = this.forElement_.offsetTop + this.forElement_.offsetHeight + 'px';\n }\n }\n this.toggle(evt);\n};\n/**\n * Handles a keyboard event on the \"for\" element.\n *\n * @param {Event} evt The event that fired.\n * @private\n */\nMaterialMenu.prototype.handleForKeyboardEvent_ = function (evt) {\n if (this.element_ && this.container_ && this.forElement_) {\n var items = this.element_.querySelectorAll('.' + this.CssClasses_.ITEM + ':not([disabled])');\n if (items && items.length > 0 && this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)) {\n if (evt.keyCode === this.Keycodes_.UP_ARROW) {\n evt.preventDefault();\n items[items.length - 1].focus();\n } else if (evt.keyCode === this.Keycodes_.DOWN_ARROW) {\n evt.preventDefault();\n items[0].focus();\n }\n }\n }\n};\n/**\n * Handles a keyboard event on an item.\n *\n * @param {Event} evt The event that fired.\n * @private\n */\nMaterialMenu.prototype.handleItemKeyboardEvent_ = function (evt) {\n if (this.element_ && this.container_) {\n var items = this.element_.querySelectorAll('.' + this.CssClasses_.ITEM + ':not([disabled])');\n if (items && items.length > 0 && this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)) {\n var currentIndex = Array.prototype.slice.call(items).indexOf(evt.target);\n if (evt.keyCode === this.Keycodes_.UP_ARROW) {\n evt.preventDefault();\n if (currentIndex > 0) {\n items[currentIndex - 1].focus();\n } else {\n items[items.length - 1].focus();\n }\n } else if (evt.keyCode === this.Keycodes_.DOWN_ARROW) {\n evt.preventDefault();\n if (items.length > currentIndex + 1) {\n items[currentIndex + 1].focus();\n } else {\n items[0].focus();\n }\n } else if (evt.keyCode === this.Keycodes_.SPACE || evt.keyCode === this.Keycodes_.ENTER) {\n evt.preventDefault();\n // Send mousedown and mouseup to trigger ripple.\n var e = new MouseEvent('mousedown');\n evt.target.dispatchEvent(e);\n e = new MouseEvent('mouseup');\n evt.target.dispatchEvent(e);\n // Send click.\n evt.target.click();\n } else if (evt.keyCode === this.Keycodes_.ESCAPE) {\n evt.preventDefault();\n this.hide();\n }\n }\n }\n};\n/**\n * Handles a click event on an item.\n *\n * @param {Event} evt The event that fired.\n * @private\n */\nMaterialMenu.prototype.handleItemClick_ = function (evt) {\n if (evt.target.hasAttribute('disabled')) {\n evt.stopPropagation();\n } else {\n // Wait some time before closing menu, so the user can see the ripple.\n this.closing_ = true;\n window.setTimeout(function (evt) {\n this.hide();\n this.closing_ = false;\n }.bind(this), this.Constant_.CLOSE_TIMEOUT);\n }\n};\n/**\n * Calculates the initial clip (for opening the menu) or final clip (for closing\n * it), and applies it. This allows us to animate from or to the correct point,\n * that is, the point it's aligned to in the \"for\" element.\n *\n * @param {number} height Height of the clip rectangle\n * @param {number} width Width of the clip rectangle\n * @private\n */\nMaterialMenu.prototype.applyClip_ = function (height, width) {\n if (this.element_.classList.contains(this.CssClasses_.UNALIGNED)) {\n // Do not clip.\n this.element_.style.clip = '';\n } else if (this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT)) {\n // Clip to the top right corner of the menu.\n this.element_.style.clip = 'rect(0 ' + width + 'px ' + '0 ' + width + 'px)';\n } else if (this.element_.classList.contains(this.CssClasses_.TOP_LEFT)) {\n // Clip to the bottom left corner of the menu.\n this.element_.style.clip = 'rect(' + height + 'px 0 ' + height + 'px 0)';\n } else if (this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)) {\n // Clip to the bottom right corner of the menu.\n this.element_.style.clip = 'rect(' + height + 'px ' + width + 'px ' + height + 'px ' + width + 'px)';\n } else {\n // Default: do not clip (same as clipping to the top left corner).\n this.element_.style.clip = '';\n }\n};\n/**\n * Cleanup function to remove animation listeners.\n *\n * @param {Event} evt\n * @private\n */\nMaterialMenu.prototype.removeAnimationEndListener_ = function (evt) {\n evt.target.classList.remove(MaterialMenu.prototype.CssClasses_.IS_ANIMATING);\n};\n \n/**\n * Adds an event listener to clean up after the animation ends.\n *\n * @private\n */\nMaterialMenu.prototype.addAnimationEndListener_ = function () {\n this.element_.addEventListener('transitionend', this.removeAnimationEndListener_);\n this.element_.addEventListener('webkitTransitionEnd', this.removeAnimationEndListener_);\n};\n/**\n * Displays the menu.\n *\n * @public\n */\nMaterialMenu.prototype.show = function (evt) {\n if (this.element_ && this.container_ && this.outline_) {\n // Measure the inner element.\n var height = this.element_.getBoundingClientRect().height;\n var width = this.element_.getBoundingClientRect().width;\n // Apply the inner element's size to the container and outline.\n this.container_.style.width = width + 'px';\n this.container_.style.height = height + 'px';\n this.outline_.style.width = width + 'px';\n this.outline_.style.height = height + 'px';\n var transitionDuration = this.Constant_.TRANSITION_DURATION_SECONDS * this.Constant_.TRANSITION_DURATION_FRACTION;\n // Calculate transition delays for individual menu items, so that they fade\n // in one at a time.\n var items = this.element_.querySelectorAll('.' + this.CssClasses_.ITEM);\n for (var i = 0; i < items.length; i++) {\n var itemDelay = null;\n if (this.element_.classList.contains(this.CssClasses_.TOP_LEFT) || this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)) {\n itemDelay = (height - items[i].offsetTop - items[i].offsetHeight) / height * transitionDuration + 's';\n } else {\n itemDelay = items[i].offsetTop / height * transitionDuration + 's';\n }\n items[i].style.transitionDelay = itemDelay;\n }\n // Apply the initial clip to the text before we start animating.\n this.applyClip_(height, width);\n // Wait for the next frame, turn on animation, and apply the final clip.\n // Also make it visible. This triggers the transitions.\n window.requestAnimationFrame(function () {\n this.element_.classList.add(this.CssClasses_.IS_ANIMATING);\n this.element_.style.clip = 'rect(0 ' + width + 'px ' + height + 'px 0)';\n this.container_.classList.add(this.CssClasses_.IS_VISIBLE);\n }.bind(this));\n // Clean up after the animation is complete.\n this.addAnimationEndListener_();\n // Add a click listener to the document, to close the menu.\n var callback = function (e) {\n // Check to see if the document is processing the same event that\n // displayed the menu in the first place. If so, do nothing.\n // Also check to see if the menu is in the process of closing itself, and\n // do nothing in that case.\n // Also check if the clicked element is a menu item\n // if so, do nothing.\n if (e !== evt && !this.closing_ && e.target.parentNode !== this.element_) {\n document.removeEventListener('click', callback);\n this.hide();\n }\n }.bind(this);\n document.addEventListener('click', callback);\n }\n};\nMaterialMenu.prototype['show'] = MaterialMenu.prototype.show;\n/**\n * Hides the menu.\n *\n * @public\n */\nMaterialMenu.prototype.hide = function () {\n if (this.element_ && this.container_ && this.outline_) {\n var items = this.element_.querySelectorAll('.' + this.CssClasses_.ITEM);\n // Remove all transition delays; menu items fade out concurrently.\n for (var i = 0; i < items.length; i++) {\n items[i].style.removeProperty('transition-delay');\n }\n // Measure the inner element.\n var rect = this.element_.getBoundingClientRect();\n var height = rect.height;\n var width = rect.width;\n // Turn on animation, and apply the final clip. Also make invisible.\n // This triggers the transitions.\n this.element_.classList.add(this.CssClasses_.IS_ANIMATING);\n this.applyClip_(height, width);\n this.container_.classList.remove(this.CssClasses_.IS_VISIBLE);\n // Clean up after the animation is complete.\n this.addAnimationEndListener_();\n }\n};\nMaterialMenu.prototype['hide'] = MaterialMenu.prototype.hide;\n/**\n * Displays or hides the menu, depending on current state.\n *\n * @public\n */\nMaterialMenu.prototype.toggle = function (evt) {\n if (this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)) {\n this.hide();\n } else {\n this.show(evt);\n }\n};\nMaterialMenu.prototype['toggle'] = MaterialMenu.prototype.toggle;\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialMenu,\n classAsString: 'MaterialMenu',\n cssClass: 'mdl-js-menu',\n widget: true\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Progress MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialProgress = function MaterialProgress(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialProgress'] = MaterialProgress;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialProgress.prototype.Constant_ = {};\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialProgress.prototype.CssClasses_ = { INDETERMINATE_CLASS: 'mdl-progress__indeterminate' };\n/**\n * Set the current progress of the progressbar.\n *\n * @param {number} p Percentage of the progress (0-100)\n * @public\n */\nMaterialProgress.prototype.setProgress = function (p) {\n if (this.element_.classList.contains(this.CssClasses_.INDETERMINATE_CLASS)) {\n return;\n }\n this.progressbar_.style.width = p + '%';\n};\nMaterialProgress.prototype['setProgress'] = MaterialProgress.prototype.setProgress;\n/**\n * Set the current progress of the buffer.\n *\n * @param {number} p Percentage of the buffer (0-100)\n * @public\n */\nMaterialProgress.prototype.setBuffer = function (p) {\n this.bufferbar_.style.width = p + '%';\n this.auxbar_.style.width = 100 - p + '%';\n};\nMaterialProgress.prototype['setBuffer'] = MaterialProgress.prototype.setBuffer;\n/**\n * Initialize element.\n */\nMaterialProgress.prototype.init = function () {\n if (this.element_) {\n var el = document.createElement('div');\n el.className = 'progressbar bar bar1';\n this.element_.appendChild(el);\n this.progressbar_ = el;\n el = document.createElement('div');\n el.className = 'bufferbar bar bar2';\n this.element_.appendChild(el);\n this.bufferbar_ = el;\n el = document.createElement('div');\n el.className = 'auxbar bar bar3';\n this.element_.appendChild(el);\n this.auxbar_ = el;\n this.progressbar_.style.width = '0%';\n this.bufferbar_.style.width = '100%';\n this.auxbar_.style.width = '0%';\n this.element_.classList.add('is-upgraded');\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialProgress,\n classAsString: 'MaterialProgress',\n cssClass: 'mdl-js-progress',\n widget: true\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Radio MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialRadio = function MaterialRadio(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialRadio'] = MaterialRadio;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialRadio.prototype.Constant_ = { TINY_TIMEOUT: 0.001 };\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialRadio.prototype.CssClasses_ = {\n IS_FOCUSED: 'is-focused',\n IS_DISABLED: 'is-disabled',\n IS_CHECKED: 'is-checked',\n IS_UPGRADED: 'is-upgraded',\n JS_RADIO: 'mdl-js-radio',\n RADIO_BTN: 'mdl-radio__button',\n RADIO_OUTER_CIRCLE: 'mdl-radio__outer-circle',\n RADIO_INNER_CIRCLE: 'mdl-radio__inner-circle',\n RIPPLE_EFFECT: 'mdl-js-ripple-effect',\n RIPPLE_IGNORE_EVENTS: 'mdl-js-ripple-effect--ignore-events',\n RIPPLE_CONTAINER: 'mdl-radio__ripple-container',\n RIPPLE_CENTER: 'mdl-ripple--center',\n RIPPLE: 'mdl-ripple'\n};\n/**\n * Handle change of state.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialRadio.prototype.onChange_ = function (event) {\n // Since other radio buttons don't get change events, we need to look for\n // them to update their classes.\n var radios = document.getElementsByClassName(this.CssClasses_.JS_RADIO);\n for (var i = 0; i < radios.length; i++) {\n var button = radios[i].querySelector('.' + this.CssClasses_.RADIO_BTN);\n // Different name == different group, so no point updating those.\n if (button.getAttribute('name') === this.btnElement_.getAttribute('name')) {\n if (typeof radios[i]['MaterialRadio'] !== 'undefined') {\n radios[i]['MaterialRadio'].updateClasses_();\n }\n }\n }\n};\n/**\n * Handle focus.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialRadio.prototype.onFocus_ = function (event) {\n this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n};\n/**\n * Handle lost focus.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialRadio.prototype.onBlur_ = function (event) {\n this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\n};\n/**\n * Handle mouseup.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialRadio.prototype.onMouseup_ = function (event) {\n this.blur_();\n};\n/**\n * Update classes.\n *\n * @private\n */\nMaterialRadio.prototype.updateClasses_ = function () {\n this.checkDisabled();\n this.checkToggleState();\n};\n/**\n * Add blur.\n *\n * @private\n */\nMaterialRadio.prototype.blur_ = function () {\n // TODO: figure out why there's a focus event being fired after our blur,\n // so that we can avoid this hack.\n window.setTimeout(function () {\n this.btnElement_.blur();\n }.bind(this), this.Constant_.TINY_TIMEOUT);\n};\n// Public methods.\n/**\n * Check the components disabled state.\n *\n * @public\n */\nMaterialRadio.prototype.checkDisabled = function () {\n if (this.btnElement_.disabled) {\n this.element_.classList.add(this.CssClasses_.IS_DISABLED);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_DISABLED);\n }\n};\nMaterialRadio.prototype['checkDisabled'] = MaterialRadio.prototype.checkDisabled;\n/**\n * Check the components toggled state.\n *\n * @public\n */\nMaterialRadio.prototype.checkToggleState = function () {\n if (this.btnElement_.checked) {\n this.element_.classList.add(this.CssClasses_.IS_CHECKED);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_CHECKED);\n }\n};\nMaterialRadio.prototype['checkToggleState'] = MaterialRadio.prototype.checkToggleState;\n/**\n * Disable radio.\n *\n * @public\n */\nMaterialRadio.prototype.disable = function () {\n this.btnElement_.disabled = true;\n this.updateClasses_();\n};\nMaterialRadio.prototype['disable'] = MaterialRadio.prototype.disable;\n/**\n * Enable radio.\n *\n * @public\n */\nMaterialRadio.prototype.enable = function () {\n this.btnElement_.disabled = false;\n this.updateClasses_();\n};\nMaterialRadio.prototype['enable'] = MaterialRadio.prototype.enable;\n/**\n * Check radio.\n *\n * @public\n */\nMaterialRadio.prototype.check = function () {\n this.btnElement_.checked = true;\n this.onChange_(null);\n};\nMaterialRadio.prototype['check'] = MaterialRadio.prototype.check;\n/**\n * Uncheck radio.\n *\n * @public\n */\nMaterialRadio.prototype.uncheck = function () {\n this.btnElement_.checked = false;\n this.onChange_(null);\n};\nMaterialRadio.prototype['uncheck'] = MaterialRadio.prototype.uncheck;\n/**\n * Initialize element.\n */\nMaterialRadio.prototype.init = function () {\n if (this.element_) {\n this.btnElement_ = this.element_.querySelector('.' + this.CssClasses_.RADIO_BTN);\n this.boundChangeHandler_ = this.onChange_.bind(this);\n this.boundFocusHandler_ = this.onChange_.bind(this);\n this.boundBlurHandler_ = this.onBlur_.bind(this);\n this.boundMouseUpHandler_ = this.onMouseup_.bind(this);\n var outerCircle = document.createElement('span');\n outerCircle.classList.add(this.CssClasses_.RADIO_OUTER_CIRCLE);\n var innerCircle = document.createElement('span');\n innerCircle.classList.add(this.CssClasses_.RADIO_INNER_CIRCLE);\n this.element_.appendChild(outerCircle);\n this.element_.appendChild(innerCircle);\n var rippleContainer;\n if (this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {\n this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS);\n rippleContainer = document.createElement('span');\n rippleContainer.classList.add(this.CssClasses_.RIPPLE_CONTAINER);\n rippleContainer.classList.add(this.CssClasses_.RIPPLE_EFFECT);\n rippleContainer.classList.add(this.CssClasses_.RIPPLE_CENTER);\n rippleContainer.addEventListener('mouseup', this.boundMouseUpHandler_);\n var ripple = document.createElement('span');\n ripple.classList.add(this.CssClasses_.RIPPLE);\n rippleContainer.appendChild(ripple);\n this.element_.appendChild(rippleContainer);\n }\n this.btnElement_.addEventListener('change', this.boundChangeHandler_);\n this.btnElement_.addEventListener('focus', this.boundFocusHandler_);\n this.btnElement_.addEventListener('blur', this.boundBlurHandler_);\n this.element_.addEventListener('mouseup', this.boundMouseUpHandler_);\n this.updateClasses_();\n this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialRadio,\n classAsString: 'MaterialRadio',\n cssClass: 'mdl-js-radio',\n widget: true\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Slider MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialSlider = function MaterialSlider(element) {\n this.element_ = element;\n // Browser feature detection.\n this.isIE_ = window.navigator.msPointerEnabled;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialSlider'] = MaterialSlider;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialSlider.prototype.Constant_ = {};\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialSlider.prototype.CssClasses_ = {\n IE_CONTAINER: 'mdl-slider__ie-container',\n SLIDER_CONTAINER: 'mdl-slider__container',\n BACKGROUND_FLEX: 'mdl-slider__background-flex',\n BACKGROUND_LOWER: 'mdl-slider__background-lower',\n BACKGROUND_UPPER: 'mdl-slider__background-upper',\n IS_LOWEST_VALUE: 'is-lowest-value',\n IS_UPGRADED: 'is-upgraded'\n};\n/**\n * Handle input on element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialSlider.prototype.onInput_ = function (event) {\n this.updateValueStyles_();\n};\n/**\n * Handle change on element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialSlider.prototype.onChange_ = function (event) {\n this.updateValueStyles_();\n};\n/**\n * Handle mouseup on element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialSlider.prototype.onMouseUp_ = function (event) {\n event.target.blur();\n};\n/**\n * Handle mousedown on container element.\n * This handler is purpose is to not require the use to click\n * exactly on the 2px slider element, as FireFox seems to be very\n * strict about this.\n *\n * @param {Event} event The event that fired.\n * @private\n * @suppress {missingProperties}\n */\nMaterialSlider.prototype.onContainerMouseDown_ = function (event) {\n // If this click is not on the parent element (but rather some child)\n // ignore. It may still bubble up.\n if (event.target !== this.element_.parentElement) {\n return;\n }\n // Discard the original event and create a new event that\n // is on the slider element.\n event.preventDefault();\n var newEvent = new MouseEvent('mousedown', {\n target: event.target,\n buttons: event.buttons,\n clientX: event.clientX,\n clientY: this.element_.getBoundingClientRect().y\n });\n this.element_.dispatchEvent(newEvent);\n};\n/**\n * Handle updating of values.\n *\n * @private\n */\nMaterialSlider.prototype.updateValueStyles_ = function () {\n // Calculate and apply percentages to div structure behind slider.\n var fraction = (this.element_.value - this.element_.min) / (this.element_.max - this.element_.min);\n if (fraction === 0) {\n this.element_.classList.add(this.CssClasses_.IS_LOWEST_VALUE);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_LOWEST_VALUE);\n }\n if (!this.isIE_) {\n this.backgroundLower_.style.flex = fraction;\n this.backgroundLower_.style.webkitFlex = fraction;\n this.backgroundUpper_.style.flex = 1 - fraction;\n this.backgroundUpper_.style.webkitFlex = 1 - fraction;\n }\n};\n// Public methods.\n/**\n * Disable slider.\n *\n * @public\n */\nMaterialSlider.prototype.disable = function () {\n this.element_.disabled = true;\n};\nMaterialSlider.prototype['disable'] = MaterialSlider.prototype.disable;\n/**\n * Enable slider.\n *\n * @public\n */\nMaterialSlider.prototype.enable = function () {\n this.element_.disabled = false;\n};\nMaterialSlider.prototype['enable'] = MaterialSlider.prototype.enable;\n/**\n * Update slider value.\n *\n * @param {number} value The value to which to set the control (optional).\n * @public\n */\nMaterialSlider.prototype.change = function (value) {\n if (typeof value !== 'undefined') {\n this.element_.value = value;\n }\n this.updateValueStyles_();\n};\nMaterialSlider.prototype['change'] = MaterialSlider.prototype.change;\n/**\n * Initialize element.\n */\nMaterialSlider.prototype.init = function () {\n if (this.element_) {\n if (this.isIE_) {\n // Since we need to specify a very large height in IE due to\n // implementation limitations, we add a parent here that trims it down to\n // a reasonable size.\n var containerIE = document.createElement('div');\n containerIE.classList.add(this.CssClasses_.IE_CONTAINER);\n this.element_.parentElement.insertBefore(containerIE, this.element_);\n this.element_.parentElement.removeChild(this.element_);\n containerIE.appendChild(this.element_);\n } else {\n // For non-IE browsers, we need a div structure that sits behind the\n // slider and allows us to style the left and right sides of it with\n // different colors.\n var container = document.createElement('div');\n container.classList.add(this.CssClasses_.SLIDER_CONTAINER);\n this.element_.parentElement.insertBefore(container, this.element_);\n this.element_.parentElement.removeChild(this.element_);\n container.appendChild(this.element_);\n var backgroundFlex = document.createElement('div');\n backgroundFlex.classList.add(this.CssClasses_.BACKGROUND_FLEX);\n container.appendChild(backgroundFlex);\n this.backgroundLower_ = document.createElement('div');\n this.backgroundLower_.classList.add(this.CssClasses_.BACKGROUND_LOWER);\n backgroundFlex.appendChild(this.backgroundLower_);\n this.backgroundUpper_ = document.createElement('div');\n this.backgroundUpper_.classList.add(this.CssClasses_.BACKGROUND_UPPER);\n backgroundFlex.appendChild(this.backgroundUpper_);\n }\n this.boundInputHandler = this.onInput_.bind(this);\n this.boundChangeHandler = this.onChange_.bind(this);\n this.boundMouseUpHandler = this.onMouseUp_.bind(this);\n this.boundContainerMouseDownHandler = this.onContainerMouseDown_.bind(this);\n this.element_.addEventListener('input', this.boundInputHandler);\n this.element_.addEventListener('change', this.boundChangeHandler);\n this.element_.addEventListener('mouseup', this.boundMouseUpHandler);\n this.element_.parentElement.addEventListener('mousedown', this.boundContainerMouseDownHandler);\n this.updateValueStyles_();\n this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialSlider,\n classAsString: 'MaterialSlider',\n cssClass: 'mdl-js-slider',\n widget: true\n});\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Snackbar MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialSnackbar = function MaterialSnackbar(element) {\n this.element_ = element;\n this.textElement_ = this.element_.querySelector('.' + this.cssClasses_.MESSAGE);\n this.actionElement_ = this.element_.querySelector('.' + this.cssClasses_.ACTION);\n if (!this.textElement_) {\n throw new Error('There must be a message element for a snackbar.');\n }\n if (!this.actionElement_) {\n throw new Error('There must be an action element for a snackbar.');\n }\n this.active = false;\n this.actionHandler_ = undefined;\n this.message_ = undefined;\n this.actionText_ = undefined;\n this.queuedNotifications_ = [];\n this.setActionHidden_(true);\n};\nwindow['MaterialSnackbar'] = MaterialSnackbar;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialSnackbar.prototype.Constant_ = {\n // The duration of the snackbar show/hide animation, in ms.\n ANIMATION_LENGTH: 250\n};\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialSnackbar.prototype.cssClasses_ = {\n SNACKBAR: 'mdl-snackbar',\n MESSAGE: 'mdl-snackbar__text',\n ACTION: 'mdl-snackbar__action',\n ACTIVE: 'mdl-snackbar--active'\n};\n/**\n * Display the snackbar.\n *\n * @private\n */\nMaterialSnackbar.prototype.displaySnackbar_ = function () {\n this.element_.setAttribute('aria-hidden', 'true');\n if (this.actionHandler_) {\n this.actionElement_.textContent = this.actionText_;\n this.actionElement_.addEventListener('click', this.actionHandler_);\n this.setActionHidden_(false);\n }\n this.textElement_.textContent = this.message_;\n this.element_.classList.add(this.cssClasses_.ACTIVE);\n this.element_.setAttribute('aria-hidden', 'false');\n setTimeout(this.cleanup_.bind(this), this.timeout_);\n};\n/**\n * Show the snackbar.\n *\n * @param {Object} data The data for the notification.\n * @public\n */\nMaterialSnackbar.prototype.showSnackbar = function (data) {\n if (data === undefined) {\n throw new Error('Please provide a data object with at least a message to display.');\n }\n if (data['message'] === undefined) {\n throw new Error('Please provide a message to be displayed.');\n }\n if (data['actionHandler'] && !data['actionText']) {\n throw new Error('Please provide action text with the handler.');\n }\n if (this.active) {\n this.queuedNotifications_.push(data);\n } else {\n this.active = true;\n this.message_ = data['message'];\n if (data['timeout']) {\n this.timeout_ = data['timeout'];\n } else {\n this.timeout_ = 2750;\n }\n if (data['actionHandler']) {\n this.actionHandler_ = data['actionHandler'];\n }\n if (data['actionText']) {\n this.actionText_ = data['actionText'];\n }\n this.displaySnackbar_();\n }\n};\nMaterialSnackbar.prototype['showSnackbar'] = MaterialSnackbar.prototype.showSnackbar;\n/**\n * Check if the queue has items within it.\n * If it does, display the next entry.\n *\n * @private\n */\nMaterialSnackbar.prototype.checkQueue_ = function () {\n if (this.queuedNotifications_.length > 0) {\n this.showSnackbar(this.queuedNotifications_.shift());\n }\n};\n/**\n * Cleanup the snackbar event listeners and accessiblity attributes.\n *\n * @private\n */\nMaterialSnackbar.prototype.cleanup_ = function () {\n this.element_.classList.remove(this.cssClasses_.ACTIVE);\n setTimeout(function () {\n this.element_.setAttribute('aria-hidden', 'true');\n this.textElement_.textContent = '';\n if (!Boolean(this.actionElement_.getAttribute('aria-hidden'))) {\n this.setActionHidden_(true);\n this.actionElement_.textContent = '';\n this.actionElement_.removeEventListener('click', this.actionHandler_);\n }\n this.actionHandler_ = undefined;\n this.message_ = undefined;\n this.actionText_ = undefined;\n this.active = false;\n this.checkQueue_();\n }.bind(this), this.Constant_.ANIMATION_LENGTH);\n};\n/**\n * Set the action handler hidden state.\n *\n * @param {boolean} value\n * @private\n */\nMaterialSnackbar.prototype.setActionHidden_ = function (value) {\n if (value) {\n this.actionElement_.setAttribute('aria-hidden', 'true');\n } else {\n this.actionElement_.removeAttribute('aria-hidden');\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialSnackbar,\n classAsString: 'MaterialSnackbar',\n cssClass: 'mdl-js-snackbar',\n widget: true\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Spinner MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @param {HTMLElement} element The element that will be upgraded.\n * @constructor\n */\nvar MaterialSpinner = function MaterialSpinner(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialSpinner'] = MaterialSpinner;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialSpinner.prototype.Constant_ = { MDL_SPINNER_LAYER_COUNT: 4 };\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialSpinner.prototype.CssClasses_ = {\n MDL_SPINNER_LAYER: 'mdl-spinner__layer',\n MDL_SPINNER_CIRCLE_CLIPPER: 'mdl-spinner__circle-clipper',\n MDL_SPINNER_CIRCLE: 'mdl-spinner__circle',\n MDL_SPINNER_GAP_PATCH: 'mdl-spinner__gap-patch',\n MDL_SPINNER_LEFT: 'mdl-spinner__left',\n MDL_SPINNER_RIGHT: 'mdl-spinner__right'\n};\n/**\n * Auxiliary method to create a spinner layer.\n *\n * @param {number} index Index of the layer to be created.\n * @public\n */\nMaterialSpinner.prototype.createLayer = function (index) {\n var layer = document.createElement('div');\n layer.classList.add(this.CssClasses_.MDL_SPINNER_LAYER);\n layer.classList.add(this.CssClasses_.MDL_SPINNER_LAYER + '-' + index);\n var leftClipper = document.createElement('div');\n leftClipper.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER);\n leftClipper.classList.add(this.CssClasses_.MDL_SPINNER_LEFT);\n var gapPatch = document.createElement('div');\n gapPatch.classList.add(this.CssClasses_.MDL_SPINNER_GAP_PATCH);\n var rightClipper = document.createElement('div');\n rightClipper.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE_CLIPPER);\n rightClipper.classList.add(this.CssClasses_.MDL_SPINNER_RIGHT);\n var circleOwners = [\n leftClipper,\n gapPatch,\n rightClipper\n ];\n for (var i = 0; i < circleOwners.length; i++) {\n var circle = document.createElement('div');\n circle.classList.add(this.CssClasses_.MDL_SPINNER_CIRCLE);\n circleOwners[i].appendChild(circle);\n }\n layer.appendChild(leftClipper);\n layer.appendChild(gapPatch);\n layer.appendChild(rightClipper);\n this.element_.appendChild(layer);\n};\nMaterialSpinner.prototype['createLayer'] = MaterialSpinner.prototype.createLayer;\n/**\n * Stops the spinner animation.\n * Public method for users who need to stop the spinner for any reason.\n *\n * @public\n */\nMaterialSpinner.prototype.stop = function () {\n this.element_.classList.remove('is-active');\n};\nMaterialSpinner.prototype['stop'] = MaterialSpinner.prototype.stop;\n/**\n * Starts the spinner animation.\n * Public method for users who need to manually start the spinner for any reason\n * (instead of just adding the 'is-active' class to their markup).\n *\n * @public\n */\nMaterialSpinner.prototype.start = function () {\n this.element_.classList.add('is-active');\n};\nMaterialSpinner.prototype['start'] = MaterialSpinner.prototype.start;\n/**\n * Initialize element.\n */\nMaterialSpinner.prototype.init = function () {\n if (this.element_) {\n for (var i = 1; i <= this.Constant_.MDL_SPINNER_LAYER_COUNT; i++) {\n this.createLayer(i);\n }\n this.element_.classList.add('is-upgraded');\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialSpinner,\n classAsString: 'MaterialSpinner',\n cssClass: 'mdl-js-spinner',\n widget: true\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Checkbox MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialSwitch = function MaterialSwitch(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialSwitch'] = MaterialSwitch;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialSwitch.prototype.Constant_ = { TINY_TIMEOUT: 0.001 };\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialSwitch.prototype.CssClasses_ = {\n INPUT: 'mdl-switch__input',\n TRACK: 'mdl-switch__track',\n THUMB: 'mdl-switch__thumb',\n FOCUS_HELPER: 'mdl-switch__focus-helper',\n RIPPLE_EFFECT: 'mdl-js-ripple-effect',\n RIPPLE_IGNORE_EVENTS: 'mdl-js-ripple-effect--ignore-events',\n RIPPLE_CONTAINER: 'mdl-switch__ripple-container',\n RIPPLE_CENTER: 'mdl-ripple--center',\n RIPPLE: 'mdl-ripple',\n IS_FOCUSED: 'is-focused',\n IS_DISABLED: 'is-disabled',\n IS_CHECKED: 'is-checked'\n};\n/**\n * Handle change of state.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialSwitch.prototype.onChange_ = function (event) {\n this.updateClasses_();\n};\n/**\n * Handle focus of element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialSwitch.prototype.onFocus_ = function (event) {\n this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n};\n/**\n * Handle lost focus of element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialSwitch.prototype.onBlur_ = function (event) {\n this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\n};\n/**\n * Handle mouseup.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialSwitch.prototype.onMouseUp_ = function (event) {\n this.blur_();\n};\n/**\n * Handle class updates.\n *\n * @private\n */\nMaterialSwitch.prototype.updateClasses_ = function () {\n this.checkDisabled();\n this.checkToggleState();\n};\n/**\n * Add blur.\n *\n * @private\n */\nMaterialSwitch.prototype.blur_ = function () {\n // TODO: figure out why there's a focus event being fired after our blur,\n // so that we can avoid this hack.\n window.setTimeout(function () {\n this.inputElement_.blur();\n }.bind(this), this.Constant_.TINY_TIMEOUT);\n};\n// Public methods.\n/**\n * Check the components disabled state.\n *\n * @public\n */\nMaterialSwitch.prototype.checkDisabled = function () {\n if (this.inputElement_.disabled) {\n this.element_.classList.add(this.CssClasses_.IS_DISABLED);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_DISABLED);\n }\n};\nMaterialSwitch.prototype['checkDisabled'] = MaterialSwitch.prototype.checkDisabled;\n/**\n * Check the components toggled state.\n *\n * @public\n */\nMaterialSwitch.prototype.checkToggleState = function () {\n if (this.inputElement_.checked) {\n this.element_.classList.add(this.CssClasses_.IS_CHECKED);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_CHECKED);\n }\n};\nMaterialSwitch.prototype['checkToggleState'] = MaterialSwitch.prototype.checkToggleState;\n/**\n * Disable switch.\n *\n * @public\n */\nMaterialSwitch.prototype.disable = function () {\n this.inputElement_.disabled = true;\n this.updateClasses_();\n};\nMaterialSwitch.prototype['disable'] = MaterialSwitch.prototype.disable;\n/**\n * Enable switch.\n *\n * @public\n */\nMaterialSwitch.prototype.enable = function () {\n this.inputElement_.disabled = false;\n this.updateClasses_();\n};\nMaterialSwitch.prototype['enable'] = MaterialSwitch.prototype.enable;\n/**\n * Activate switch.\n *\n * @public\n */\nMaterialSwitch.prototype.on = function () {\n this.inputElement_.checked = true;\n this.updateClasses_();\n};\nMaterialSwitch.prototype['on'] = MaterialSwitch.prototype.on;\n/**\n * Deactivate switch.\n *\n * @public\n */\nMaterialSwitch.prototype.off = function () {\n this.inputElement_.checked = false;\n this.updateClasses_();\n};\nMaterialSwitch.prototype['off'] = MaterialSwitch.prototype.off;\n/**\n * Initialize element.\n */\nMaterialSwitch.prototype.init = function () {\n if (this.element_) {\n this.inputElement_ = this.element_.querySelector('.' + this.CssClasses_.INPUT);\n var track = document.createElement('div');\n track.classList.add(this.CssClasses_.TRACK);\n var thumb = document.createElement('div');\n thumb.classList.add(this.CssClasses_.THUMB);\n var focusHelper = document.createElement('span');\n focusHelper.classList.add(this.CssClasses_.FOCUS_HELPER);\n thumb.appendChild(focusHelper);\n this.element_.appendChild(track);\n this.element_.appendChild(thumb);\n this.boundMouseUpHandler = this.onMouseUp_.bind(this);\n if (this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT)) {\n this.element_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS);\n this.rippleContainerElement_ = document.createElement('span');\n this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CONTAINER);\n this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_EFFECT);\n this.rippleContainerElement_.classList.add(this.CssClasses_.RIPPLE_CENTER);\n this.rippleContainerElement_.addEventListener('mouseup', this.boundMouseUpHandler);\n var ripple = document.createElement('span');\n ripple.classList.add(this.CssClasses_.RIPPLE);\n this.rippleContainerElement_.appendChild(ripple);\n this.element_.appendChild(this.rippleContainerElement_);\n }\n this.boundChangeHandler = this.onChange_.bind(this);\n this.boundFocusHandler = this.onFocus_.bind(this);\n this.boundBlurHandler = this.onBlur_.bind(this);\n this.inputElement_.addEventListener('change', this.boundChangeHandler);\n this.inputElement_.addEventListener('focus', this.boundFocusHandler);\n this.inputElement_.addEventListener('blur', this.boundBlurHandler);\n this.element_.addEventListener('mouseup', this.boundMouseUpHandler);\n this.updateClasses_();\n this.element_.classList.add('is-upgraded');\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialSwitch,\n classAsString: 'MaterialSwitch',\n cssClass: 'mdl-js-switch',\n widget: true\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Tabs MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {Element} element The element that will be upgraded.\n */\nvar MaterialTabs = function MaterialTabs(element) {\n // Stores the HTML element.\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialTabs'] = MaterialTabs;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string}\n * @private\n */\nMaterialTabs.prototype.Constant_ = {};\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialTabs.prototype.CssClasses_ = {\n TAB_CLASS: 'mdl-tabs__tab',\n PANEL_CLASS: 'mdl-tabs__panel',\n ACTIVE_CLASS: 'is-active',\n UPGRADED_CLASS: 'is-upgraded',\n MDL_JS_RIPPLE_EFFECT: 'mdl-js-ripple-effect',\n MDL_RIPPLE_CONTAINER: 'mdl-tabs__ripple-container',\n MDL_RIPPLE: 'mdl-ripple',\n MDL_JS_RIPPLE_EFFECT_IGNORE_EVENTS: 'mdl-js-ripple-effect--ignore-events'\n};\n/**\n * Handle clicks to a tabs component\n *\n * @private\n */\nMaterialTabs.prototype.initTabs_ = function () {\n if (this.element_.classList.contains(this.CssClasses_.MDL_JS_RIPPLE_EFFECT)) {\n this.element_.classList.add(this.CssClasses_.MDL_JS_RIPPLE_EFFECT_IGNORE_EVENTS);\n }\n // Select element tabs, document panels\n this.tabs_ = this.element_.querySelectorAll('.' + this.CssClasses_.TAB_CLASS);\n this.panels_ = this.element_.querySelectorAll('.' + this.CssClasses_.PANEL_CLASS);\n // Create new tabs for each tab element\n for (var i = 0; i < this.tabs_.length; i++) {\n new MaterialTab(this.tabs_[i], this);\n }\n this.element_.classList.add(this.CssClasses_.UPGRADED_CLASS);\n};\n/**\n * Reset tab state, dropping active classes\n *\n * @private\n */\nMaterialTabs.prototype.resetTabState_ = function () {\n for (var k = 0; k < this.tabs_.length; k++) {\n this.tabs_[k].classList.remove(this.CssClasses_.ACTIVE_CLASS);\n }\n};\n/**\n * Reset panel state, droping active classes\n *\n * @private\n */\nMaterialTabs.prototype.resetPanelState_ = function () {\n for (var j = 0; j < this.panels_.length; j++) {\n this.panels_[j].classList.remove(this.CssClasses_.ACTIVE_CLASS);\n }\n};\n/**\n * Initialize element.\n */\nMaterialTabs.prototype.init = function () {\n if (this.element_) {\n this.initTabs_();\n }\n};\n/**\n * Constructor for an individual tab.\n *\n * @constructor\n * @param {Element} tab The HTML element for the tab.\n * @param {MaterialTabs} ctx The MaterialTabs object that owns the tab.\n */\nfunction MaterialTab(tab, ctx) {\n if (tab) {\n if (ctx.element_.classList.contains(ctx.CssClasses_.MDL_JS_RIPPLE_EFFECT)) {\n var rippleContainer = document.createElement('span');\n rippleContainer.classList.add(ctx.CssClasses_.MDL_RIPPLE_CONTAINER);\n rippleContainer.classList.add(ctx.CssClasses_.MDL_JS_RIPPLE_EFFECT);\n var ripple = document.createElement('span');\n ripple.classList.add(ctx.CssClasses_.MDL_RIPPLE);\n rippleContainer.appendChild(ripple);\n tab.appendChild(rippleContainer);\n }\n tab.addEventListener('click', function (e) {\n if (tab.getAttribute('href').charAt(0) === '#') {\n e.preventDefault();\n var href = tab.href.split('#')[1];\n var panel = ctx.element_.querySelector('#' + href);\n ctx.resetTabState_();\n ctx.resetPanelState_();\n tab.classList.add(ctx.CssClasses_.ACTIVE_CLASS);\n panel.classList.add(ctx.CssClasses_.ACTIVE_CLASS);\n }\n });\n }\n}\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialTabs,\n classAsString: 'MaterialTabs',\n cssClass: 'mdl-js-tabs'\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Textfield MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialTextfield = function MaterialTextfield(element) {\n this.element_ = element;\n this.maxRows = this.Constant_.NO_MAX_ROWS;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialTextfield'] = MaterialTextfield;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialTextfield.prototype.Constant_ = {\n NO_MAX_ROWS: -1,\n MAX_ROWS_ATTRIBUTE: 'maxrows'\n};\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialTextfield.prototype.CssClasses_ = {\n LABEL: 'mdl-textfield__label',\n INPUT: 'mdl-textfield__input',\n IS_DIRTY: 'is-dirty',\n IS_FOCUSED: 'is-focused',\n IS_DISABLED: 'is-disabled',\n IS_INVALID: 'is-invalid',\n IS_UPGRADED: 'is-upgraded',\n HAS_PLACEHOLDER: 'has-placeholder'\n};\n/**\n * Handle input being entered.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialTextfield.prototype.onKeyDown_ = function (event) {\n var currentRowCount = event.target.value.split('\\n').length;\n if (event.keyCode === 13) {\n if (currentRowCount >= this.maxRows) {\n event.preventDefault();\n }\n }\n};\n/**\n * Handle focus.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialTextfield.prototype.onFocus_ = function (event) {\n this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n};\n/**\n * Handle lost focus.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialTextfield.prototype.onBlur_ = function (event) {\n this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\n};\n/**\n * Handle reset event from out side.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialTextfield.prototype.onReset_ = function (event) {\n this.updateClasses_();\n};\n/**\n * Handle class updates.\n *\n * @private\n */\nMaterialTextfield.prototype.updateClasses_ = function () {\n this.checkDisabled();\n this.checkValidity();\n this.checkDirty();\n this.checkFocus();\n};\n// Public methods.\n/**\n * Check the disabled state and update field accordingly.\n *\n * @public\n */\nMaterialTextfield.prototype.checkDisabled = function () {\n if (this.input_.disabled) {\n this.element_.classList.add(this.CssClasses_.IS_DISABLED);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_DISABLED);\n }\n};\nMaterialTextfield.prototype['checkDisabled'] = MaterialTextfield.prototype.checkDisabled;\n/**\n * Check the focus state and update field accordingly.\n *\n * @public\n */\nMaterialTextfield.prototype.checkFocus = function () {\n if (Boolean(this.element_.querySelector(':focus'))) {\n this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\n }\n};\nMaterialTextfield.prototype['checkFocus'] = MaterialTextfield.prototype.checkFocus;\n/**\n * Check the validity state and update field accordingly.\n *\n * @public\n */\nMaterialTextfield.prototype.checkValidity = function () {\n if (this.input_.validity) {\n if (this.input_.validity.valid) {\n this.element_.classList.remove(this.CssClasses_.IS_INVALID);\n } else {\n this.element_.classList.add(this.CssClasses_.IS_INVALID);\n }\n }\n};\nMaterialTextfield.prototype['checkValidity'] = MaterialTextfield.prototype.checkValidity;\n/**\n * Check the dirty state and update field accordingly.\n *\n * @public\n */\nMaterialTextfield.prototype.checkDirty = function () {\n if (this.input_.value && this.input_.value.length > 0) {\n this.element_.classList.add(this.CssClasses_.IS_DIRTY);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_DIRTY);\n }\n};\nMaterialTextfield.prototype['checkDirty'] = MaterialTextfield.prototype.checkDirty;\n/**\n * Disable text field.\n *\n * @public\n */\nMaterialTextfield.prototype.disable = function () {\n this.input_.disabled = true;\n this.updateClasses_();\n};\nMaterialTextfield.prototype['disable'] = MaterialTextfield.prototype.disable;\n/**\n * Enable text field.\n *\n * @public\n */\nMaterialTextfield.prototype.enable = function () {\n this.input_.disabled = false;\n this.updateClasses_();\n};\nMaterialTextfield.prototype['enable'] = MaterialTextfield.prototype.enable;\n/**\n * Update text field value.\n *\n * @param {string} value The value to which to set the control (optional).\n * @public\n */\nMaterialTextfield.prototype.change = function (value) {\n this.input_.value = value || '';\n this.updateClasses_();\n};\nMaterialTextfield.prototype['change'] = MaterialTextfield.prototype.change;\n/**\n * Initialize element.\n */\nMaterialTextfield.prototype.init = function () {\n if (this.element_) {\n this.label_ = this.element_.querySelector('.' + this.CssClasses_.LABEL);\n this.input_ = this.element_.querySelector('.' + this.CssClasses_.INPUT);\n if (this.input_) {\n if (this.input_.hasAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE)) {\n this.maxRows = parseInt(this.input_.getAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE), 10);\n if (isNaN(this.maxRows)) {\n this.maxRows = this.Constant_.NO_MAX_ROWS;\n }\n }\n if (this.input_.hasAttribute('placeholder')) {\n this.element_.classList.add(this.CssClasses_.HAS_PLACEHOLDER);\n }\n this.boundUpdateClassesHandler = this.updateClasses_.bind(this);\n this.boundFocusHandler = this.onFocus_.bind(this);\n this.boundBlurHandler = this.onBlur_.bind(this);\n this.boundResetHandler = this.onReset_.bind(this);\n this.input_.addEventListener('input', this.boundUpdateClassesHandler);\n this.input_.addEventListener('focus', this.boundFocusHandler);\n this.input_.addEventListener('blur', this.boundBlurHandler);\n this.input_.addEventListener('reset', this.boundResetHandler);\n if (this.maxRows !== this.Constant_.NO_MAX_ROWS) {\n // TODO: This should handle pasting multi line text.\n // Currently doesn't.\n this.boundKeyDownHandler = this.onKeyDown_.bind(this);\n this.input_.addEventListener('keydown', this.boundKeyDownHandler);\n }\n var invalid = this.element_.classList.contains(this.CssClasses_.IS_INVALID);\n this.updateClasses_();\n this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n if (invalid) {\n this.element_.classList.add(this.CssClasses_.IS_INVALID);\n }\n if (this.input_.hasAttribute('autofocus')) {\n this.element_.focus();\n this.checkFocus();\n }\n }\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialTextfield,\n classAsString: 'MaterialTextfield',\n cssClass: 'mdl-js-textfield',\n widget: true\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Tooltip MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialTooltip = function MaterialTooltip(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialTooltip'] = MaterialTooltip;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialTooltip.prototype.Constant_ = {};\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialTooltip.prototype.CssClasses_ = {\n IS_ACTIVE: 'is-active',\n BOTTOM: 'mdl-tooltip--bottom',\n LEFT: 'mdl-tooltip--left',\n RIGHT: 'mdl-tooltip--right',\n TOP: 'mdl-tooltip--top'\n};\n/**\n * Handle mouseenter for tooltip.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialTooltip.prototype.handleMouseEnter_ = function (event) {\n var props = event.target.getBoundingClientRect();\n var left = props.left + props.width / 2;\n var top = props.top + props.height / 2;\n var marginLeft = -1 * (this.element_.offsetWidth / 2);\n var marginTop = -1 * (this.element_.offsetHeight / 2);\n if (this.element_.classList.contains(this.CssClasses_.LEFT) || this.element_.classList.contains(this.CssClasses_.RIGHT)) {\n left = props.width / 2;\n if (top + marginTop < 0) {\n this.element_.style.top = '0';\n this.element_.style.marginTop = '0';\n } else {\n this.element_.style.top = top + 'px';\n this.element_.style.marginTop = marginTop + 'px';\n }\n } else {\n if (left + marginLeft < 0) {\n this.element_.style.left = '0';\n this.element_.style.marginLeft = '0';\n } else {\n this.element_.style.left = left + 'px';\n this.element_.style.marginLeft = marginLeft + 'px';\n }\n }\n if (this.element_.classList.contains(this.CssClasses_.TOP)) {\n this.element_.style.top = props.top - this.element_.offsetHeight - 10 + 'px';\n } else if (this.element_.classList.contains(this.CssClasses_.RIGHT)) {\n this.element_.style.left = props.left + props.width + 10 + 'px';\n } else if (this.element_.classList.contains(this.CssClasses_.LEFT)) {\n this.element_.style.left = props.left - this.element_.offsetWidth - 10 + 'px';\n } else {\n this.element_.style.top = props.top + props.height + 10 + 'px';\n }\n this.element_.classList.add(this.CssClasses_.IS_ACTIVE);\n};\n/**\n * Hide tooltip on mouseleave or scroll\n *\n * @private\n */\nMaterialTooltip.prototype.hideTooltip_ = function () {\n this.element_.classList.remove(this.CssClasses_.IS_ACTIVE);\n};\n/**\n * Initialize element.\n */\nMaterialTooltip.prototype.init = function () {\n if (this.element_) {\n var forElId = this.element_.getAttribute('for') || this.element_.getAttribute('data-mdl-for');\n if (forElId) {\n this.forElement_ = document.getElementById(forElId);\n }\n if (this.forElement_) {\n // It's left here because it prevents accidental text selection on Android\n if (!this.forElement_.hasAttribute('tabindex')) {\n this.forElement_.setAttribute('tabindex', '0');\n }\n this.boundMouseEnterHandler = this.handleMouseEnter_.bind(this);\n this.boundMouseLeaveAndScrollHandler = this.hideTooltip_.bind(this);\n this.forElement_.addEventListener('mouseenter', this.boundMouseEnterHandler, false);\n this.forElement_.addEventListener('touchend', this.boundMouseEnterHandler, false);\n this.forElement_.addEventListener('mouseleave', this.boundMouseLeaveAndScrollHandler, false);\n window.addEventListener('scroll', this.boundMouseLeaveAndScrollHandler, true);\n window.addEventListener('touchstart', this.boundMouseLeaveAndScrollHandler, { passive: true });\n }\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialTooltip,\n classAsString: 'MaterialTooltip',\n cssClass: 'mdl-tooltip'\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Layout MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialLayout = function MaterialLayout(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialLayout'] = MaterialLayout;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialLayout.prototype.Constant_ = {\n MAX_WIDTH: '(max-width: 1024px)',\n TAB_SCROLL_PIXELS: 100,\n RESIZE_TIMEOUT: 100,\n MENU_ICON: '&#xE5D2;',\n CHEVRON_LEFT: 'chevron_left',\n CHEVRON_RIGHT: 'chevron_right'\n};\n/**\n * Keycodes, for code readability.\n *\n * @enum {number}\n * @private\n */\nMaterialLayout.prototype.Keycodes_ = {\n ENTER: 13,\n ESCAPE: 27,\n SPACE: 32\n};\n/**\n * Modes.\n *\n * @enum {number}\n * @private\n */\nMaterialLayout.prototype.Mode_ = {\n STANDARD: 0,\n SEAMED: 1,\n WATERFALL: 2,\n SCROLL: 3\n};\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialLayout.prototype.CssClasses_ = {\n CONTAINER: 'mdl-layout__container',\n HEADER: 'mdl-layout__header',\n DRAWER: 'mdl-layout__drawer',\n CONTENT: 'mdl-layout__content',\n DRAWER_BTN: 'mdl-layout__drawer-button',\n ICON: 'material-icons',\n JS_RIPPLE_EFFECT: 'mdl-js-ripple-effect',\n RIPPLE_CONTAINER: 'mdl-layout__tab-ripple-container',\n RIPPLE: 'mdl-ripple',\n RIPPLE_IGNORE_EVENTS: 'mdl-js-ripple-effect--ignore-events',\n HEADER_SEAMED: 'mdl-layout__header--seamed',\n HEADER_WATERFALL: 'mdl-layout__header--waterfall',\n HEADER_SCROLL: 'mdl-layout__header--scroll',\n FIXED_HEADER: 'mdl-layout--fixed-header',\n OBFUSCATOR: 'mdl-layout__obfuscator',\n TAB_BAR: 'mdl-layout__tab-bar',\n TAB_CONTAINER: 'mdl-layout__tab-bar-container',\n TAB: 'mdl-layout__tab',\n TAB_BAR_BUTTON: 'mdl-layout__tab-bar-button',\n TAB_BAR_LEFT_BUTTON: 'mdl-layout__tab-bar-left-button',\n TAB_BAR_RIGHT_BUTTON: 'mdl-layout__tab-bar-right-button',\n TAB_MANUAL_SWITCH: 'mdl-layout__tab-manual-switch',\n PANEL: 'mdl-layout__tab-panel',\n HAS_DRAWER: 'has-drawer',\n HAS_TABS: 'has-tabs',\n HAS_SCROLLING_HEADER: 'has-scrolling-header',\n CASTING_SHADOW: 'is-casting-shadow',\n IS_COMPACT: 'is-compact',\n IS_SMALL_SCREEN: 'is-small-screen',\n IS_DRAWER_OPEN: 'is-visible',\n IS_ACTIVE: 'is-active',\n IS_UPGRADED: 'is-upgraded',\n IS_ANIMATING: 'is-animating',\n ON_LARGE_SCREEN: 'mdl-layout--large-screen-only',\n ON_SMALL_SCREEN: 'mdl-layout--small-screen-only'\n};\n/**\n * Handles scrolling on the content.\n *\n * @private\n */\nMaterialLayout.prototype.contentScrollHandler_ = function () {\n if (this.header_.classList.contains(this.CssClasses_.IS_ANIMATING)) {\n return;\n }\n var headerVisible = !this.element_.classList.contains(this.CssClasses_.IS_SMALL_SCREEN) || this.element_.classList.contains(this.CssClasses_.FIXED_HEADER);\n if (this.content_.scrollTop > 0 && !this.header_.classList.contains(this.CssClasses_.IS_COMPACT)) {\n this.header_.classList.add(this.CssClasses_.CASTING_SHADOW);\n this.header_.classList.add(this.CssClasses_.IS_COMPACT);\n if (headerVisible) {\n this.header_.classList.add(this.CssClasses_.IS_ANIMATING);\n }\n } else if (this.content_.scrollTop <= 0 && this.header_.classList.contains(this.CssClasses_.IS_COMPACT)) {\n this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW);\n this.header_.classList.remove(this.CssClasses_.IS_COMPACT);\n if (headerVisible) {\n this.header_.classList.add(this.CssClasses_.IS_ANIMATING);\n }\n }\n};\n/**\n * Handles a keyboard event on the drawer.\n *\n * @param {Event} evt The event that fired.\n * @private\n */\nMaterialLayout.prototype.keyboardEventHandler_ = function (evt) {\n // Only react when the drawer is open.\n if (evt.keyCode === this.Keycodes_.ESCAPE && this.drawer_.classList.contains(this.CssClasses_.IS_DRAWER_OPEN)) {\n this.toggleDrawer();\n }\n};\n/**\n * Handles changes in screen size.\n *\n * @private\n */\nMaterialLayout.prototype.screenSizeHandler_ = function () {\n if (this.screenSizeMediaQuery_.matches) {\n this.element_.classList.add(this.CssClasses_.IS_SMALL_SCREEN);\n } else {\n this.element_.classList.remove(this.CssClasses_.IS_SMALL_SCREEN);\n // Collapse drawer (if any) when moving to a large screen size.\n if (this.drawer_) {\n this.drawer_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN);\n this.obfuscator_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN);\n }\n }\n};\n/**\n * Handles events of drawer button.\n *\n * @param {Event} evt The event that fired.\n * @private\n */\nMaterialLayout.prototype.drawerToggleHandler_ = function (evt) {\n if (evt && evt.type === 'keydown') {\n if (evt.keyCode === this.Keycodes_.SPACE || evt.keyCode === this.Keycodes_.ENTER) {\n // prevent scrolling in drawer nav\n evt.preventDefault();\n } else {\n // prevent other keys\n return;\n }\n }\n this.toggleDrawer();\n};\n/**\n * Handles (un)setting the `is-animating` class\n *\n * @private\n */\nMaterialLayout.prototype.headerTransitionEndHandler_ = function () {\n this.header_.classList.remove(this.CssClasses_.IS_ANIMATING);\n};\n/**\n * Handles expanding the header on click\n *\n * @private\n */\nMaterialLayout.prototype.headerClickHandler_ = function () {\n if (this.header_.classList.contains(this.CssClasses_.IS_COMPACT)) {\n this.header_.classList.remove(this.CssClasses_.IS_COMPACT);\n this.header_.classList.add(this.CssClasses_.IS_ANIMATING);\n }\n};\n/**\n * Reset tab state, dropping active classes\n *\n * @private\n */\nMaterialLayout.prototype.resetTabState_ = function (tabBar) {\n for (var k = 0; k < tabBar.length; k++) {\n tabBar[k].classList.remove(this.CssClasses_.IS_ACTIVE);\n }\n};\n/**\n * Reset panel state, droping active classes\n *\n * @private\n */\nMaterialLayout.prototype.resetPanelState_ = function (panels) {\n for (var j = 0; j < panels.length; j++) {\n panels[j].classList.remove(this.CssClasses_.IS_ACTIVE);\n }\n};\n/**\n * Toggle drawer state\n *\n * @public\n */\nMaterialLayout.prototype.toggleDrawer = function () {\n var drawerButton = this.element_.querySelector('.' + this.CssClasses_.DRAWER_BTN);\n this.drawer_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN);\n this.obfuscator_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN);\n // Set accessibility properties.\n if (this.drawer_.classList.contains(this.CssClasses_.IS_DRAWER_OPEN)) {\n this.drawer_.setAttribute('aria-hidden', 'false');\n drawerButton.setAttribute('aria-expanded', 'true');\n } else {\n this.drawer_.setAttribute('aria-hidden', 'true');\n drawerButton.setAttribute('aria-expanded', 'false');\n }\n};\nMaterialLayout.prototype['toggleDrawer'] = MaterialLayout.prototype.toggleDrawer;\n/**\n * Initialize element.\n */\nMaterialLayout.prototype.init = function () {\n if (this.element_) {\n //var container = document.createElement('div');\n //container.classList.add(this.CssClasses_.CONTAINER); \n //this.element_.parentElement.insertBefore(container, this.element_);\n //this.element_.parentElement.removeChild(this.element_);\n //container.appendChild(this.element_);\n this.element_.style.overflowX = 'hidden'; \n\n this.header_ = this.element_.querySelector('.' + this.CssClasses_.HEADER);\n this.drawer_ = this.element_.querySelector('.' + this.CssClasses_.DRAWER);\n this.content_ = this.element_.querySelector('.' + this.CssClasses_.CONTENT);\n\n //var directChildren = this.element_.childNodes;\n //var numChildren = directChildren.length;\n //for (var c = 0; c < numChildren; c++) {\n // var child = directChildren[c];\n // if (child.classList && child.classList.contains(this.CssClasses_.HEADER)) {\n // this.header_ = child;\n // }\n // if (child.classList && child.classList.contains(this.CssClasses_.DRAWER)) {\n // this.drawer_ = child;\n // }\n // if (child.classList && child.classList.contains(this.CssClasses_.CONTENT)) {\n // this.content_ = child;\n // }\n //}\n //window.addEventListener('pageshow', function (e) {\n // if (e.persisted) {\n // // when page is loaded from back/forward cache\n // // trigger repaint to let layout scroll in safari\n // this.element_.style.overflowY = 'hidden';\n // requestAnimationFrame(function () {\n // this.element_.style.overflowY = '';\n // }.bind(this));\n // }\n //}.bind(this), false);\n if (this.header_) {\n this.tabBar_ = this.header_.querySelector('.' + this.CssClasses_.TAB_BAR);\n }\n var mode = this.Mode_.STANDARD;\n //if (this.header_) {\n // if (this.header_.classList.contains(this.CssClasses_.HEADER_SEAMED)) {\n // mode = this.Mode_.SEAMED;\n // } else if (this.header_.classList.contains(this.CssClasses_.HEADER_WATERFALL)) {\n // mode = this.Mode_.WATERFALL;\n // this.header_.addEventListener('transitionend', this.headerTransitionEndHandler_.bind(this));\n // this.header_.addEventListener('click', this.headerClickHandler_.bind(this));\n // } else if (this.header_.classList.contains(this.CssClasses_.HEADER_SCROLL)) {\n // mode = this.Mode_.SCROLL;\n // //container.classList.add(this.CssClasses_.HAS_SCROLLING_HEADER);\n // }\n // if (mode === this.Mode_.STANDARD) {\n // this.header_.classList.add(this.CssClasses_.CASTING_SHADOW);\n // if (this.tabBar_) {\n // this.tabBar_.classList.add(this.CssClasses_.CASTING_SHADOW);\n // }\n // } else if (mode === this.Mode_.SEAMED || mode === this.Mode_.SCROLL) {\n // this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW);\n // if (this.tabBar_) {\n // this.tabBar_.classList.remove(this.CssClasses_.CASTING_SHADOW);\n // }\n // } else if (mode === this.Mode_.WATERFALL) {\n // // Add and remove shadows depending on scroll position.\n // // Also add/remove auxiliary class for styling of the compact version of\n // // the header.\n // this.content_.addEventListener('scroll', this.contentScrollHandler_.bind(this));\n // this.contentScrollHandler_();\n // }\n //}\n // Add drawer toggling button to our layout, if we have an openable drawer.\n if (this.drawer_) {\n var drawerButton = this.element_.querySelector('.' + this.CssClasses_.DRAWER_BTN);\n if (!drawerButton) {\n drawerButton = document.createElement('div');\n drawerButton.setAttribute('aria-expanded', 'false');\n drawerButton.setAttribute('role', 'button');\n drawerButton.setAttribute('tabindex', '0');\n drawerButton.classList.add(this.CssClasses_.DRAWER_BTN);\n var drawerButtonIcon = document.createElement('i');\n drawerButtonIcon.classList.add(this.CssClasses_.ICON);\n drawerButtonIcon.innerHTML = this.Constant_.MENU_ICON;\n drawerButton.appendChild(drawerButtonIcon);\n }\n if (this.drawer_.classList.contains(this.CssClasses_.ON_LARGE_SCREEN)) {\n //If drawer has ON_LARGE_SCREEN class then add it to the drawer toggle button as well.\n drawerButton.classList.add(this.CssClasses_.ON_LARGE_SCREEN);\n } else if (this.drawer_.classList.contains(this.CssClasses_.ON_SMALL_SCREEN)) {\n //If drawer has ON_SMALL_SCREEN class then add it to the drawer toggle button as well.\n drawerButton.classList.add(this.CssClasses_.ON_SMALL_SCREEN);\n }\n drawerButton.addEventListener('click', this.drawerToggleHandler_.bind(this));\n drawerButton.addEventListener('keydown', this.drawerToggleHandler_.bind(this));\n // Add a class if the layout has a drawer, for altering the left padding.\n // Adds the HAS_DRAWER to the elements since this.header_ may or may\n // not be present.\n this.element_.classList.add(this.CssClasses_.HAS_DRAWER);\n // If we have a fixed header, add the button to the header rather than\n // the layout.\n if (this.element_.classList.contains(this.CssClasses_.FIXED_HEADER)) {\n this.header_.insertBefore(drawerButton, this.header_.firstChild);\n } else {\n this.element_.insertBefore(drawerButton, this.content_);\n }\n var obfuscator = document.createElement('div');\n obfuscator.classList.add(this.CssClasses_.OBFUSCATOR);\n this.element_.appendChild(obfuscator);\n obfuscator.addEventListener('click', this.drawerToggleHandler_.bind(this));\n this.obfuscator_ = obfuscator;\n this.drawer_.addEventListener('keydown', this.keyboardEventHandler_.bind(this));\n this.drawer_.setAttribute('aria-hidden', 'true');\n }\n // Keep an eye on screen size, and add/remove auxiliary class for styling\n // of small screens.\n this.screenSizeMediaQuery_ = window.matchMedia(this.Constant_.MAX_WIDTH);\n this.screenSizeMediaQuery_.addListener(this.screenSizeHandler_.bind(this));\n this.screenSizeHandler_();\n // Initialize tabs, if any.\n //if (this.header_ && this.tabBar_) {\n // this.element_.classList.add(this.CssClasses_.HAS_TABS);\n // var tabContainer = document.createElement('div');\n // tabContainer.classList.add(this.CssClasses_.TAB_CONTAINER);\n // this.header_.insertBefore(tabContainer, this.tabBar_);\n // this.header_.removeChild(this.tabBar_);\n // var leftButton = document.createElement('div');\n // leftButton.classList.add(this.CssClasses_.TAB_BAR_BUTTON);\n // leftButton.classList.add(this.CssClasses_.TAB_BAR_LEFT_BUTTON);\n // var leftButtonIcon = document.createElement('i');\n // leftButtonIcon.classList.add(this.CssClasses_.ICON);\n // leftButtonIcon.textContent = this.Constant_.CHEVRON_LEFT;\n // leftButton.appendChild(leftButtonIcon);\n // leftButton.addEventListener('click', function () {\n // this.tabBar_.scrollLeft -= this.Constant_.TAB_SCROLL_PIXELS;\n // }.bind(this));\n // var rightButton = document.createElement('div');\n // rightButton.classList.add(this.CssClasses_.TAB_BAR_BUTTON);\n // rightButton.classList.add(this.CssClasses_.TAB_BAR_RIGHT_BUTTON);\n // var rightButtonIcon = document.createElement('i');\n // rightButtonIcon.classList.add(this.CssClasses_.ICON);\n // rightButtonIcon.textContent = this.Constant_.CHEVRON_RIGHT;\n // rightButton.appendChild(rightButtonIcon);\n // rightButton.addEventListener('click', function () {\n // this.tabBar_.scrollLeft += this.Constant_.TAB_SCROLL_PIXELS;\n // }.bind(this));\n // tabContainer.appendChild(leftButton);\n // tabContainer.appendChild(this.tabBar_);\n // tabContainer.appendChild(rightButton);\n // // Add and remove tab buttons depending on scroll position and total\n // // window size.\n // var tabUpdateHandler = function () {\n // if (this.tabBar_.scrollLeft > 0) {\n // leftButton.classList.add(this.CssClasses_.IS_ACTIVE);\n // } else {\n // leftButton.classList.remove(this.CssClasses_.IS_ACTIVE);\n // }\n // if (this.tabBar_.scrollLeft < this.tabBar_.scrollWidth - this.tabBar_.offsetWidth) {\n // rightButton.classList.add(this.CssClasses_.IS_ACTIVE);\n // } else {\n // rightButton.classList.remove(this.CssClasses_.IS_ACTIVE);\n // }\n // }.bind(this);\n // this.tabBar_.addEventListener('scroll', tabUpdateHandler);\n // tabUpdateHandler();\n // // Update tabs when the window resizes.\n // var windowResizeHandler = function () {\n // // Use timeouts to make sure it doesn't happen too often.\n // if (this.resizeTimeoutId_) {\n // clearTimeout(this.resizeTimeoutId_);\n // }\n // this.resizeTimeoutId_ = setTimeout(function () {\n // tabUpdateHandler();\n // this.resizeTimeoutId_ = null;\n // }.bind(this), this.Constant_.RESIZE_TIMEOUT);\n // }.bind(this);\n // window.addEventListener('resize', windowResizeHandler);\n // if (this.tabBar_.classList.contains(this.CssClasses_.JS_RIPPLE_EFFECT)) {\n // this.tabBar_.classList.add(this.CssClasses_.RIPPLE_IGNORE_EVENTS);\n // }\n // // Select element tabs, document panels\n // var tabs = this.tabBar_.querySelectorAll('.' + this.CssClasses_.TAB);\n // var panels = this.content_.querySelectorAll('.' + this.CssClasses_.PANEL);\n // // Create new tabs for each tab element\n // for (var i = 0; i < tabs.length; i++) {\n // new MaterialLayoutTab(tabs[i], tabs, panels, this);\n // }\n //}\n this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n }\n};\n/**\n * Constructor for an individual tab.\n *\n * @constructor\n * @param {HTMLElement} tab The HTML element for the tab.\n * @param {!Array<HTMLElement>} tabs Array with HTML elements for all tabs.\n * @param {!Array<HTMLElement>} panels Array with HTML elements for all panels.\n * @param {MaterialLayout} layout The MaterialLayout object that owns the tab.\n */\nfunction MaterialLayoutTab(tab, tabs, panels, layout) {\n /**\n * Auxiliary method to programmatically select a tab in the UI.\n */\n function selectTab() {\n var href = tab.href.split('#')[1];\n var panel = layout.content_.querySelector('#' + href);\n layout.resetTabState_(tabs);\n layout.resetPanelState_(panels);\n tab.classList.add(layout.CssClasses_.IS_ACTIVE);\n panel.classList.add(layout.CssClasses_.IS_ACTIVE);\n }\n if (layout.tabBar_.classList.contains(layout.CssClasses_.JS_RIPPLE_EFFECT)) {\n var rippleContainer = document.createElement('span');\n rippleContainer.classList.add(layout.CssClasses_.RIPPLE_CONTAINER);\n rippleContainer.classList.add(layout.CssClasses_.JS_RIPPLE_EFFECT);\n var ripple = document.createElement('span');\n ripple.classList.add(layout.CssClasses_.RIPPLE);\n rippleContainer.appendChild(ripple);\n tab.appendChild(rippleContainer);\n }\n if (!layout.tabBar_.classList.contains(layout.CssClasses_.TAB_MANUAL_SWITCH)) {\n tab.addEventListener('click', function (e) {\n if (tab.getAttribute('href').charAt(0) === '#') {\n e.preventDefault();\n selectTab();\n }\n });\n }\n tab.show = selectTab;\n}\nwindow['MaterialLayoutTab'] = MaterialLayoutTab;\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialLayout,\n classAsString: 'MaterialLayout',\n cssClass: 'mdl-js-layout'\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Data Table Card MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {Element} element The element that will be upgraded.\n */\nvar MaterialDataTable = function MaterialDataTable(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialDataTable'] = MaterialDataTable;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialDataTable.prototype.Constant_ = {};\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialDataTable.prototype.CssClasses_ = {\n DATA_TABLE: 'mdl-data-table',\n SELECTABLE: 'mdl-data-table--selectable',\n SELECT_ELEMENT: 'mdl-data-table__select',\n IS_SELECTED: 'is-selected',\n IS_UPGRADED: 'is-upgraded'\n};\n/**\n * Generates and returns a function that toggles the selection state of a\n * single row (or multiple rows).\n *\n * @param {Element} checkbox Checkbox that toggles the selection state.\n * @param {Element} row Row to toggle when checkbox changes.\n * @param {(Array<Object>|NodeList)=} opt_rows Rows to toggle when checkbox changes.\n * @private\n */\nMaterialDataTable.prototype.selectRow_ = function (checkbox, row, opt_rows) {\n if (row) {\n return function () {\n if (checkbox.checked) {\n row.classList.add(this.CssClasses_.IS_SELECTED);\n } else {\n row.classList.remove(this.CssClasses_.IS_SELECTED);\n }\n }.bind(this);\n }\n if (opt_rows) {\n return function () {\n var i;\n var el;\n if (checkbox.checked) {\n for (i = 0; i < opt_rows.length; i++) {\n el = opt_rows[i].querySelector('td').querySelector('.mdl-checkbox');\n el['MaterialCheckbox'].check();\n opt_rows[i].classList.add(this.CssClasses_.IS_SELECTED);\n }\n } else {\n for (i = 0; i < opt_rows.length; i++) {\n el = opt_rows[i].querySelector('td').querySelector('.mdl-checkbox');\n el['MaterialCheckbox'].uncheck();\n opt_rows[i].classList.remove(this.CssClasses_.IS_SELECTED);\n }\n }\n }.bind(this);\n }\n};\n/**\n * Creates a checkbox for a single or or multiple rows and hooks up the\n * event handling.\n *\n * @param {Element} row Row to toggle when checkbox changes.\n * @param {(Array<Object>|NodeList)=} opt_rows Rows to toggle when checkbox changes.\n * @private\n */\nMaterialDataTable.prototype.createCheckbox_ = function (row, opt_rows) {\n var label = document.createElement('label');\n var labelClasses = [\n 'mdl-checkbox',\n 'mdl-js-checkbox',\n 'mdl-js-ripple-effect',\n this.CssClasses_.SELECT_ELEMENT\n ];\n label.className = labelClasses.join(' ');\n var checkbox = document.createElement('input');\n checkbox.type = 'checkbox';\n checkbox.classList.add('mdl-checkbox__input');\n if (row) {\n checkbox.checked = row.classList.contains(this.CssClasses_.IS_SELECTED);\n checkbox.addEventListener('change', this.selectRow_(checkbox, row));\n } else if (opt_rows) {\n checkbox.addEventListener('change', this.selectRow_(checkbox, null, opt_rows));\n }\n label.appendChild(checkbox);\n componentHandler.upgradeElement(label, 'MaterialCheckbox');\n return label;\n};\n/**\n * Initialize element.\n */\nMaterialDataTable.prototype.init = function () {\n if (this.element_) {\n var firstHeader = this.element_.querySelector('th');\n var bodyRows = Array.prototype.slice.call(this.element_.querySelectorAll('tbody tr'));\n var footRows = Array.prototype.slice.call(this.element_.querySelectorAll('tfoot tr'));\n var rows = bodyRows.concat(footRows);\n if (this.element_.classList.contains(this.CssClasses_.SELECTABLE)) {\n var th = document.createElement('th');\n var headerCheckbox = this.createCheckbox_(null, rows);\n th.appendChild(headerCheckbox);\n firstHeader.parentElement.insertBefore(th, firstHeader);\n for (var i = 0; i < rows.length; i++) {\n var firstCell = rows[i].querySelector('td');\n if (firstCell) {\n var td = document.createElement('td');\n if (rows[i].parentNode.nodeName.toUpperCase() === 'TBODY') {\n var rowCheckbox = this.createCheckbox_(rows[i]);\n td.appendChild(rowCheckbox);\n }\n rows[i].insertBefore(td, firstCell);\n }\n }\n this.element_.classList.add(this.CssClasses_.IS_UPGRADED);\n }\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialDataTable,\n classAsString: 'MaterialDataTable',\n cssClass: 'mdl-js-data-table'\n});\n/**\n * @license\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Class constructor for Ripple MDL component.\n * Implements MDL component design pattern defined at:\n * https://github.com/jasonmayes/mdl-component-design-pattern\n *\n * @constructor\n * @param {HTMLElement} element The element that will be upgraded.\n */\nvar MaterialRipple = function MaterialRipple(element) {\n this.element_ = element;\n // Initialize instance.\n this.init();\n};\nwindow['MaterialRipple'] = MaterialRipple;\n/**\n * Store constants in one place so they can be updated easily.\n *\n * @enum {string | number}\n * @private\n */\nMaterialRipple.prototype.Constant_ = {\n INITIAL_SCALE: 'scale(0.0001, 0.0001)',\n INITIAL_SIZE: '1px',\n INITIAL_OPACITY: '0.4',\n FINAL_OPACITY: '0',\n FINAL_SCALE: ''\n};\n/**\n * Store strings for class names defined by this component that are used in\n * JavaScript. This allows us to simply change it in one place should we\n * decide to modify at a later date.\n *\n * @enum {string}\n * @private\n */\nMaterialRipple.prototype.CssClasses_ = {\n RIPPLE_CENTER: 'mdl-ripple--center',\n RIPPLE_EFFECT_IGNORE_EVENTS: 'mdl-js-ripple-effect--ignore-events',\n RIPPLE: 'mdl-ripple',\n IS_ANIMATING: 'is-animating',\n IS_VISIBLE: 'is-visible'\n};\n/**\n * Handle mouse / finger down on element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialRipple.prototype.downHandler_ = function (event) {\n if (!this.rippleElement_.style.width && !this.rippleElement_.style.height) {\n var rect = this.element_.getBoundingClientRect();\n this.boundHeight = rect.height;\n this.boundWidth = rect.width;\n this.rippleSize_ = Math.sqrt(rect.width * rect.width + rect.height * rect.height) * 2 + 2;\n this.rippleElement_.style.width = this.rippleSize_ + 'px';\n this.rippleElement_.style.height = this.rippleSize_ + 'px';\n }\n this.rippleElement_.classList.add(this.CssClasses_.IS_VISIBLE);\n if (event.type === 'mousedown' && this.ignoringMouseDown_) {\n this.ignoringMouseDown_ = false;\n } else {\n if (event.type === 'touchstart') {\n this.ignoringMouseDown_ = true;\n }\n var frameCount = this.getFrameCount();\n if (frameCount > 0) {\n return;\n }\n this.setFrameCount(1);\n var bound = event.currentTarget.getBoundingClientRect();\n var x;\n var y;\n // Check if we are handling a keyboard click.\n if (event.clientX === 0 && event.clientY === 0) {\n x = Math.round(bound.width / 2);\n y = Math.round(bound.height / 2);\n } else {\n var clientX = event.clientX !== undefined ? event.clientX : event.touches[0].clientX;\n var clientY = event.clientY !== undefined ? event.clientY : event.touches[0].clientY;\n x = Math.round(clientX - bound.left);\n y = Math.round(clientY - bound.top);\n }\n this.setRippleXY(x, y);\n this.setRippleStyles(true);\n window.requestAnimationFrame(this.animFrameHandler.bind(this));\n }\n};\n/**\n * Handle mouse / finger up on element.\n *\n * @param {Event} event The event that fired.\n * @private\n */\nMaterialRipple.prototype.upHandler_ = function (event) {\n // Don't fire for the artificial \"mouseup\" generated by a double-click.\n if (event && event.detail !== 2) {\n // Allow a repaint to occur before removing this class, so the animation\n // shows for tap events, which seem to trigger a mouseup too soon after\n // mousedown.\n window.setTimeout(function () {\n this.rippleElement_.classList.remove(this.CssClasses_.IS_VISIBLE);\n }.bind(this), 0);\n }\n};\n/**\n * Initialize element.\n */\nMaterialRipple.prototype.init = function () {\n if (this.element_) {\n var recentering = this.element_.classList.contains(this.CssClasses_.RIPPLE_CENTER);\n if (!this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT_IGNORE_EVENTS)) {\n this.rippleElement_ = this.element_.querySelector('.' + this.CssClasses_.RIPPLE);\n this.frameCount_ = 0;\n this.rippleSize_ = 0;\n this.x_ = 0;\n this.y_ = 0;\n // Touch start produces a compat mouse down event, which would cause a\n // second ripples. To avoid that, we use this property to ignore the first\n // mouse down after a touch start.\n this.ignoringMouseDown_ = false;\n this.boundDownHandler = this.downHandler_.bind(this);\n this.element_.addEventListener('mousedown', this.boundDownHandler);\n this.element_.addEventListener('touchstart', this.boundDownHandler, { passive: true });\n this.boundUpHandler = this.upHandler_.bind(this);\n this.element_.addEventListener('mouseup', this.boundUpHandler);\n this.element_.addEventListener('mouseleave', this.boundUpHandler);\n this.element_.addEventListener('touchend', this.boundUpHandler, { passive: true });\n this.element_.addEventListener('blur', this.boundUpHandler);\n /**\n * Getter for frameCount_.\n * @return {number} the frame count.\n */\n this.getFrameCount = function () {\n return this.frameCount_;\n };\n /**\n * Setter for frameCount_.\n * @param {number} fC the frame count.\n */\n this.setFrameCount = function (fC) {\n this.frameCount_ = fC;\n };\n /**\n * Getter for rippleElement_.\n * @return {Element} the ripple element.\n */\n this.getRippleElement = function () {\n return this.rippleElement_;\n };\n /**\n * Sets the ripple X and Y coordinates.\n * @param {number} newX the new X coordinate\n * @param {number} newY the new Y coordinate\n */\n this.setRippleXY = function (newX, newY) {\n this.x_ = newX;\n this.y_ = newY;\n };\n /**\n * Sets the ripple styles.\n * @param {boolean} start whether or not this is the start frame.\n */\n this.setRippleStyles = function (start) {\n if (this.rippleElement_ !== null) {\n var transformString;\n var scale;\n var size;\n var offset = 'translate(' + this.x_ + 'px, ' + this.y_ + 'px)';\n if (start) {\n scale = this.Constant_.INITIAL_SCALE;\n size = this.Constant_.INITIAL_SIZE;\n } else {\n scale = this.Constant_.FINAL_SCALE;\n size = this.rippleSize_ + 'px';\n if (recentering) {\n offset = 'translate(' + this.boundWidth / 2 + 'px, ' + this.boundHeight / 2 + 'px)';\n }\n }\n transformString = 'translate(-50%, -50%) ' + offset + scale;\n this.rippleElement_.style.webkitTransform = transformString;\n this.rippleElement_.style.msTransform = transformString;\n this.rippleElement_.style.transform = transformString;\n if (start) {\n this.rippleElement_.classList.remove(this.CssClasses_.IS_ANIMATING);\n } else {\n this.rippleElement_.classList.add(this.CssClasses_.IS_ANIMATING);\n }\n }\n };\n /**\n * Handles an animation frame.\n */\n this.animFrameHandler = function () {\n if (this.frameCount_-- > 0) {\n window.requestAnimationFrame(this.animFrameHandler.bind(this));\n } else {\n this.setRippleStyles(false);\n }\n };\n }\n }\n};\n// The component registers itself. It can assume componentHandler is available\n// in the global scope.\ncomponentHandler.register({\n constructor: MaterialRipple,\n classAsString: 'MaterialRipple',\n cssClass: 'mdl-js-ripple-effect',\n widget: false\n});\n}());\nMaterialTextfield.prototype.checkValidity = function () {\r\n if (this.input_.validity.valid) {\r\n this.element_.classList.remove('is-invalid');\r\n } else {\r\n if (this.IS_DIRTY && this.element_.getElementsByTagName('input')[0].value == '') {\r\n this.element_.classList.add('is-invalid');\r\n }\r\n }\r\n};\r\n","(function () {\r\n 'use strict';\n\n var MaterialSelectfield = function MaterialSelectfield(element) {\r\n this.element_ = element;\n this.setDefaults_();\n // Initialize instance.\n this.init();\r\n };\n window['MaterialSelectfield'] = MaterialSelectfield;\n\n MaterialSelectfield.prototype.CssClasses_ = {\r\n LABEL: 'mdl-selectfield__label',\n SELECT: 'mdl-selectfield__select',\n SELECTED_BOX: 'mdl-selectfield__box',\n SELECTED_BOX_VALUE: 'mdl-selectfield__box-value',\n LIST_OPTION_BOX: 'mdl-selectfield__list-option-box',\n IS_DIRTY: 'is-dirty',\n IS_FOCUSED: 'is-focused',\n IS_DISABLED: 'is-disabled',\n IS_INVALID: 'is-invalid',\n IS_UPGRADED: 'is-upgraded',\n IS_SELECTED: 'is-selected'\r\n };\n\n MaterialSelectfield.prototype.Keycodes_ = {\r\n ENTER: 13,\n ESCAPE: 27,\n SPACE: 32,\n UP_ARROW: 38,\n DOWN_ARROW: 40\r\n };\n\n MaterialSelectfield.prototype.setDefaults_ = function () {\r\n this.options_ = [];\n this.optionsMap_ = {};\n this.optionsArr_ = [];\n this.closing_ = true;\n this.keyDownTimerId_ = null;\n this.observer_ = null;\r\n };\n\n MaterialSelectfield.prototype.onFocus_ = function (event) {\r\n this.closing_ && this.show_(event);\r\n };\n\n MaterialSelectfield.prototype.onBlur_ = function (event) {\r\n this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\r\n };\n\n MaterialSelectfield.prototype.onSelected_ = function (event) {\r\n if (event.target && event.target.nodeName == \"LI\") {\r\n var option = this.options_[event.target.getAttribute('data-value')];\n\n if (option.disabled) {\r\n event.stopPropagation();\n return false;\r\n }\n\n this.selectedOptionValue_.textContent = option.textContent;\n option.selected = true;\n\n //fire event change\n var evt;\n if (typeof window.Event == \"function\") {\r\n evt = new Event('change', {\r\n bubbles: true\n , cancelable: true\r\n });\r\n }\n else if (typeof document.createEvent == \"function\") {\r\n evt = document.createEvent(\"HTMLEvents\");\n evt.initEvent(\"change\", true, true);\r\n }\n evt && this.select_.dispatchEvent(evt);\n\n if (option.textContent !== \"\") {\r\n this.element_.classList.add(this.CssClasses_.IS_DIRTY);\n var selectedItem = this.listOptionBox_.querySelector('.' + this.CssClasses_.IS_SELECTED);\n selectedItem && selectedItem.classList.remove(this.CssClasses_.IS_SELECTED);\n event.target.classList.add(this.CssClasses_.IS_SELECTED);\r\n }\n else {\r\n this.element_.classList.remove(this.CssClasses_.IS_DIRTY);\n var selectedItem = this.listOptionBox_.querySelector('.' + this.CssClasses_.IS_SELECTED);\n selectedItem && selectedItem.classList.remove(this.CssClasses_.IS_SELECTED);\r\n }\r\n }\r\n };\n\n MaterialSelectfield.prototype.onclick_ = function (event) {\r\n this.toggle(event);\r\n };\n\n MaterialSelectfield.prototype.update_ = function () {\r\n var itemSelected;\n\n if (this.options_ && this.options_.length > 0) {\r\n for (var i = 0; i < this.options_.length; i++) {\r\n var item = this.options_[i];\n if (item.selected && item.value !== \"\") {\r\n var itemSelected = true;\n this.element_.classList.add(this.CssClasses_.IS_DIRTY);\n this.listOptionBox_.querySelector('.' + this.CssClasses_.IS_SELECTED).classList.remove(this.CssClasses_.IS_SELECTED);\n this.listOptionBox_.querySelectorAll('LI')[i].classList.add(this.CssClasses_.IS_SELECTED);\r\n }\r\n }\r\n }\n\n if (!itemSelected) {\r\n this.element_.classList.remove(this.CssClasses_.IS_DIRTY);\r\n }\n\n this.checkDisabled();\n this.checkValidity();\r\n };\n\n MaterialSelectfield.prototype.checkValidity = function () {\r\n if (this.select_.validity) {\r\n if (this.select_.validity.valid) {\r\n this.element_.classList.remove(this.CssClasses_.IS_INVALID);\r\n } else {\r\n this.element_.classList.add(this.CssClasses_.IS_INVALID);\r\n }\r\n }\r\n };\n MaterialSelectfield.prototype['checkValidity'] =\n MaterialSelectfield.prototype.checkValidity;\n\n MaterialSelectfield.prototype.checkDisabled = function () {\r\n if (this.select_.disabled) {\r\n this.element_.classList.add(this.CssClasses_.IS_DISABLED);\r\n } else {\r\n this.element_.classList.remove(this.CssClasses_.IS_DISABLED);\r\n }\r\n };\n MaterialSelectfield.prototype['checkDisabled'] =\n MaterialSelectfield.prototype.checkDisabled;\n\n /**\n * Disable select field.\n *\n * @public\n */\n MaterialSelectfield.prototype.disable = function () {\r\n this.select_.disabled = true;\n this.update_();\r\n };\n MaterialSelectfield.prototype['disable'] = MaterialSelectfield.prototype.disable;\n\n /**\n * Enable select field.\n *\n * @public\n */\n MaterialSelectfield.prototype.enable = function () {\r\n this.select_.disabled = false;\n this.update_();\r\n };\n MaterialSelectfield.prototype['enable'] = MaterialSelectfield.prototype.enable;\n\n MaterialSelectfield.prototype.isDescendant_ = function (parent, child) {\r\n var node = child.parentNode;\n while (node != null) {\r\n if (node == parent) {\r\n return true;\r\n }\n node = node.parentNode;\r\n }\n return false;\r\n };\n\n MaterialSelectfield.prototype.toggle = function (event) {\r\n if (!this.element_.classList.contains(this.CssClasses_.IS_FOCUSED)) {\r\n this.show_(event)\r\n }\n else if (event.target && event.target.nodeName == \"LI\" && this.isDescendant_(this.listOptionBox_, event.target)) {\r\n this.onSelected_(event)\r\n }\n else {\r\n this.hide_()\r\n }\r\n };\n\n MaterialSelectfield.prototype.show_ = function (event) {\r\n this.checkDisabled();\n if (this.element_.classList.contains(this.CssClasses_.IS_DISABLED)) return;\n\n this.element_.classList.add(this.CssClasses_.IS_FOCUSED);\n this.closing_ = false;\n this.strSearch_ = \"\";\n\n var selectedItem = this.listOptionBox_ && this.listOptionBox_.querySelector('.' + this.CssClasses_.IS_SELECTED);\n if (selectedItem) selectedItem.parentElement.parentElement.scrollTop = selectedItem.offsetTop;\n\n this.boundKeyDownHandler_ = this.onKeyDown_.bind(this);\n this.boundClickDocHandler_ = function (e) {\r\n if (e !== event && !this.closing_ && !(e.target.parentNode === this.element_ || e.target.parentNode === this.selectedOption_)) {\r\n this.hide_();\r\n }\r\n }.bind(this);\n\n document.addEventListener('keydown', this.boundKeyDownHandler_);\n document.addEventListener('click', this.boundClickDocHandler_);\r\n };\n\n MaterialSelectfield.prototype.onKeyDown_ = function (evt) {\r\n var items = this.listOptionBox_.querySelectorAll('li:not([disabled])');\n\n if (items && items.length > 0 && !this.closing_) {\r\n var currentIndex = Array.prototype.slice.call(items).indexOf(this.listOptionBox_.querySelectorAll('.' + this.CssClasses_.IS_SELECTED)[0]);\n var selectedItem;\n\n if (evt.keyCode === this.Keycodes_.UP_ARROW || evt.keyCode === this.Keycodes_.DOWN_ARROW) {\r\n if (currentIndex != -1) {\r\n items[currentIndex].classList.remove(this.CssClasses_.IS_SELECTED);\r\n }\n\n if (evt.keyCode === this.Keycodes_.UP_ARROW) {\r\n evt.preventDefault();\n if (currentIndex > 0) {\r\n selectedItem = items[currentIndex - 1];\r\n } else {\r\n selectedItem = items[items.length - 1];\r\n }\r\n } else {\r\n evt.preventDefault();\n if (items.length > currentIndex + 1) {\r\n selectedItem = items[currentIndex + 1];\r\n } else {\r\n selectedItem = items[0];\r\n }\r\n }\n\n if (selectedItem) {\r\n selectedItem.classList.add(this.CssClasses_.IS_SELECTED);\n this.listOptionBox_.scrollTop = selectedItem.offsetTop;\n this.lastSelectedItem_ = selectedItem;\r\n }\r\n }\n else if ((evt.keyCode === this.Keycodes_.SPACE || evt.keyCode === this.Keycodes_.ENTER) && this.lastSelectedItem_) {\r\n evt.preventDefault();\n // Send mousedown and mouseup to trigger ripple.\n var ev;\n\n if (document.createEvent) {\r\n ev = document.createEvent(\"MouseEvent\");\n ev.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\r\n }\n else {\r\n ev = new MouseEvent(\"mousedown\");\r\n }\n this.lastSelectedItem_.dispatchEvent(ev);\n if (!document.createEvent) {\r\n ev = new MouseEvent('mouseup');\n this.lastSelectedItem_.dispatchEvent(ev);\r\n }\n // Send click.\n //this.lastSelectedItem_.click();\n }\n else if (evt.keyCode === this.Keycodes_.ESCAPE) {\r\n evt.preventDefault();\n var ev;\n\n if (document.createEvent) {\r\n ev = document.createEvent(\"MouseEvent\");\n ev.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\r\n }\n else {\r\n ev = new MouseEvent(\"mousedown\");\r\n }\n document.body.dispatchEvent(ev);\n if (!document.createEvent) {\r\n ev = new MouseEvent('mouseup');\n document.body.dispatchEvent(ev);\r\n }\n document.body.click();\r\n }\n else if (this.validKeyCode_(evt.keyCode)) {\r\n var charCode = evt.which || evt.keyCode;\n\n this.strSearch_ += String.fromCharCode(charCode);\n\n if (this.keyDownTimerId_) clearTimeout(this.keyDownTimerId_);\n\n this.keyDownTimerId_ = setTimeout((function () {\r\n this.keyDownTimerId_ = null;\n this.strSearch_ = \"\";\r\n }).bind(this), 300);\n\n var ind = this.searchByStrIndex_(0);\n\n if (ind > -1) {\r\n if (currentIndex != -1) {\r\n items[currentIndex].classList.remove(this.CssClasses_.IS_SELECTED);\r\n }\n selectedItem = items[ind];\n selectedItem.classList.add(this.CssClasses_.IS_SELECTED);\n this.listOptionBox_.scrollTop = selectedItem.offsetTop;\n this.lastSelectedItem_ = selectedItem;\r\n }\r\n }\r\n }\r\n };\n\n MaterialSelectfield.prototype.searchByStrIndex_ = function (key) {\r\n var srchStr = this.strSearch_;\n var isPresent = new RegExp('^' + srchStr + '.');\n var indx = -1;\n var arr = this.optionsArr_;\n\n for (var i = 0; i < arr.length; i++) {\r\n if (isPresent.test(arr[i])) {\r\n indx = i;\n break;\r\n }\r\n }\n\n return indx != -1 ? this.optionsMap_[this.optionsArr_[indx]] : -1;\r\n };\n\n MaterialSelectfield.prototype.validKeyCode_ = function (keycode) {\r\n return (keycode > 47 && keycode < 58) || // number keys\n keycode == 32 || keycode == 13 || // spacebar & return key(s) (if you want to allow carriage returns)\n (keycode > 64 && keycode < 91) || // letter keys\n (keycode > 95 && keycode < 112) || // numpad keys\n (keycode > 185 && keycode < 193) || // ;=,-./` (in order)\n (keycode > 218 && keycode < 223); // [\\]' (in order)\n };\n\n MaterialSelectfield.prototype.hide_ = function () {\r\n this.element_.classList.remove(this.CssClasses_.IS_FOCUSED);\n this.closing_ = true;\n this.strSearch_ = \"\";\n this.boundClickDocHandler_ && document.removeEventListener('click', this.boundClickDocHandler_);\n this.boundKeyDownHandler_ && document.removeEventListener('keydown', this.boundKeyDownHandler_);\n this.update_();\r\n };\n\n MaterialSelectfield.prototype.init = function () {\r\n if (this.element_) {\r\n this.element_.classList.remove(this.CssClasses_.IS_DIRTY);\n this.lastSelectedItem_ = null;\n this.label_ = this.element_.querySelector('.' + this.CssClasses_.LABEL);\n this.select_ = this.element_.querySelector('.' + this.CssClasses_.SELECT);\n var selectedOption = document.createElement('div');\n selectedOption.classList.add(this.CssClasses_.SELECTED_BOX);\n selectedOption.tabIndex = 1;\n this.selectedOption_ = selectedOption;\n var icon = document.createElement('i');\n icon.classList.add('aga-arrow_drop_down');\n icon.tabIndex = -1;\n icon.textContent = '';\n selectedOption.appendChild(icon);\n var value = document.createElement('span');\n value.classList.add(this.CssClasses_.SELECTED_BOX_VALUE);\n value.tabIndex = 0;\n selectedOption.appendChild(value);\n this.selectedOptionValue_ = value;\n this.element_.appendChild(this.selectedOption_);\n\n var invalid = this.element_.classList.contains(this.CssClasses_.IS_INVALID);\n\n this.makeElements_();\n\n this.boundClickHandler = this.onclick_.bind(this);\n this.element_.addEventListener('click', this.boundClickHandler);\n if (invalid) {\r\n this.element_.classList.add(this.CssClasses_.IS_INVALID);\r\n }\n this.checkDisabled();\r\n }\r\n };\n\n MaterialSelectfield.prototype.refreshOptions = function () {\r\n this.mdlDowngrade_();\n this.setDefaults_();\n this.init();\n //this.makeElements_();\n };\n\n MaterialSelectfield.prototype.clearElements_ = function () {\r\n\n };\n\n MaterialSelectfield.prototype.makeElements_ = function () {\r\n if (this.select_) {\r\n this.options_ = this.select_.querySelectorAll('option');\n this.select_.style.visibility = \"hidden\";\n\n if (this.options_.length == 0) {\r\n this.options_ = [document.createElement('option')]\r\n }\n\n if (this.options_.length) {\r\n var listOptionBox = document.createElement('div')\n , ul = '<ul tabindex=\"-1\">'\n , liHTML = ''\n ;\n\n listOptionBox.classList.add(this.CssClasses_.LIST_OPTION_BOX);\n listOptionBox.tabIndex = '-1';\n\n for (var i = 0; i < this.options_.length; i++) {\r\n var item = this.options_[i]\n , itemText = (item.textContent || '').toUpperCase().replace(/( )|(\\n)/g, \"\")\n , liClass = ''\n ;\n\n this.optionsMap_[itemText] = i;\n this.optionsArr_.push(itemText);\n\n if (item.selected && item.textContent !== \"\") {\r\n this.element_.classList.add(this.CssClasses_.IS_DIRTY);\n this.selectedOptionValue_.textContent = item.textContent;\n liClass += this.CssClasses_.IS_SELECTED;\r\n }\n\n if (item.disabled) {\r\n liClass += liClass != '' ? ' ' + this.CssClasses_.IS_DISABLED : this.CssClasses_.IS_DISABLED\r\n }\n\n liHTML += '<li class=\"' + liClass + '\" data-value=\"' + i + '\" tabindex=\"-1\">' + item.textContent + '</li>';\r\n }\n\n ul += liHTML + '</ul>';\n\n listOptionBox.innerHTML = ul;\n this.element_.appendChild(listOptionBox);\n this.listOptionBox_ = listOptionBox;\n\n if (window.MutationObserver) {\r\n this.observer_ = new MutationObserver(function (mutations) {\r\n mutations.forEach(function (mutation) {\r\n if (mutation.type == 'childList') {\r\n this.refreshOptions()\r\n }\r\n }.bind(this));\r\n }.bind(this));\n this.observer_.observe(this.select_, { attributes: true, childList: true, characterData: true })\r\n }\r\n }\r\n }\r\n };\n\n MaterialSelectfield.prototype.mdlDowngrade_ = function () {\r\n this.element_.removeEventListener('click', this.boundClickHandler);\n this.listOptionBox_ && this.element_.removeChild(this.listOptionBox_);\n this.selectedOption_ && this.element_.removeChild(this.selectedOption_);\n this.element_.removeAttribute('data-upgraded');\n this.select_.style.visibility = \"visible\";\n this.observer_ && this.observer_.disconnect();\r\n };\n\n /**\n * Public alias for the downgrade method.\n *\n * @public\n */\n MaterialSelectfield.prototype.mdlDowngrade =\n MaterialSelectfield.prototype.mdlDowngrade_;\n\n MaterialSelectfield.prototype['mdlDowngrade'] =\n MaterialSelectfield.prototype.mdlDowngrade;\n\n componentHandler.register({\r\n constructor: MaterialSelectfield,\n classAsString: 'MaterialSelectfield',\n cssClass: 'mdl-js-selectfield',\n widget: true\r\n });\r\n})();","// TinyColor v1.4.1\r\n// https://github.com/bgrins/TinyColor\r\n// 2016-07-07, Brian Grinstead, MIT License\r\n!function (a) { function b(a, d) { if (a = a ? a : \"\", d = d || {}, a instanceof b) return a; if (!(this instanceof b)) return new b(a, d); var e = c(a); this._originalInput = a, this._r = e.r, this._g = e.g, this._b = e.b, this._a = e.a, this._roundA = P(100 * this._a) / 100, this._format = d.format || e.format, this._gradientType = d.gradientType, this._r < 1 && (this._r = P(this._r)), this._g < 1 && (this._g = P(this._g)), this._b < 1 && (this._b = P(this._b)), this._ok = e.ok, this._tc_id = O++ } function c(a) { var b = { r: 0, g: 0, b: 0 }, c = 1, e = null, g = null, i = null, j = !1, k = !1; return \"string\" == typeof a && (a = K(a)), \"object\" == typeof a && (J(a.r) && J(a.g) && J(a.b) ? (b = d(a.r, a.g, a.b), j = !0, k = \"%\" === String(a.r).substr(-1) ? \"prgb\" : \"rgb\") : J(a.h) && J(a.s) && J(a.v) ? (e = G(a.s), g = G(a.v), b = h(a.h, e, g), j = !0, k = \"hsv\") : J(a.h) && J(a.s) && J(a.l) && (e = G(a.s), i = G(a.l), b = f(a.h, e, i), j = !0, k = \"hsl\"), a.hasOwnProperty(\"a\") && (c = a.a)), c = z(c), { ok: j, format: a.format || k, r: Q(255, R(b.r, 0)), g: Q(255, R(b.g, 0)), b: Q(255, R(b.b, 0)), a: c } } function d(a, b, c) { return { r: 255 * A(a, 255), g: 255 * A(b, 255), b: 255 * A(c, 255) } } function e(a, b, c) { a = A(a, 255), b = A(b, 255), c = A(c, 255); var d, e, f = R(a, b, c), g = Q(a, b, c), h = (f + g) / 2; if (f == g) d = e = 0; else { var i = f - g; switch (e = h > .5 ? i / (2 - f - g) : i / (f + g), f) { case a: d = (b - c) / i + (c > b ? 6 : 0); break; case b: d = (c - a) / i + 2; break; case c: d = (a - b) / i + 4 } d /= 6 } return { h: d, s: e, l: h } } function f(a, b, c) { function d(a, b, c) { return 0 > c && (c += 1), c > 1 && (c -= 1), 1 / 6 > c ? a + 6 * (b - a) * c : .5 > c ? b : 2 / 3 > c ? a + 6 * (b - a) * (2 / 3 - c) : a } var e, f, g; if (a = A(a, 360), b = A(b, 100), c = A(c, 100), 0 === b) e = f = g = c; else { var h = .5 > c ? c * (1 + b) : c + b - c * b, i = 2 * c - h; e = d(i, h, a + 1 / 3), f = d(i, h, a), g = d(i, h, a - 1 / 3) } return { r: 255 * e, g: 255 * f, b: 255 * g } } function g(a, b, c) { a = A(a, 255), b = A(b, 255), c = A(c, 255); var d, e, f = R(a, b, c), g = Q(a, b, c), h = f, i = f - g; if (e = 0 === f ? 0 : i / f, f == g) d = 0; else { switch (f) { case a: d = (b - c) / i + (c > b ? 6 : 0); break; case b: d = (c - a) / i + 2; break; case c: d = (a - b) / i + 4 } d /= 6 } return { h: d, s: e, v: h } } function h(b, c, d) { b = 6 * A(b, 360), c = A(c, 100), d = A(d, 100); var e = a.floor(b), f = b - e, g = d * (1 - c), h = d * (1 - f * c), i = d * (1 - (1 - f) * c), j = e % 6, k = [d, h, g, g, i, d][j], l = [i, d, d, h, g, g][j], m = [g, g, i, d, d, h][j]; return { r: 255 * k, g: 255 * l, b: 255 * m } } function i(a, b, c, d) { var e = [F(P(a).toString(16)), F(P(b).toString(16)), F(P(c).toString(16))]; return d && e[0].charAt(0) == e[0].charAt(1) && e[1].charAt(0) == e[1].charAt(1) && e[2].charAt(0) == e[2].charAt(1) ? e[0].charAt(0) + e[1].charAt(0) + e[2].charAt(0) : e.join(\"\") } function j(a, b, c, d, e) { var f = [F(P(a).toString(16)), F(P(b).toString(16)), F(P(c).toString(16)), F(H(d))]; return e && f[0].charAt(0) == f[0].charAt(1) && f[1].charAt(0) == f[1].charAt(1) && f[2].charAt(0) == f[2].charAt(1) && f[3].charAt(0) == f[3].charAt(1) ? f[0].charAt(0) + f[1].charAt(0) + f[2].charAt(0) + f[3].charAt(0) : f.join(\"\") } function k(a, b, c, d) { var e = [F(H(d)), F(P(a).toString(16)), F(P(b).toString(16)), F(P(c).toString(16))]; return e.join(\"\") } function l(a, c) { c = 0 === c ? 0 : c || 10; var d = b(a).toHsl(); return d.s -= c / 100, d.s = B(d.s), b(d) } function m(a, c) { c = 0 === c ? 0 : c || 10; var d = b(a).toHsl(); return d.s += c / 100, d.s = B(d.s), b(d) } function n(a) { return b(a).desaturate(100) } function o(a, c) { c = 0 === c ? 0 : c || 10; var d = b(a).toHsl(); return d.l += c / 100, d.l = B(d.l), b(d) } function p(a, c) { c = 0 === c ? 0 : c || 10; var d = b(a).toRgb(); return d.r = R(0, Q(255, d.r - P(255 * -(c / 100)))), d.g = R(0, Q(255, d.g - P(255 * -(c / 100)))), d.b = R(0, Q(255, d.b - P(255 * -(c / 100)))), b(d) } function q(a, c) { c = 0 === c ? 0 : c || 10; var d = b(a).toHsl(); return d.l -= c / 100, d.l = B(d.l), b(d) } function r(a, c) { var d = b(a).toHsl(), e = (d.h + c) % 360; return d.h = 0 > e ? 360 + e : e, b(d) } function s(a) { var c = b(a).toHsl(); return c.h = (c.h + 180) % 360, b(c) } function t(a) { var c = b(a).toHsl(), d = c.h; return [b(a), b({ h: (d + 120) % 360, s: c.s, l: c.l }), b({ h: (d + 240) % 360, s: c.s, l: c.l })] } function u(a) { var c = b(a).toHsl(), d = c.h; return [b(a), b({ h: (d + 90) % 360, s: c.s, l: c.l }), b({ h: (d + 180) % 360, s: c.s, l: c.l }), b({ h: (d + 270) % 360, s: c.s, l: c.l })] } function v(a) { var c = b(a).toHsl(), d = c.h; return [b(a), b({ h: (d + 72) % 360, s: c.s, l: c.l }), b({ h: (d + 216) % 360, s: c.s, l: c.l })] } function w(a, c, d) { c = c || 6, d = d || 30; var e = b(a).toHsl(), f = 360 / d, g = [b(a)]; for (e.h = (e.h - (f * c >> 1) + 720) % 360; --c;) e.h = (e.h + f) % 360, g.push(b(e)); return g } function x(a, c) { c = c || 6; for (var d = b(a).toHsv(), e = d.h, f = d.s, g = d.v, h = [], i = 1 / c; c--;) h.push(b({ h: e, s: f, v: g })), g = (g + i) % 1; return h } function y(a) { var b = {}; for (var c in a) a.hasOwnProperty(c) && (b[a[c]] = c); return b } function z(a) { return a = parseFloat(a), (isNaN(a) || 0 > a || a > 1) && (a = 1), a } function A(b, c) { D(b) && (b = \"100%\"); var d = E(b); return b = Q(c, R(0, parseFloat(b))), d && (b = parseInt(b * c, 10) / 100), a.abs(b - c) < 1e-6 ? 1 : b % c / parseFloat(c) } function B(a) { return Q(1, R(0, a)) } function C(a) { return parseInt(a, 16) } function D(a) { return \"string\" == typeof a && -1 != a.indexOf(\".\") && 1 === parseFloat(a) } function E(a) { return \"string\" == typeof a && -1 != a.indexOf(\"%\") } function F(a) { return 1 == a.length ? \"0\" + a : \"\" + a } function G(a) { return 1 >= a && (a = 100 * a + \"%\"), a } function H(b) { return a.round(255 * parseFloat(b)).toString(16) } function I(a) { return C(a) / 255 } function J(a) { return !!V.CSS_UNIT.exec(a) } function K(a) { a = a.replace(M, \"\").replace(N, \"\").toLowerCase(); var b = !1; if (T[a]) a = T[a], b = !0; else if (\"transparent\" == a) return { r: 0, g: 0, b: 0, a: 0, format: \"name\" }; var c; return (c = V.rgb.exec(a)) ? { r: c[1], g: c[2], b: c[3] } : (c = V.rgba.exec(a)) ? { r: c[1], g: c[2], b: c[3], a: c[4] } : (c = V.hsl.exec(a)) ? { h: c[1], s: c[2], l: c[3] } : (c = V.hsla.exec(a)) ? { h: c[1], s: c[2], l: c[3], a: c[4] } : (c = V.hsv.exec(a)) ? { h: c[1], s: c[2], v: c[3] } : (c = V.hsva.exec(a)) ? { h: c[1], s: c[2], v: c[3], a: c[4] } : (c = V.hex8.exec(a)) ? { r: C(c[1]), g: C(c[2]), b: C(c[3]), a: I(c[4]), format: b ? \"name\" : \"hex8\" } : (c = V.hex6.exec(a)) ? { r: C(c[1]), g: C(c[2]), b: C(c[3]), format: b ? \"name\" : \"hex\" } : (c = V.hex4.exec(a)) ? { r: C(c[1] + \"\" + c[1]), g: C(c[2] + \"\" + c[2]), b: C(c[3] + \"\" + c[3]), a: I(c[4] + \"\" + c[4]), format: b ? \"name\" : \"hex8\" } : (c = V.hex3.exec(a)) ? { r: C(c[1] + \"\" + c[1]), g: C(c[2] + \"\" + c[2]), b: C(c[3] + \"\" + c[3]), format: b ? \"name\" : \"hex\" } : !1 } function L(a) { var b, c; return a = a || { level: \"AA\", size: \"small\" }, b = (a.level || \"AA\").toUpperCase(), c = (a.size || \"small\").toLowerCase(), \"AA\" !== b && \"AAA\" !== b && (b = \"AA\"), \"small\" !== c && \"large\" !== c && (c = \"small\"), { level: b, size: c } } var M = /^\\s+/, N = /\\s+$/, O = 0, P = a.round, Q = a.min, R = a.max, S = a.random; b.prototype = { isDark: function () { return this.getBrightness() < 128 }, isLight: function () { return !this.isDark() }, isValid: function () { return this._ok }, getOriginalInput: function () { return this._originalInput }, getFormat: function () { return this._format }, getAlpha: function () { return this._a }, getBrightness: function () { var a = this.toRgb(); return (299 * a.r + 587 * a.g + 114 * a.b) / 1e3 }, getLuminance: function () { var b, c, d, e, f, g, h = this.toRgb(); return b = h.r / 255, c = h.g / 255, d = h.b / 255, e = .03928 >= b ? b / 12.92 : a.pow((b + .055) / 1.055, 2.4), f = .03928 >= c ? c / 12.92 : a.pow((c + .055) / 1.055, 2.4), g = .03928 >= d ? d / 12.92 : a.pow((d + .055) / 1.055, 2.4), .2126 * e + .7152 * f + .0722 * g }, setAlpha: function (a) { return this._a = z(a), this._roundA = P(100 * this._a) / 100, this }, toHsv: function () { var a = g(this._r, this._g, this._b); return { h: 360 * a.h, s: a.s, v: a.v, a: this._a } }, toHsvString: function () { var a = g(this._r, this._g, this._b), b = P(360 * a.h), c = P(100 * a.s), d = P(100 * a.v); return 1 == this._a ? \"hsv(\" + b + \", \" + c + \"%, \" + d + \"%)\" : \"hsva(\" + b + \", \" + c + \"%, \" + d + \"%, \" + this._roundA + \")\" }, toHsl: function () { var a = e(this._r, this._g, this._b); return { h: 360 * a.h, s: a.s, l: a.l, a: this._a } }, toHslString: function () { var a = e(this._r, this._g, this._b), b = P(360 * a.h), c = P(100 * a.s), d = P(100 * a.l); return 1 == this._a ? \"hsl(\" + b + \", \" + c + \"%, \" + d + \"%)\" : \"hsla(\" + b + \", \" + c + \"%, \" + d + \"%, \" + this._roundA + \")\" }, toHex: function (a) { return i(this._r, this._g, this._b, a) }, toHexString: function (a) { return \"#\" + this.toHex(a) }, toHex8: function (a) { return j(this._r, this._g, this._b, this._a, a) }, toHex8String: function (a) { return \"#\" + this.toHex8(a) }, toRgb: function () { return { r: P(this._r), g: P(this._g), b: P(this._b), a: this._a } }, toRgbString: function () { return 1 == this._a ? \"rgb(\" + P(this._r) + \", \" + P(this._g) + \", \" + P(this._b) + \")\" : \"rgba(\" + P(this._r) + \", \" + P(this._g) + \", \" + P(this._b) + \", \" + this._roundA + \")\" }, toPercentageRgb: function () { return { r: P(100 * A(this._r, 255)) + \"%\", g: P(100 * A(this._g, 255)) + \"%\", b: P(100 * A(this._b, 255)) + \"%\", a: this._a } }, toPercentageRgbString: function () { return 1 == this._a ? \"rgb(\" + P(100 * A(this._r, 255)) + \"%, \" + P(100 * A(this._g, 255)) + \"%, \" + P(100 * A(this._b, 255)) + \"%)\" : \"rgba(\" + P(100 * A(this._r, 255)) + \"%, \" + P(100 * A(this._g, 255)) + \"%, \" + P(100 * A(this._b, 255)) + \"%, \" + this._roundA + \")\" }, toName: function () { return 0 === this._a ? \"transparent\" : this._a < 1 ? !1 : U[i(this._r, this._g, this._b, !0)] || !1 }, toFilter: function (a) { var c = \"#\" + k(this._r, this._g, this._b, this._a), d = c, e = this._gradientType ? \"GradientType = 1, \" : \"\"; if (a) { var f = b(a); d = \"#\" + k(f._r, f._g, f._b, f._a) } return \"progid:DXImageTransform.Microsoft.gradient(\" + e + \"startColorstr=\" + c + \",endColorstr=\" + d + \")\" }, toString: function (a) { var b = !!a; a = a || this._format; var c = !1, d = this._a < 1 && this._a >= 0, e = !b && d && (\"hex\" === a || \"hex6\" === a || \"hex3\" === a || \"hex4\" === a || \"hex8\" === a || \"name\" === a); return e ? \"name\" === a && 0 === this._a ? this.toName() : this.toRgbString() : (\"rgb\" === a && (c = this.toRgbString()), \"prgb\" === a && (c = this.toPercentageRgbString()), (\"hex\" === a || \"hex6\" === a) && (c = this.toHexString()), \"hex3\" === a && (c = this.toHexString(!0)), \"hex4\" === a && (c = this.toHex8String(!0)), \"hex8\" === a && (c = this.toHex8String()), \"name\" === a && (c = this.toName()), \"hsl\" === a && (c = this.toHslString()), \"hsv\" === a && (c = this.toHsvString()), c || this.toHexString()) }, clone: function () { return b(this.toString()) }, _applyModification: function (a, b) { var c = a.apply(null, [this].concat([].slice.call(b))); return this._r = c._r, this._g = c._g, this._b = c._b, this.setAlpha(c._a), this }, lighten: function () { return this._applyModification(o, arguments) }, brighten: function () { return this._applyModification(p, arguments) }, darken: function () { return this._applyModification(q, arguments) }, desaturate: function () { return this._applyModification(l, arguments) }, saturate: function () { return this._applyModification(m, arguments) }, greyscale: function () { return this._applyModification(n, arguments) }, spin: function () { return this._applyModification(r, arguments) }, _applyCombination: function (a, b) { return a.apply(null, [this].concat([].slice.call(b))) }, analogous: function () { return this._applyCombination(w, arguments) }, complement: function () { return this._applyCombination(s, arguments) }, monochromatic: function () { return this._applyCombination(x, arguments) }, splitcomplement: function () { return this._applyCombination(v, arguments) }, triad: function () { return this._applyCombination(t, arguments) }, tetrad: function () { return this._applyCombination(u, arguments) } }, b.fromRatio = function (a, c) { if (\"object\" == typeof a) { var d = {}; for (var e in a) a.hasOwnProperty(e) && (d[e] = \"a\" === e ? a[e] : G(a[e])); a = d } return b(a, c) }, b.equals = function (a, c) { return a && c ? b(a).toRgbString() == b(c).toRgbString() : !1 }, b.random = function () { return b.fromRatio({ r: S(), g: S(), b: S() }) }, b.mix = function (a, c, d) { d = 0 === d ? 0 : d || 50; var e = b(a).toRgb(), f = b(c).toRgb(), g = d / 100, h = { r: (f.r - e.r) * g + e.r, g: (f.g - e.g) * g + e.g, b: (f.b - e.b) * g + e.b, a: (f.a - e.a) * g + e.a }; return b(h) }, b.readability = function (c, d) { var e = b(c), f = b(d); return (a.max(e.getLuminance(), f.getLuminance()) + .05) / (a.min(e.getLuminance(), f.getLuminance()) + .05) }, b.isReadable = function (a, c, d) { var e, f, g = b.readability(a, c); switch (f = !1, e = L(d), e.level + e.size) { case \"AAsmall\": case \"AAAlarge\": f = g >= 4.5; break; case \"AAlarge\": f = g >= 3; break; case \"AAAsmall\": f = g >= 7 } return f }, b.mostReadable = function (a, c, d) { var e, f, g, h, i = null, j = 0; d = d || {}, f = d.includeFallbackColors, g = d.level, h = d.size; for (var k = 0; k < c.length; k++) e = b.readability(a, c[k]), e > j && (j = e, i = b(c[k])); return b.isReadable(a, i, { level: g, size: h }) || !f ? i : (d.includeFallbackColors = !1, b.mostReadable(a, [\"#fff\", \"#000\"], d)) }; var T = b.names = { aliceblue: \"f0f8ff\", antiquewhite: \"faebd7\", aqua: \"0ff\", aquamarine: \"7fffd4\", azure: \"f0ffff\", beige: \"f5f5dc\", bisque: \"ffe4c4\", black: \"000\", blanchedalmond: \"ffebcd\", blue: \"00f\", blueviolet: \"8a2be2\", brown: \"a52a2a\", burlywood: \"deb887\", burntsienna: \"ea7e5d\", cadetblue: \"5f9ea0\", chartreuse: \"7fff00\", chocolate: \"d2691e\", coral: \"ff7f50\", cornflowerblue: \"6495ed\", cornsilk: \"fff8dc\", crimson: \"dc143c\", cyan: \"0ff\", darkblue: \"00008b\", darkcyan: \"008b8b\", darkgoldenrod: \"b8860b\", darkgray: \"a9a9a9\", darkgreen: \"006400\", darkgrey: \"a9a9a9\", darkkhaki: \"bdb76b\", darkmagenta: \"8b008b\", darkolivegreen: \"556b2f\", darkorange: \"ff8c00\", darkorchid: \"9932cc\", darkred: \"8b0000\", darksalmon: \"e9967a\", darkseagreen: \"8fbc8f\", darkslateblue: \"483d8b\", darkslategray: \"2f4f4f\", darkslategrey: \"2f4f4f\", darkturquoise: \"00ced1\", darkviolet: \"9400d3\", deeppink: \"ff1493\", deepskyblue: \"00bfff\", dimgray: \"696969\", dimgrey: \"696969\", dodgerblue: \"1e90ff\", firebrick: \"b22222\", floralwhite: \"fffaf0\", forestgreen: \"228b22\", fuchsia: \"f0f\", gainsboro: \"dcdcdc\", ghostwhite: \"f8f8ff\", gold: \"ffd700\", goldenrod: \"daa520\", gray: \"808080\", green: \"008000\", greenyellow: \"adff2f\", grey: \"808080\", honeydew: \"f0fff0\", hotpink: \"ff69b4\", indianred: \"cd5c5c\", indigo: \"4b0082\", ivory: \"fffff0\", khaki: \"f0e68c\", lavender: \"e6e6fa\", lavenderblush: \"fff0f5\", lawngreen: \"7cfc00\", lemonchiffon: \"fffacd\", lightblue: \"add8e6\", lightcoral: \"f08080\", lightcyan: \"e0ffff\", lightgoldenrodyellow: \"fafad2\", lightgray: \"d3d3d3\", lightgreen: \"90ee90\", lightgrey: \"d3d3d3\", lightpink: \"ffb6c1\", lightsalmon: \"ffa07a\", lightseagreen: \"20b2aa\", lightskyblue: \"87cefa\", lightslategray: \"789\", lightslategrey: \"789\", lightsteelblue: \"b0c4de\", lightyellow: \"ffffe0\", lime: \"0f0\", limegreen: \"32cd32\", linen: \"faf0e6\", magenta: \"f0f\", maroon: \"800000\", mediumaquamarine: \"66cdaa\", mediumblue: \"0000cd\", mediumorchid: \"ba55d3\", mediumpurple: \"9370db\", mediumseagreen: \"3cb371\", mediumslateblue: \"7b68ee\", mediumspringgreen: \"00fa9a\", mediumturquoise: \"48d1cc\", mediumvioletred: \"c71585\", midnightblue: \"191970\", mintcream: \"f5fffa\", mistyrose: \"ffe4e1\", moccasin: \"ffe4b5\", navajowhite: \"ffdead\", navy: \"000080\", oldlace: \"fdf5e6\", olive: \"808000\", olivedrab: \"6b8e23\", orange: \"ffa500\", orangered: \"ff4500\", orchid: \"da70d6\", palegoldenrod: \"eee8aa\", palegreen: \"98fb98\", paleturquoise: \"afeeee\", palevioletred: \"db7093\", papayawhip: \"ffefd5\", peachpuff: \"ffdab9\", peru: \"cd853f\", pink: \"ffc0cb\", plum: \"dda0dd\", powderblue: \"b0e0e6\", purple: \"800080\", rebeccapurple: \"663399\", red: \"f00\", rosybrown: \"bc8f8f\", royalblue: \"4169e1\", saddlebrown: \"8b4513\", salmon: \"fa8072\", sandybrown: \"f4a460\", seagreen: \"2e8b57\", seashell: \"fff5ee\", sienna: \"a0522d\", silver: \"c0c0c0\", skyblue: \"87ceeb\", slateblue: \"6a5acd\", slategray: \"708090\", slategrey: \"708090\", snow: \"fffafa\", springgreen: \"00ff7f\", steelblue: \"4682b4\", tan: \"d2b48c\", teal: \"008080\", thistle: \"d8bfd8\", tomato: \"ff6347\", turquoise: \"40e0d0\", violet: \"ee82ee\", wheat: \"f5deb3\", white: \"fff\", whitesmoke: \"f5f5f5\", yellow: \"ff0\", yellowgreen: \"9acd32\" }, U = b.hexNames = y(T), V = function () { var a = \"[-\\\\+]?\\\\d+%?\", b = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\", c = \"(?:\" + b + \")|(?:\" + a + \")\", d = \"[\\\\s|\\\\(]+(\" + c + \")[,|\\\\s]+(\" + c + \")[,|\\\\s]+(\" + c + \")\\\\s*\\\\)?\", e = \"[\\\\s|\\\\(]+(\" + c + \")[,|\\\\s]+(\" + c + \")[,|\\\\s]+(\" + c + \")[,|\\\\s]+(\" + c + \")\\\\s*\\\\)?\"; return { CSS_UNIT: new RegExp(c), rgb: new RegExp(\"rgb\" + d), rgba: new RegExp(\"rgba\" + e), hsl: new RegExp(\"hsl\" + d), hsla: new RegExp(\"hsla\" + e), hsv: new RegExp(\"hsv\" + d), hsva: new RegExp(\"hsva\" + e), hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ } }(); \"undefined\" != typeof module && module.exports ? module.exports = b : \"function\" == typeof define && define.amd ? define(function () { return b }) : window.tinycolor = b }(Math);","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import '../IdcGlobal.IBP.Web/theme/US/site_1/css/normalize.css'\r\nimport '../IdcGlobal.IBP.Web/theme/US/site_1/css/material-idc-optimized.css'\r\nimport '../IdcGlobal.IBP.Web/theme/US/site_1/css/mdl-selectfield.css'\r\nimport '../IdcGlobal.IBP.Web/theme/US/site_1/css/material-agora.css'\r\nimport '../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/AgoraMenu.css'\r\nimport '../IdcGlobal.IBP.Web/theme/US/site_1/css/items.style.css'\r\nimport '../IdcGlobal.IBP.Web/theme/US/site_1/css/controls.style.css'\r\nimport '../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/jquery2.1.1.js'\r\nimport '../IdcGlobal.IBP.Web/js/material.js'\r\nimport '../IdcGlobal.IBP.Web/js/mdl-selectfield.js'\r\nimport '../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/AjaxScroller.js'\r\nimport '../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/AgoraMenu.js'\r\nimport '../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/Contact1.1.js'\r\nimport '../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/Utility.js'\r\nimport '../IdcGlobal.IBP.Web/js/tinycolor.js'\r\nimport '../IdcGlobal.IBP.Web/js/common.js'\r\n"],"names":["_setHamburberMenu","$this","removeAttr","find","css","_availableWidth","outerWidth","_computedWidth","_nodeCount","children","each","$self","$","this","attr","hide","$topNAvigation","window","resize","fn","extend","AjaxScroller","options","_options","PreviousBtn","NextBtn","SearchBtn","NextBtnTextFormat","NextBtnOnLoadingHtml","ServiceUrl","DataJson","TemplateId","TemplateResetAttributes","Params","PageCount","PageNumber","ItemsPerShow","FullAjax","AutoScroll","AutoScrollSpeed","Transition","ResultType","EnableCache","DisableShowIfNotNull","OnlyShowFirstPage","BeforePrevious","AfterPrevious","BeforeNext","AfterNext","ValidateBeforeLoad","BeforeLoad","AfterLoad","AfterInvoke","AfterResultInvoke","_preBtn","_nxtBtn","_template","_scroller","_resposeCache","_PageCount","_PageNumber","_request","obj","_schBtn","undefined","unbind","href","click","parseInt","Bind","LoadPrevious","LoadNext","html","ShowHideControls","setTimeout","Init","optn","show","ShowItems","data","AfterHtmlResultInvoke","_htmlTpml","append","fadeOut","remove","fadeIn","_iBalCount","ResultCount","PageSize","replace","addClass","_cacheKey","ajax","type","url","dataType","success","_responseHTML","applyTemplate","statusCode","console","log","removeClass","_tmpl","clone","_templateResetAttributes","split","i","length","first","Items","item","indexOf","_valueIds","_valueFormat","_valueId","substring","_tempValue","GetJsonValue","_anyValueAvailable","OnBindItem","PageStartIndex","PageEndIndex","attribute","attributes","jQuery","document","ready","location","hash","OpenPopup","isNullOrEmpty","value","trim","BackToTop","sender","_navigatorPosition","closest","offset","animate","scrollTop","top","TopToBottom","height","_scrollForPageScroll","$referencedItem","_itemPosition","_offset","_value","e","trigger","ForceNumericOnly","keydown","key","charCode","keyCode","shiftKey","on","target","open","a","b","c","_","isWindow","nodeType","d","isFunction","grep","call","hb","test","filter","U","g","Z","removeEventListener","h","Object","defineProperty","cache","get","expando","Math","random","ub","toLowerCase","getAttribute","tb","parseJSON","sb","set","j","k","l","activeElement","m","nodeName","firstChild","getElementsByTagName","appendChild","ownerDocument","createElement","n","o","Kb","exec","removeAttribute","p","rb","q","f","hasData","access","events","handle","event","add","r","querySelectorAll","merge","s","yb","checked","defaultValue","t","appendTo","body","getDefaultComputedStyle","display","detach","u","Ob","Nb","documentElement","contentDocument","write","close","v","style","Rb","getPropertyValue","contains","Qb","Pb","width","minWidth","maxWidth","w","apply","arguments","x","toUpperCase","slice","Xb","y","Tb","max","z","wb","A","offsetWidth","offsetHeight","Y","boxSizingReliable","parseFloat","B","xb","C","prototype","init","D","Yb","now","E","opacity","F","cc","concat","I","bc","Deferred","always","elem","startTime","duration","tweens","run","notifyWith","resolveWith","promise","props","opts","specialEasing","originalProperties","originalOptions","createTween","Tween","easing","push","stop","rejectWith","camelCase","isArray","cssHooks","expand","H","map","start","fx","timer","anim","queue","progress","done","complete","fail","J","match","nb","unshift","K","dataTypes","vc","L","ajaxSettings","flatOptions","O","zc","P","defaultView","Q","R","S","T","V","W","toString","X","hasOwnProperty","ab","bb","cb","db","jquery","constructor","selector","toArray","pushStack","prevObject","context","eq","last","end","sort","splice","isPlainObject","isReady","error","Error","noop","Array","isNumeric","isEmptyObject","globalEval","eval","text","head","parentNode","removeChild","makeArray","inArray","guid","proxy","Date","support","eb","G","getElementById","id","M","getElementsByClassName","qsa","N","setAttribute","join","ib","cacheLength","shift","attrHandle","sourceIndex","nextSibling","dir","relative","matches","TAG","uniqueSort","pop","fb","gb","RegExp","jb","kb","lb","mb","ob","ID","CLASS","ATTR","PSEUDO","CHILD","bool","needsContext","pb","qb","vb","String","fromCharCode","childNodes","isXML","setDocument","addEventListener","attachEvent","className","createComment","innerHTML","getById","getElementsByName","getAttributeNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","sortDetached","specified","detectDuplicates","sortStable","getText","textContent","nodeValue","selectors","createPseudo","preFilter","lastChild","pseudos","setFilters","not","has","innerText","lang","root","focus","hasFocus","tabIndex","enabled","disabled","selected","selectedIndex","empty","parent","header","input","button","even","odd","lt","gt","nth","radio","checkbox","file","password","image","submit","reset","filters","tokenize","compile","select","expr","unique","isXMLDoc","is","parseHTML","contents","next","prev","sibling","index","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","once","memory","stopOnFalse","disable","lock","locked","fireWith","fire","fired","state","then","resolve","reject","notify","pipe","when","readyWait","holdReady","triggerHandler","off","readyState","acceptData","uid","accepts","defineProperties","discard","removeData","_data","_removeData","name","dequeue","_queueHooks","clearQueue","source","createDocumentFragment","checkClone","cloneNode","noCloneChecked","zb","focusinBubbles","Ab","Bb","Cb","Db","global","handler","triggered","dispatch","special","delegateType","bindType","origType","namespace","delegateCount","setup","capture","passive","teardown","removeEvent","Event","isTrigger","namespace_re","result","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","delegateTarget","preDispatch","handlers","currentTarget","isImmediatePropagationStopped","handleObj","stopPropagation","postDispatch","fixHooks","keyHooks","which","mouseHooks","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","clientTop","load","blur","beforeunload","originalEvent","returnValue","simulate","isSimulated","defaultPrevented","timeStamp","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","relatedTarget","one","Eb","Fb","Gb","Hb","Ib","Jb","Lb","Mb","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","buildFragment","createTextNode","cleanData","domManip","prepend","insertBefore","before","after","replaceWith","replaceChild","src","_evalUrl","prependTo","insertAfter","replaceAll","getComputedStyle","cssText","backgroundClip","clearCloneStyle","pixelPosition","reliableMarginRight","marginRight","swap","Sb","Ub","Vb","position","visibility","Wb","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","margin","padding","border","toggle","prop","cur","unit","propHooks","pos","step","linear","swing","cos","PI","Zb","$b","_b","ac","unqueued","overflow","overflowX","overflowY","hidden","Animation","tweener","prefilter","speed","speeds","old","fadeTo","finish","timers","slideDown","slideUp","slideToggle","fadeToggle","tick","interval","setInterval","clearInterval","slow","fast","delay","clearTimeout","checkOn","optSelected","optDisabled","radioValue","ec","fc","attrHooks","dc","propFix","gc","removeProp","hasAttribute","hc","toggleClass","hasClass","ic","val","valHooks","hover","bind","delegate","undelegate","jc","kc","JSON","parse","parseXML","DOMParser","parseFromString","lc","mc","nc","oc","pc","rc","sc","tc","uc","wc","xc","active","lastModified","etag","isLocal","processData","async","contentType","xml","json","responseFields","converters","ajaxSetup","ajaxPrefilter","ajaxTransport","mimeType","getResponseHeader","dataFilter","ifModified","status","statusText","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","method","crossDomain","param","traditional","hasContent","headers","beforeSend","timeout","send","getJSON","getScript","wrapAll","firstElementChild","wrapInner","wrap","unwrap","visible","yc","Ac","Bc","Cc","encodeURIComponent","serialize","serializeArray","xhr","XMLHttpRequest","Dc","Ec","Fc","Gc","ActiveXObject","cors","username","xhrFields","onload","onerror","responseText","script","charset","scriptCharset","Hc","Ic","jsonp","jsonpCallback","Jc","animated","Kc","setOffset","left","using","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","scrollTo","Height","Width","content","size","andSelf","Lc","Mc","noConflict","module","exports","agRequest","GET","serviceUrl","queryString","fetch","POST","formData","URLSearchParams","agRefresh","dispatchEvent","CustomEvent","isSynced","current","localStorage","getItem","getAgent","user","removeItem","Guid","localUser","Name","FirstName","LastName","Email","Phone","MobilePhone","setItem","stringify","update","setAgent","agent","Role","render","forEach","classList","updatePropertyCollection","initPropertyCollection","logginedNode","contact","wrapper","holder","cl","node","getLoginedItem","parentElement","componentHandler","upgradeDom","setForms","renderStates","isForced","items","collectionType","Promise","propertyCollection","propertyCollectionString","getPropertyCollection","reduce","PK","RT","dom","renderPropertyCollectionItem","nodeField","detail","action","agUser","collection","refresh","currentAgent","agentguid","eventType","currentValuesString","currentValue","changeRequire","ContactGuid","contactguid","AgentGuid","agentrole","reload","checkForSync","updatedOn","currentDateTime","setMinutes","getMinutes","dataToReview","readFromServer","assign","agevent","isAgoraLoaded","isCssLoaded","agora","getLocationHref","defaultItem","_href","lastIndexOf","setTabContent","_setDefaults","history","pushState","EnableTabContents","AgoraDialogModal","EnableAjaxHtmlLoad","cssLoad","DynamicQueryList","tab_load","_self","_serviceUrl","_disableOwlCarousel","_enableDemandScroll","_enableShowmoreButton","$sender","$id","$Itemcontainer","$buttonScroll","$template","$context","$noItemContext","$noItemContextLabel","$contextItemExists","count","$next","$loader","$showmorebutton","_itemSliderSetting","_itemsCount","_extraParams","_stage","nav","loop","_items","_i","_key","_rt","_ownerRT","_urlQuery","_ownerKey","IsNotNull","_itemShow","isVisible","_contentPosition","_contentHeight","_screenHeight","_viewMin","_viewMax","outerHeight","_contentMin","dynamicScroll","getFirstElementChecked","getFirstElementChecked1","_isInit","DemandScroll","DemandScrollContext","ShowNextPage","dataHtml","_remains","GetPropertyImageGallery","scroll","property","isNaN","owlCarousel","lazyLoad","navText","dots","responsiveClass","responsive","$item","templateType","$trigger","EnableDynamicQueryList","formatter","getFormattedDate","date","getDate","setMonth","getMonth","getMaxDate","currentURL","replaceState","ParentCss","_index","err","_for","MaterialTextfield","checkDirty","_resize","homeFlashLoaded","windowScrollTop","EnableStickyHeader","EnableFlowlessHeader","$loadContext","_url","failure","_getWidth","_isValidExtendedSearchView","_performSearchBarTrigger","_openFilterWindow","_closeFilterWindow","EnableSearchBar","searchActon","$form","composeUrlQuery","$sort","_defaultSort","_sortValue","query","$prefix","_prefix","recordType","GetSearchPrefixForRecordType","EnableSearchForm","_relAgentKey","_agentKey","ShowLoading","$requestType","$mlsNumber","_succesUrl","_trackVal","startsWith","response","responseNumber","Number","$senderForm","_phone","_email","_consent","ShowAlert","_formXml","GetFormXml","_isValid","_type","formXml","idle","_formTag","_contactEmail","_contactFName","_contactLName","_contactPhone","_contactRemarks","_formTagJSON","_formObj","fromEmail","fromName","fromTelephone","mobile","message","getBRTContact","_brtParts","getBRTEvents","isMultiLingual","getLocale","lead","Message","SubmitRequest","_createSlider","_gallerySlider","dataResponsive","array","_settings","gallery","custom","customdots","fullwidth","autoplay","autoplayTimeout","_settingsLoop","_settingsMargin","_settingsResponsive","_settingsAutoplay","_optionsGiven","EnableSlider","CloseAgoraDropDownOnBodyClick","_converterID","AgoraCurrencyConvertions","_init","_enableConverter","$handle","_getConvertionControl","_setConverter","_updateMasterValue","element","$placeholder","$state","$contextHTML","_convertValue","ExchangeRate","Rates","$control","Code","Constant","Notation","$current","_constant","_code","_notation","_haveNotation","setCookie","converter","$converter","$select","$value","_intermediateCode","getCookie","_intermediateConstant","_intermediateRepresentation","_hideCurrencyCode","_representation","_update","constant","representation","code","_value3","_valuePart","floor","_getAgoraExchangeItem","$hideCode","_agoraExchangeItem","EnableConverter","GetProperties","demandKey","layout","_getCMNCMNSortBy","UrlQuery","TypeOfSearch","IsContentPage","DemandKey","$html","$parent","GetDefaultSortForRecordType","EnableDemandImport","_hjInit","_prevScrollTop","isOnScreen","GetHJN","EnableHJNImport","_yelpInit","processYelpControlSearch","EnableYelpImport","_areamapInit","getAreaMapControl","EnableAreaMapImport","alert","keypress","address","referrer","adfenix","track","_googleTagManager","params","_isDebug","host","dataLayerSub","dataLayer","_getGTMTagType","$node","_parseToParams","_gtmParams","_gtmArray","_gtmParts","_nodeParamValue","ex","_googleTagManagerTrack","EnableGoogleTagManager","google","maps","places","Autocomplete","_bryteCore","_isStage","brytescore","_getBRTTagType","_brtParams","_parseToEvents","_brtEvents","_bryteCoreTrack","EnableBrytecore","Palette","hex","PaletteGenerator","multiply","rgb1","rgb2","tinycolor","baseLight","baseDark","toRgb","baseTriad","tetrad","mix","saturate","lighten","monthStr","_day","getFullYear","padStart","$AutoHeader","$actualHeader","setHeader","_performAction","_actionType","_actionUrl","PerformAction","Value","$itemContext","$slideContext","mlsNumber","mlsBoard","projectCode","imageTemplate","nativeTab","$itemWithIDContext","template","uID","prefix","$navigations","$prev","_loadMore","mlsboard","mlsno","container","buildFirstTemplate","getMilliseconds","hjnId","_containerIdSufix","getHours","getSeconds","$window","viewport_top","viewport_height","viewport_bottom","$elem","bottom","latitude","longitude","containerIdSufix","cname","cvalue","exdays","setTime","getTime","expires","toUTCString","cookie","ca","decodeURIComponent","charAt","pathname","ctrlKey","_detailUrl","triggerElement","_formXML","ActionType","Status","Contact","yyyymmddhhmmss","yyyy","mm","dd","hh","min","ss","MaterialCheckbox","uncheck","doSearch","onresize","change","optJsClass","optCssClass","upgradeElement","upgradeElements","elements","upgradeAllRegistered","registerUpgradedCallback","jsClass","callback","register","config","downgradeElements","nodes","registeredComponents_","createdComponents_","componentConfigProperty_","findRegisteredClass_","optReplace","getUpgradedListOfElement_","dataUpgraded","isElementUpgraded_","createEvent_","bubbles","cancelable","ev","createEvent","initEvent","upgradeDomInternal","cssClass","registeredClass","upgradeElementInternal","Element","upgradingEv","upgradedList","classesToUpgrade","component","instance","classConstructor","callbacks","widget","upgradedEv","deconstructComponentInternal","componentIndex","upgrades","element_","componentPlace","classAsString","upgradeElementsInternal","HTMLElement","regClass","newConfig","downgradeNode","NodeList","Node","ComponentConfigPublic","ComponentConfig","Component","vendors","requestAnimationFrame","vp","cancelAnimationFrame","navigator","userAgent","lastTime","nextTime","MaterialButton","Constant_","CssClasses_","RIPPLE_EFFECT","RIPPLE_CONTAINER","RIPPLE","blurHandler_","enable","rippleContainer","rippleElement_","boundRippleBlurHandler","boundButtonBlurHandler","TINY_TIMEOUT","INPUT","BOX_OUTLINE","FOCUS_HELPER","TICK_OUTLINE","RIPPLE_IGNORE_EVENTS","RIPPLE_CENTER","IS_FOCUSED","IS_DISABLED","IS_CHECKED","IS_UPGRADED","onChange_","updateClasses_","onFocus_","onBlur_","onMouseUp_","blur_","checkDisabled","checkToggleState","inputElement_","check","querySelector","boxOutline","tickContainer","tickOutline","rippleContainerElement_","boundRippleMouseUp","ripple","boundInputOnChange","boundInputOnFocus","boundInputOnBlur","boundElementMouseUp","MaterialIconToggle","JS_RIPPLE_EFFECT","boundElementOnMouseUp","MaterialMenu","TRANSITION_DURATION_SECONDS","TRANSITION_DURATION_FRACTION","CLOSE_TIMEOUT","Keycodes_","ENTER","ESCAPE","SPACE","UP_ARROW","DOWN_ARROW","CONTAINER","OUTLINE","ITEM","ITEM_RIPPLE_CONTAINER","IS_VISIBLE","IS_ANIMATING","BOTTOM_LEFT","BOTTOM_RIGHT","TOP_LEFT","TOP_RIGHT","UNALIGNED","container_","outline","outline_","forElId","forEl","forElement_","handleForClick_","handleForKeyboardEvent_","boundItemKeydown_","handleItemKeyboardEvent_","boundItemClick_","handleItemClick_","evt","rect","forRect","right","offsetTop","offsetLeft","currentIndex","MouseEvent","closing_","applyClip_","clip","removeAnimationEndListener_","addAnimationEndListener_","transitionDuration","itemDelay","transitionDelay","removeProperty","MaterialProgress","INDETERMINATE_CLASS","setProgress","progressbar_","setBuffer","bufferbar_","auxbar_","el","MaterialRadio","JS_RADIO","RADIO_BTN","RADIO_OUTER_CIRCLE","RADIO_INNER_CIRCLE","radios","btnElement_","onMouseup_","boundChangeHandler_","boundFocusHandler_","boundBlurHandler_","boundMouseUpHandler_","outerCircle","innerCircle","MaterialSlider","isIE_","msPointerEnabled","IE_CONTAINER","SLIDER_CONTAINER","BACKGROUND_FLEX","BACKGROUND_LOWER","BACKGROUND_UPPER","IS_LOWEST_VALUE","onInput_","updateValueStyles_","onContainerMouseDown_","newEvent","buttons","fraction","backgroundLower_","flex","webkitFlex","backgroundUpper_","containerIE","backgroundFlex","boundInputHandler","boundChangeHandler","boundMouseUpHandler","boundContainerMouseDownHandler","MaterialSnackbar","textElement_","cssClasses_","MESSAGE","actionElement_","ACTION","actionHandler_","message_","actionText_","queuedNotifications_","setActionHidden_","ANIMATION_LENGTH","SNACKBAR","ACTIVE","displaySnackbar_","cleanup_","timeout_","showSnackbar","checkQueue_","Boolean","MaterialSpinner","MDL_SPINNER_LAYER_COUNT","MDL_SPINNER_LAYER","MDL_SPINNER_CIRCLE_CLIPPER","MDL_SPINNER_CIRCLE","MDL_SPINNER_GAP_PATCH","MDL_SPINNER_LEFT","MDL_SPINNER_RIGHT","createLayer","layer","leftClipper","gapPatch","rightClipper","circleOwners","circle","MaterialSwitch","TRACK","THUMB","thumb","focusHelper","boundFocusHandler","boundBlurHandler","MaterialTabs","MaterialTab","tab","ctx","MDL_JS_RIPPLE_EFFECT","MDL_RIPPLE_CONTAINER","MDL_RIPPLE","panel","resetTabState_","resetPanelState_","ACTIVE_CLASS","TAB_CLASS","PANEL_CLASS","UPGRADED_CLASS","MDL_JS_RIPPLE_EFFECT_IGNORE_EVENTS","initTabs_","tabs_","panels_","maxRows","NO_MAX_ROWS","MAX_ROWS_ATTRIBUTE","LABEL","IS_DIRTY","IS_INVALID","HAS_PLACEHOLDER","onKeyDown_","currentRowCount","onReset_","checkValidity","checkFocus","input_","validity","valid","label_","boundUpdateClassesHandler","boundResetHandler","boundKeyDownHandler","invalid","MaterialTooltip","IS_ACTIVE","BOTTOM","LEFT","RIGHT","TOP","handleMouseEnter_","marginLeft","marginTop","hideTooltip_","boundMouseEnterHandler","boundMouseLeaveAndScrollHandler","MaterialLayout","MAX_WIDTH","TAB_SCROLL_PIXELS","RESIZE_TIMEOUT","MENU_ICON","CHEVRON_LEFT","CHEVRON_RIGHT","Mode_","STANDARD","SEAMED","WATERFALL","SCROLL","HEADER","DRAWER","CONTENT","DRAWER_BTN","ICON","HEADER_SEAMED","HEADER_WATERFALL","HEADER_SCROLL","FIXED_HEADER","OBFUSCATOR","TAB_BAR","TAB_CONTAINER","TAB","TAB_BAR_BUTTON","TAB_BAR_LEFT_BUTTON","TAB_BAR_RIGHT_BUTTON","TAB_MANUAL_SWITCH","PANEL","HAS_DRAWER","HAS_TABS","HAS_SCROLLING_HEADER","CASTING_SHADOW","IS_COMPACT","IS_SMALL_SCREEN","IS_DRAWER_OPEN","ON_LARGE_SCREEN","ON_SMALL_SCREEN","contentScrollHandler_","header_","headerVisible","content_","keyboardEventHandler_","drawer_","toggleDrawer","screenSizeHandler_","screenSizeMediaQuery_","obfuscator_","drawerToggleHandler_","headerTransitionEndHandler_","headerClickHandler_","tabBar","panels","drawerButton","tabBar_","drawerButtonIcon","obfuscator","matchMedia","addListener","tabs","selectTab","MaterialDataTable","DATA_TABLE","SELECTABLE","SELECT_ELEMENT","IS_SELECTED","selectRow_","row","opt_rows","createCheckbox_","label","labelClasses","firstHeader","bodyRows","footRows","rows","headerCheckbox","firstCell","rowCheckbox","MaterialRipple","INITIAL_SCALE","INITIAL_SIZE","INITIAL_OPACITY","FINAL_OPACITY","FINAL_SCALE","RIPPLE_EFFECT_IGNORE_EVENTS","downHandler_","boundHeight","boundWidth","rippleSize_","sqrt","ignoringMouseDown_","getFrameCount","setFrameCount","bound","round","touches","setRippleXY","setRippleStyles","animFrameHandler","upHandler_","recentering","frameCount_","x_","y_","boundDownHandler","boundUpHandler","fC","getRippleElement","newX","newY","transformString","scale","webkitTransform","msTransform","transform","MaterialSelectfield","setDefaults_","SELECT","SELECTED_BOX","SELECTED_BOX_VALUE","LIST_OPTION_BOX","options_","optionsMap_","optionsArr_","keyDownTimerId_","observer_","show_","onSelected_","selectedItem","selectedOptionValue_","select_","listOptionBox_","onclick_","update_","itemSelected","isDescendant_","child","hide_","strSearch_","boundKeyDownHandler_","boundClickDocHandler_","selectedOption_","lastSelectedItem_","initMouseEvent","validKeyCode_","ind","searchByStrIndex_","srchStr","isPresent","indx","arr","keycode","selectedOption","icon","makeElements_","boundClickHandler","refreshOptions","mdlDowngrade_","clearElements_","listOptionBox","ul","liHTML","itemText","liClass","MutationObserver","mutations","mutation","observe","childList","characterData","disconnect","mdlDowngrade","_originalInput","_r","_g","_a","_roundA","_format","format","_gradientType","gradientType","_ok","ok","_tc_id","rgb","rgba","hsl","hsla","hsv","hsva","hex8","hex6","hex4","hex3","substr","toHsl","desaturate","toHsv","abs","CSS_UNIT","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","pow","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","toFilter","_applyModification","brighten","darken","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","fromRatio","equals","readability","isReadable","level","mostReadable","includeFallbackColors","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","hexNames","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","Symbol","toStringTag"],"sourceRoot":""}