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:28468492");
} 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:28468492");
} 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:28468492");
} 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:28468492");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End Follow 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:28468492");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End Authorize 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:28468492");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End NoOp 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:28468492");
} 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:28468492");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End VerificationEmail 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:28468492");
} 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:28468492");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End JsErrorLoggerAjax 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:28468492");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End SearchKeyword 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:28468492");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

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