isIosDevice = function () {
    return false;
};

CheckNull = function (varChk) {
    return varChk !== null;
};

broadcasterDataClass = (function () {
    var _broadcasterData = {};
    return {
        setBroadcasterData: function (data) {
            _broadcasterData = data;
        },
        updateBroadcasterData: function (key, value) {
            var userInfo = _broadcasterData;
            if (userInfo && typeof (userInfo[key]) != 'undefined' && typeof key !== 'undefined') {
                userInfo[key] = value;
                _broadcasterData = userInfo;
                return true;
            } else {
                return false;
            }
        },
        getBroadcasterData: function (key) {
            var userInfo = _broadcasterData;
            if (userInfo && typeof (userInfo[key]) != 'undefined' && typeof key !== 'undefined') {
                return userInfo[key];
            } else {
                return null;
            }
        },
        checkIfBroadcasterDataAvailable:function(callback){
            if(Object.keys(_broadcasterData).length>0){
                callback(true);
            }else{
                callback(false);
            }
        }
    }
})();

app = (function () {
    return {
        masterAjaxCall: function (data, callback) {
            var header = (this.GetUserStoredData('userId') != null) ? this.SetAjaxHeader() : undefined;
            $.ajax({
                url: api_url + data.url,
                type: data.method,
                data: data.params,
                headers: header,
                success: function (conn) {
                    var data = conn;
                    if (data.success) {
                        callback(false, data);
                    } else if (data.data) {
                        callback(false, data);
                    } else {
                        callback(false, data);
                    }
                },
                error: function (request, error) {
                    if (request.status == 401) {
                        // callback('unauthorized access', false);
                        localStorage.removeItem('userInfo');
                        window.location = base_url;
                    } else {
                        $('#homepageGlobalLoader').hide();
                        triggerToast('Sorry, your request Failed. Please check your connection and try again', 5000);
                    }
                }
            });
        },
        GetUserStoredData: function (key) {
            if (localStorage.getItem('userInfo') !== 'undefined')
                var userInfo = JSON.parse(localStorage.getItem('userInfo'));
            else {
                var userInfo = null;
            }
            if (userInfo && userInfo[key] && typeof key !== 'undefined') {
                return userInfo[key];
            } else {
                return null;
            }
        },
        SetAjaxHeader: function () {
            return {
                'User-id': parseInt(this.GetUserStoredData('userId')),
                'Token': this.GetUserStoredData('token'),
                'uuid': this.GetUserStoredData('uuid'),
            };
        },
        UpdateUserStoredData: function (key, value) {
            if (localStorage.getItem('userInfo') !== 'undefined') {
                var userInfo = JSON.parse(localStorage.getItem('userInfo'));
                userInfo[key] = value;
                localStorage.setItem("userInfo", JSON.stringify(userInfo));
                return true;
            } else {
                return false;
            }
        },
        LogoutCurrentUser: function () {
            localStorage.removeItem('userInfo');
            localStorage.setItem("usercart", "");
            localStorage.removeItem('firstlogin_progress_popup');
            localStorage.removeItem('subscribeTier');
            window.location = base_url;
        },
        LogoutCurrentUserAfterPasswordReset: function () {
            localStorage.removeItem('userInfo');
            localStorage.setItem("usercart", "");
            localStorage.removeItem('firstlogin_progress_popup');
            localStorage.removeItem('subscribeTier');
            window.location = base_url+'joinnow';
        },
        LoginCurrentUser: function (data, reloadPage) {
            localStorage.removeItem('firstlogin_progress_popup');
            localStorage.setItem("userInfo", JSON.stringify(data));

            /*if (app.GetUserStoredData('is_first_login') == 1 &&
            app.GetUserStoredData('user_type') == 'fan' &&
            app.GetUserStoredData('is_free_subscription') == 1) {
                if($('#freeSubscriptionPopup').length)
                  $('#freeSubscriptionPopup').modal('show');
            }*/

            if (app.GetUserStoredData('is_first_login') == 1 && app.GetUserStoredData('user_type') == 'creator') {
                window.location = base_url;
            }
            else {
                commonClass.checkFanSubscribedStatus(function(checkFanSubscribedStatusRes){

                    if(parseInt(checkFanSubscribedStatusRes.is_subscribed) || parseInt(checkFanSubscribedStatusRes.cancellation_reason)==1){
                        window.location = base_url+'platinum';
                    }else{
                        if (typeof reloadPage != 'undefined' && reloadPage == 1) {
                            $('#gosigninmodal').modal('hide');
                            location.reload();
                        } else {
                            if(app.GetUserStoredData('user_type') == 'creator'){
                                window.location = base_url;
                            }else if(app.GetUserStoredData('user_type') == 'fan'){
                                window.location = base_url+'subscribe';
                            }else{
                                window.location = base_url;
                            }
                        }
                    }
                });
            }
            history.pushState(null, null, base_url);
        },
        adminUserLogSet: function (data) {
            localStorage.setItem("adminUserLog", JSON.stringify(data));
        },
        checkIfAdminUserLoggedAndLogout: function (callback) {
            if (localStorage.getItem('adminUserLog') !== 'undefined') {
                var tmpAdminData = JSON.parse(localStorage.getItem('adminUserLog'));
                if (tmpAdminData != null && typeof tmpAdminData['adminLogin'] != 'undefined' && tmpAdminData['adminLogin'] == 1) {
                    localStorage.removeItem('adminUserLog');
                    localStorage.removeItem('userInfo');
                    callback(true);
                } else {
                    callback(false);
                }
            } else {
                callback(false);
            }
        }
    }
})();

commonClass = (function () {
    var _cardAddLoad = 0;
    var _colorBanner = ["redGrad", "orangeGrad", "yellowGrad", "greenGrad", "tealblueGrad", "blueGrad", "purpleGrad", "pinkGrad", "tealblueGrad", "greenGrad"];
    var _monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    var _weekDays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
    var _colorClass = ["a3", "a5", "a7", "a9", "a12", "a14", "a13", "a15", "a3", "a12"];
    return {
        getUserCards: function (callback) {
            app.masterAjaxCall({
                'url': 'payment/getPaymentDetails',
                'method': 'GET',
                'params': '',
                'headers': app.SetAjaxHeader()
            }, function (error, success) {
                if (typeof callback != 'undefined') {
                    callback(success);
                }
            });
        },
        showAddCardPopUp:function(flag){
            EmailVerificationClass.checkIfEmailVerified(function(res){
                if(typeof res.data.show_verify_email_popup!='undefined' && res.data.show_verify_email_popup==1){
                    triggerToast("Please verify your email before adding a card.", 5000);
                } else {
                    commonClass.setFunctionToLoadAfterCardAdd(flag);
                    $("#myCreditCardModal").modal('show');
                }
            });
        },
        closeSigninModal: function () {
            // $('#gosigninmodal a:first').tab('show');
            $("#gosigninmodal a[href='#signInFan']").click();
            $('#gosigninmodal').modal('hide');
            var recaptchaWidgetId=$('#g_recaptcha_signup').attr('data-widgetid');
            grecaptcha.reset(recaptchaWidgetId);
        },
        goToScreenShotProductPage: function () {
            window.location = base_url + 'screenshotProduct';
        },
        isUserLoggedIn: function () {
            return (app.GetUserStoredData('userId') != null) ? true : false;
        },
        openSigninModal: function () {
            $('#gosigninmodal').modal({
                backdrop: 'static',
                keyboard: false
            });
            //triggerToast('You need to Login', 3000);
        },
        getProductDetailsAndOpenInNewTab: function (orderId, openInNewTab) {
            $('#homepageGlobalLoader').show();
            var data = {
                'url': 'shop/getOrder',
                'method': 'GET',
                'params': {
                    order_id: orderId
                },
                'headers': app.SetAjaxHeader()
            }
            app.masterAjaxCall(data, function (error, res) {
                $('#homepageGlobalLoader').hide();
                if (res) {
                    if (res.data.length > 0) {
                        if (typeof openInNewTab != 'undefined') {
                            window.location = res.data[0].order_status_url;
                        } else {
                            window.open(res.data[0].order_status_url, "_blank");
                        }
                    } else {
                        triggerToast('No records found for your order number.', 3000);
                    }
                }
            });
        },
        getRandomBanner: function () {
            return _colorBanner[Math.floor((Math.random() * 10))];
        },
        getMonthName: function (i) {
            return _monthNames[i];
        },
        getWeekDay: function (date_str) {
            var sd = new Date(date_str);
            return _weekDays[sd.getDay()];
        },
        isMobileDevice: function () {
            var check = false;
            (function (a) {
                if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true
            })(navigator.userAgent || navigator.vendor || window.opera);
            return check;
        },
        getRandomClass: function () {
            return _colorClass[Math.floor((Math.random() * 10))];
        },
        setFunctionToLoadAfterCardAdd: function (id) {
            _cardAddLoad = id;
            //1 load product checkout cards
            //2 user payment option cards
            //3 profile charity donate cards
            //4 buy bidcoins cards
            //5 subscription cards
            //6 buy bidcredit cards
            //7 bidcampaign payment cards
            //8 Vip ticket payment cards
        },
        getFunctiontoLoadAfterCardAdd: function () {
            return _cardAddLoad;
        },
        getUserGeoLocationAndUpdate: function (callback) {
			// return early for debugging
			return;
            if (app.GetUserStoredData('userId') == null) {
                callback(true);
            } else {
                $.ajax({
                    type: 'GET',
                    url: 'https://ssl.geoplugin.net/json.gp',
                    data: {
                        k: 'cda7a2582c7aa742'
                    },
                    crossDomain: true,
                    dataType: 'json',
                    success: function (data) {
                        //console.log(data.geoplugin_countryCode);
                        var data = {
                            'url': 'user/updateLocation',
                            'method': 'POST',
                            'params': {
                                country_code: data.geoplugin_countryCode
                            },
                            'headers': ''
                        }
                        app.masterAjaxCall(data, function (error, success) {
                            callback(true);
                        });
                    },
                    error: function (result) {
                        console.log('Error: ', result);
                        callback(true);
                    }
                });
            }
        },
        checkMobileAndRedirect: function () {
            if (this.isMobileDevice()) {
                var ua = navigator.userAgent;
                var isMobileChrome = (/Chrome/i.test(ua));
                var isMobileSafari = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/);
            };
        },
        copyToClipboard: function (text) {
            // var $temp = $("<input>");
            // $("body").append($temp);
            // $temp.val(text).select();
            // document.execCommand("copy");
            // $temp.remove();

            var el = document.createElement('textarea');
            el.value = text;
            el.setAttribute('readonly', '');
            el.style = {position: 'absolute', left: '-9999px'};
            document.body.appendChild(el);

            if (navigator.userAgent.match(/ipad|ipod|iphone/i)) {
                // save current contentEditable/readOnly status
                var editable = el.contentEditable;
                var readOnly = el.readOnly;

                // convert to editable with readonly to stop iOS keyboard opening
                el.contentEditable = true;
                el.readOnly = true;

                // create a selectable range
                var range = document.createRange();
                range.selectNodeContents(el);

                // select the range
                var selection = window.getSelection();
                selection.removeAllRanges();
                selection.addRange(range);
                el.setSelectionRange(0, 999999);

                // restore contentEditable/readOnly to original state
                el.contentEditable = editable;
                el.readOnly = readOnly;
            } else {
                el.select();
            }

            document.execCommand('copy');
            document.body.removeChild(el);


            triggerToast('Text copied to clipboard', 2000);
        },
        getUserGeoLocation: function (callback) {
			// early return for dev
			return;
            $.ajax({
                type: 'GET',
                url: 'https://ssl.geoplugin.net/json.gp',
                data: {
                    k: 'cda7a2582c7aa742'
                },
                crossDomain: true,
                dataType: 'json',
                success: function (data) {
                    //console.log(data.geoplugin_countryCode);
                    callback(data.geoplugin_countryCode)
                }, error: function (result) {
                    console.log('Error: ', result);
                    callback(false);
                }
            });
        },
        showCareersLink: function () {
            commonClass.getUserGeoLocation(function (data) {
                if (data && data == 'IN') {
                    //console.log(data);
                    if ($('#meetAndGreetCareersLink').length > 0) {
                        $('#meetAndGreetCareersLink').removeClass('display-none');
                    }
                    if ($('#meetAndGreetSideBarCareersLink').length > 0) {
                        $('#meetAndGreetSideBarCareersLink').removeClass('display-none');
                    }
                }
            });
        },
        getEmbedlyResponse:function(url,type,callback){
            app.masterAjaxCall({
                'url': 'patron/getEmbedlyResponse',
                'method': 'POST',
                'params':  {
                    'url': url,
                    'type': type
                },
                'headers': app.SetAjaxHeader()
            }, function (error, success) {
                if(typeof callback!=='undefined'){
                    callback(success);
                }else{
                    return success;
                }
            });
        },
        closeThisBrowserTab:function(){
            setTimeout(function(){
                window.top.close();
            },500);
        },
        getMainCreatorID:function(callback){
            if(typeof localStorage.getItem('creatorID')=='undefined' || localStorage.getItem('creatorID')==null || localStorage.getItem('creatorID')==''){
                $('#homepageGlobalLoader').show();
                var data = {
                    'url': 'RSS/getCreatorId',
                    'method': 'GET',
                    'params': {},
                    'headers': app.SetAjaxHeader()
                }
                app.masterAjaxCall(data, function (error, res) {
                    $('#homepageGlobalLoader').hide();
                    if (res.success) {
                        var creatorID=res.data.poi_id;
                        localStorage.setItem("creatorID",creatorID);
                        if(typeof res.data.own_email!='undefined' && res.data.own_email!=''){
                            app.UpdateUserStoredData('email', res.data.own_email);
                        }

                        if(typeof callback!='undefined'){
                            callback(creatorID)
                        }else{
                            return creatorID;
                        }

                    }
                });
            }else{
                if(typeof callback!='undefined'){
                    callback(localStorage.getItem('creatorID'))
                }else{
                    return localStorage.getItem('creatorID');
                }
            }
        },
        checkFanSubscribedStatus:function(callback){
            $('#homepageGlobalLoader').show();
            var data = {
                'url': 'RSS/getCreatorId',
                'method': 'GET',
                'params': {},
                'headers': app.SetAjaxHeader()
            }
            app.masterAjaxCall(data, function (error, res) {
                $('#homepageGlobalLoader').hide();
                if (res.success) {
                    fan_subscription_details=res.data.fan_subscription_details;
                    // if(fan_subscription_details.is_subscribed==1 || fan_subscription_details.cancellation_reason==1){
                    //     $('.premium-page').attr('href',base_url+'platinum');
                    // }else{
                    //     $('.premium-page').attr('href',base_url+'subscribe');
                    // }

                    fan_subscription_details.is_subscribed==1?$('#subscribeToPremiumBanner').addClass('hide'):$('#subscribeToPremiumBanner').removeClass('hide');

                    if(typeof callback!='undefined'){
                        callback(fan_subscription_details)
                    }
                }else{
                    return false;
                }
            });
        },
        showSubscribePopup:function(tier,is_subscribed,max_active_tier,subscription_package_title,isBonus){
            //if(is_subscribed==1){
                if(isBonus==1){
                    $('#subscribePopUpDesc').text('access this Post');
                }else{
                    $('#subscribePopUpDesc').text('listen to this episode.');
                }
                var tier_tag = (tier>=max_active_tier) ? decodeURIComponent(subscription_package_title) : decodeURIComponent(subscription_package_title)+' or Higher';
                tier_tag=is_subscribed==1?"a higher level subscription package":tier_tag;
                $('#subscribePopUpTierNum').text(tier_tag);
                $('#subscribePopUpTierInfo').removeClass('display-none');
            //}
            $('#postSubscribePopup').modal('show');
        },
        talkToUs:function(){
            commonClass.getMainCreatorID(function(creatorID){
                if(app.GetUserStoredData('userId')!=null  && app.GetUserStoredData('userId')!=creatorID){
                    FanProfilePopUpClass.setToastflag(true);
                    FanProfilePopUpClass.navigateCreatorFanProfile(creatorID);

                }else{
                    triggerToast('This Action is Disabled!', 3000);
                    return false;
                }
            });

        },
        closeModalOnBrowserBackBtn:function(){
            $(window).on('popstate',function(){
                $('.modal').modal('hide');
            });
        },
        removeHtmlTags:function(str){
            return str.replace(/<!--.*?-->/ig, "").trim().substring(0, 500).replace(/<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g, "").trim().replace(/&nbsp;/g, ' ').trim();
        },
        validateNumeric:function(evt) {
            var theEvent = evt || window.event;
            var key = theEvent.keyCode || theEvent.which;
            key = String.fromCharCode( key );
            var regex = /[0-9\b\t]|\./;
            if( !regex.test(key) ) {
              theEvent.returnValue = false;
              if(theEvent.preventDefault) theEvent.preventDefault();
            }
        },
        searchPostByFilter: function(data){
            return false;
            var postType = {
                'audio': 3,
                'photo': 1,
                'video': 2,
                'link' : 4,
                'blog' : 6,
                'text' : 5

            }

            var urlParam = '';

            switch(data.filterType){
                case 'postType':
                                urlParam = 'type='+postType[data.filterVal];
                                break;
                case 'season':
                                urlParam = 'season='+data.filterVal;
                                break;
            }

            window.location.href = base_url+'search?'+urlParam;
        }
    }
})();


function signInMobileWebUser(data, callback) {
    $.ajax({
        url: api_url + 'auth/user',
        type: 'GET',
        data: data.params,
        headers: {
            'User-id': data.userId,
            'Token': data.token
        },
        success: function (data) {
            localStorage.setItem("userInfo", JSON.stringify(data.data[0]));
            callback(false, data);
        },
        error: function (request, error) {
            $('body').html('<div class="text-center" style="padding-top: 100px;"><h2>You need to login.</h2></div>');
            callback(true, false);
        }
    });
};

//main socket call function
function BidchatSocketEmitEvent(data, callback) {
	// return early for dev. this'll log you out immediately otherwise.
	return;
    if (socket.connected) {
        // alert();
        socket.emit('ValidateAuthSocketCall', app.SetAjaxHeader(), function (validateAuthSocketCallRes) {
            if (validateAuthSocketCallRes) {
                socket.emit(data.eventName, app.SetAjaxHeader(), data.params, function (res) {
                    if (typeof callback !== 'undefined')
                        callback(res);
                });
            } else {
                app.LogoutCurrentUser();
            }
        });
    }
};

//////////////////////
///COMMON FUNCTIONS///


function detectpopupblock(num) {
    if (num == 1) {
        if (is_Safari)
            triggerToast('Please ensure that popups are enabled.', 5000);
    } else if (num == 0) {
        triggerToast('Please ensure that popups are enabled.', 5000);
    }
    return;
}

function followbidchatuser(poiid, callback) {
    if (app.GetUserStoredData('userId') != null && app.GetUserStoredData('userId') != poiid) {
        BidchatSocketEmitEvent({
            eventName: 'FollowUsers',
            params: {
                poi_id: poiid
            }
        }, function (res) {
            callback(res);
        });
    } else if (app.GetUserStoredData('userId') == poiid) {
        triggerToast('The action you clicked is disabled when previewing.', 3000);
    } else {
        $('#gosigninmodal').modal();
    }
};

function filterresponcemessage(msg) { //removes html tags from response message
    var div = document.createElement("div");
    div.innerHTML = msg;
    var text = div.textContent || div.innerText || "";
    return text;
};

function GenerateStripeAuth(data, callback) {
    if (typeof Stripe !== 'undefined') {
        //pk_live_9FUG9XiCJlxKoV03ACnhIdVc
        //pk_test_yIhgCzlKTfu9Tk8Sy6G84Ggt
        Stripe.setPublishableKey(stripeKey);
        Stripe.card.createToken(data, function (status, response) {
            if (response.error) {
                //console.log(response);
                if (typeof callback !== 'undefined')
                    callback({
                        status: status,
                        res: response
                    });
            } else {
                if (typeof callback !== 'undefined')
                    callback({
                        status: status,
                        res: response
                    });
            }
        });
    }
};

function formatnumber(num) {
    if (typeof num !== 'undefined' && num != null) {
        var si = [{
            value: 1E18,
            symbol: "E"
        },
        {
            value: 1E15,
            symbol: "P"
        },
        {
            value: 1E12,
            symbol: "T"
        },
        {
            value: 1E9,
            symbol: "B"
        },
        {
            value: 1E6,
            symbol: "M"
        },
        {
            value: 1E3,
            symbol: "K"
        }
        ],
            i;
        for (i = 0; i < si.length; i++) {
            if (num >= si[i].value) {
                return (num / si[i].value).toFixed(1).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, "$1") + si[i].symbol;
            }
        }
        return num.toString();
    } else {
        return num;
    }
};

function UserBroadcasterChatMsgEvent(data) {
    if (app.GetUserStoredData('userId') != null) {
        if (broadcasterDataClass.getBroadcasterData('id')) {
            $("#broadcasterchatmessage").val('');

            BidchatSocketEmitEvent({
                eventName: 'UserActivityCreated',
                params: {
                    user_id: app.GetUserStoredData('userId'),
                    poi_id: data.poi_id,
                    message: data.message,
                    event_type: data.eventType
                }
            }, function (res) {
                if (res.chatMessageDisabled) {
                    triggerToast('Broadcaster has disabled the chat.', 3000);
                }
                //console.log('User Activity Submit Event sent!');
            });
        } else {
            triggerToast('No Broadcaster Poi id found', 3000);
        }
    } else {
        $('#gosigninmodal').modal();
    }
};

function SetEmoji(data, isColon, onlyUnified) {
    var g_emoji = new EmojiConvertor();
    g_emoji.img_set = 'google';
    g_emoji.img_sets.google.path = cdn+'emoji/img-google-64/';
    g_emoji.img_sets.google.sheet = cdn+'emoji/sheet/sheet_google_64.png';
    g_emoji.use_sheet = false;
    g_emoji.colons_mode = isColon;

    if (typeof onlyUnified === 'undefined') {
        g_emoji.allow_native = false;
        g_emoji.replace_mode = 'img';
    } else {
        g_emoji.allow_native = true;
        g_emoji.replace_mode = 'unified';
    }

    data = g_emoji.replace_colons(data);
    data = g_emoji.replace_unified(data);
    return data;
};


/*
 ================================
 Get Minutes Between Dates
 ================================
 */
function GetMinutesBetweenDates(startDate, endDate) {
    var diff = endDate.getTime() - startDate.getTime();
    return (diff / 60000);
};

/*
 ================================
 Timeout Callback event
 ================================
 */
TimeoutCallback = function (timeout, callback) {
    var called = false;
    if (typeof timeout === 'function') {
        callback = timeout;
        timeout = 5 * 1000;
    }
    var interval = setTimeout(function () {
        if (called)
            return;
        called = true;
        callback(false);
    }, timeout);
    return function () {
        if (called)
            return;
        called = true;
        clearTimeout(interval);
        callback.apply(this, arguments);
    };
};

function updateUserLocalStore(callback) {
    if (app.GetUserStoredData('userId') != null) {
        app.masterAjaxCall({
            'url': 'auth/user',
            'method': 'GET',
            'params': '',
            'headers': app.SetAjaxHeader()
        }, function (error, success) {
            if (success.success) {
                app.UpdateUserStoredData('verified', success.data[0].verified);
                app.UpdateUserStoredData('is_private', success.data[0].is_private);
                app.UpdateUserStoredData('charity_id', success.data[0].charity_id);
                app.UpdateUserStoredData('user_description', success.data[0].user_description);
                app.UpdateUserStoredData('username', success.data[0].username);
                app.UpdateUserStoredData('collection_id', success.data[0].collection_id);
            }
            if (typeof callback != 'undefined') {
                callback(true);
            }
        });
    }
};

SocketConnectionStateClass = (function () {
    _socketConnectionState = 1
    return {
        SetSocketConnectionState: function (connectionState) {
            _socketConnectionState = connectionState;
        },
        GetSocketConnectionState: function () {
            return _socketConnectionState;
        },
        DISCONNECTED: 0,
        CONNECTED: 1,
        showDisconnectTimeoutObject: null
    };
})();

hoverMiniProfileClass = (function () {
    var _mouseenter = 0;
    var _recipientId = null;
    var _ownUser = 'The action you clicked is disabled when previewing.';
    return {
        initiatehoverlistener: function () {
            $('.hovercontentdisplay').unbind();
            $('.miniprofile-popup').unbind();
            $('.hovercontentdisplay').on("mouseenter", function () {
                _mouseenter = 0;
                $('.miniprofile-popup').css({
                    top: $(this).offset().top + $(this).height(),
                    left: $(this).offset().left - 60
                });
                $('.miniprofile-popup').show();
                $('#showhoverloading').show();
                $('#showhovercontent').hide();
                hoverMiniProfileClass.getPopupData($(this).attr('data-hoverid'), function (tmp) {
                    if (tmp) {
                        $('#showhoverloading').hide();
                        $('#showhovercontent').show();
                    } else {
                        $('#showhoverloading').hide();
                    }
                });
            }).on("mouseleave", function () {
                setTimeout(function () {
                    if (_mouseenter == 0)
                        $('.miniprofile-popup').hide();
                }, 30);

            });
            $('.miniprofile-popup').on("mouseenter", function () {
                _mouseenter = 1;
            }).on("mouseleave", function () {
                _mouseenter = 0;
                $('.miniprofile-popup').hide();

            });
        },
        getPopupData: function (poiid, callback) {
            _recipientId = poiid;
            if (!isNaN(poiid)) {
                if (typeof $('.miniprofile-popup').attr('data-poiId') !== 'undefined') {
                    if (parseInt($('.miniprofile-popup').attr('data-poiId')) === parseInt(poiid)) {
                        if (typeof callback != 'undefined')
                            callback(true);
                        return;
                    }
                }
                $('.miniprofile-popup').attr('data-poiId', poiid);
                $("#viewprofilelink").show();
                var data = {
                    'url': 'appcalls/broadcasterListQuery',
                    'method': 'GET',
                    'params': {
                        'userId': app.GetUserStoredData('userId'),
                        'poiId': poiid
                    },
                    'headers': app.SetAjaxHeader()
                }
                app.masterAjaxCall(data, function (error, success) {
                    if (error) {
                        triggerToast(error, 3000);
                        if (typeof callback != 'undefined')
                            callback(true);
                    } else {
                        if (success.success && typeof success.data[0] != 'undefined') {
                            if (parseInt($('.miniprofile-popup').attr('data-poiId')) === parseInt(success.data[0].id)) {
                                $("#hoverusermainphotoDiv").unbind();
                                $("#hoverusercoverphoto").attr("src", success.data[0].cover_photo);
                                $("#hoverusermainphoto").attr("src", success.data[0].profile_photo_thumb);
                                $("#hoverbroadcasterProfileIscore").html(formatnumber(success.data[0].poi_influencer_score));
                                if (success.data[0].poi_follows == 'follows') {
                                    $("#hoveruserlikeflag").attr("data-follow", 1);
                                } else {
                                    $("#hoveruserlikeflag").attr("data-follow", 0);
                                }
                                $("#hoverusername").html(success.data[0].username);
                                $("#hoveruserfollowing").html(formatnumber(success.data[0].poi_following_count));
                                $("#hoveruserfollowers").html(formatnumber(success.data[0].poi_follow_count));
                                $("#hoveruserdescription").html(success.data[0].profile_description);
                                $("#viewprofilelink").attr('href', base_url + success.data[0].poi_profile_url);
                                (success.data[0].user_type == 'fan') ? $("#viewprofilelink").attr('href', '#').attr('onclick', 'return false;') : $("#viewprofilelink").attr('href', base_url + success.data[0].poi_profile_url).attr('onclick', '');

                                $("#hoverusermainphotoDiv").on('click', function () {
                                    if (success.data[0].user_type == 'creator') {
                                        window.location = base_url + success.data[0].poi_profile_url;
                                    } else {
                                        return false;
                                    }
                                });


                                if (typeof callback != 'undefined')
                                    callback(true);
                            } else {
                                if (typeof callback != 'undefined')
                                    callback(false);
                            }
                        } else {
                            triggerToast('No data found. User has been blocked or has deactivated his account', 3000);
                            if (typeof callback != 'undefined')
                                callback(false);
                        }
                    }
                    return;
                });
            }
        },
        initiatehoverlistener2: function () {
            $('.hovercontentdisplay').unbind();
            $('.miniprofile-popup').unbind();
            $(document).on("mouseenter", ".hovercontentdisplay", function () {
                _mouseenter = 0;
                $('.miniprofile-popup').css({
                    top: $(this).offset().top + $(this).height(),
                    left: $(this).offset().left - 60
                });
                $('.miniprofile-popup').show();
                $('#showhoverloading').show();
                $('#showhovercontent').hide();
                hoverMiniProfileClass.getPopupData($(this).attr('data-hoverid'), function (tmp) {
                    if (tmp) {
                        $('#showhoverloading').hide();
                        $('#showhovercontent').show();
                    } else {
                        $('#showhoverloading').hide();
                    }
                });
            }).on("mouseleave", ".hovercontentdisplay", function () {
                setTimeout(function () {
                    if (_mouseenter == 0)
                        $('.miniprofile-popup').hide();
                    $("#directmsgsendinp2").val('');
                }, 30);

            });
            $('.miniprofile-popup').on("mouseenter", function () {
                _mouseenter = 1;
            }).on("mouseleave", function () {
                _mouseenter = 0;
                $('.miniprofile-popup').hide();

            });
        },
        getChatId: function (callback) {
            $('#homepageGlobalLoader').show();
            BidchatSocketEmitEvent({
                eventName: 'GetDirectMessageChatRoomId',
                params: {
                    user_id: app.GetUserStoredData('userId'),
                    poi_id: _recipientId
                }
            }, function (GetDirectMessageChatRoomIdRes) {
                $('#homepageGlobalLoader').hide();
                callback(GetDirectMessageChatRoomIdRes);
            });
        },
        sendDirectMessage: function () {
            if (_recipientId != null) {
                if (_recipientId == app.GetUserStoredData('userId')) {
                    triggerToast(_ownUser, 5000);
                } else {
                    if (app.GetUserStoredData('userId') != null) {
                        if ($("#directmsgsendinp2").val().trim() != '') {
                            this.getChatId(function (chat_id) {
                                var msgTextVal = $("#directmsgsendinp2").val().trim();
                                var megRawTextVal = msgTextVal;
                                msgTextVal = SetEmoji(megRawTextVal, true);
                                $('#homepageGlobalLoader').show();
                                BidchatSocketEmitEvent({
                                    eventName: 'SendDirectMessage',
                                    params: {
                                        user_id: app.GetUserStoredData('userId'),
                                        poi_id: _recipientId,
                                        chat_id: chat_id,
                                        message: msgTextVal.trim(),
                                        rawMessage: megRawTextVal
                                    }
                                }, function (res) {
                                    $('#homepageGlobalLoader').hide();
                                    if (res.chat_id) {
                                        $("#directmsgsendinp2").val('');
                                        triggerToast('Message Sent!', 3000);
                                    } else {
                                        triggerToast('Sorry. This message cannot be sent!', 5000);
                                    }
                                });
                            });
                        } else {
                            triggerToast('Input message to send', 3000);
                        }
                    } else {
                        commonClass.openSigninModal();
                    }
                }
            }
        },
        followBroadcaster: function () {
            if (_recipientId == app.GetUserStoredData('userId')) {
                triggerToast(_ownUser, 5000);
            } else {
                if (_recipientId != null) {
                    $('#homepageGlobalLoader').show();
                    followbidchatuser(_recipientId, function (res) {
                        $('#homepageGlobalLoader').hide();
                        if (res.img_name === 'follows') {
                            var tmp = 0;
                            $('#hoveruserlikeflag').attr("data-follow", '1');
                        } else {
                            $('#hoveruserlikeflag').attr("data-follow", '0');
                        }
                    });
                }
            }
        },
    }
})();


function activateCopperImageListner() {
    $('.tierImagePhotoInput').unbind();
    $('#crop_tier_image_preview').unbind();
    $('#confirm_tier_image').unbind();

    $('.tierImagePhotoInput').change(function (event) {
        event.preventDefault();
        $('#tierImgphotocropper img').prop('src',web_cdn+'images/profileplaceholder.jpg');
        SubscriptionClass.inputImageChange(this);
    });

    $('#crop_tier_image_preview').on('hidden.bs.modal', function (e) {
        SubscriptionClass.clearSelectedImage();
    });

    $('#confirm_tier_image').on('click', function () {
        SubscriptionClass.uploadProfileCoverPhoto(this);
    });
};


function activateTextAreaBulletList() {
    $('[id^=tier_goals_]').focus(function () {
        if ($('#' + this.id).val() === '') {
            $('#' + this.id).val($('#' + this.id).val() + '• ');
        }
    });

    $('[id^=tier_goals_]').keyup(function (event) {
        var keycode = (event.keyCode ? event.keyCode : event.which);
        if (keycode == '13') {
            $('#' + this.id).val($('#' + this.id).val() + '• ');
        }
        var txtval = $('#' + this.id).val();
        if (txtval.substr(txtval.length - 1) == '\n') {
            $('#' + this.id).val(txtval.substring(0, txtval.length - 1));
        }
    });
};




SubscriptionClass = (function () {
    var _categoryListLoaded = 0;
    var _defaultUserSubscriptionLoaded = 0;
    var _selectedCatId = null;
    var _selectedCatName = null;
    var _subscriptionPackages = [{
        'packages': [ {
            amount: 1,
            id: 1,
            isActive: 1,
            type: '1 month',
            description: '',
            show: true

        }],
        filedata: null,
        is_paid_channel: 0

    }];

    var _productType = null;
    var _paymentPoiID = null;
    var _subscription_package_id = null;
    var _subscription_package_amount = null;
    var _subscription_channel_name = null;
    var _subscription_package_name = null;
    var _whichFunctionLoadAtEnd = 0;
    var _free_subscription_eligible=0;
    var _free_subscription_eligible_paypal=0;

    var _channelFilterCategoryIdsArray = [];
    var _tempChannelFilterCategoryIdsArray = [];
    var _filterCategoryListLoaded = 0;
    var _channelListingPage = 1;
    var _channelListingPageLoading = 0;
    var _channelListingPageCount = 0;
    var _is_mySubscribedList = 1;
    var _tabclickMySubscribedChannelLoaded = 0;
    var _tabclickMyRecomendedChannelLoaded = 0;
    var _SubscriptionChannelLoadingFlag = null;
    var _subcription_tier_title = null;

    var _Last_CategoryName = null;
    var _RecomendedListOnSubHideId = null;

    var _myChannelSubUserPage = 1;
    var _myChannelSubUserPageCount = 0;
    var _myChannelSubUserPageLoading = 0;
    var _oneTimeTabClickMyC
    var _wlcmVideoHolder = 0;

    var _container = null;
    var _image = null;

    var _blogVideoHolder = null;
    var _profileVideoHolder = null;

    var _profileEditLoaded = false;
    var _defaultStatuses = [];

    var _inputImage = $('.tierImagePhotoInput');
    var _URL = window.URL || window.webkitURL;
    var _blobURL;
    var _options = {
        aspectRatio: 1,
        autoCropArea: 1,
        guides: false,
        highlight: true,
        dragCrop: true,
        movable: true,
        preview: '.img-preview',
        zoomOnTouch: false,
        zoomOnWheel: false,
        checkOrientation: false,
        viewMode: 1,
        checkOrientation: true,
        rotatable: true,
        dragMode: 'move'
    };

    var tierimageID;
    var packageID;
    var tierID;

    var refreshCodePackageID;
    var refreshCodeTierID;
    var wlcmVideoUploadXhrRequest;

    var _cropper;

    var isDefaultPatronStatusLoaded = false;
    var _redirectAfterSubscription=false;


    return {
        initiateTierImageCorpper: function () {
            _container = document.querySelector('#tierImgphotocropper');
            _image = _container.getElementsByTagName('img').item(0);

            if (_URL) {
                _cropper = new Cropper(_image, _options);
            } else {
                _inputImage.disabled = true;
                _inputImage.parentNode.className += ' disabled';
            }
        },
        clearSelectedImage: function () {
            _inputImage.val('');
        },
        inputImageChange: function (this2) {
            var imagetype = $(this2).attr('data-image');
            var ratio = $(this2).attr('data-ratio');
            $('#confirm_tier_image').attr('data-image', imagetype);

            tierimageID = $(this2).attr('id');
            var arr = tierimageID.split('_');
            packageID = arr[1];
            tierID = arr[2];
            var files = this2.files;
            var file;

            _cropper.setAspectRatio(ratio);

            if (_cropper && files && files.length) {
                file = files[0];
                if (/^image\/\w+/.test(file.type)) {
                    _blobURL = URL.createObjectURL(file);
                    _cropper.reset().replace(_blobURL);
                    _inputImage.value = null;
                    $('#crop_tier_image_preview').modal({
                        backdrop: 'static',
                        keyboard: false
                    });
                } else {
                    window.alert('Please choose an image file.');
                }
            }
        },
        loadMsgTips: function () {
            $('#subscriptionStep1').click(function (e) {
                e.preventDefault();
                SubscriptionClass.checkTierValidation(function(){
                $('#subscriptionStep1').tab('show');
                $('.subscription-step1').removeClass('display-none');
                $('.subscription-step2').addClass('display-none');
                $('.subscription-step3').addClass('display-none');
                $('.savePatronSettingBtn').text('Save');
                });
            });
            $('#subscriptionStep2').click(function (e) {
                e.preventDefault();
                $('#subscriptionStep2').tab('show');
                $('.subscription-step1').addClass('display-none');
                $('.subscription-step2').removeClass('display-none');
                $('.subscription-step3').addClass('display-none');
                $('.savePatronSettingBtn').text('Save');
                $('#wlcmVideoEle').trigger('pause');
            });
            $('#subscriptionStep3').click(function (e) {
                e.preventDefault();
                SubscriptionClass.checkTierValidation(function(){
                    $('#subscriptionStep3').tab('show');
                    $('.subscription-step1').addClass('display-none');
                    $('.subscription-step2').addClass('display-none');
                    $('.subscription-step3').removeClass('display-none');
                    $('.savePatronSettingBtn').text('Save');
                    $('#wlcmVideoEle').trigger('pause');
                });
            });
            $('#subscriptionStep4').click(function () {
                $('#subscriptionStep2').tab( "show" );
                $('.subscription-step1').addClass('display-none');
                $('.subscription-step2').removeClass('display-none');
                $('.subscription-step3').addClass('display-none');
                $('.savePatronSettingBtn').text('Save');
            });
            $('#subscriptionStep5').click(function () {

                SubscriptionClass.checkTierValidation(function(){
                    $('#subscriptionStep3').tab( "show" );
                    $('.subscription-step1').addClass('display-none');
                    $('.subscription-step2').addClass('display-none');
                    $('.subscription-step3').removeClass('display-none');
                    $('.savePatronSettingBtn').text('Save');
                });

            });
            $('#subscriptionStep6').click(function () {
                $('#subscriptionStep2').tab( "show" );
                $('.subscription-step1').addClass('display-none');
                $('.subscription-step2').removeClass('display-none');
                $('.subscription-step3').addClass('display-none');
                $('.savePatronSettingBtn').text('Save');
            });
            $('#subscriptionStep7').click(function () {
                SubscriptionClass.checkTierValidation(function(){
                    $('#subscriptionStep1').tab( "show" );
                    $('.subscription-step1').removeClass('display-none');
                    $('.subscription-step2').addClass('display-none');
                    $('.subscription-step3').addClass('display-none');
                });
            });
            SubscriptionClass.setUserSubscriptionScreen();
        },
        uploadProfileCoverPhoto: function (this2) {
            $('#crop_tier_image_preview').modal('hide');
            var image_type = parseInt($(this2).attr('data-image'));
            var canvas = _cropper.getCroppedCanvas();
            var image = canvas.toDataURL('image/jpeg');

            for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                if (parseInt(_subscriptionPackages[0].packages[i].id) == packageID) {
                    for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                        if (_subscriptionPackages[0].packages[i].tiers[j].tier == tierID) {
                            _subscriptionPackages[0].packages[i].tiers[j].image = image;
                            _subscriptionPackages[0].packages[i].tiers[j].is_image_selected = 1;
                            $('#tierImagePreview_' + packageID + '_' + tierID).attr('src', image);
                            $('#tierImageHolder_' + packageID + '_' + tierID).show();
                        }
                    }
                }
            }
        },
        allowOnlyAlphaNumeric:function(evt){
            var theEvent = evt || window.event;
            var key = theEvent.keyCode || theEvent.which;
            key = String.fromCharCode( key );
            var regex = /^[0-9a-zA-Z]+$/;
            if( !regex.test(key) ) {
              theEvent.returnValue = false;
              if(theEvent.preventDefault) theEvent.preventDefault();
            }
        },
        clearThankyouModal: function () {
            $('#thankyouMsgHolder').removeClass('hide');
            $('#thankyouMsgHolderFree').addClass('hide');
            $('#subscriptionPopupDiv').hide();
            $('#subscribtionBorderMessage').removeClass('subscribtion-Border-Message');
            $('#subscribtionBorderMessage').addClass('receipt');
            $('#paymentthankyoumodal').modal('hide');
            if(_redirectAfterSubscription){
                _redirectAfterSubscription=false;
                window.location=base_url+'platinum';
            }
        },
        copyAccessCode: function (id, tier) {
            var accessCodeText = $('#tierAccessCode_' + id + '_' + tier).text();
            commonClass.copyToClipboard(accessCodeText);
        },
        decrementPackageAmount: function (id, tier) {
            if (parseInt($('#tier_price_' + id + '_' + tier).val()) > 1) {
                $('#tier_price_' + id + '_' + tier).val(parseInt($('#tier_price_' + id + '_' + tier).val()) - 1);
                for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                    if (_subscriptionPackages[0].packages[i].id == id) {
                        for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                            if (_subscriptionPackages[0].packages[i].tiers[j].tier == tier) {
                                _subscriptionPackages[0].packages[i].tiers[j].amount = $('#tier_price_' + id + '_' + tier).val();
                            }
                        }
                    }
                }
            }
        },
        incrementPackageAmount: function (id, tier) {
            if (parseInt($('#tier_price_' + id + '_' + tier).val()) < 1000) {
                $('#tier_price_' + id + '_' + tier).val(parseInt($('#tier_price_' + id + '_' + tier).val()) + 1);
                for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                    if (_subscriptionPackages[0].packages[i].id == id) {
                        for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                            if (_subscriptionPackages[0].packages[i].tiers[j].tier == tier) {
                                _subscriptionPackages[0].packages[i].tiers[j].amount = $('#tier_price_' + id + '_' + tier).val();
                            }
                        }
                    }
                }
            }
        },
        decrementPackageDiscount: function (id, tier) {
            if (parseInt($('#merchandise_discount_' + id + '_' + tier).val()) > 5) {
                $('#merchandise_discount_' + id + '_' + tier).val(parseInt($('#merchandise_discount_' + id + '_' + tier).val()) - 5);
                for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                    if (_subscriptionPackages[0].packages[i].id == id) {
                        for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                            if (_subscriptionPackages[0].packages[i].tiers[j].tier == tier) {
                                _subscriptionPackages[0].packages[i].tiers[j].merchandise_discount = $('#merchandise_discount_' + id + '_' + tier).val();
                            }
                        }
                    }
                }
            }
        },
        incrementPackageDiscount: function (id, tier) {
            if (parseInt($('#merchandise_discount_' + id + '_' + tier).val()) < 20) {
                $('#merchandise_discount_' + id + '_' + tier).val(parseInt($('#merchandise_discount_' + id + '_' + tier).val()) + 5);
                for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                    if (_subscriptionPackages[0].packages[i].id == id) {
                        for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                            if (_subscriptionPackages[0].packages[i].tiers[j].tier == tier) {
                                _subscriptionPackages[0].packages[i].tiers[j].merchandise_discount = $('#merchandise_discount_' + id + '_' + tier).val();
                            }
                        }
                    }
                }
            }
        },
        decrementNoOfEpisodes: function (id, tier) {
            if (parseInt($('#numberOfEpisodes_' + id + '_' + tier).val()) > 0) {
                $('#numberOfEpisodes_' + id + '_' + tier).val(parseInt($('#numberOfEpisodes_' + id + '_' + tier).val()) - 1);
                for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                    if (_subscriptionPackages[0].packages[i].id == id) {
                        for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                            if (_subscriptionPackages[0].packages[i].tiers[j].tier == tier) {
                                _subscriptionPackages[0].packages[i].tiers[j].past_podcast_episode_access_limit = $('#numberOfEpisodes_' + id + '_' + tier).val();
                            }
                        }
                    }
                }
            }
        },
        incrementNoOfEpisodes: function (id, tier) {
            if (parseInt($('#numberOfEpisodes_' + id + '_' + tier).val()) < 30) {
                $('#numberOfEpisodes_' + id + '_' + tier).val(parseInt($('#numberOfEpisodes_' + id + '_' + tier).val()) + 1);
                for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                    if (_subscriptionPackages[0].packages[i].id == id) {
                        for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                            if (_subscriptionPackages[0].packages[i].tiers[j].tier == tier) {
                                _subscriptionPackages[0].packages[i].tiers[j].past_podcast_episode_access_limit = $('#numberOfEpisodes_' + id + '_' + tier).val();
                            }
                        }
                    }
                }
            }
        },
        enableSubscriptionChange: function () {
            if ($('#enablesubscription').prop('checked')) {
                _subscriptionPackages[0].is_paid_channel = 1;
            } else {
                _subscriptionPackages[0].is_paid_channel = 0;
            }
        },
        activeInactiveTierCheck: function (packageid, tierid, subscriber_count) {
            if ($('#isActiveTier_' + packageid + '_' + tierid).prop('checked')) {
                SubscriptionClass.activeInactiveTier(packageid, tierid, '');
            }
            else {
                var str ="<ul><li>All posts associated with this Tier will be hidden from your Supporters.</li><li>Please note that Supporters of this Tier will continue to remain subscribed to this disabled Tier</li></ul>";
                jqueryConfirm.confirm2('Tier '+tierid+' will be disabled!',str, function () {
                    SubscriptionClass.activeInactiveTier(packageid, tierid, true);
                },
                    function () {
                        SubscriptionClass.activeInactiveTier(packageid, tierid, false);
                    });
            }
        },
        activeInactiveTier: function (packageid, tierid, confirm) {
            for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                if (_subscriptionPackages[0].packages[i].id == packageid) {
                    for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                        if (_subscriptionPackages[0].packages[i].tiers[j].tier == tierid) {
                            if ($('#isActiveTier_' + packageid + '_' + tierid).prop('checked')) {
                                _subscriptionPackages[0].packages[i].tiers[j].isActive = 1;
                                _subscriptionPackages[0].packages[i].tiers[j].show_tier = true;
                            }
                            else {

                                if (confirm) {
                                    _subscriptionPackages[0].packages[i].tiers[j].isActive = 0;
                                }
                                else {
                                    $('#isActiveTier_' + packageid + '_' + tierid).prop('checked', true)
                                    return false;
                                }
                            }
                        }
                    }
                }
            }
            //    }
        },
        toggleMessageAccess: function (packageid, tierid) {
            for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                if (_subscriptionPackages[0].packages[i].id == packageid) {
                    for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                        if (_subscriptionPackages[0].packages[i].tiers[j].tier == tierid) {
                            if ($('#allowDirectMessage_' + packageid + '_' + tierid).prop('checked')) {
                                _subscriptionPackages[0].packages[i].tiers[j].have_direct_message_access = 1;
                            }else {
                                _subscriptionPackages[0].packages[i].tiers[j].have_direct_message_access = 0;
                            }
                        }
                    }
                }
            }
        },
        selectPerkEligibilityDuration: function (id, tier) {
            for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                if (_subscriptionPackages[0].packages[i].id == id) {
                    for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                        if (_subscriptionPackages[0].packages[i].tiers[j].tier == tier) {
                            _subscriptionPackages[0].packages[i].tiers[j].perk_eligibility_duration = $('#perkEligibility_' + id + '_' + tier).val();
                        }
                    }
                }
            }
        },
        togglePastContentAccess: function (packageid, tierid) {
            for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                if (_subscriptionPackages[0].packages[i].id == packageid) {
                    for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                        if (_subscriptionPackages[0].packages[i].tiers[j].tier == tierid) {
                            if ($('#limitPastContent_' + packageid + '_' + tierid).prop('checked')) {
                                _subscriptionPackages[0].packages[i].tiers[j].past_content_control = 1;
                                $('#numberOfEpisodesDiv_' + packageid + '_' + tierid).removeClass("hideContent");
                            }else {
                                _subscriptionPackages[0].packages[i].tiers[j].past_content_control = 0;
                                $('#numberOfEpisodesDiv_' + packageid + '_' + tierid).addClass("hideContent");
                            }
                        }
                    }
                }
            }
        },
        removeTierImage: function (packageid, tierid) {
            for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                if (_subscriptionPackages[0].packages[i].id == packageid) {
                    for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                        if (_subscriptionPackages[0].packages[i].tiers[j].tier == tierid) {
                            _subscriptionPackages[0].packages[i].tiers[j].image = "";
                            _subscriptionPackages[0].packages[i].tiers[j].image_thumb = "";
                            _subscriptionPackages[0].packages[i].tiers[j].is_image_selected = 1;
                            $('#tierImageHolder_' + packageid + '_' + tierid).hide();
                            $("#tierFilenameinp_" + packageid + '_' + tierid).val('');
                        }
                    }
                }
            }
        },
        welcomeVideoChange: function (event) {
            _wlcmVideoHolder = event.target.files;
            var fileSizeVid = parseInt(_wlcmVideoHolder[0].size / (1024 * 1024));
            var LimitSize = parseInt('500');
            if (fileSizeVid > LimitSize) {
                jqueryConfirm.alert("", "File too Large.");
                $('#wlcmVideoLabel').html('Select File');
                $('#wlcmVideoinp').val('');
                $('#wlcmVideoUploadBtn').addClass('subscription-upload-inactive');
                return false;
            }
            $('#welcomeVideoUploadBtn').prop('disabled', false);
            $('#wlcmVideoUploadBtn').removeClass('subscription-upload-inactive');
            $('#wlcmVideoUnselectBtn').length>0?$('#wlcmVideoUnselectBtn').removeClass('hide'):'';

            _subscriptionPackages[0].filedata = _wlcmVideoHolder[0];
        },
        unselectWelcomeVideo:function(){
            $('#wlcmVideoLabel').html('Select File');
            $("#wlcmVideoinp").val(null);
            $('#wlcmVideoUploadBtn').addClass('subscription-upload-inactive');
            $('#wlcmVideoUnselectBtn').length>0?$('#wlcmVideoUnselectBtn').addClass('hide'):'';
        },
        checkTierValidation: function (callback) {
            var error = false;

            for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                if (parseInt(_subscriptionPackages[0].packages[i].isActive) == 1) {
                    for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {

                        var tieramount = $('#tier_price_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);
                        var tierdescription = $('#tier_goals_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);
                        var tierTitle = $('#tierTitle_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);


                        var tierCouponCreateDuration = $('#tierCouponCreateDuration_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);
                        var pass_code = $('#passCode_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);

                        _subscriptionPackages[0].packages[i].tiers[j].amount = tieramount.val();
                        _subscriptionPackages[0].packages[i].tiers[j].description = tierdescription.val();
                        _subscriptionPackages[0].packages[i].tiers[j].title = tierTitle.val();

                        if (_subscriptionPackages[0].packages[i].tiers[j].isActive == "1" && (_subscriptionPackages[0].packages[i].tiers[j].amount < 1 || _subscriptionPackages[0].packages[i].tiers[j].title == "" || _subscriptionPackages[0].packages[i].tiers[j].description == "")) {

                            if (_subscriptionPackages[0].packages[i].tiers[j].amount < 1) {
                                triggerToast('Tier ' + _subscriptionPackages[0].packages[i].tiers[j].tier + ' Price not entered', 5000);

                            } else if (_subscriptionPackages[0].packages[i].tiers[j].title == "") {

                                triggerToast('Tier ' + _subscriptionPackages[0].packages[i].tiers[j].tier + ' Title not entered', 5000);

                            }
                            else if (_subscriptionPackages[0].packages[i].tiers[j].description == "") {

                                triggerToast('Tier ' + _subscriptionPackages[0].packages[i].tiers[j].tier + ' description not entered', 5000);

                            }

                            error = true;
                            break;

                        }

                    }
                }
            }

            if (!error) {
                callback();
            }
        },
        abortWelcomeVideoUpload:function(){
            wlcmVideoUploadXhrRequest.abort();
            $('#homepageGlobalLoader').hide();
        },
        uploadWelcomeVideo:function(){
            var data = new FormData();
            if(_wlcmVideoHolder.length > 0){
                data.append('filedata', _wlcmVideoHolder[0]);
            }else{
                triggerToast('Please Select a Video File For Upload ', 5000);
                return false;
            }
            data.append('media_type', 'video');

            var confirmFunctions=[{
                'text': 'Cancel Upload',
                'action': function () { SubscriptionClass.abortWelcomeVideoUpload(); },
            }];

            jqueryConfirm.confirmActions('Video Upload Progress','<br> <div class="progress"><div class="progress-bar progress-bar-main progress-bar-striped active" id="saveWlcmVideoProgress" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0%"> 0% </div></div>' ,confirmFunctions,false);
            $('#homepageGlobalLoader').show();
            $('#submitSubscription').attr('disabled', true);
            wlcmVideoUploadXhrRequest=$.ajax({
                xhr: function () {
                    var xhr = new window.XMLHttpRequest();
                    xhr.upload.addEventListener("progress", function (evt) {
                        if (evt.lengthComputable) {
                            var percentComplete = evt.loaded / evt.total;
                            var newprogress= (percentComplete * 100).toFixed(0) + '%'
                            $('#saveWlcmVideoProgress').attr('aria-valuenow', newprogress).css('width',newprogress).text(newprogress);
                        }
                    }, false);
                    return xhr;
                },
                url: api_url + 'subscription/',
                type: 'POST',
                data: data,
                headers: app.SetAjaxHeader(),
                cache: false,
                dataType: 'json',
                processData: false,
                contentType: false,
                success: function (data, textStatus, jqXHR) {
                    $('#submitSubscription').attr('disabled', false);
                    $('#homepageGlobalLoader').hide();
                    if (data.success) {
                        _wlcmVideoHolder = 0;
                        $('#wlcmVideoLabel').html('Select File');
                        $("#wlcmVideoinp").val(null);
                        $('#wlcmVideoUploadBtn').addClass('subscription-upload-inactive');
                        $('#wlcmVideoUnselectBtn').length>0?$('#wlcmVideoUnselectBtn').addClass('hide'):'';
                        $(".wlcmVideoInputLabelClass").html('Select Video File');
                        $('#wlcmVideoPreview').addClass('hide');
                        $('#videoUploadAlert').show();
                        setTimeout(function(){jqueryConfirm.closeConfirmJsBox();},1000);
                        triggerToast(data.msg, 5000);
                    } else {
                        triggerToast(filterresponcemessage(data.msg), 5000);
                        jqueryConfirm.closeConfirmJsBox();
                    }
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    if (textStatus == 'error') {
                        triggerToast('Please check your internet connection', 5000);
                    }
                    $('#submitSubscription').attr('disabled', false);
                    $('#homepageGlobalLoader').hide();
                    jqueryConfirm.closeConfirmJsBox();

                }
            });
        },
        addSubscription: function () {
            SubscriptionClass.checkTierValidation(function () {
                var finalPackageList = [];
                var subscriptionDesc = $('#patronClubTxtDesc').trumbowyg('html');
                var subscriptionThankyouMsg = $('#patronClubThanksMsg').trumbowyg('html');
                _subscriptionPackages[0].is_paid_channel = 0;

                for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                    if (parseInt(_subscriptionPackages[0].packages[i].isActive) == 1) {
                        for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {

                            if (_subscriptionPackages[0].packages[i].tiers[j].isActive == 1) {

                                _subscriptionPackages[0].is_paid_channel = 1;

                                var tieramount = $('#tier_price_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);
                                var tierdescription = $('#tier_goals_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);
                                var tierAccessCode = $('#tierAccessCode_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);
                                var tierTitle = $('#tierTitle_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);
                                var tierDiscount = $('#merchandise_discount_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);
                                var tierDiscountCode=$('#merchDiscountCode_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);
                                var tierCouponCreateDuration = $('#tierCouponCreateDuration_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);
                                var numberOfEpisodes = $('#numberOfEpisodes_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);
                                var tierPerkEligibilityDuration=$('#perkEligibility_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier);

                                _subscriptionPackages[0].packages[i].tiers[j].amount = tieramount.val();
                                _subscriptionPackages[0].packages[i].tiers[j].description = tierdescription.trumbowyg('html');
                                _subscriptionPackages[0].packages[i].tiers[j].title = tierTitle.val();
                                _subscriptionPackages[0].packages[i].tiers[j].access_code = tierAccessCode.text();
                                _subscriptionPackages[0].packages[i].tiers[j].merchandise_discount = tierDiscount.val();
                                _subscriptionPackages[0].packages[i].tiers[j].call_duration = tierCouponCreateDuration.val();
                                _subscriptionPackages[0].packages[i].tiers[j].past_podcast_episode_access_limit = numberOfEpisodes.val();
                                _subscriptionPackages[0].packages[i].tiers[j].merch_discount_code = tierDiscountCode.val().trim();
                                _subscriptionPackages[0].packages[i].tiers[j].perk_eligibility_duration = tierPerkEligibilityDuration.val();
                            }
                        }
                    }
                }

                for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                    if (parseInt(_subscriptionPackages[0].packages[i].isActive) == 1) {

                        var packages = [];
                        packages.push(_subscriptionPackages[0].packages[i]);

                        finalPackageList.push({
                            'is_paid_channel': _subscriptionPackages[0].is_paid_channel,
                            'description': subscriptionDesc,
                            'packages': packages,
                            'thankyou_description': subscriptionThankyouMsg
                        });
                    }
                }

                var data = new FormData();
                data.append('is_paid_channel', finalPackageList[0].is_paid_channel);
                data.append('description', finalPackageList[0].description);
                data.append('filedata', '');
                data.append('category_id', finalPackageList[0].categoryid);
                data.append('packages', JSON.stringify(finalPackageList[0].packages));
                data.append('thankyou_description', finalPackageList[0].thankyou_description);
                data.append('media_type', 'video');

                $('#homepageGlobalLoader').show();
                $('#submitSubscription').attr('disabled', true);
                $.ajax({
                    url: api_url + 'subscription/',
                    type: 'POST',
                    data: data,
                    headers: app.SetAjaxHeader(),
                    cache: false,
                    dataType: 'json',
                    processData: false,
                    contentType: false,
                    success: function (data, textStatus, jqXHR) {
                        $('#submitSubscription').attr('disabled', false);
                        $('#homepageGlobalLoader').hide();
                        if (data.success) {
                            _defaultUserSubscriptionLoaded = 0;
                            SubscriptionClass.setUserSubscriptionScreen();
                            triggerToast(data.msg, 5000);
                            SubscriptionClass.scrollToTopofSubscription();
                        } else {
                            triggerToast(filterresponcemessage(data.msg), 5000);
                        }
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        if (textStatus == 'error') {
                            triggerToast('Please check your internet connection', 5000);
                        }
                        $('#submitSubscription').attr('disabled', false);
                        $('#homepageGlobalLoader').hide();
                    }
                });
            });
        },
        welcomeVideoDeletion:function(callback){
            app.masterAjaxCall({
                'url': 'subscription/removeWelcomeVideo',
                'method': 'POST',
                'headers': app.SetAjaxHeader()
            }, function (error, success) {
                if (typeof callback != 'undefined') {
                    callback(success);
                }
            });
        },
        deleteWlcmVideo:function(){
            jqueryConfirm.confirm('', "Do you want to Delete this Video ?", function () {
                SubscriptionClass.welcomeVideoDeletion(function (data) {
                    if(data.success){
                        $('#wlcmVideoEle')[0].pause();
                        $('#wlcmVideoPreview').addClass('hide');
                        triggerToast("Video has been Deleted !", 5000);
                    }else{
                        triggerToast(data.msg, 5000);
                    }
                });
            });
        },
        setUserSubscriptionScreen: function () {
            if (_defaultUserSubscriptionLoaded == 0) {
                $('#addTier').hide();
                $('#homepageGlobalLoader').show();
                this.getDefaultUserSubscription(null, function (data) {
                    $('#homepageGlobalLoader').hide();
                    _defaultUserSubscriptionLoaded = 1;

                    if (data.success) {

                        if (data.data.is_video_uploading == "1") {
                            $('#wlcmVideoPreview').addClass('hide');
                            $('#videoUploadAlert').show();
                        } else {
                            $('#videoUploadAlert').hide();
                            if(typeof data.data.video_url!='undefined' && data.data.video_url!='' && data.data.video_url!=null){
                                var wlcm_video = $('#wlcmVideoEle');
                                $('source', wlcm_video).attr('src', data.data.video_url);
                                $('#wlcmVideoEle')[0].load();
                                $('#wlcmVideoPreview').removeClass('hide');

                            }else{
                                $('#wlcmVideoPreview').addClass('hide');
                            }
                        }
                        $('#enablesubscription').prop('checked', (data.data.is_paid_channel == 1) ? true : false);

                        SubscriptionClass.enableSubscriptionChange();

                        _subscriptionPackages[0].is_paid_channel = data.data.is_paid_channel;

                        $('#patronClubTxtDesc').trumbowyg('html', data.data.description != null ? data.data.description.trim() : "");
                        $('#patronClubThanksMsg').trumbowyg('html', data.data.thankyou_description != null ? data.data.thankyou_description.trim() : "");

                        _selectedCatId = (data.data.category_id != null && data.data.category_id != '') ? data.data.category_id : 61;
                        _selectedCatName = (data.data.category_name != null && data.data.category_name != '') ? data.data.category_name : 'Random';
                        var checkIfAnyTierActive = false;
                        if (data.data.packages.length > 0) {
                            for (var i = 0; i < data.data.packages.length; i++) {
                                for (var j = 0; j < _subscriptionPackages[0].packages.length; j++) {
                                    if (_subscriptionPackages[0].packages[j].type == data.data.packages[i].type) {
                                        _subscriptionPackages[0].packages[j].show = data.data.packages[i].show_package == 1 ? true : false;
                                        _subscriptionPackages[0].packages[j].show_package = data.data.packages[i].show_package;

                                        if (typeof data.data.packages[i].description != 'undefined') {
                                            _subscriptionPackages[0].packages[j].description = data.data.packages[i].description;
                                        }
                                        if (typeof data.data.packages[i].id != 'undefined') {
                                            _subscriptionPackages[0].packages[j].id = parseInt(data.data.packages[i].id);
                                        }
                                        if (typeof data.data.packages[i].isActive != 'undefined') {
                                            _subscriptionPackages[0].packages[j].isActive = parseInt(data.data.packages[i].isActive);
                                        }
                                        _subscriptionPackages[0].packages[j].tiers = data.data.packages[i].tiers;

                                        for (var k = 0; k < _subscriptionPackages[0].packages[j].tiers.length; k++) {
                                            _subscriptionPackages[0].packages[j].tiers[k].id = _subscriptionPackages[0].packages[j].id;

                                            if (_subscriptionPackages[0].packages[j].tiers[k].past_content_control == 1) {
                                                _subscriptionPackages[0].packages[j].tiers[k].past_content_control_check = 'checked';
                                            } else {
                                                _subscriptionPackages[0].packages[j].tiers[k].past_content_control_check = '';
                                                _subscriptionPackages[0].packages[j].tiers[k].past_podcast_episode_access_limit = 0;
                                            }

                                            _subscriptionPackages[0].packages[j].tiers[k].have_direct_message_access_check = _subscriptionPackages[0].packages[j].tiers[k].have_direct_message_access == 1?'checked':'';

                                            var perkEligibilityDuration= parseInt(_subscriptionPackages[0].packages[j].tiers[k].perk_eligibility_duration);
                                            _subscriptionPackages[0].packages[j].tiers[k].perk_eligibility_options = [
                                                        {val: 0, txt: 'Off', sel: ((perkEligibilityDuration === 0)? true : false)},
                                                        {val: 1, txt: '1 month', sel: ((perkEligibilityDuration === 1)? true : false)},
                                                        {val: 2, txt: '2 months', sel: ((perkEligibilityDuration === 2)? true : false)},
                                                        {val: 3, txt: '3 months', sel: ((perkEligibilityDuration === 3)? true : false)},
                                                        {val: 4, txt: '4 months', sel: ((perkEligibilityDuration === 4)? true : false)},
                                                        {val: 5, txt: '5 months', sel: ((perkEligibilityDuration === 5)? true : false)},
                                                        {val: 6, txt: '6 months', sel: ((perkEligibilityDuration === 6)? true : false)},
                                                    ];

                                            if (_subscriptionPackages[0].packages[j].tiers[k].isActive == 1) {
                                                _subscriptionPackages[0].packages[j].tiers[k].activeLabel = 'Active';
                                                checkIfAnyTierActive =true;
                                            }
                                            else {
                                                if (_subscriptionPackages[0].packages[j].isActive == 1) {
                                                    _subscriptionPackages[0].packages[j].tiers[k].activeLabel = 'Inactive';
                                                }
                                            }
                                            if (_subscriptionPackages[0].packages[j].tiers[k].image == '') {
                                                _subscriptionPackages[0].packages[j].tiers[k].displayNone = 'display-none';
                                            }
                                            _subscriptionPackages[0].packages[j].tiers[k].pass_active_checked = _subscriptionPackages[0].packages[j].tiers[k].is_pass_active == 1 ? "checked" : "";
                                            _subscriptionPackages[0].packages[j].tiers[k].pass_code = _subscriptionPackages[0].packages[j].tiers[k].is_pass_active == 1 ? _subscriptionPackages[0].packages[j].tiers[k].pass_code : "Create Pass Code";
                                        }

                                        break;
                                    }
                                }
                            }
                        } else {
                            for (var j = 0; j < _subscriptionPackages.length; j++) {
                                if (_subscriptionPackages[j].type == '1 Month') {
                                    _subscriptionPackages[j].isActive = 1;
                                    break;
                                }
                            }
                        }

                        var template = $('#subscriptionPackages-template').html();
                        Mustache.parse(template);
                        var rendered = Mustache.render(template, _subscriptionPackages);
                        $('#subscriptionPackages').html(rendered);

                        $("[name='tier_goals']").trumbowyg({
                            autogrow: true,
                            removeformatPasted: true,
                            btns: [['strong', 'em','underline','unorderedList']]
                        });

                        for (var j = 0; j < _subscriptionPackages[0].packages.length; j++) {
                            for (var k = 0; k < _subscriptionPackages[0].packages[j].tiers.length; k++) {
                                var packageArr=_subscriptionPackages[0].packages[j];
                                var tierArr=_subscriptionPackages[0].packages[j].tiers[k];
                                if (packageArr.show_package == 1) {
                                    if (tierArr.isActive == 1) {
                                        $('#patronTierMainDiv_' + packageArr.id + '_' + tierArr.tier).hide();
                                        $('#patronTierSecondaryDiv_' + packageArr.id + '_' + tierArr.tier).show();
                                        tierArr.showTier = 1;
                                    }
                                    else {
                                        $('#patronTierMainDiv_' + packageArr.id + '_' + tierArr.tier).hide();
                                        $('#patronTierSecondaryDiv_' + packageArr.id + '_' + tierArr.tier).hide();
                                        tierArr.showTier = 0;
                                        $('#addTier').show();
                                    }

                                    if (tierArr.is_pass_active == 1) {
                                        $('#freePassDiv_' + tierArr.id + '_' + tierArr.tier).show();
                                    } else {
                                        $('#freePassDiv_' + tierArr.id + '_' + tierArr.tier).hide();
                                    }
                                }
                                tierArr.show_tier = tierArr.isActive == 1 ? true : false;
                                $('#isActiveTier_' + packageArr.id + '_' + tierArr.tier).prop('checked', (tierArr.isActive == 1) ? true : false);
                                $('#tier_price_' + packageArr.id + '_' + tierArr.tier).val(tierArr.amount);
                                $('#tierTitle_' + packageArr.id + '_' + tierArr.tier).val(tierArr.title);
                                $('#tier_goals_' + packageArr.id + '_' + tierArr.tier).trumbowyg('html', tierArr.description != null ? tierArr.description.trim() : "");
                                $('#tierCouponCreateDuration_' + packageArr.id + '_' + tierArr.tier).val(tierArr.call_duration);
                                $("#tierCouponCreateDuration_" + packageArr.id + "_" + tierArr.tier + " option[value='" + tierArr.call_duration + "']").attr("selected", "selected");
                                tierArr.past_content_control==1?$('#numberOfEpisodesDiv_' + packageArr.id + '_' + tierArr.tier).removeClass("hideContent"):$('#numberOfEpisodesDiv_' + packageArr.id + '_' + tierArr.tier).addClass("hideContent");
                            }
                        }

                        (checkIfAnyTierActive)? $('#addTier').text('ADD NEW TIER'): $('#addTier').text('CREATE NEW TIER');;
                        SubscriptionClass.subscriptionTabSettings(data.data,checkIfAnyTierActive);
                        activateCopperImageListner();

                        if(commonClass.isMobileDevice()){
                            setReadmore();
                        }

                    }
                });
            }
        },
        subscriptionTabSettings: function(data,tierActive){

            $('#subscriptionStep1,#subscriptionStep2,#subscriptionStep3').attr('data-subscriptionsteptick',0);

            if(data.description != "" || (data.video_url != null && data.is_video_uploading == 0)){
                $('#subscriptionStep1').attr('data-subscriptionsteptick',1);
            }

            if(tierActive){
                $('#subscriptionStep2').attr('data-subscriptionsteptick',1);
            }

            if(data.thankyou_description != ""){
                $('#subscriptionStep3').attr('data-subscriptionsteptick',1);
            }
        },
        setSubscriptionSaveAction: function(){

            var id = '';
            setTimeout(function(){
                if($('#subscriptionStep1').parent().hasClass('active')){

                    id = '#subscriptionStep2';
                    $('.savePatronSettingBtn').text('Save and Next');

                }else if($('#subscriptionStep2').parent().hasClass('active')){

                    id = '#subscriptionStep3';
                    $('.savePatronSettingBtn').text('Save');

                }else if($('#subscriptionStep3').parent().hasClass('active')){

                    id = '#subscriptionStep2';
                    $('.savePatronSettingBtn').text('Save and Next');
                }

              $(id).trigger( "click" );
            },300);

        },
        showHideSecondaryDiv: function (package, tier) {
            $('div[id^="patronTierMainDiv_"]').hide();
            SubscriptionClass.refreshSecondaryTierDiv();
            for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                if (_subscriptionPackages[0].packages[i].isActive == 1) {
                    for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                        if (_subscriptionPackages[0].packages[i].tiers[j].showTier == 1) {
                            $('#patronTierSecondaryDiv_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).show();
                        }
                    }
                }
            }
            $('#patronTierSecondaryDiv_' + package + '_' + tier).hide();
            $('#patronTierMainDiv_' + package + '_' + tier).show();
            jQuery("html,body").animate({ scrollTop: jQuery('#patronTierMainDiv_' + package + '_' + tier).offset().top - 120 }, 600);
        },
        getDefaultUserSubscription: function (poiId, callback) {
            app.masterAjaxCall({
                'url': 'subscription/',
                'method': 'GET',
                'params': (poiId == null || poiId == '') ? {} : {
                    'poi_id': poiId
                },
                'headers': app.SetAjaxHeader()
            }, function (error, success) {
                if (typeof callback != 'undefined') {

                    callback(success);
                }
            });
        },
        loadPatronSubscriptionAverage: function () {
            var data = {
                'url': 'requestBroadcast',
                'method': 'GET',
                'params': {
                    type: 1,
                    only_average: 0
                },
                'headers': app.SetAjaxHeader()
            }
            app.masterAjaxCall(data, function (error, success) {
                if (success.average > 0) {
                    $('#monthlyPatronSubFee').removeClass('display-none');
                    $('#averageSubscriptionAmount').text('$' + success.average);
                } else {
                    $('monthlyPatronSubFee').addClass('display-none');
                }
            });
        },
        callRefreshAccessCodeModal: function (package, tier) {
            refreshCodePackageID = package;
            refreshCodeTierID = tier;
            $('#confirmRegreateCode').modal('show');
            $("span.regenearteAccessCode").text(refreshCodeTierID);
        },
        cancelAccessChangeModal: function () {
            $('#confirmRegreateCode').modal('hide');
        },
        populatePatronClubTxtDesc: function (id) {
            for (i = 0; i < _defaultStatuses.length; i++) {
                if (_defaultStatuses[i].id == id) {
                    $('#patronClubTxtDesc').trumbowyg('html', _defaultStatuses[i].text);
                    return;
                }
            }
        },
        populateSliderPatronClubTxtDesc: function () {
            var active = $('.flexsliderPatronSetting .flex-active-slide').html();
            $('#patronClubTxtDesc').trumbowyg('html', active);
        },
        addTier: function () {
            SubscriptionClass.hideOpenTierMainDivs();
            SubscriptionClass.refreshSecondaryTierDiv();
            for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                if (_subscriptionPackages[0].packages[i].isActive == 1) {
                    for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                        if (_subscriptionPackages[0].packages[i].tiers[j].isActive != 1) {
                            $('#isActiveTier_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).prop('checked', true);
                            _subscriptionPackages[0].packages[i].tiers[j].isActive = 1;
                            $('#patronTierMainDiv_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).show();
                            $('#patronTierSecondaryDiv_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).hide();
                            $('#addTier').hide();
                            jQuery("html,body").animate({ scrollTop: jQuery('#patronTierMainDiv_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).offset().top - 120 }, 600);
                            _subscriptionPackages[0].packages[i].tiers[j].showTier = 1;
                            break;
                        }
                    }
                }
            }
        },
        hideOpenTierMainDivs: function () {
            for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                if (_subscriptionPackages[0].packages[i].isActive == 1) {
                    for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                        if (_subscriptionPackages[0].packages[i].tiers[j].showTier == 1) {
                            $('#patronTierMainDiv_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).hide();
                            $('#patronTierSecondaryDiv_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).show();
                        }
                    }
                }
            }
        },
        refreshSecondaryTierDiv: function () {
            for (var i = 0; i < _subscriptionPackages[0].packages.length; i++) {
                if (_subscriptionPackages[0].packages[i].isActive == 1) {
                    for (var j = 0; j < _subscriptionPackages[0].packages[i].tiers.length; j++) {
                        var tierAmountSec = $('#tier_price_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).val();
                        var tierGoalSec = $('#tier_goals_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).val();
                        var tierTitleSec = $('#tierTitle_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).val();
                        var tierIsActiveSec = "Inactive";
                        if ($('#isActiveTier_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).prop('checked') == true)
                            tierIsActiveSec = "Active";

                        $('#patronTierTitleSec_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).text(tierTitleSec);
                        $('#patronTierAmountSec_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).text(tierAmountSec);
                        $('#patronTierGoalSec_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).html(tierGoalSec);
                        $('#patronTierIsActiveSec_' + _subscriptionPackages[0].packages[i].id + '_' + _subscriptionPackages[0].packages[i].tiers[j].tier).text(tierIsActiveSec);

                    }
                }
            }
        },
        getCategoryList: function () {
            if (_categoryListLoaded == 0) {
                $('#homepageGlobalLoader').show();
                app.masterAjaxCall({
                    'url': 'appcalls/showTrendingCategories',
                    'method': 'GET',
                    'params': '',
                    'headers': app.SetAjaxHeader()
                }, function (error, success) {
                    $('#selectCategoryModal').modal();
                    _categoryListLoaded = 1;
                    $('#homepageGlobalLoader').hide();
                    if (success) {
                        var template = $('#subscriptionCategory-template').html();
                        Mustache.parse(template);
                        var rendered = Mustache.render(template, success);
                        $('#subscriptionCategory').html(rendered);
                        $('*[data-subCatSelected=1]').attr('data-subCatSelected', 0);
                        $('*[data-subCatId=' + _selectedCatId + ']').attr('data-subCatSelected', 1);
                        $('#selectedSubscriptionCategoryDisplay').text(_selectedCatName);
                    }
                });
            } else {
                $('#selectCategoryModal').modal();
            }
        },
        checkTierAmountlimit: function (input) {
            if (($(input).val() > 1000 || $(input).val() < 1) && $(input).val() != '') {
                jqueryConfirm.alert("", "Amount must be between $1 to $1000.");
                $(input).val('1');
            }
        },
        subscriptionCategorySelectionChange: function (CatId, CatName) {
            _selectedCatId = parseInt(CatId);
            _selectedCatName = CatName;
            $('*[data-subCatSelected=1]').attr('data-subCatSelected', 0);
            $('*[data-subCatId=' + CatId + ']').attr('data-subCatSelected', 1);
            $('#selectedSubscriptionCategoryDisplay').text(_selectedCatName);
            $('#selectCategoryModal').modal('hide');
        },
        removeDiv: function (poiId) {
            var parents = $('#hidesubscribedChannelDiv' + poiId).parents('.appendListToThisDiv');
            if (parents.children('.count_rows').length == 1) {
                if ($('.count_rows:last').html() == parents.children('.count_rows').html()) {
                    _Last_CategoryName = null;
                }
                $('#hidesubscribedChannelDiv' + poiId).parents('.remove_if_no_child').remove();
            } else {
                $('#hidesubscribedChannelDiv' + poiId).remove();
            }
        },
        unsubscribeChannel: function (poiId, callback) {
            jqueryConfirm.confirm('Are You Sure?', "You will lose access to all "+_project_concept+" "+_ProjectBaseName+" content at the end of your subscription period.", function () {
               $('#homepageGlobalLoader').show();
                var feedback_ids = [];
                var data = {
                    poi_id : poiId
                }

                $("[data-survey_id]").each(function(){
                    if($(this).is(':checked')){
                        feedback_ids.push($(this).data('survey_id'));
                    }
                });

                if(feedback_ids.length > 0){

                    data['feedback_data'] = JSON.stringify({
                        'feedback_ids':feedback_ids.toString(),
                        'comment':$('#surveyComment').val()
                    });

                    app.masterAjaxCall({
                        'url': 'subscription/unsubscribe',
                        'method': 'POST',
                        'params': data,
                        'headers': app.SetAjaxHeader()
                    }, function (error, success) {
                        $('#homepageGlobalLoader').hide();
                        if (success.success) {
                            triggerToast(success.msg, 5000);
                            $('#exitSurveyUnsubscribe').modal('hide');
                            if (typeof callback != 'undefined') {
                                callback(success);
                            }
                        } else {
                            triggerToast(success.msg, 5000);
                        }
                    });

                }else{
                    $('#homepageGlobalLoader').hide();
                    triggerToast('Please select one of the reasons',4000);
                    return;
                }
            });
        },
        unsubscribeFromProfile:function(){
            commonClass.getMainCreatorID(function(creatorId){
                SubscriptionClass.unsubscribeChannel(creatorId,function(){
                    $('#unsubscribeCreatorDiv').addClass('hide');
                    commonClass.checkFanSubscribedStatus();
                });
            });
        },
        restoreSubscription:function(){
            jqueryConfirm.confirm('', "Please confirm if you want to restore your subscription?", function () {
                $('#homepageGlobalLoader').show();
                app.masterAjaxCall({
                    'url': 'subscription/restoreSubscription',
                    'method': 'POST',
                    'headers': app.SetAjaxHeader()
                }, function (error, success) {
                    $('#homepageGlobalLoader').hide();
                    if (success.success) {
                        triggerToast(success.msg,8000);
                        SubscriptionPackageClass.loadSubscriptionPackages();
                        $('#subscriptionCancelledPopup').modal('hide');
                    }else{
                        triggerToast(success.msg,8000);
                    }
                });
            });
        },
        isFanSubscribed:function(callback){
            if (app.GetUserStoredData('userId') != null) {
                $('#homepageGlobalLoader').show();
                app.masterAjaxCall({
                    'url': 'user/checkIfSubscribed',
                    'method': 'GET',
                    'params': '',
                    'headers': app.SetAjaxHeader()
                }, function (error, success) {
                    $('#homepageGlobalLoader').hide();
                    if(typeof callback!='undefined'){
                        callback(success.data);
                    }else{
                        return success.data.is_subscribed;
                    }
                });
            } else {
                return 0;
            }
        },
        checkIfErningSatisfyAndShowHideCard: function () {
            $('#SubscribeChannelhidepaymentmodaltabs').hide();
            Bidchatearningholder = parseFloat($('#subscribeChannelEarningDisp').attr('data-earning'));
            UserInputholder = parseFloat(_subscription_package_amount);

            if (isNaN(UserInputholder) || (_free_subscription_eligible==1 && _productType=='channelsubscription')) {
                UserInputholder = 0;
            }

            if ($('#subscribedChannelEarningInput').prop('checked')) {
                if (Bidchatearningholder >= UserInputholder) {
                    $('.SubscribeChannelAmountButtonText').text('via Meet and Greet Earning');
                } else {
                    $('#SubscribeChannelhidepaymentmodaltabs').show();
                    $('.SubscribeChannelAmountButtonText').text('$' + (UserInputholder - Bidchatearningholder).toFixed(2)+' USD');
                }
            } else {
                $('#SubscribeChannelhidepaymentmodaltabs').show();
                $('.SubscribeChannelAmountButtonText').text('$' + UserInputholder+ ' USD');
            }
        },
        setupPaypalTab:function(){
            var amount=_free_subscription_eligible_paypal==1?0:_subscription_package_amount;
            $('.SubscribeChannelAmountButtonText_paypal').text('$' + amount+ ' USD');
            _free_subscription_eligible_paypal==1?$(".freeSubDaysRemainingDiv_paypal").removeClass('hide'):$(".freeSubDaysRemainingDiv_paypal").addClass('hide');
        },
        showCancelledPopUp:function(payType,show){
            if($('#subscriptionCancelledPopup').length){
                if(payType=='stripe'){
                    $('#subscriptionRestoreBtn').removeClass('hide');
                }else{
                    show==1?$('#subscriptionRestoreBtn').removeClass('hide'):$('#subscriptionRestoreBtn').addClass('hide');
                }

                $('#subscriptionCancelledEndMonthDate').text(SubscriptionClass.getDateFormated($('#cancelSubscriptionBtn').attr('data-endmonthdate')));
                $('#subscriptionCancelledPopup').modal('show');
            }
        },
        getDateFormated: function (date) {
            var time = moment.utc(date).toDate();
            var event_time = moment(time).local().format('hh:mm A');
            var myDate = moment(time, 'YYYY-MM-DD HH:mm');
            var gmtDateTime = moment.utc(myDate);
            var local = gmtDateTime.local().format();
            var myLocaleDate = new Date(local);
            event_day_date = myLocaleDate.getDate();
            event_month = commonClass.getMonthName(myLocaleDate.getMonth());
            event_day = commonClass.getWeekDay(myLocaleDate);
            return event_day + ', ' + event_month+ ' ' + event_day_date + ', ' + myLocaleDate.getFullYear() + ' ' + event_time;
        },
        scrollToTopofSubscription:function(){
            $('html, body').animate({
                scrollTop: $("#hideMainPatronScreen").position().top
            }, 600);
        },
        proceedToPayment: function () {
            var is_earning_credit = ($('#subscribedChannelEarningInput').is(':checked')) ? 1 : 0;
            var payment_type = null;
            var card = null;
            var id = 1;
            var active_tab_selector = $('#SubscribeChannelhidepaymentmodaltabs li.active > a').attr('href');

            if (active_tab_selector == '#SubscribeChannelCreditcardtab') {
                id = 1;
                payment_type = 'creditearningstripe';
                card = $('#SubscribeChannelusercreditcardtemplate input:checked').val();
            } else if (active_tab_selector == '#SubscribeChannelPaypalCardTab') {
                id = 2;
                payment_type = 'creditearningpaypal';
            } else if (active_tab_selector == '#SubscribeChannelApplepayCardTab') {
                id = 3;
                payment_type = 'creditearningapple';
                card = $('#SubscribeChanneluserapplepaycardtemplate input:checked').val();
            }

            if ((id == 1 || id == 3) && card == null) {
                triggerToast('Cannot proceed.. card missing..');
            } else {
                $('#homepageGlobalLoader').show();
                $('#SubscribeChanneldisablepaymentcardbtn').prop('disabled', 'disabled');
                $("#emailVerifiedConfirmBtn").prop('disabled', true);
                var data = {
                    'url': 'Payment/purchaseProduct',
                    'method': 'POST',
                    'params': {
                        'product_type': _productType,
                        'is_credit_earning': is_earning_credit,
                        'payment_type': payment_type,
                        'card': card,
                        'product_id': _subscription_package_id,
                        'poi_id': _paymentPoiID
                    },
                    'headers': app.SetAjaxHeader()
                }
                app.masterAjaxCall(data, function (error, success) {
                    $('#SubscribeChanneldisablepaymentcardbtn').prop('disabled', false);
                    $("#emailVerifiedConfirmBtn").prop('disabled', false);
                    $('#homepageGlobalLoader').hide();
                    if (success.success) {
                        if (_productType == 'patronpost' || _productType == 'channelsubscription') {
                            $('#homepageGlobalLoader').show();
                            SubscriptionClass.getDefaultUserSubscription(commonClass.getMainCreatorID(), function (success) {
                                $('#homepageGlobalLoader').hide();
                                $('#subscriptionthankyoumessage').html(success.data.thankyou_description);

                                $('#subscriptionPayment').modal('hide');

                                if (_productType == 'channelsubscription') {
                                    $('#subscriptionPopupDiv').show();
                                    $('#subscribtionBorderMessage').removeClass('receipt');
                                    $('#subscribtionBorderMessage').addClass('subscribtion-Border-Message');
                                    $('#tierMsg').html(_subcription_tier_title);
                                    var dayDate = new Date((new Date()).getTime() + (30 * 86400000)).getDate();
                                    var subDate = dayDate + SubscriptionClass.subcriptionRenewalDate(dayDate);
                                    $('#thankyoucrediteddollar2').text("$" + _subscription_package_amount);
                                    _redirectAfterSubscription=true;

                                    if(_free_subscription_eligible==1){
                                        $('#thankyouMsgHolderFree').removeClass('hide');
                                        $('#thankyouMsgHolder').addClass('hide');
                                    }else{
                                        $('#thankyouMsgHolder').removeClass('hide');
                                        $('#thankyouMsgHolderFree').addClass('hide');
                                    }

                                } else {
                                    $('#subscriptionPopupDiv').hide();
                                }

                                $('#thankyoucrediteddollarFree').text("$" + _subscription_package_amount+' USD');
                                $('#thankyoucrediteddollar').text("$" + _subscription_package_amount+ ' USD');
                                $('#thankyoucreditedcoins').text(_subscription_package_name);
                                $('#thankyoutextdisplay').text(_subscription_channel_name);


                                setTimeout(function () {
                                    $('#paymentthankyoumodal').modal();
                                  }, 500);

                                if (_whichFunctionLoadAtEnd == 1) {
                                    if (typeof resetandinitialise != 'undefined') {
                                        resetandinitialise();
                                    }
                                } else if (_whichFunctionLoadAtEnd == 2) {
                                } else if (_whichFunctionLoadAtEnd == 3) {
                                    _channelListingPage = 1;
                                } else if (_whichFunctionLoadAtEnd == 4) {
                                    if (typeof resetandinitialise != 'undefined') {
                                        resetandinitialise();
                                    }
                                }else if (_whichFunctionLoadAtEnd == 5){
                                    commonClass.checkFanSubscribedStatus();
                                    SubscriptionPackageClass.loadSubscriptionPackages();
                                    clearCreditCardFields_first();
                                }

                                if (_RecomendedListOnSubHideId != null) {
                                    SubscriptionClass.removeDiv(_RecomendedListOnSubHideId);
                                }
                                _RecomendedListOnSubHideId = null;
                                _paymentPoiID = null;
                                _subscription_package_id = null;
                                _subscription_package_amount = null;
                                _subscription_channel_name = null;
                                _subscription_package_name = null;
                                _whichFunctionLoadAtEnd = 0;
                                _free_subscription_eligible=0;
                                _productType = null;
                            });
                        }
                    }else{
                        if(typeof success.data!='undefined' && success.data.show_verify_email_popup==1){
                            triggerToast(filterresponcemessage(success.msg), 5000);
                        } else{
                            triggerToast(filterresponcemessage(success.msg), 5000);
                        }
                    }
                });
            }

        },
        setFunctionLoadFlag: function(val){
            _whichFunctionLoadAtEnd = val;
        },
        resetSubscriptionModal:function(){
            var recaptchaWidgetId=$('#g_recaptcha_card_add_first').attr('data-widgetid');
            grecaptcha.reset(recaptchaWidgetId);
        },
        subscribeToPackagePaymentModalSetup: function (showModal,callback) {
            if (_subscription_package_id != null) {
                $('#homepageGlobalLoader').show();
                commonClass.getUserCards(function (success) {
                    $('#homepageGlobalLoader').hide();
                    if (success.success) {
                        $('#subscribeChannelEarningDisp').html('<div class="amount-title"> Meet and Greet Earning </div> <div class="amount"> Balance : <span> $' + parseFloat(success.data.earning_balance).toFixed(2) + '</span> </div>');
                        $('#subscribeChannelEarningDisp').attr('data-earning', parseFloat(success.data.earning_balance).toFixed(2));
                        if (parseFloat(success.data.earning_balance).toFixed(2) == 0) {
                            $('#subscribedChannelEarningInput').prop('checked', false);
                            $("#subscribedChannelEarningInput").attr('disabled', 'disabled');
                            $('#subscribeChannelbidchatearningcheckboxarea').hide();
                        } else {
                            $('#subscribedChannelEarningInput').prop('checked', false);
                            $("#subscribedChannelEarningInput").attr('disabled', 'disabled');
                            $('#subscribeChannelbidchatearningcheckboxarea').hide();
                        }
                        $( "#SubscribeChanneldisablepaymentcardbtn").unbind( "click" );

                        if(typeof success.data.credit_card!='undefined' && success.data.credit_card.length>0 && (typeof showModal=='undefined' || showModal==true)){
                            $('#creditCardAdditionForm_first').addClass('hide');
                            $('#creditCardAdditionForm_later').removeClass('hide');

                            $( "#SubscribeChanneldisablepaymentcardbtn" ).bind( "click", function() {
                                SubscriptionClass.proceedToPayment();
                            });

                        }else{
                            $('#creditCardAdditionForm_first').removeClass('hide');
                            $('#creditCardAdditionForm_later').addClass('hide');

                            $( "#SubscribeChanneldisablepaymentcardbtn" ).bind( "click", function() {
                                checkcreditcard_first();
                            });
                        }

                        if(typeof showModal=='undefined' || showModal==true){
                            $('#subscriptionPayment').modal({
                                backdrop: 'static',
                                keyboard: false
                            });
                        }

                        var template = $('#SubscribeChannelusercreditcardtemplate-template').html();
                        Mustache.parse(template);
                        var rendered = Mustache.render(template, success);
                        $('#SubscribeChannelusercreditcardtemplate').html(rendered);
                        $('#SubscribeChannelusercreditcardtemplate input:first').attr('checked', true);

                        var template3 = $('#SubscribeChanneluserapplepaycardtemplate-template').html();
                        Mustache.parse(template3);
                        var rendered3 = Mustache.render(template3, success);
                        $('#SubscribeChanneluserapplepaycardtemplate').html(rendered3);
                        $('#SubscribeChanneluserapplepaycardtemplate input:first').attr('checked', true);

                        if (!success.data.apple_pay) {
                            $('#SubscribeChannelpaymentapplepaytab').hide();
                        } else {
                            $('#SubscribeChannelpaymentapplepaytab').show();
                        }
                        //SubscriptionClass.setupPaypalTab();
                        SubscriptionClass.checkIfErningSatisfyAndShowHideCard();

                        if(typeof callback!='undefined'){
                            callback();
                        }

                    } else {
                        triggerToast(filterresponcemessage(success.msg), 5000);
                    }
                });
            }
        },
        showExitSurvey:function(type){

            $('#homepageGlobalLoader').show();
            app.masterAjaxCall({
                'url': 'Subscription/getExitSurveyReasons',
                'method': 'GET',
                'params': '',
                'headers': app.SetAjaxHeader()
            }, function (error, success) {
                $('#homepageGlobalLoader').hide();
                if (success) {
                    $('#unsubcribeEvent').unbind();
                    $('#unsubcribeEvent').click(function(){
                        if(type == 0){
                            SubscriptionPackageClass.UnsubscribeBroadcasterChannel();
                        }else{
                            SubscriptionClass.unsubscribeFromProfile();
                        }
                    });
                    var template = $('#exitSurveyReasons-template').html();
                    Mustache.parse(template);
                    var rendered = Mustache.render(template, success);
                    $('#exitSurveyReasons').html(rendered);
                    $('#exitSurveyUnsubscribe').modal('show');
                }
            });
        },
        postUnsubscribeFeedBack: function(){
            var feedback_ids = [];
            $("[data-survey_id]").each(function(){
                if($(this).is(':checked')){
                    feedback_ids.push($(this).data('survey_id'));
                }
            });

            if(feedback_ids.length > 0){
                $('#homepageGlobalLoader').show();
                var data = {
                    'feedback_ids':feedback_ids.toString(),
                    'comment':$('#surveyComment').val()
                }
                app.masterAjaxCall({
                    'url': 'Subscription/postUnscribeFeedBack',
                    'method': 'POST',
                    'params': data,
                    'headers': app.SetAjaxHeader()
                }, function (error, success) {
                    $('#homepageGlobalLoader').hide();
                    if (success) {
                        triggerToast(success.msg,5000);
                        $('#exitSurveyUnsubscribe').modal('hide');
                        $('#surveyComment').val("");
                    }else{
                        triggerToast('Error sending feedback.',5000);
                    }
                });
            }else{
                triggerToast('Please select one of the reasons',4000);
                return;
            }
        },
        subscribeToPackagePayment: function (subscription_package_id, amount, package_name, channel_name, product_type, paymentDesc,free_subscription_eligible,no_of_free_days,is_one_month_free_paypal_subscription_eligible) {
            if (app.GetUserStoredData('userId') != null) {
                _productType = product_type;
                _subscription_package_id = subscription_package_id;
                _subscription_package_amount = amount;
                _subscription_package_name = package_name;
                _subscription_channel_name = channel_name;
                _subcription_tier_title = decodeURIComponent(paymentDesc);
                _free_subscription_eligible=free_subscription_eligible;
                _free_subscription_eligible_paypal=is_one_month_free_paypal_subscription_eligible;
                var broadcasterID = commonClass.getMainCreatorID();//broadcasterDataClass.getBroadcasterData('id');
                _paymentPoiID = broadcasterID;

                //$('#paidpackagelist').modal('hide');
                $('#subscribechannelname').text(channel_name);
                $('#subscribechannelamount').html('$' + amount + '<span class="usd-holder"> USD</span>');
                $('#subscribechannelpackagename').text(_subscription_package_name);
                $('#subscribeDesc').text(_subcription_tier_title);


                var plan_id=$('#subscribePackageBtn_'+subscription_package_id).attr('data-planid');
                $('#paypalSubscribePayBtn').unbind();

                $('#paypalSubscribePayBtn').bind( "click", function() {
                    paypalClass.initiatePaypalPayment(plan_id);
                });

                if(no_of_free_days>0){
                    $(".freeSubDaysRemainingDiv").removeClass('hide');
                    $(".freeSubDaysRemaining").text(no_of_free_days);
                }else{
                    $(".freeSubDaysRemainingDiv").addClass('hide');
                }

                if (product_type == 'channelsubscription') {
                    $('#patronPostBy').hide();
                } else {
                    $('#patronSubscription').hide();
                }
                // var paymentPopUpTitle = product_type == 'channelsubscription' ? $('#').hide() : $('#').hide();
                //$("#subscribechannelname").text(" " + broadcasterDataClass.getBroadcasterData('broadcaster'));
                $("#subscribechannelname").text(" " + _ProjectBaseName);

                var dayDate = new Date((new Date()).getTime() + (30 * 86400000)).getDate();
                var subDate = dayDate + SubscriptionClass.subcriptionRenewalDate(dayDate);

                //var paymentPopUpPayDesc = product_type == 'channelsubscription' ? 'You will be charged on ' + subDate + ' of every month' : '';
                var paymentPopUpPayDesc = product_type == 'channelsubscription' ? 'Renews automatically each month. Cancel anytime.' : '';
                $("#subscribePayDesc").text(paymentPopUpPayDesc);
                //UserAddressClass.checkIfUserAddressExits();
                localStorage.removeItem('subscribeTier');
                EmailVerificationClass.checkIfEmailVerified(function(res){
                    if(typeof res.data.show_verify_email_popup!='undefined' && res.data.show_verify_email_popup==1){
                        EmailVerificationClass.verifyEmailDefaults('subscribe',1);
                    } else {
                        EmailVerificationClass.verifyEmailDefaults('subscribe',0);
                    }
                    SubscriptionClass.subscribeToPackagePaymentModalSetup();
                });
            } else {
                //$('#tierSubscriptionModal').modal('hide');
                localStorage.setItem('subscribeTier',subscription_package_id);
                $('.login-popup-signup-text').text('Sign Up To Subscribe Now');
                $("#gosigninmodal a[href='#signUpFan']").click();
                commonClass.openSigninModal();
            }
        },
        subcriptionRenewalDate: function (n) {
            return ["st", "nd", "rd"][((n + 90) % 100 - 10) % 10 - 1] || "th";
        },
        dateConvertToYMD: function (date) {
            if(typeof date!='undefined' && date!=null){
                var myDate = new Date(date.replace(' ', 'T'));//new Date(date);
                var gmtDateTime = moment.utc(myDate);
                return gmtDateTime.local().format('MM/DD/YYYY');
            }
        },
        getChannelSubscriberUsers: function (poiID, callback) {
            app.masterAjaxCall({
                'url': 'subscription/getChannelSubscriptionList',
                'method': 'GET',
                'params': {
                    'poi_id': poiID,
                    'start': (_myChannelSubUserPage - 1) * myChannelSunscribedUserListingLimit,
                    'limit': myChannelSunscribedUserListingLimit,
                },
                'headers': app.SetAjaxHeader()
            }, function (error, success) {
                if (typeof callback != 'undefined') {
                    callback(success);
                }
            });
        },
        loadMoreMyChannelsSubscribers: function () {
            if (_myChannelSubUserPageLoading == 0 && _myChannelSubUserPage != 1 && ((_myChannelSubUserPage - 1) * myChannelSunscribedUserListingLimit) < _myChannelSubUserPageCount) {
                this.getMyChannelSubscribedUser();
            }
        },
        loadOneTimeMychannelUser: function () {
            if (_oneTimeTabClickMyChannelUserLoaded == 0) {
                _oneTimeTabClickMyChannelUserLoaded = 1;
                this.getMyChannelSubscribedUser();
            }
        },
        getMyChannelSubscribedUser: function () {
            _myChannelSubUserPageLoading = 1;
            $('#myChannelSubscribedUserLoader').show();
            this.getChannelSubscriberUsers(app.GetUserStoredData('userId'), function (success) {
                $('#myChannelSubscribedUserLoader').hide();
                _myChannelSubUserPageLoading = 0;
                if (success) {
                    _myChannelSubUserPageCount = success.count;
                    if (success.data.length > 0) {
                        var template = $('#mySubscribedChannelsUserListing-template').html();
                        Mustache.parse(template);
                        for (i = 0; i < success.data.length; i++) {
                            success.data[i].poi_follow_count_disp = success.data[i].poi_follow_count;
                            success.data[i].poi_follow_count = formatnumber(success.data[i].poi_follow_count);
                            success.data[i].poi_influencer_score = formatnumber(success.data[i].poi_influencer_score);
                            if (success.data[i].subscription_valid_date == '' || success.data[i].subscription_valid_date == null) {
                                success.data[i].subscription_valid_date = '--/--/--';
                            } else {
                                success.data[i].subscription_valid_date = SubscriptionClass.dateConvertToYMD(success.data[i].subscription_valid_date);
                            }

                            if (success.data[i].poi_follows == 'follows') {
                                success.data[i].poi_follows = 1;
                            } else {
                                success.data[i].poi_follows = 0;
                            }
                        }
                        var rendered = Mustache.render(template, success);
                        if (_myChannelSubUserPage == 1) {
                            $('#mySubscribedChannelsUserListing').html(rendered);
                        } else {
                            $('#mySubscribedChannelsUserListing').append(rendered);
                        }
                        _myChannelSubUserPage++;
                    } else {
                        if (_myChannelSubUserPage == 1)
                            $('#mySubscribedChannelsUserListing').html('<div class="no-ticket-message">No sSupporters found</div>')
                    }
                }
            });

        },
        showVerifyEmailPopUp:function(callback){
            $('#verifyEmailPopup .verify-user-email').text(app.GetUserStoredData('email'));
            if(typeof callback!='undefined'){
                $("#emailVerifiedConfirmBtn").unbind();
                $("#emailVerifiedConfirmBtn").bind('click',function(){
                    callback();
                });
            }
            $('#verifyEmailPopup').modal('show');
        },
        setRedirectAfterSubscription:function(state){
            _redirectAfterSubscription=state;
        }
    };
})();


paypalClass=(function () {
    return {
        initiatePaypalPayment:function(planid){
            paypalClass.createPaypalSubscription(planid,function(data){
                if(data.success){
                    $('#homepageGlobalLoader').show();
                    window.location.href = data.data;
                }else{
                    triggerToast(data.msg,5000);
                }
            });
        },
        createPaypalSubscription:function(planid,callback){
            $('#homepageGlobalLoader').show();
            app.masterAjaxCall({
                'url': 'subscription/createPaypalSubscription',
                'method': 'POST',
                'params': {'plan_id': planid},
                'headers': app.SetAjaxHeader()
            }, function (error, success) {
                $('#homepageGlobalLoader').hide();
                if (success) {
                    if(typeof callback!='undefined'){
                        callback(success);
                    }else{
                        return success;
                    }
                }
            });
        },
        paypalPaymentSuccess:function(subscription_id){
            $('#homepageGlobalLoader').show();
            app.masterAjaxCall({
                'url': 'subscription/activatePaypalSubscription',
                'method': 'POST',
                'params': {'subscription_id':subscription_id},
                'headers': app.SetAjaxHeader()
            }, function (error, success) {
                $('#homepageGlobalLoader').hide();
                SubscriptionPackageClass.init();
                window.history.replaceState("", "", "/subscribe");
                if (success.success) {
                    if(success.data.show_thankyou_popup==1){
                        $('#thankyoucrediteddollar2').text("$" + success.data.amount);
                        if(success.data.is_one_month_trial==1){
                            $('#thankyouMsgHolderFree').removeClass('hide');
                            $('#thankyouMsgHolder').addClass('hide');
                        }else{
                            $('#thankyouMsgHolder').removeClass('hide');
                            $('#thankyouMsgHolderFree').addClass('hide');
                        }
                        SubscriptionClass.setRedirectAfterSubscription(true);
                        $('#thankyoucrediteddollarFree').text("$" + success.data.amount+' USD');
                        $('#thankyoucrediteddollar').text("$" + success.data.amount+ ' USD');
                        $('#thankyoucreditedcoins').text(success.data.title);
                        $('#thankyoutextdisplay').text(success.data.tier);
                        setTimeout(function () {
                            $('#paymentthankyoumodal').modal();
                        }, 500);
                    }else{
                        triggerToast(success.msg,5000);
                    }
                }else{
                    triggerToast(success.msg,5000);
                }
            });
        }
    }
})();

EmailVerificationClass= (function () {
    var container='';
    var isVerifying=false;
    return {
        verifyEmailDefaults:function(type,active){
            container=type;
            active==1?$('#verifyBefore_'+type).removeClass('hide'):$('#verifyBefore_'+type).addClass('hide');
            $('#verifyBefore_'+type).attr('data-verifyactive',active);
            $('#verifyBefore_'+type+' .verify-user-email').text(app.GetUserStoredData('email'));
            $('#emailOTP_'+type).val('');
        },
        checkIfEmailVerified:function(callback){
            $('#homepageGlobalLoader').show();
            app.masterAjaxCall({
                'url': 'auth/checkIfEmailVerified',
                'method': 'GET',
                'params': '',
                'headers': app.SetAjaxHeader()
            }, function (error, success) {
                $('#homepageGlobalLoader').hide();
                if (success) {
                    if(typeof callback!='undefined'){
                        callback(success);
                    }else{
                        return success;
                    }
                }
            });
        },
        verifyOTPCode:function(e){
            var otp=e.target.value.trim();
            var ele=e.target.id.split('_')[1];
            if(otp.length==4 && $('#verifyBefore_'+ele).attr('data-verifyactive')==1 && isVerifying===false){
                $('#homepageGlobalLoader').show();
                isVerifying=true;
                app.masterAjaxCall({
                    'url': 'auth/verifyFanEmailByCode',
                    'method': 'POST',
                    'params': {
                        'verification_code': otp
                    },
                    'headers': app.SetAjaxHeader()
                }, function (error, success) {
                    $('#homepageGlobalLoader').hide();
                    isVerifying=false;
                    if (success.success) {
                        $('#emailOTP_'+ele).blur();
                        $('#verifyBefore_'+ele).attr('data-verifyactive',0);
                        triggerToast(success.msg, 5000);
                    }else{
                        $('#emailOTP_'+ele).val('');
                        $('#verifyBefore_'+ele).attr('data-verifyactive',1);
                        triggerToast(success.msg, 5000);
                    }
                });
            }
        },
        showChangeEmailPopup:function(){
            $('#olduseremail').val(app.GetUserStoredData('email'));
            $('#newuseremail').val('');
            $('#changeEmailPopup').modal('show');
        },
        changeEmail:function(){
            var newemail = $("#newuseremail").val().trim();
            var regex = /^\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i;
            if(!regex.test(newemail)){
                triggerToast("Enter valid email address!", 5000);
                return false;
            }
            var data = {
                'url': 'auth/changeEmail',
                'method': 'POST',
                'params': {
                    'email': newemail,
                },
                'headers': app.SetAjaxHeader()
            };
            if (newemail != '') {
                $('#homepageGlobalLoader').show();
                app.masterAjaxCall(data, function (error, success) {
                    $('#homepageGlobalLoader').hide();
                    $("#newuseremail").val('');
                    if (success.success) {
                        $('#changeEmailPopup').modal('hide');
                        triggerToast(filterresponcemessage(success.msg), 5000);
                        app.UpdateUserStoredData('email', newemail);
                        $('#verifyBefore_'+container+' .verify-user-email').text(app.GetUserStoredData('email'));
                    } else {
                        triggerToast(filterresponcemessage(success.msg), 5000);
                    }
                });
            } else {
                triggerToast('Please enter your new email', 3000);
            }
        }
    }
})();

UserAddressClass = (function(){
    var _userAddressArray = [];
    return{
        getUserAddressData: function(type,callback){
            if(this.checkAddress()){
                var address={
                    "address1": $('#addressAddress1').val().trim(),
                    "address2": $('#addressAddress2').val().trim(),
                    "city": $('#addressCity').val().trim(),
                    "company": "",
                    "first_name": $('#addressFirstName').val().trim(),
                    "last_name": $('#addressLastName').val().trim(),
                    "phone": $('#addressPhone').val().trim(),
                    "province": $('#addressState').val().trim(),
                    "country": $("#addressCountry option:selected").text().trim(),
                    "zip": $('#addressPincode').val().trim(),
                    "name": $('#addressFirstName').val().trim() +' '+ $('#addressLastName').val().trim(),
                    "province_code": "",
                    "country_code": $('#addressCountry').val().trim(),
                    "country_name": $("#addressCountry option:selected").text().trim()
                };

                if(type == 'update'){
                    address.id = _userAddressArray[0].id;
                }

                var data = {
                    'url': 'shopifyuser/address',
                    'method': (type=='add')?'POST':'PUT',
                    'params': JSON.stringify({
                        "address": address
                        }),
                    'headers': app.SetAjaxHeader()
                }
                callback(data);
            }
        },
        getUserAddress: function(callback){
            $('#homepageGlobalLoader').show();
            var data= {
                'url': 'shopifyuser/address',
                'method': 'GET',
                'params': {},
                'headers': app.SetAjaxHeader()
            }
            app.masterAjaxCall(data, function (error, success) {
                $('#homepageGlobalLoader').hide();
                if(callback!=undefined){
                    callback(success);
                }
            });
        },
        addUserAddress:function(callback){
            UserAddressClass.getUserAddressData('add',function(data){
                $('#userAddressAddBtn').prop('disabled',true);
                $('#homepageGlobalLoader').show();
                app.masterAjaxCall(data, function (error, success) {
                    $('#userAddressAddBtn').prop('disabled',false);
                    $('#homepageGlobalLoader').hide();
                    if(success.success){
                        triggerToast('Address added.',3000);
                        UserAddressClass.clearAddressFields();
                        $('#addAddressPopup').modal('hide');
                        callback(success);
                    }else{
                        triggerToast(success.message,3000);
                    }
                });
            });
        },
        updateUserAddress: function(){
            UserAddressClass.getUserAddressData('update',function(data){
                $('#userAddressAddBtn').prop('disabled',true);
                $('#homepageGlobalLoader').show();

                app.masterAjaxCall(data, function (error, success) {
                    $('#userAddressAddBtn').prop('disabled',false);
                    $('#homepageGlobalLoader').hide();
                    if(success.success){
                        triggerToast('Address Updated.',3000);
                        UserAddressClass.setUserAddress(success);
                        UserAddressClass.clearAddressFields();
                        $('#addAddressPopup').modal('hide');
                    }else{
                        triggerToast(success.message,3000);
                    }
                });
            });

        },
        setUserAddress:function(data){
            if($('#userAddressList-template').length>0){
                if(data.success && data.data.length>0){
                    for(var i=0;i<data.data.length;i++){
                        data.data[i].count=i+1;
                        if(data.data[i].phone==null || data.data[i].phone==''){
                            data.data[i].is_phone_avail=false;
                        }else{
                            data.data[i].is_phone_avail=true;
                        }

                        if(data.data[i].province==null || data.data[i].province==''){
                            data.data[i].province_avail=false;
                        }else{
                            data.data[i].province_avail=true;
                        }

                        if(data.data[i].address2==null || data.data[i].address2==''){
                            data.data[i].address2_avail=false;
                        }else{
                            data.data[i].address2_avail=true;
                        }
                    }
                    _userAddressArray=data.data;
                    $('#profileAddAddressBtn').addClass('display-none');
                    var template = $('#userAddressList-template').html();
                    Mustache.parse(template);
                    var rendered = Mustache.render(template, data);
                    $('#userAddressList').html(rendered);
                    UserAddressClass.UserAddressTrigger('edit',null);
                }else{
                    $('#profileAddAddressBtn').removeClass('display-none');
                    UserAddressClass.UserAddressTrigger('add',UserAddressClass.setUserAddress);
                }
            }
        },
        setAddressUpdatePopup: function(){
            if(_userAddressArray.length > 0){
                $.each( _userAddressArray, function( key, value ) {
                    $('#addressFirstName').val(value.first_name);
                    $('#addressLastName').val(value.last_name);
                    $('#addressAddress1').val(value.address1);
                    $('#addressAddress2').val(value.address2);
                    $('#addressCity').val(value.city);
                    $('#addressPincode').val(value.zip);
                    $('#addressState').val(value.province);
                    $('#addressCountry').val(value.country_code);
                    $('#addressPhone').val(value.phone);
                });
                $('#wlcmMsgAddressPopUp').addClass('hide');
                $('#addressPopupTitle').html('Update Address');
                $('#addAddressBtn').html('Update Address');
                $('#addAddressPopup').modal('show');
            }
        },
        checkIfUserAddressExits: function(){
            UserAddressClass.getUserAddress(function(data){
                if(data.success){
                    //SubscriptionClass.subscribeToPackagePaymentModalSetup();
                }else{
                    $('#wlcmMsgAddressPopUp').removeClass('hide');
                    $('#addAddressPopup').modal('show');
                }
            });
        },
        checkAddress:function(){
            if( $('#addressFirstName').val().trim()==''){
                triggerToast('First name cannot be empty.',3000);
                return false;
            };
            if($('#addressLastName').val().trim()==''){
                triggerToast('Last name cannot be empty.',3000);
                return false;
            };
            if($('#addressAddress1').val().trim()==''){
                triggerToast('Address Line 1 cannot be empty.',3000);
                return false;
            };
            if($('#addressPhone').val().trim()==''){
                triggerToast('Phone field cannot be empty.',3000);
                return false;
            };
            if($('#addressState').val().trim()==''){
                triggerToast('State/Province cannot be empty.',3000);
                return false;
            };
            if($('#addressCity').val().trim()==''){
                triggerToast('City field cannot be empty.',3000);
                return false;
            };
            if($('#addressPincode').val().trim()==''){
                triggerToast('Postal/Zip Code field cannot be empty.',3000);
                return false;
            };
            return true;
        },
        clearAddressFields:function(){
            //$('#addressCountry').val('');
            $('#addressAddress1').val('');
            $('#addressAddress2').val('');
            $('#addressState').val('');
            $('#addressCity').val('');
            $('#addressFirstName').val('');
            $('#addressLastName').val('');
            $('#addressPhone').val('');
            $('#addressPincode').val('');
        },
        UserAddressTrigger: function(type,callback){

            $('#addAddressBtn').unbind('click');

            $('#addAddressBtn').click(function(){
                (type == 'add')?UserAddressClass.addUserAddress(callback):UserAddressClass.updateUserAddress();
            });

            $.getJSON(base_url+'resources/js/countryCodes/country.json', function(json) {
                var template = $('#addressCountry-template').html();
                Mustache.parse(template);
                var rendered = Mustache.render(template, json);
                $('#addressCountry').html(rendered);
                $("#addressCountry").val('US');
            });
        }
    }
})();

googleAds=(function(){
    return {
        init:function(){
            if(app.GetUserStoredData('userId')==null){
                googleAds.showAds();
            }else if(app.GetUserStoredData('userId')!=null && app.GetUserStoredData('user_type')=='fan') {
                commonClass.checkFanSubscribedStatus(googleAds.showAds);
            }else {
                googleAds.removeAds();
            }
        },
        showAds:function(data){
            if ($('div.google-ads').length) {
                if(typeof data!='undefined' && data.is_subscribed==1){
                    googleAds.removeAds();
                }else{
                    googleAds.isMobileAd(function(){
                        $(".adsbygoogle").each(function () {
                            (adsbygoogle = window.adsbygoogle || []).push({});
                        });
                    });

                }
            }
        },
        removeAds:function(){
            $('div.google-ads').remove();
        },
        isMobileAd:function(callback){
            if(commonClass.isMobileDevice()){
                $('.post-detailed-desktop').hide();
                $('.post-detailed-mobile').show();
            }else{
                $('.post-detailed-desktop').show();
                $('.post-detailed-mobile').hide();
            }
            if(callback!='undefined'){
                callback();
            }
        }
    }
})();

(function ($) {
    $(function () {
        $('input[name=wlcmVideoName]').on('change', SubscriptionClass.welcomeVideoChange);
        hoverMiniProfileClass.initiatehoverlistener2();
    });

    commonClass.closeModalOnBrowserBackBtn();
})(jQuery);


ajaxTabContentLoaderClass = (function () {

    var isPatronPostLoaded = false;
    var isPatronPostListingTemplateLoaded = false;
    var isEditProfileTemplateLoaded = false;
    var isDashboardTemplateLoaded = false;
    var isPostToPatronsTemplateLoaded = false;
    var walletTemplateLoaded = false;
    var profilePrivacyTemplateLoaded = false;
    var communityRulesTemplateLoaded = false;
    var profileFaqTemplateLoaded = false;
    var blockedUsersTemplateLoaded = false;
    var directMessagesTemplateLoaded = false;
    var paymentOptionsTemplateLoaded = false;
    var patronSubscriptionsTemplateLoaded = false;
    var termsAndConditionsTemplateLoaded = false;
    var isRssFeedSettingsTemplateLoaded=false;
    var isPerkSettingsTemplateLoaded=false;
    var isMySubscriptionTemplateLoaded=false;
    var isFreeSubSettingsTemplateLoaded=false;
    var isWebInfoSettingsTemplateLoaded=false;
    var isTourSettingsTemplateLoaded=false;
	var pledgeDriveTemplateLoaded = false;
    return {
        loadPatronsSettingsTab: function () {
            if (!isPatronPostLoaded) {
                isPatronPostLoaded = true;
                $('#patronClubSettingsTemplateContainer').load(base_url + 'resources/templates/patronClubSettingsTemplate.html', function (response, status, xhr) {
                    // CKEDITOR.replace('patronClubTxtDesc');
                    // CKEDITOR.replace('patronClubThanksMsg');
                    $('#patronClubTxtDesc').trumbowyg(
                        {
                            btnsDef: {
                                formatting: { dropdown: ['p', 'blockquote', 'h1', 'h2', 'h3', 'h4'], ico: 'p' },
                                align: { dropdown: ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'], ico: 'justifyLeft' },
                                list: { dropdown: ["unorderedList", "orderedList"], ico: 'orderedList' },
                                FontEffects: { dropdown: ["strong", "em", "del", "superscript", "subscript"], ico: 'superscript' }
                            },
                            inlineElementsSelector: 'a,abbr,acronym,b,caption,cite,code,col,dfn,dir,dt,dd,em,font,hr,i,kbd,li,q,span,strikeout,strong,sub,sup,u',
                            btns: ['formatting', 'align', 'list', 'FontEffects', 'foreColor', 'backColor', 'removeformat']
                        });

                    $('#patronClubThanksMsg').trumbowyg(
                        {
                            btnsDef: {
                                formatting: { dropdown: ['p', 'blockquote', 'h1', 'h2', 'h3', 'h4'], ico: 'p' },
                                align: { dropdown: ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'], ico: 'justifyLeft' },
                                list: { dropdown: ["unorderedList", "orderedList"], ico: 'orderedList' },
                                FontEffects: { dropdown: ["strong", "em", "del", "superscript", "subscript", 'horizontalRule'], ico: 'superscript' },
                                horizontalRule: { fn: "insertHorizontalRule" }
                            },
                            inlineElementsSelector: 'a,abbr,acronym,b,caption,cite,code,col,dfn,dir,dt,dd,em,font,hr,i,kbd,li,q,span,strikeout,strong,sub,sup,u',
                            btns: ['formatting', 'align', 'list', 'FontEffects', 'foreColor', 'backColor', 'removeformat'],
                            autogrow: true,
                            removeformatPasted: true,
                        });

                    SubscriptionClass.loadMsgTips();
                    // SubscriptionClass.setUserSubscriptionScreen();
                });
            } else {
                //SubscriptionClass.setUserSubscriptionScreen();
            }
        },
        loadPostToPatronsTab: function () {
            if (!isPostToPatronsTemplateLoaded) {
                isPostToPatronsTemplateLoaded = true;
                $('#postToPatronsTemplateContainer').load(base_url + 'resources/templates/postToPatronsTemplate.html', function (response, status, xhr) {
                    CKEDITOR.replace('postBlogDecription');
                    CKEDITOR.replace('postDescription');
                    /*$('#postDescription').trumbowyg({
                        autogrow: true,
                        removeformatPasted: true,
                        btnsDef: {
                            formatting: { dropdown: ['p', 'blockquote', 'h1', 'h2', 'h3', 'h4'], ico: 'p' },
                            align: { dropdown: ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'], ico: 'justifyLeft' },
                            list: { dropdown: ["unorderedList", "orderedList"], ico: 'orderedList' },
                            FontEffects: { dropdown: ["strong", "em", "del", "superscript", "subscript"], ico: 'superscript' },
                            horizontalRule: { fn: "insertHorizontalRule" }
                        },
                        inlineElementsSelector: 'a,abbr,acronym,b,caption,cite,code,col,dfn,dir,dt,dd,em,font,hr,i,kbd,li,q,span,strikeout,strong,sub,sup,u',
                        btns: ['formatting','link','strong','em','underline','unorderedList', 'orderedList']
                    });*/
                    PatronPostClass.setPatronPostScreen();
                });
            }else{
                PatronPostClass.onPostToPatronsTabClick();
            }
        },
        loadPatronPostListingTab: function () {
            if (!isPatronPostListingTemplateLoaded) {
                isPatronPostListingTemplateLoaded = true;
                $('#patronPostListingTemplateContainer').load(base_url + 'resources/templates/patronPostListingTemplate.html', function (response, status, xhr) {
                    myPatronPostClass.init();
                    myPatronPostClass.initiateFilters();
                    myPatronPostClass.loadMyPatronPostOnce();
                    PatronPostClass.initiatePatronPostEditDefaultFunctions();
                    //myPatronPostClass.loadMyPinnedPostListing();
                });
            } else {
                //myPatronPostClass.initiateFilters();
                myPatronPostClass.loadMyPatronPostOnce();
                //PatronPostClass.initiatePatronPostEditDefaultFunctions();
                //myPatronPostClass.loadMyPinnedPostListing();
            }
        },
        loadEditprofileTab: function () {
            if (!isEditProfileTemplateLoaded) {
                isEditProfileTemplateLoaded = true;
                $('#profileEditTemplateContainer').load(base_url + 'resources/templates/profileEditTemplate.html', function (response, status, xhr) {
                    userProfileEditClass.initiate();
                });
            }
        },
        loadDashboardTab: function () {
            if (!isDashboardTemplateLoaded) {
                isDashboardTemplateLoaded = true;
                $('#dashboardTemplateContainer').load(base_url + 'resources/templates/dashboardTemplate.html', function (response, status, xhr) {
                    dashBoardClass.getUserDashboard();
                });
            }
        },
        loadWalletTab: function () {
            if (!walletTemplateLoaded) {
                walletTemplateLoaded = true;
                $('#walletTemplateContainer').load(base_url + 'resources/templates/walletTemplate.html', function (response, status, xhr) {
                    onpageloadwallet();
                });
            }
        },
        loadProfilePrivacyTab: function () {
            if (!profilePrivacyTemplateLoaded) {
                profilePrivacyTemplateLoaded = true;
                $('#profilePrivacyTemplateContainer').load(base_url + 'resources/templates/profilePrivacyTemplate.html', function (response, status, xhr) {
                    privacyClass.init();
                });
            }
            privacyClass.showEmailVerificationSection();
        },
        loadProfileFaqTab: function () {
            if (!profileFaqTemplateLoaded) {
                profileFaqTemplateLoaded = true;
                $('#profileFaqContainer').load(base_url + 'resources/templates/faqPageTemplate.html', function (response, status, xhr) { });
            }
        },
        loadCommunityRulesTab: function () {
            if (!communityRulesTemplateLoaded) {
                communityRulesTemplateLoaded = true;
                $('#profileComminityRulesContainer').load(base_url + 'resources/templates/communityRulesTemplate.html', function (response, status, xhr) { });
            }
        },
        loadBlockedUsersTab: function () {
            if (!blockedUsersTemplateLoaded) {
                blockedUsersTemplateLoaded = true;
                $('#blockedUsersTemplateContainer').load(base_url + 'resources/templates/blockedUsersTemplate.html', function (response, status, xhr) {
                    blockedUserClass.loadBlockedListOnce();
                });
            }
        },
        loadDirectMessagesTab: function () {
            if (!directMessagesTemplateLoaded) {
                directMessagesTemplateLoaded = true;
                $('#directMessagesTemplateContainer').load(base_url + 'resources/templates/directMessagesTemplate.html', function (response, status, xhr) {
                    //$(window).on("load", function () {
                    directMessagesSetDefaults();
                    setDirectMessagesMScrollBar();
                    loadDirectMessagesOnce();
                    //});
                });
            }
        },
        loadpaymentOptionsTab: function () {
            if (!paymentOptionsTemplateLoaded) {
                paymentOptionsTemplateLoaded = true;
                $('#paymentOptionsContainer').load(base_url + 'resources/templates/paymentOptionsTemplate.html', function (response, status, xhr) {
                    paymentOptionClass.loadOnce();
                });
            }
            paymentOptionClass.init();
        },
        loadmysubscribersTab: function () {
            if (!patronSubscriptionsTemplateLoaded) {
                patronSubscriptionsTemplateLoaded = true;
                $('#mySubscribersTemplateContainer').load(base_url + 'resources/templates/patronSubscriptionsTemplate.html', function (response, status, xhr) {
                    mySubscribers.getMyChannelSubscribedUserOnce();
                });
            }
        },
		loadPledgeDriveTab: function () {
            if (!pledgeDriveTemplateLoaded) {
                pledgeDriveTemplateLoaded = true;
                $('#pledgeViewTemplateContainer').load(base_url + 'resources/templates/pledgeViewTemplate.html', function (response, status, xhr) {
					pledgeDriveClass.init();
                });
            }
		},
        loadTermsAndConditionsTab: function () {
            if (!termsAndConditionsTemplateLoaded) {
                termsAndConditionsTemplateLoaded = true;
                $('#termsAndConditionsContainer').load(base_url + 'resources/templates/termsAndConditionsTemplate.html', function (response, status, xhr) {

                });
            }
        },
        loadRSSFeedSettingsTab:function() {
            if (!isRssFeedSettingsTemplateLoaded) {
                isRssFeedSettingsTemplateLoaded = true;
                $('#rssFeedSettingsTemplateContainer').load(base_url + 'resources/templates/rssFeedSettingsTemplate.html', function (response, status, xhr) {
                    rssFeedSettings.init();
                });
            }
        },
        loadPerkSettingTab:function(){
            if (!isPerkSettingsTemplateLoaded) {
                isPerkSettingsTemplateLoaded = true;
                $('#perkSettingsTemplateContainer').load(base_url + 'resources/templates/perkSettingsTemplate.html', function (response, status, xhr) {
                    perkSettingClass.init();
                });
            }
        },
        loadExitSurveytab:function(){
            if (!isPerkSettingsTemplateLoaded) {
                isPerkSettingsTemplateLoaded = true;
                $('#exitSurveyTemplateContainer').load(base_url + 'resources/templates/exitSurveyTemplate.html', function (response, status, xhr) {
                    exitSurveyClass.init();
                });
            }
        },
        loadMySubscriptionTab:function(){
            if (!isMySubscriptionTemplateLoaded) {
                isMySubscriptionTemplateLoaded = true;
                $('#mySubscriptionTemplateContainer').load(base_url + 'resources/templates/mySubscriptionTemplate.html', function (response, status, xhr) {
                    MySubscriptionClass.init();
                });
            }else{
                MySubscriptionClass.init();
            }
        },
        freeSubscriptionSettingsTab:function(){
            if (!isFreeSubSettingsTemplateLoaded) {
                isFreeSubSettingsTemplateLoaded = true;
                $('#FreeSubscriptionSettingsTemplateContainer').load(base_url + 'resources/templates/freeSubscriptionSettingsTemplate.html', function (response, status, xhr) {
                   freeSubscriptionSettingsClass.init();
                });
            }
        },
        loadWebsiteinfoSettingsTab:function(){
            if (!isWebInfoSettingsTemplateLoaded) {
                isWebInfoSettingsTemplateLoaded = true;
                $('#websiteInfoSettingsTemplateContainer').load(base_url + 'resources/templates/websiteInfoSettingsTemplate.html', function (response, status, xhr) {
                   websiteInfoSettingClass.init();
                });
            }
        },
        loadTourSettingsTab:function(){
            if (!isTourSettingsTemplateLoaded) {
                isTourSettingsTemplateLoaded = true;
                $('#tourSettingsTemplateContainer').load(base_url + 'resources/templates/tourSettingsTemplate.html', function (response, status, xhr) {
                    tourSettings.init();
                });
            }
        }
    }

})();


/*================================
Get User Badge Count Broadcast Event
 ================================*/
socket.on('GetUserBadgeCountBroadcastEvent', function (data) {
    var totalBadgeCount = data.direct_message_unread_count;
    if (totalBadgeCount > 0) {
        $('#unreadmsgcountdisp').text(formatnumber(totalBadgeCount));
    } else {
        $('#unreadmsgcountdisp').text('');
    }
});


var ismainTabSideBarTemplateLoaded = false;
function loadMainTabSideBar(callback) {
    if (!ismainTabSideBarTemplateLoaded) {
        ismainTabSideBarTemplateLoaded = true;
        $('#profilePagePic').attr('src', app.GetUserStoredData('profile_photo'));
        $('#profilePagePicMobile').attr('src', app.GetUserStoredData('profile_photo'));
        setRoutesOfMainTabs();
        callback(true);
    } else {
        callback(false);
    }
}

function setRoutesOfMainTabs() {
    $('#editProfileTabLink').attr('href', base_url + 'account-settings');
    $('#patronsTabLink').attr('href', base_url + 'manage-subscription');
    $('#shopTabLink').attr('href', base_url + 'profile/shopSettings');
    $('#dashboardTabLink').attr('href', base_url + 'dashboard');
    $('#messagesTabLink').attr('href', base_url + 'messages');
    $('#walletTabLink').attr('href', base_url + 'wallet');
    $('#settingsTabLink').attr('href', base_url + 'profile/generalSettings');
    $('#requestTabLink').attr('href', base_url + 'profile/userRequest');
    $('#meetAndGreetTabLink').attr('href', base_url + 'profile/meetAndGreet');
    $('#patronssubscriptionsTabLink').attr('href', base_url + 'profile/patronsSubscriptions');
    $('#homeTabLink').attr('href', base_url);
}

function setActiveTabOfSideBar(tabID) {
    $(".main-tab-selection>ul>li.active").removeClass("active");
    $(tabID).parent('li').addClass("active");
}


jqueryConfirm = (function () {
    var jc;
    return {
        alert: function (alertTitle, alertContent) {
            $.alert({
                title: alertTitle,
                content: alertContent
            });
        },
        confirm: function (confirmTitle, confirmContent, callback) {
            $.confirm({
                title: confirmTitle,
                content: confirmContent,
                buttons: {
                    confirm: function () {
                        callback();
                    },
                    cancel: function () {

                    }
                }
            });
        },
        confirm2: function (confirmTitle, confirmContent, callback1, callback2) {
            $.confirm({
                title: '<div class="brand-col">'+confirmTitle+'</div>',
                content: confirmContent,
                buttons: {
                    confirm: function () {
                        callback1();
                    },
                    cancel: function () {
                        callback2();
                    }
                }
            });
        },
        confirmActions: function (confirmTitle, confirmContent,buttons,showCloseBtn) {
            var btnsObject={ };
            for(var i=0;i<buttons.length;i++){
                btnsObject['button'+i]={};
                btnsObject['button'+i]["text"] = buttons[i].text;
                btnsObject['button'+i]["action"] = buttons[i].action;
                btnsObject['button'+i]["btnClass"] = 'btn-confirm-post-creation';
            }

            jc = $.confirm({
                title: '<div class="brand-col">'+confirmTitle+'</div>',
                content: confirmContent,
                closeIcon: showCloseBtn,
                buttons: btnsObject
            });
        },
        showDialog:function(title,content,buttonname,callback1){
            $.confirm({
                title: title,
                content: content,
                closeIcon: true,
                theme: 'material',
                buttons: {
                    button1:{
                        text: buttonname,
                        btnClass: 'btn-confirm-post-creation',
                        action: function(){
                            callback1();
                        }
                    }
                }
            });
        },
        closeConfirmJsBox:function(){
            if(typeof jc!='undefined'){
                jc.close();
            }
        }
    }
})();


supportTipsClass = (function () {
    return {
        paymentModalSetup: function () {
            if (app.GetUserStoredData('userId') != null) {
                if(app.GetUserStoredData('user_type')=='fan'){
                    $('#homepageGlobalLoader').show();
                    commonClass.getUserCards(function (success) {
                        $('#homepageGlobalLoader').hide();
                        if (success.success) {

                            $("#tipMsg").val('');
                            $("#tipAmount").val(1);

                            EmailVerificationClass.checkIfEmailVerified(function(res){
                                if(typeof res.data.show_verify_email_popup!='undefined' && res.data.show_verify_email_popup==1){
                                    EmailVerificationClass.verifyEmailDefaults('donate',1);
                                } else {
                                    EmailVerificationClass.verifyEmailDefaults('donate',0);
                                }
                                $('#supportPayment').modal({
                                    backdrop: 'static',
                                    keyboard: false
                                });
                            });



                            var template = $('#Supportcreditcardtemplate-template').html();
                            Mustache.parse(template);
                            var rendered = Mustache.render(template, success);
                            $('#Supportcreditcardtemplate').html(rendered);
                            $('#Supportcreditcardtemplate input:first').attr('checked', true);

                            // var template2 = $('#Supportpaypalcardtemplate-template').html();
                            // Mustache.parse(template2);
                            // var rendered2 = Mustache.render(template2, success);
                            // $('#Supportpaypalcardtemplate').html(rendered2);
                            // $('#Supportpaypalcardtemplate input:first').attr('checked', true);

                            // var template3 = $('#Supportapplepaycardtemplate-template').html();
                            // Mustache.parse(template3);
                            // var rendered3 = Mustache.render(template3, success);
                            // $('#Supportapplepaycardtemplate').html(rendered3);
                            // $('#Supportapplepaycardtemplate input:first').attr('checked', true);

                            if (!success.data.paypal) {
                                $('#Supportpaymentpaypaltab').hide();
                            } else {
                                $('#Supportpaymentpaypaltab').show()
                            }
                            if (!success.data.apple_pay) {
                                $('#Supportpaymentapplepaytab').hide();
                            } else {
                                $('#Supportapplepaytab').show();
                            }
                            SubscriptionClass.checkIfErningSatisfyAndShowHideCard();
                        } else {
                            triggerToast(filterresponcemessage(success.msg), 3000);
                        }
                    });
                }else{
                    triggerToast("This action is not available for you. Only Fans can Donate to "+_ProjectBaseName+"!", 3000);
                    return false;
                }
            } else {
                commonClass.openSigninModal();
            }
        },
        proceedToPayment: function (typeId) {
            //var is_earning_credit = ($('#subscribedChannelEarningInput').is(':checked')) ? 1 : 0;
            var payment_type = null;
            var card = null;
            var tipAmount = $('#tipAmount').val();
            var tipMsg = $('#tipMsg').val();
            $('#creatorName').html(broadcasterDataClass.getBroadcasterData('broadcaster'));
            var id = 1;
            var active_tab_selector = $('#Supporthidepaymentmodaltabs li.active > a').attr('href');

            if (active_tab_selector == '#SupportCreditcardtab') {
                id = 1;
                payment_type = 'creditearningstripe';
                card = $('#Supportcreditcardtemplate input:checked').val();
            } else if (active_tab_selector == '#SupportPaypalCardTab') {
                id = 2;
                payment_type = 'creditearningpaypal';
            } else if (active_tab_selector == '#SupportApplepayCardTab') {
                id = 3;
                payment_type = 'creditearningapple';
                card = $('#Supportapplepaycardtemplate input:checked').val();
            }
            if ((id == 1 || id == 3) && card == null) {
                triggerToast('Cannot proceed.. card missing..');
            } else {
                $('#homepageGlobalLoader').show();
                $('#Supportdisablepaymentcardbtn').prop('disabled', 'disabled');
                $("#emailVerifiedConfirmBtn").prop('disabled', true);
                var data = {
                    'url': 'Payment/purchaseProduct',
                    'method': 'POST',
                    'params': {
                        'product_type': 'tippoi',
                        'product_cost': tipAmount,
                        'is_credit_earning': false,
                        'payment_type': payment_type,
                        'card': card,
                        'poi_id': commonClass.getMainCreatorID(),
                        'tip_message': tipMsg
                    },
                    'headers': app.SetAjaxHeader()
                }
                app.masterAjaxCall(data, function (error, success) {
                    $('#Supportdisablepaymentcardbtn').prop('disabled', false);
                    $("#emailVerifiedConfirmBtn").prop('disabled', false);
                    $('#homepageGlobalLoader').hide();
                    if (success.success) {
                        $('#supportPayment').modal('hide');
                        $('#paymentthankyoumodal').modal();
                        $('#thankyoucrediteddollar').text("$" + tipAmount+ " USD");
                        $('#thankyoutextdisplay').text('');
                        _productType = null;
                    } else {
                        if(typeof success.data!='undefined' && success.data.show_verify_email_popup==1){
                            // $('#verifyEmailSubMsg').addClass('hide');
                            // SubscriptionClass.showVerifyEmailPopUp(supportTipsClass.proceedToPayment);
                            triggerToast(filterresponcemessage(success.msg), 5000);
                        } else{
                            triggerToast(filterresponcemessage(success.msg), 5000);
                        }
                    }
                });
            }

        },
        decrementTipAmount: function () {

            ($('#tipAmount').val() == "") ? $('#tipAmount').val(0) : '';

            if (($('#tipAmount').val()) > 1) {
                $('#tipAmount').val(parseInt($('#tipAmount').val()) - 1);
            }
        },
        incrementTipAmount: function () {

            ($('#tipAmount').val() == "") ? $('#tipAmount').val(0) : '';

            if (($('#tipAmount').val()) < 1000) {
                $('#tipAmount').val(parseInt($('#tipAmount').val()) + 1);
            }
        },
        validateNumeric:function(evt) {
            var theEvent = evt || window.event;
            var key = theEvent.keyCode || theEvent.which;
            key = String.fromCharCode( key );
            var regex = /[0-9\b\t]|\./;
            if( !regex.test(key) ) {
              theEvent.returnValue = false;
              if(theEvent.preventDefault) theEvent.preventDefault();
            }
        }
    }
})();


FanProfilePopUpClass = (function () {
    var _recipientId = null;
    var _ownUser = 'This action is disabled while previewing your own Profile.';
    var _toastFlag=false;
    return {
        setToastflag:function(){
            _toastFlag=true;
        },
        navigateCreatorFanProfile: function (userid) {
            if(app.GetUserStoredData('userId') != null){
                if(app.GetUserStoredData('userId')!=userid){
                    FanProfilePopUpClass.getFanPopupData(userid, function (data) {
                        if (data) {
                            /*if (data.user_type == "creator") {
                                //window.location.href = base_url + data.poi_profile_url;
                            }
                            else {*/
                                FanProfilePopUpClass.populateFanModal(data);
                            //}
                        }
                    });
                }else{
                    triggerToast(_ownUser, 5000);
                }
            }else{
                commonClass.openSigninModal();
            }
        },
        populateFanModal: function (data) {
            $('#blockThisUser').attr('data-fanid',data.id);
            app.GetUserStoredData('user_type')=='creator'?$('#blockThisUser').removeClass('hide'):$('#blockThisUser').addClass('hide');
            app.GetUserStoredData('user_type')=='creator'?$('.miniPopUpHelpTip').addClass('hide'):$('.miniPopUpHelpTip').removeClass('hide');
            $('#directmsgsendinp_popup').val('');
            $("#popUpUserCoverPhoto").attr("src", "");
            $("#popUpUserCoverPhoto").attr("src", data.cover_photo);
            $("#popUpUserMainPhoto").attr("src", data.profile_photo_thumb);
            $("#popUpUserProfileIscore").html(formatnumber(data.poi_influencer_score));
            if (data.poi_follows == 'follows') {
                $("#popUpUserlikeflag").attr("data-follow", 1);
            } else {
                $("#popUpUserlikeflag").attr("data-follow", 0);
            }
            $("#popUpUserName").html(data.username);
            $("#popUpUserfollowing").html(formatnumber(data.poi_following_count));
            $("#popUpUserfollowers").html(formatnumber(data.poi_follow_count));
            //$("#popUpUserdescription").html(data.profile_description);

            $('#fanprofile_popup').modal({
                backdrop: 'static',
                keyboard: false
            });
        },
        getFanPopupData: function (poiid, callback) {
            if (!isNaN(poiid)) {
                _recipientId = poiid;
                $('#homepageGlobalLoader').show();
                var data = {
                    'url': 'appcalls/broadcasterListQuery',
                    'method': 'GET',
                    'params': {
                        'userId': app.GetUserStoredData('userId'),
                        'poiId': poiid
                    },
                    'headers': app.SetAjaxHeader()
                }
                app.masterAjaxCall(data, function (error, success) {
                    $('#homepageGlobalLoader').hide();
                    if (error) {
                        triggerToast(error, 3000);
                        if (typeof callback != 'undefined')
                            callback(false);
                    } else {
                        if (success.success && typeof success.data[0] != 'undefined' && success.data[0].user_type!=app.GetUserStoredData('user_type')) {
                            callback(success.data[0]);
                        } else {
                            var str=_toastFlag==true?'Sorry, This action is not available.':'No User data Found. User has been blocked or has deactivated his/her account';
                            triggerToast(str, 3000);
                            if (typeof callback != 'undefined')
                                callback(false);
                        }
                    }
                    _toastFlag=false;
                    return;
                });
            } else {
                callback(false);
            }
        },
        getChatId: function (callback) {
            $('#homepageGlobalLoader').show();
            BidchatSocketEmitEvent({
                eventName: 'GetDirectMessageChatRoomId',
                params: {
                    user_id: app.GetUserStoredData('userId'),
                    poi_id: _recipientId
                }
            }, function (GetDirectMessageChatRoomIdRes) {
                $('#homepageGlobalLoader').hide();
                callback(GetDirectMessageChatRoomIdRes);
            });
        },
        sendDirectMessage: function () {
            if (_recipientId != null) {
                if (_recipientId == app.GetUserStoredData('userId')) {
                    triggerToast(_ownUser, 5000);
                } else {
                    if (app.GetUserStoredData('userId') != null) {
                        if ($("#directmsgsendinp_popup").val().trim() != '') {
                            $('#Send_direct_msg_btn').prop('disabled',true);
                            this.getChatId(function (chat_id) {
                                var msgTextVal = $("#directmsgsendinp_popup").val().trim();
                                var megRawTextVal = msgTextVal;
                                msgTextVal = SetEmoji(megRawTextVal, true);
                                $('#homepageGlobalLoader').show();
                                BidchatSocketEmitEvent({
                                    eventName: 'SendDirectMessage',
                                    params: {
                                        user_id: parseInt(app.GetUserStoredData('userId')),
                                        poi_id: parseInt(_recipientId),
                                        chat_id: parseInt(chat_id),
                                        message: msgTextVal.trim(),
                                        rawMessage: megRawTextVal
                                    }
                                }, function (res) {
                                    $('#homepageGlobalLoader').hide();
                                    if (res.chat_id) {
                                        $("#directmsgsendinp_popup").val('');
                                        triggerToast('Message Sent!', 3000);
                                    } else {
                                        triggerToast('No User data Found. User has been blocked or has deactivated his/her account.', 5000);
                                    }

                                    $('#Send_direct_msg_btn').prop('disabled',false);
                                });
                            });
                        } else {
                            triggerToast('Input message to send', 3000);
                        }
                    } else {
                        $('#fanprofile_popup').modal('hide');
                        commonClass.openSigninModal();
                    }
                }
            }
        },
        followBroadcaster: function () {
            if (_recipientId == app.GetUserStoredData('userId')) {
                triggerToast(_ownUser, 5000);
            } else {
                if (_recipientId != null) {
                    $('#homepageGlobalLoader').show();
                    followbidchatuser(_recipientId, function (res) {
                        $('#homepageGlobalLoader').hide();
                        if (res.img_name === 'follows') {
                            var tmp = 0;
                            $('#popUpUserlikeflag').attr("data-follow", '1');
                        } else {
                            $('#popUpUserlikeflag').attr("data-follow", '0');
                        }
                    });
                }
            }
        },
        blockFan: function (fan_id) {
            var fanID='';
            if(typeof fan_id=='undefined' || fan_id=='' || fan_id==null){
                fanID=$('#blockThisUser').attr('data-fanid');
            }else{
                fanID=fan_id;
            }
            if (app.GetUserStoredData('userId') != null) {
                if(app.GetUserStoredData('user_type')=='fan'){
                    triggerToast('Sorry. This action is not Available!', 5000);
                    return false;
                } else if (fanID == app.GetUserStoredData('userId')) {
                    triggerToast(_ownUser, 5000);
                    return false;
                }  else {
                    jqueryConfirm.confirm('', "Are you Sure you want to Block this User?", function () {
                        $('#homepageGlobalLoader').show();
                        var data = {
                            'url': 'block/block',
                            'method': 'POST',
                            'params': {
                                'user_id': fanID
                            },
                            'headers': app.SetAjaxHeader()
                        }
                        app.masterAjaxCall(data, function (error, success) {
                            $('#homepageGlobalLoader').hide();
                            if (!success.success) {
                                triggerToast('Error blocking User', 5000);
                            } else {
                                triggerToast('User has been Blocked', 5000);
                                $('#fanprofile_popup').modal('hide');
                            }
                            return;
                        });

                    });
                }
            } else {
                commonClass.openSigninModal();
            }
        }
    }
})();

(($) => {
	// change the text of the "Join Platinum" links to "Platinum" if the user is logged in
	if (commonClass.isUserLoggedIn()) {
		$('.premium-page').text('Platinum');
	}
})(jQuery);
