window.hzmr = window.hzmr || [];
/************* Start CartActionsRequest.php Ajax Connector for locale en-US**************/
try {        // <script>
            // Defineing a new package name "Cart"
            HZ.ns('HZ.ajaz.Services.Cart');
            HZ.ajaz.Services.Cart.addItem = function (houseId, productId, quantity, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'add'},
                    {name: 'ac', value: '0'},
                    {name: 'hid', value: houseId},
                    {name: 'pId', value: productId},
                    {name: 'q', value: quantity}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };

            // need to be deleted once UK launch new return policy
            // start here
            HZ.ajaz.Services.Cart.getReturnPolicy = function (houseId, vendorId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'getPolicy'},
                    {name: 'hid', value: houseId},
                    {name: 'vId', value: vendorId},
                    {name: 'ac', value: '6'}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            // end here

            HZ.ajaz.Services.Cart.getWarranty = function (houseId, vendorId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'getPolicy'},
                    {name: 'hid', value: houseId},
                    {name: 'vId', value: vendorId},
                    {name: 'ac', value: '6'}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.updateItem = function (cartItemId, quantity, productId, giftCardInfoId,
                                                         warrantyCartItemId, warrantyItemId, warrantyQuantity, onSuccess, extras) {
                var params = [
                    {name: 'ciId', value: cartItemId},
                    {name: 'q', value: quantity},
                    {name: 'pId', value: productId},
                    {name: 'gid', value: giftCardInfoId},
                    {name: 'wciId', value: warrantyCartItemId},
                    {name: 'wpId', value: warrantyItemId},
                    {name: 'wq', value: warrantyQuantity},
                ];
                if (quantity == 0) {
                    params.push({name: 'op', value: 'remove'},
                        {name: 'ac', value: '2'});
                }
                else {
                    params.push({name: 'op', value: 'update'},
                        {name: 'ac', value: '1'});
                }
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.removeItem = function (cartItemId, vendorListingId, giftCardInfoId,
                                                         warrantyCartItemId, warrantyItemId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'remove'},
                    {name: 'ac', value: '2'},
                    {name: 'ciId', value: cartItemId},
                    {name: 'gid', value: giftCardInfoId},
                    {name: 'vid', value: vendorListingId},
                    {name: 'wciId', value: warrantyCartItemId},
                    {name: 'wpId', value: warrantyItemId},
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.updateShippingMethod = function (vendorId, shippingClass, shippingMethod, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'updateShipping'},
                    {name: 'ac', value: '4'},
                    {name: 'vId', value: vendorId},
                    {name: 'smId', value: shippingMethod},
                    {name: 'scls', value: shippingClass}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.applyCoupon = function (couponCode, flow, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'applyCoupon'},
                    {name: 'ac', value: '7'},
                    {name: 'cpn', value: couponCode},
                    {name: 'cpnfl', value: flow}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.removeCoupon = function (flow, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'removeCoupon'},
                    {name: 'ac', value: '12'},
                    {name: 'cpnfl', value: flow}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.getCartDetails = function (onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'inquire'},
                    {name: 'ac', value: '5'}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.addFromWishList = function (houseId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'addFromWishList'},
                    {name: 'ac', value: '9'},
                    {name: 'hid', value: houseId}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.moveToWishList = function (cartItemId, productId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'moveToWishList'},
                    {name: 'ac', value: '8'},
                    {name: 'ciId', value: cartItemId},
                    {name: 'pId', value: productId}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.removeFromWishList = function (houseId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'removeFromWishList'},
                    {name: 'ac', value: '10'},
                    {name: 'hid', value: houseId}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.addToWishList = function (houseId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'addToWishList'},
                    {name: 'ac', value: '11'},
                    {name: 'hid', value: houseId}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.updateGiftOption = function (isGift, giftMessage, receiptEmail, recipientName, senderName, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'updateGiftOption'},
                    {name: 'ac', value: '13'},
                    {name: 'g', value: isGift},
                    {name: 'gm', value: giftMessage},
                    {name: 'e', value: receiptEmail},
                    {name: 'r', value: recipientName},
                    {name: 's', value: senderName}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.getWarrantyOffers = function (onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'getWarrantyOffers'},
                    {name: 'ac', value: '16'},
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.addWarrantyItem = function (listingId, offerId, cost, duration, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'addWarrantyItem'},
                    {name: 'ac', value: '14'},
                    {name: 'vid', value: listingId},
                    {name: 'woId', value: offerId},
                    {name: 'wc', value: cost},
                    {name: 'wd', value: duration},
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.updateWarrantyItem = function (existingWarrantyCartItemId, listingId, offerId, cost, duration, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'updateWarrantyItem'},
                    {name: 'ac', value: '15'},
                    {name: 'ciId', value: existingWarrantyCartItemId},
                    {name: 'vid', value: listingId},
                    {name: 'woId', value: offerId},
                    {name: 'wc', value: cost},
                    {name: 'wd', value: duration},
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
        

window.hzmr.push("CartActionsRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End CartActions Ajax Connector  **************/
/************* Start SetVisitorPropertyRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ajaz.Services.VISITOR_PROPERTY_SHOW_SAVE_PHOTO_TIP="onboarding.showSavePhotoTip";
        HZ.ajaz.Services.VISITOR_PROPERTY_PRIMARY_ONBOARDING_TOOLTIP="onboarding.primaryTooltip";
        HZ.ajaz.Services.VISITOR_PROPERTY_SHOW_SAVE_PHOTO_TIP_ON="on";
        HZ.ajaz.Services.VISITOR_PROPERTY_SHOW_SAVE_PHOTO_TIP_OFF="off";
        HZ.ajaz.Services.VISITOR_PROPERTY_IDEABOOK_TIP_ALREADY_SHOWN = "onboarding.ideaBookTipAlreadyShown";
        HZ.ajaz.Services.VISITOR_PROPERTY_IDEABOOK_TIP_PHOTO_SAVED = "onboarding.ideaBookTipPhotoSaved";
        HZ.ajaz.Services.VISITOR_PROPERTY_IDEABOOK_NAVIGATION_SHOWN = "ideaBookNavigationShown";
        HZ.ajaz.Services.VISITOR_PROPERTY_SIGNED_OUT_NOTIFICATION = "push_signed_out";
        HZ.ajaz.Services.VISITOR_PROPERTY_PRO_DIRECTORY_WIZARD_SHOWN = "proDirectoryWizardShown";
        HZ.ajaz.Services.VISITOR_PROPERTY_ODS_PROMO_DISMISSED = "odsPromoDismiss";
        HZ.ajaz.Services.VISITOR_PROPERTY_TRADE_PROGRAM_NOTICE_DISMISS = "tpMemberNoticeDismiss";
        HZ.ajaz.Services.VISITOR_PROPERTY_TRADE_PROMO = "tradePromoBanner";
        HZ.ajaz.Services.VISITOR_PROPERTY_TRADE_PROMO_DIALOG = "tradePromoDialog";
        HZ.ajaz.Services.setVisitorProperty = function(propertyName, value, onSuccess, extras) {
            var params = [
                {name:'prop', value:propertyName},
                {name:'v', value:value}
            ];
            var url = "\/setVisitorProperty";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.COOKIE_BANNER = "cookieBanner";
        

window.hzmr.push("SetVisitorPropertyRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End SetVisitorProperty Ajax Connector  **************/
/************* Start HoverCardRequest.php Ajax Connector for locale en-US**************/
try {//<script>
		HZ.ajaz.Services.getHoverCardData = function (dataType, dataId, onSuccess) {
			var params = [
				{name:'type', value: dataType},
				{name:'id', value: dataId}
			];
			var url = '/hoverCard';
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess);
		};
	    

window.hzmr.push("HoverCardRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End HoverCard Ajax Connector  **************/
/************* Start FollowRequest.php Ajax Connector for locale en-US**************/
try {//<script>
		HZ.ajaz.Services.updateFavorite = function(action,objectId,objectType,onSuccess,extras) {
			var params = [
				{name:'op',value:action},
				{name:'i',value:objectId},
				{name:'t',value:objectType}
			];
			
			var url = "\/follow";
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		}
		
		HZ.ajaz.Services.updateFollow = function(operation,username,onSuccess,extras) {
			if (operation != "f" && operation != "u") {
				return false; // invalid operation
			}
			
			var params = [
				{name:'op',value:operation},
				{name:'u',value:username}
			];
			
			var url = "\/follow";
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		}

	

window.hzmr.push("FollowRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End Follow Ajax Connector  **************/
/************* Start SendEmailRequest.php Ajax Connector for locale en-US**************/
try {//<script>

HZ.ajaz.Services.sendEmail = function (messageOptions, sendForm, onSuccess, extras) {
    var url = '/sendEmail';

    var params = [];
    for (var option in messageOptions)
    {
        if (messageOptions[option] != null) {
            params.push({name: option, value:messageOptions[option]});

        }
    }
    params.push({name: 'referrerPath', value: window.location.pathname});
    if (sendForm) {
        params.push({name:'__ct', value: HZ.data.CSRFToken});
        var formOptions = {
            data: params,
            dataType: 'json',
            success: onSuccess,
            type: 'POST',
            url: url
        };
        sendForm.ajaxSubmit(formOptions);
    }
    else {
        HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
    }
};

HZ.ajaz.Services.sendShareEmail = function (messageOptions, onSuccess, extras) {
    var url = '/sendEmail';
    var params = [];
    for (var option in messageOptions)
    {
        if (messageOptions[option] != null)
            params.push({name: option, value:messageOptions[option]});
    }
    params.push({name: 'referrerPath', value: window.location.pathname});
    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.sendGuestEmail = function (messageOptions, onSuccess, extras) {
    var params = [];
    for (var option in messageOptions)
    {
        if (messageOptions[option] != null)
            params.push({name: option, value:messageOptions[option]});
    }
    params.push({name: 'referrerPath', value: window.location.pathname});
    var url = '/sendEmail';
    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ns("HZ.sendEmail.types");
HZ.sendEmail.types = {
    SPACE: 3,
    GALLERY: 1,
    QUESTION: 5,
    PRO: 10,
    PRO_REPLY: 23,
    MP: 16,
    MP_SELLER: 17,
    MP_BUYER: 39,
    SURVEY: 28,
    SHARE_COLOR_PALETTE: 43,
    USER: 2,
    USER_REPLY: 48,
    TRADE_EMAIL: 66};
HZ.ns("HZ.sendEmail.events");
HZ.sendEmail.events = {
    BTN: "en_send_btn_photo",
    ADDTOIBK: "en_send_addtoibk_photo",
    SHARECP: "scp",
    ADDTOIBK_SHARE_EMAIL: "addibk_share_email",
    SEND_BTN_ADDTOIBK_SHARE_EMAIL: "send_btn_addibk_share_email",
    ADDTOIBK_SHARE_EMAIL_SEND: "addibk_share_email_send"
};
HZ.ns("HZ.sendEmail.texts");
HZ.sendEmail.texts = {
    DEFAULT_MESSAGE_SPACE: "Take a look at this great space that I found on Houzz, and let me know what you think.",
    DEFAULT_MESSAGE_PRODUCT: "Take a look at this great product that I found on Houzz, and let me know what you think.",
    DEFAULT_MESSAGE_GALLERY: "Take a look at these great spaces that I found on Houzz, and let me know what you think.",
    DEFAULT_MESSAGE_QUESTION: "Take a look at this interesting discussion I found on Houzz, and let me know what you think.",
    DEFAULT_MESSAGE_COLOR_PALETTE: "Take a look at this color palette I created on Houzz.",
    CONFIRM_MESSAGE_SENT: "Message sent successfully.",
    CONFIRM_EMAIL_SENT: "Email sent successfully.",
    ERROR_TO_EMPTY: "Please write an email subject.",
    ERROR_SUBJECT_EMPTY: "Please write an email subject.",
    ERROR_MESSAGE_EMPTY: "Please write an email message.",
    ERROR_TEXT_LOCATION_EMPTY: "Please enter a location.",
    ERROR_PHONE_NOT_TEN_DIGIT: "Please enter a ten-digit phone number.",
    ERROR_INVALID_PHONE: "Please enter a valid phone number. If you are entering an international phone number, please insert + before the country code.",
    ERROR_EMAIL_ADDRESSES_EMPTY: "Please specify recipient email addresses, separated by commas.",
    ERROR_PRO_CONFIRM_INQUIRY_NOT_AGREE: "Please confirm this is a personal project inquiry.",
    ERROR_INVALID_TO_EMAIL_ADDRESSES: "Please specify recipient email addresses, separated by commas.",
    ERROR_INVALID_FROM_EMAIL_ADDRESS: "Please enter a valid email address.",
    ERROR_NO_PHONE: "Please enter your phone.",
    ERROR_NO_ZIP: "Please enter zip code.",
    ERROR_UNKNOWN: "An unknown error occurred. Please retry sending the email a few minutes later.",
    ERROR_NO_CONTACT_NAME: "Please enter your name."};
HZ.ajaz.Services.sendEmail.ERROR_RECOVERABLE = 1;
HZ.ajaz.Services.sendEmail.PHONE_VALIDATION_FAILURE = "Please enter a valid phone number. If you are entering an international phone number, please insert + before the country code.";
HZ.ajaz.Services.sendEmail.ERROR_FATAL = 2;

HZ.sendEmail.params = {
    to: "emailTo",
    from: "emailFrom",
    message: 'emailMessage',
    isVisitor: 'isVisitor',
    subject: 'emailSubject',
    phone: 'phone',
    zipCode: 'zipCode',
    event: 'event',
    type: 'type',
    referenceId: 'refId',
    replyToId: 'replyId',
    captchaResponse: 'cr',
    isDealerLocation: 'isdealloc',
    shareImageUrl: 'simgurl',
    signupSourceLink: 'sourceLink',
    shareLink: 'slink',
    entryType: 'entryType'
};


window.hzmr.push("SendEmailRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End SendEmail Ajax Connector  **************/
/************* Start CurrentSessionUserInfoRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ns('HZ.ajaz.Services.User');
        HZ.ajaz.Services.User.getCurrentSessionUserExtraData = function (onSuccess, extras) {
            var params = [
                {name:'ac', value:'getExtraData'}
            ];
            var url = "\/currentSessionUserInfo";
            return HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
        };

        HZ.ajaz.Services.User.getCurrentSessionUserContactData = function(onSuccess, extras) {
            var url = "\/currentSessionUserInfo";
            var params = [{
                name: 'ac',
                value: 'getContactData'
            }];
            return HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
        };
        

window.hzmr.push("CurrentSessionUserInfoRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End CurrentSessionUserInfo Ajax Connector  **************/
/************* Start PhoneValidationAjaxRequest.php Ajax Connector for locale en-US**************/
try {        HZ.ajaz.Services.validatePhoneNumber = function(phoneNumber) {
            var params = [
                {name:'api', value: 'validatePhoneNumber'},
                {name:'phoneNumber', value: phoneNumber},
                {name:'timeoutInMs', value: 30000}
            ];
            var url = "\/phoneValidationAjax";
            return HZ.ajaz.AjaxReq.send(url, params);
        };

        HZ.ajaz.Services.validateInternationalPhoneNumber = function(phoneNumber, country) {
            var params = [
                {name:'api', value: 'validateInternationalPhoneNumber'},
                {name:'phoneNumber', value: phoneNumber},
                {name:'country', value: country},
                {name:'timeoutInMs', value: 30000}
            ];
            var url = "\/phoneValidationAjax";
            return HZ.ajaz.AjaxReq.send(url, params);
        };

        HZ.ajaz.Services.validateMobileExperian = function(phoneNumber) {
        var params = [
        {name:'api', value: 'validateMobileExperian'},
        {name:'phoneNumber', value: phoneNumber},
        {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/phoneValidationAjax";
        return HZ.ajaz.AjaxReq.send(url, params);
        };

        HZ.ajaz.Services.updateSmsPhone = function(userId, phoneNumber) {
        var params = [
        {name:'api', value: 'updateSmsPhone'},
        {name:'phoneNumber', value: phoneNumber},
        {name:'userId', value: userId},
        {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/phoneValidationAjax";
        return HZ.ajaz.AjaxReq.send(url, params);
        };

        HZ.ajaz.Services.updateCancelSmsPopupRedis = function(userId) {
        var params = [
        {name:'api', value: 'updateCancelSmsPopupRedis'},
        {name:'userId', value: userId},
        {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/phoneValidationAjax";
        return HZ.ajaz.AjaxReq.send(url, params);
        };

        

window.hzmr.push("PhoneValidationAjaxRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End PhoneValidationAjax Ajax Connector  **************/
/************* Start ServiceQuestionnaireAjaxRequest.php Ajax Connector for locale en-US**************/
try {
        HZ.ajaz.Services.getAllQuestionnaireServices = function() {
        var params = [
            {name:'api', value: 'getAllServices'},
            {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/serviceQuestionnaireAjax";
        return HZ.ajaz.AjaxReq.send(url, params);
        };

        HZ.ajaz.Services.getQuestionnaireServicesByProfessionalTypeId = function(professionalTypeId) {
        var params = [
            {name:'api', value: 'getServicesByProfessionalTypeId'},
            {name:'questionnaireProfessionalTypeId', value: professionalTypeId},
            {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/serviceQuestionnaireAjax";
        return HZ.ajaz.AjaxReq.send(url, params);
        };

        HZ.ajaz.Services.getQuestionnaireByQuestionnaireId = function(questionnaireServiceId) {
        var params = [
        {name:'api', value: 'getQuestionnaireByQuestionnaireId'},
        {name:'questionnaireServiceId', value: questionnaireServiceId},
        {name:'referrerPath', value: window.location.pathname },
        {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/serviceQuestionnaireAjax";
        return HZ.ajaz.AjaxReq.send(url, params);
        };

        HZ.ajaz.Services.sendQuoteRequest = function (questions, captchaResponse, flowId, originatedEvent,
            serviceTypeProTypeImportanceThreshold) {
        var params = [
        {name:'api', value: 'sendQuoteRequest'},
        {name:'questionnaireAnswers', value: JSON.stringify(questions)},
        {name:'captchaResponse', value: captchaResponse},
        {name:'flowId', value: flowId},
        {name:'originatedEvent', value: originatedEvent},
        {name:'importance', value: serviceTypeProTypeImportanceThreshold},
        {name:'referrerPath', value: window.location.pathname },
        {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/serviceQuestionnaireAjax";
        return HZ.ajaz.AjaxReq.send(url, params, null, {error: function(){}});
        };

        HZ.ajaz.Services.getSuggestedPros = function (professionalTypeId, zip, projectName, budget, flowId,
            serviceTypeProTypeImportanceThreshold, isBudgetQuestionAvailable) {
            var params = [
                {name:'api', value: 'getSuggestedPros'},
                {name:'professionalTypeId', value: professionalTypeId},
                {name:'zip', value: zip},
                {name:'projectName', value: projectName},
                {name:'flowId', value: flowId},
                {name:'budget', value: budget},
                {name:'isBudgetQuestionAvailable', value: isBudgetQuestionAvailable},
                {name:'importance', value: serviceTypeProTypeImportanceThreshold},
                {name:'timeoutInMs', value: 30000}
            ];
            var url = "\/serviceQuestionnaireAjax";
            return HZ.ajaz.AjaxReq.send(url, params, null, {error: function(){}});
        };

        HZ.ajaz.Services.sendQuoteRequestToSelectedPros = function (questions, captchaResponse, selectedPros, flowId, originatedEvent) {
        var params = [
        {name:'api', value: 'sendQuoteRequestToSelectedPros'},
        {name:'questionnaireAnswers', value: JSON.stringify(questions)},
        {name:'captchaResponse', value: captchaResponse},
        {name:'selectedPros', value: JSON.stringify(selectedPros)},
        {name:'flowId', value: flowId},
        {name:'originatedEvent', value: originatedEvent},
        {name:'referrerPath', value: window.location.pathname },
        {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/serviceQuestionnaireAjax";
        return HZ.ajaz.AjaxReq.send(url, params, null, {error: function(){}});
        };

        HZ.ajaz.Services.sendQuoteRequestToInstallationServiceProvider = function (questions, flowId, originatedEvent,
        serviceTypeProTypeImportanceThreshold) {
        var params = [
        {name:'api', value: 'sendQuoteRequestToInstallationServiceProvider'},
        {name:'questionnaireAnswers', value: JSON.stringify(questions)},
        {name:'flowId', value: flowId},
        {name:'originatedEvent', value: originatedEvent},
        {name:'importance', value: serviceTypeProTypeImportanceThreshold},
        {name:'referrerPath', value: window.location.pathname },
        {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/serviceQuestionnaireAjax";
        return HZ.ajaz.AjaxReq.send(url, params, null, {error: function(){}});
        };

        HZ.ajaz.Services.submitAvailableTimeSlots = function (schedulerTimeSlots, selectedPros, projectInquiryRequestId) {
            var params = [
                {name:'api', value: 'submitAvailableTimeSlots'},
                {name:'schedulerTimeSlots', value: JSON.stringify(schedulerTimeSlots)},
                {name:'selectedPros', value: JSON.stringify(selectedPros)},
                {name:'projectInquiryRequestId', value: projectInquiryRequestId},
                {name:'timeoutInMs', value: 30000}
            ];
            var url = "\/serviceQuestionnaireAjax";
            return HZ.ajaz.AjaxReq.send(url, params, null, {error: function(){}});
        }

        

window.hzmr.push("ServiceQuestionnaireAjaxRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End ServiceQuestionnaireAjax Ajax Connector  **************/
/************* Start EmailValidationAjaxRequest.php Ajax Connector for locale en-US**************/
try {        HZ.ajaz.Services.validateEmailAddress = function(emailAddress) {
        var params = [
        {name:'api', value: 'validateEmailAddress'},
        {name:'emailAddress', value: emailAddress},
        {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/emailValidationAjax";
        return HZ.ajaz.AjaxReq.send(url, params);
        };

        

window.hzmr.push("EmailValidationAjaxRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End EmailValidationAjax Ajax Connector  **************/
/************* Start LocationAutoCompleteRequest.php Ajax Connector for locale en-US**************/
try {        HZ.ajaz.Services.autoCompleteLocation = function(textFragment, onSuccess, countryToSearchIn, format, extras) {
        var params = [
        {name:'query',value:textFragment}
        ];
        if(countryToSearchIn) {
            params.push({name:'country', value:countryToSearchIn});
        }
        var resultFormat = 'full';
        if (format) {
            resultFormat = format;
        }
        params.push({name:'resultFormat', value:resultFormat});

        var url = "\/locationComplete";
        HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.getLocationStrByZipcode = function(operation, zipcode, countryToSearchIn, onSuccess, extras) {
        var params = [
                        {name:'zipcode',value:zipcode},
                        {name:'op',value:operation},
                        {name:'country', value:countryToSearchIn}
        ];
        var url = "\/locationComplete";
        HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.getJapaneseAreasByPostalCode = function(postalCode, onSuccess, extras) {
            var params = [
                {name:'zipcode',value:postalCode},
                {name:'op',value:'getAreasByJpZip'}
            ];
            var url = "\/locationComplete";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
    

window.hzmr.push("LocationAutoCompleteRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End LocationAutoComplete Ajax Connector  **************/
/************* Start SearchKeywordRequest.php Ajax Connector for locale en-US**************/
try {		//<script>

		HZ.ajaz.Services.autoCompleteKeyword = function(textFragment, type, onSuccess, extras) {
			var params = [
				{name:'query',value:textFragment},
				{name:'type',value:type}
			];
			var url = "\/searchKeyword";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};

		HZ.ajaz.Services.autoCompleteTags = function(textFragment, onSuccess, extras) {
			var params = [
				{name:'action',value:'searchTags'},
				{name:'query',value:textFragment}
			];
			var url = "\/searchKeyword";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};
		

window.hzmr.push("SearchKeywordRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End SearchKeyword Ajax Connector  **************/
/************* Start SocialReviewsAjaxRequest.php Ajax Connector for locale en-US**************/
try {		//<script>
		HZ.ajaz.Services.checkSocialReviews = function(userId, onSuccess, extras){
			var params = [
				{name:"op", value:"c"},
				{name:"uid", value: (userId || -1) }
			];
			var url = "\/socialReviewsAjax";
			HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
		}
		

window.hzmr.push("SocialReviewsAjaxRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End SocialReviewsAjax Ajax Connector  **************/
/************* Start FbUserRequest.php Ajax Connector for locale en-US**************/
try {		
//<script>
		HZ.ns("HZ.ajaz.FbUser");
		HZ.ajaz.FbUser.fbUserDisconnect = function(onSuccess, extras) {
			var params = [
				{name:'op',value:'d'}
			];
			
			var url = "\/fbUser";
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};
		
		HZ.ajaz.FbUser.fbUserUpdate = function(onSuccess, extras) {
			var params = [
				{name:'op',value:'u'},
				{name:'i',value:HZ.sns.JsSdk.fb.getFbAppId()},
				{name:'t',value:HZ.sns.JsSdk.fb.getFbAccessToken()},
			];
			
			var url = "\/fbUser";
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};
		
		HZ.ajaz.FbUser.fbGetUserPages = function(onSuccess, extras) {
			var params = [
				{name:'op',value:'gp'},
				{name:'i',value:HZ.sns.JsSdk.fb.getFbAppId()},
				{name:'t',value:HZ.sns.JsSdk.fb.getFbAccessToken()},
			];
			
			var url = "\/fbUser";
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};
		
		HZ.ajaz.FbUser.JSON_KEY_PAGES = "pages";
		HZ.ajaz.FbUser.JSON_KEY_PAGE_ID = "pid";
		
		HZ.ajaz.FbUser.fbDisconnectUserPages = function(onSuccess, extras) {
			var params = [
				{name:'op',value:'dpage'},
			];
			
			var url = "\/fbUser";
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};
		HZ.ajaz.FbUser.findFbFriends = function(af, onSuccess, extras) {
			var paramValue = af ? '1' : '0';
			var params = [
				{name:'op',value:'fbf'},
				{name:'af',value:paramValue},
				{name:'i',value:HZ.sns.JsSdk.fb.getFbAppId()},
				{name:'t',value:HZ.sns.JsSdk.fb.getFbAccessToken()},
			];
			
			var url = "\/fbUser";
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};

				HZ.ajaz.FbUser.followFbFriends = function(updateProfile, onSuccess, extras) {
			var params = [
				{name:'op',value:'ffbf'},
				{name:'i',value:HZ.sns.JsSdk.fb.getFbAppId()},
				{name:'t',value:HZ.sns.JsSdk.fb.getFbAccessToken()},
				{name:'fbup',value:updateProfile},
			];
			
			var url = "\/fbUser";
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};

		HZ.ajaz.FbUser.JSON_KEY_REDIRECT_URL = "r";
		HZ.ajaz.FbUser.JSON_KEY_FIRST_NAME = "fn";
		HZ.ajaz.FbUser.JSON_KEY_LAST_NAME = "ln";
		HZ.ajaz.FbUser.JSON_KEY_FB_UID = "fbuid";
		HZ.ajaz.FbUser.JSON_KEY_USER_IMG_SQUARE = "squi";
				HZ.ajaz.FbUser.EVENT_FMF_PV = "fbinvites_pv";
		HZ.ajaz.FbUser.EVENT_FMF_HEADER = "fbinvites_header";
		HZ.ajaz.FbUser.EVENT_FMF_FOOTER = "fbinvites_footer";
		HZ.ajaz.FbUser.MAX_REQUESTS = 50;
		HZ.ajaz.FbUser.REQUEST_MSG = "Join me on Houzz, the online destination for home remodeling and design!";
		HZ.ajaz.FbUser.REQUEST_TITLE = "Invite your friends to Houzz!";
		
		HZ.ajaz.FbUser.PAGE_TAB_INSTALL = "http://www.facebook.com/dialog/pagetab?app_id=1267585943836190&next=https%3A%2F%2Fwww.houzz.com%2Ffbhome";

        

window.hzmr.push("FbUserRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End FbUser Ajax Connector  **************/
/************* Start SearchSuggestionRequest.php Ajax Connector for locale en-US**************/
try {        HZ.ajaz.Services.searchTypeAhead = function(textFragment, searchType, source, onSuccess, extras, bd) {
            source = source || c;
            var params = [
                {name:'query',value:textFragment},
                {name:'type',value:searchType},
                {name:'bd', value:bd},
                {name:'source',value:source}
            ];
            var url = "\/searchSuggestion";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        }
        

window.hzmr.push("SearchSuggestionRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End SearchSuggestion Ajax Connector  **************/
/************* Start VerificationEmailRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
            HZ.ajaz.Services.sendVerificationEmail = function(operation, isNewUser, onSuccess, extras) {
                var params = [
                    {name:'op', value: operation},
                    {name:'isNewUser', value: isNewUser}
                ];
                var url = "\/verificationEmail";
                HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
            };
	    

window.hzmr.push("VerificationEmailRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End VerificationEmail Ajax Connector  **************/
/************* Start NoOpRequest.php Ajax Connector for locale en-US**************/
try {        //<script type="text/javascript">
HZ.ns("HZ.ajaz.NoOP");

HZ.ajaz.Services.setSession = function(url, onSuccess, extras) {

    extras = extras || {};
    extras.dataType = "jsonp";
    extras.crossDomain = true;
    extras.type = "GET";

    HZ.ajaz.AjaxReq.send(url,[],onSuccess,extras);
};

//</script>
    

window.hzmr.push("NoOpRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End NoOp Ajax Connector  **************/
/************* Start AuthorizeRequest.php Ajax Connector for locale en-US**************/
try {        //<script type="text/javascript">
HZ.ns("HZ.ajaz.Authorize");

HZ.ajaz.Services.fbSignUp = function(onSuccess, redirectUrl, defaultEmail, extras, reAuth) {
    var reAuthValue = reAuth ? "1" : "0";
    var defaultEmailValue = defaultEmail ? defaultEmail : "";
    var params = [
        {name:'op',value:'f'},
        {name:'a',value:HZ.sns.JsSdk.fb.getFbAppId()},
        {name:'fbtoken',value:HZ.sns.JsSdk.fb.getFbAccessToken()},
        {name:'ss',value:HZ.auth.Manager.getSignupSource()},
        {name:'sp',value:HZ.auth.Manager.getSourcePage()},
        {name:'fbra',value:reAuthValue},
        {name:'e',value:defaultEmailValue},
        {name:'rdr',value:HZ.utils.Links.base64Encode(redirectUrl)},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
            if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
                HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }

        onSuccess(response);
    };

    extras = extras || {};
    extras.dataType = "jsonp";
    extras.type = "GET";

    HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
};

HZ.ajaz.Services.googleSignUp = function(onSuccess, googleOneTimeAuthCode, redirectUrl, extras) {
    var params = [
        {name: 'op', value: 'g'},
        {name: 'ss', value: HZ.auth.Manager.getSignupSource()},
        {name: 'sp', value: HZ.auth.Manager.getSourcePage()},
        {name: 'gCode', value: encodeURIComponent(googleOneTimeAuthCode)},
        {name: 'rdr', value: HZ.utils.Links.urlSafeBase64Encode(redirectUrl)},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
            if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
                HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }

        onSuccess(response);
    };

    extras = extras || {};
    extras.dataType = "jsonp";
    extras.type = "GET";

    HZ.ajaz.AjaxReq.send(url, params, wrapperCallbackFn, extras);
};

HZ.ajaz.Services.removeFbLogin = function(onSuccess, extras) {
    var params = [
        {name:'op',value:'fbr'},
        {name:'a',value:HZ.sns.JsSdk.fb.getFbAppId()},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.enableFbLogin = function(fbAccessToken, onSuccess, extras) {
    var params = [
        {name:'op',value:'fbl'},
        {name:'a',value:HZ.sns.JsSdk.fb.getFbAppId()},
        {name:'fbtoken',value:fbAccessToken},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.enableGoogleLogin = function(onSuccess, authCode, extras) {
    var params = [
        {name:'op',value:'gl'},
        {name: 'gCode', value: authCode},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.updateAutoRegisterPassword = function(duck, onSuccess, extras) {
    var params = [
        {name:'op',value:'duck'},
        {name:'pwd',value:duck},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";
    extras = extras || {};


    if (HZ.utils.Config.ajazEndpointPrefix) {
        var url_parts = document.createElement('a');
        url_parts.href = url;
        extras.url = HZ.utils.Config.ajazEndpointPrefix + url_parts.pathname + url_parts.search + url_parts.hash;
        HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
    } else {
      var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
          if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
            HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }

        onSuccess(response);
      };
      HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
    }

};


HZ.ajaz.Services.inlineSignup = function(email, setSession, firstName, sourceLink, redirectUrl, onSuccess, extras) {
    //check the null case of redirectUrl
    if (!redirectUrl){
        redirectUrl = "";
    }
    var params = [
        {name:'op',value:'nls'},
        {name:'e',value:email},
        {name:'sess',value:setSession},
        {name:'f',value:firstName},
        {name:'ss',value:sourceLink},
        {name:'sp',value:HZ.auth.Manager.getSourcePage()},
        {name:'rdr',value:HZ.utils.Links.base64Encode(redirectUrl)},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)},
        {name:'timeoutInMs', value: 30000}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    extras = extras || {};
    extras.type = "GET";
  // hack to ensure c2 lightbox inline signup call from within jukwaa page works
    if (HZ.utils.Config.ajazEndpointPrefix) {
      var url_parts = document.createElement('a');
      url_parts.href = url;
      extras.url = HZ.utils.Config.ajazEndpointPrefix + url_parts.pathname + url_parts.search + url_parts.hash;
      return HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);

    } else {
      extras.dataType = "jsonp";
      var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
          if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
            HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }
        onSuccess(response);
      };
      return HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
    }

};

HZ.ajaz.Services.signup = function(username, duck, email, sourceLink, rcCha, rcResp, redirect, onSuccess, extras) {
    var opValue = 's';

    if (sourceLink === "1500") { // typeof(sourceLink) is a string
        opValue = 'xes';
    }

    var params = [
        {name:'op',value:opValue},
        {name:'un',value:username},
        {name:'pwd',value:duck},
        {name:'e',value:email},
        {name:'ss',value:sourceLink},
        {name:'sp',value:HZ.auth.Manager.getSourcePage()},
        {name:'recaptcha_challenge_field',value:rcCha},
        {name:'recaptcha_response_field',value:rcResp},
        {name:'rdr',value:redirect},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];



    var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
            if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
                HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }
        onSuccess(response);
    };

    var url = "https:\/\/www.houzz.com\/authorize";
    HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
};

HZ.ajaz.Services.signIn = function(username, duck, keep, redirectUrl, onSuccess, extras) {
    var params = [
        {name:'op',value:'l'},
        {name:'un',value:username},
        {name:'pwd',value:duck},
        {name:'rdr',value:redirectUrl},
        {name:'k',value:keep},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
            if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
                HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }

        onSuccess(response);
    };

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
};

HZ.ajaz.Services.magicLinkSignIn = function(username, keep, redirectUrl, onSuccess, extras) {
    var params = [
        {name:'op',value:'mls'},
        {name:'un',value:username},
        {name:'rdr',value:redirectUrl},
        {name:'k',value:keep},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
            if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
                HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }

        onSuccess(response);
    };

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
};

HZ.ajaz.Services.proSignup = function(onSuccess, extras) {
    var params = [
        {name:'op',value:'ps'},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    extras = extras || {};
    extras.dataType = "jsonp";
    extras.type = "GET";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.homeownerSignup = function(onSuccess, extras) {
    var params = [
        {name:'op',value:'hs'},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    extras = extras || {};
    extras.dataType = "jsonp";
    extras.type = "GET";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.authCheckName = function(username, onSuccess, extras) {
    var params = [
        {name:'op',value:'u'},
        {name:'un',value:username}
    ];

    var url = "\/authsvc";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Authorize.emailCheckCache = {};

HZ.ajaz.Authorize.authCheckEmail = function(email, onSuccess, extras) {
    if (HZ.ajaz.Authorize.emailCheckCache[email]) {
        // check has already been run, return cached value
        onSuccess(HZ.ajaz.Authorize.emailCheckCache[email]);
        return;
    }
    var params = [
        {name:'op',value:'e'},
        {name:'e',value:email}
    ];

    var url = "\/authsvc";

    HZ.ajaz.AjaxReq.send(url,params,
        function(resp) {
            if (resp && resp.success && resp.success == "true") {
                // cache this result for future queries
                HZ.ajaz.Authorize.emailCheckCache[email] = resp;
            }

            onSuccess(resp);
        },
    extras);
};

HZ.ajaz.Authorize.JSON_KEY_REDIRECT_URL = "redirectUrl";
HZ.ajaz.Authorize.JSON_KEY_EMAIL = "email";
HZ.ajaz.Authorize.JSON_KEY_IS_VALID = "valid";
HZ.ajaz.Authorize.JSON_KEY_CREATE_PRO_PROFILE_URL = "createProProfileUrl";
HZ.ajaz.Authorize.JSON_KEY_SURL = "sUrl";
HZ.ajaz.Authorize.JSON_VALUE_OK = "ok";
HZ.ajaz.Authorize.JSON_VALUE_MALFORMED = "m";
HZ.ajaz.Authorize.JSON_VALUE_INVALID = "i";
HZ.ajaz.Authorize.USER_TYPE_PRO_SIGNUP = "4";
HZ.ajaz.Authorize.USER_TYPE_HOMEOWNER = "1";
HZ.ajaz.Authorize.JSON_KEY_CV = "cv";
HZ.ajaz.Authorize.JSON_KEY_ERROR = "error";
HZ.ajaz.Authorize.JSON_KEY_UNIFIED_ONBOARDING = "unifiedOnboarding";
HZ.ajaz.Authorize.EMAIL_MINOR_ERROR = [
    7,
    4];
HZ.ajaz.Authorize.PASSWORD_ERROR = [
    2,
    16];
HZ.ajaz.Authorize.CREDENTIAL_INVALID_ERROR = 50;
HZ.ajaz.Authorize.EMAIL_EXISTS_ERROR = 7;

HZ.ajaz.Services.sendInvitations = function(emailList, onSuccess, extras) {
    var params = [
        {name:'op',value:'i'},
        {name:'ie',value:emailList}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};
//</script>
    

window.hzmr.push("AuthorizeRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End Authorize Ajax Connector  **************/
/************* Start UILoggerAjaxRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
        HZ.ajaz.Services.logCountInTSDB = function(metricTrackingPrefix, metricTrackingName, count/*optional, default is 1*/, metricPrefix/*optional, default is "perf"*/, tags/*Will be used to filter result*/) {
            if (!metricTrackingPrefix || !metricTrackingName) {
                return (new $.Deferred()).reject().promise();
            }

            var params = [
                {name:'api', value: 'logCount'},
                {name:'metricPrefix', value: metricPrefix || ""},
                {name:'metricTrackingPrefix', value: metricTrackingPrefix},
                {name:'metricTrackingName', value: metricTrackingName},
                {name:'metricCount', value: $.isNumeric(count) && count > 0 ? count : 1},
                {name:'metricTags', value: tags ? JSON.stringify(tags) : null}
            ];
            var url = "\/uiLoggerAjax";
            return HZ.ajaz.AjaxReq.send(url, params, null, {error: function(){}});
        };

        HZ.ajaz.Services.logHistogramInTSDB = function(metricTrackingPrefix, metricTrackingName, time, metricPrefix/*optional, default is "perf"*/, tags/*Will be used to filter result*/) {
            if (!metricTrackingPrefix || !metricTrackingName) {
                return (new $.Deferred()).reject().promise();
            }

            var params = [
                {name:'api', value: 'logHistogram'},
                {name:'metricPrefix', value: metricPrefix || ""},
                {name:'metricTrackingPrefix', value: metricTrackingPrefix},
                {name:'metricTrackingName', value: metricTrackingName},
                {name:'metricTime', value: time},
                {name:'metricTags', value: tags ? JSON.stringify(tags) : null}
            ];
            var url = "\/uiLoggerAjax";
            return HZ.ajaz.AjaxReq.send(url, params, null, {error: function(){}});
        };

        

window.hzmr.push("UILoggerAjaxRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End UILoggerAjax Ajax Connector  **************/
/************* Start JsErrorLoggerAjaxRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ajaz.Services.logJsErr = function(errLog) {
            var rrid = errLog['rrid'],
                m = errLog['m'],
                f = errLog['f'],
                l = errLog['l'],
                url = errLog['url'],
                cws = errLog['cws'],
                b = navigator.appName,
                v = navigator.appVersion,
                ce = navigator.cookieEnabled,
                p = navigator.platform,
                j = errLog['j'],
                st = errLog['st'],
                pc = errLog['pc'],
                r = (document.referrer ? encodeURIComponent(document.referrer) : ""),
                rv = "",
                env = errLog.env ? errLog.env : 'c';    //default env to c (c2), j if it's from jukwaa
            if (window.hzmr && window.hzmr.version) {
                rv= window.hzmr.version;
            }
        var params = [
            {name:'rrid',value:rrid},
            {name:'m',value:m},
            {name:'f',value:f},
            {name:'l',value:l},
            {name:'url',value:url},
            {name:'cws',value:cws},
            {name:'b',value:b},
            {name:'v',value:v},
            {name:'ce',value:ce},
            {name:'p',value:p},
            {name:'j',value:j},
            {name:'st',value:st},
            {name:'pc',value:pc},
            {name:'r',value:r},
            {name:'rv',value:rv},
            {name:'env',value:env}
        ];

        var url = "\/jsErrAjax";

        HZ.ajaz.AjaxReq.send(url,params);
    };
    

window.hzmr.push("JsErrorLoggerAjaxRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End JsErrorLoggerAjax Ajax Connector  **************/
/************* Start GetSpaceAjaxRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
            HZ.ajaz.Services.getDownloadUrl = function (houseId, onSuccess, extras) {
                var params = [
                    {name:'houseId',value:houseId}
                ];

                var url = '/getSpaceAjax';

                HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
            };
        

window.hzmr.push("GetSpaceAjaxRequest:28164778");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End GetSpaceAjax Ajax Connector  **************/
