function trackEvent(category, action, label) {
    // var downloadTime= getPageLoadTime(beforeLoadTime);
    
   _gaq.push(['_trackEvent', category, action, label]);
}

function getPageLoadTime(beforeload) {
    //calculate the current time in afterload
    var afterload = (new Date()).getTime();
    // now use the beforeload and afterload to calculate the seconds
    seconds = (afterload - beforeload) / 1000;
    return seconds;
  
}
angular.module('Text4Baby.directives', [])
.directive('onFinishRender', function ($timeout) {

    return {
        restrict: 'A',
        link: function (scope, element, attr) {
            if (scope.$last === true) {
                $timeout(function () {
                    scope.$emit('ngRepeatFinished');
                });
            }
        }
    }
})

.directive('backImg', function(){
    return function(scope, element, attrs){
        var url = attrs.backImg;
        element.css({
            'background-image': 'url(' + url +')',
            'background-size' : 'cover'
        });
    };
})


//.directive('scrollTo', function ($location, $anchorScroll) {
//  return function(scope, element, attrs) {

//    element.bind('click', function(event) {
//        event.stopPropagation();
//        var off = scope.$on('$locationChangeStart', function(ev) {
//            off();
//            ev.preventDefault();
//        });
//        var location = attrs.scrollTo;
//        $location.hash(location);
//        $anchorScroll();
//    })
//    }
// })
//    angular.module("MvcQuit4Baby").config($locationProvider, $routeProvider, $compileProvider)
//    $compileProvider.urlSanitizationWhitelist = "/#/";
////      $locationProvider.html5Mode =false;

//    .directive('xref', function ($route, $location) {
//        return {
//            link: function (scope, elm, attr) {
//                elm.on('click', function () {
//                    if ($location.path() === attr.xref) {
//                        $route.reload();
//                    } else {
//                        scope.$apply(function () {
//                            $location.path(attr.xref);
//                        });
//                    }
//                });
//            }
//        };
//    })
angular.module('Text4Baby.services', [])
.service('CommonService', function () {

    this.SaveContactDetails = function ($scope, $http, contactModel, baseUrl, category, headers) {

        // Reason of contact 1 for contact
        contactModel.ContactReason = "1";

        if (ValidateContact(contactModel)) {
            // Display loading 
            $("#c4lhomepopup").css("display", "");
            $("input").prop("disabled", true);

            // disable button
            $('#btncontact').attr('disabled', 'disabled');
            $('#btncontact').removeClass("messagebtn");
            $('#btncontact').addClass("messagebtndisabled");

            var resultPromise = $http({
                method: "POST",
                headers: headers,
                url: baseUrl + "Home/SaveContactDetails",
                data: contactModel,
                async: false,
                cache: false
            });

            resultPromise.success(function (data) {
                //hide loading               
                $("#c4lhomepopup").css("display", "none");
                $("input").prop("disabled", false);
                // enable button
                $('#btncontact').removeAttr('disabled');
                $('#btncontact').removeClass("messagebtndisabled");
                $('#btncontact').addClass("messagebtn");
                // This statement is used for event tracking
                trackEvent(category, "SaveContact", "Success");
                ClearContactUsFields();
                ClearSupportModels(contactModel);
                ShowMessagePopUp("MsgPopContactSuccessful");

            });
            resultPromise.error(function (xhr) {
                //hide loading
                $("#c4lhomepopup").css("display", "none");

                // enable button
                $('#btncontact').removeAttr('disabled');
                $('#btncontact').removeClass("messagebtndisabled");
                $('#btncontact').addClass("messagebtn");

                // This statement is used for event tracking
                trackEvent(category, "SaveContact", "Fail");
                $("input").prop("disabled", false);

                ShowMessagePopUp("MsgPopContactException");



            });
        }

    };

    this.SaveSupportDetails = function ($scope, $http, contactModel, baseUrl, category, headers) {

        // Reason of contact 2 for support
        contactModel.ContactReason = "2";

        if (ValidateSupport(contactModel)) {
            // Show Loading
            $("#c4lhomepopup").css("display", "");
            $("input").prop("disabled", true);

            var resultPromise = $http({
                method: "POST",
                headers: headers,
                url: baseUrl + "Home/SaveContactDetails",
                data: contactModel,
                async: false,
                cache: false
            });

            resultPromise.success(function (data) {
                // Hide Loading
                $("#c4lhomepopup").css("display", "none");
                $("input").prop("disabled", false);

                var resDataContact = data;
                if (data) {
                    CloseSupportSection();
                    CloseModalPopup("ContactUsPopup");
                    ClearSupportModels(contactModel);
                    ShowMessagePopUp("MsgPopContactSuccessful");
                }
                else {
                    EmailErrMsg();
                    $("#spanemailerrin").html(resDataContact.errorMessage);
                }
                // This statement is used for event tracking
                trackEvent(category, "SaveContact", "Success");
            });
            resultPromise.error(function (xhr) {
                // Hide Loading
                $("#c4lhomepopup").css("display", "none");

                // This statement is used for event tracking
                trackEvent(category, "SaveContact", "Fail");
                $("input").prop("disabled", false);
                ShowMessagePopUp("MsgPopContactException");
                // ShowMessagePopUp("MsgPopContactSuccessful");

            });
        }
    };

    this.SignIn = function ($scope, $http, signInFieldModel, baseUrl, category, headers) {
        if (ValidateSignIn(signInFieldModel)) {
            // show loading
            $("#c4lhomepopup").css("display", "");
            $("input").prop("disabled", true);

            var resultPromise = $http({
                method: "POST",
                headers: headers,
                url: baseUrl + "Login/SignIn",
                data: signInFieldModel,
                async: false,
                cache: false
            });

            resultPromise.success(function (data) {

                //hide loading
                $("#c4lhomepopup").css("display", "none");
                $("input").prop("disabled", false);

                // This statement is used for event tracking
                trackEvent(category, "SignIn", "Success");

                if (data.error != null && data.error.Text != '' && data.error.Text != null) {
                    alert(data.error.Text);
                }
                else {
                    window.location.replace(baseUrl + "DashBoard/Index");
                }

            });
            resultPromise.error(function (xhr) {
                //hide loading
                $("#c4lhomepopup").css("display", "none");

                // This statement is used for event tracking
                trackEvent(category, "SignIn", "Fail");
                $("input").prop("disabled", false);

                ShowMessagePopUp("MsgPopContactException");


            });
        }
    };



    this.ChangeCulture = function ($scope, $http, culture, baseUrl, category, headers) {
    

        var resultPromise = $http({
            method: "Get",
            headers: headers,
            url: baseUrl + "Home/ChangeCurrentCulture",
            params: { culture: culture },
            async: false
        });

        resultPromise.success(function (data) {

          
            // This statement is used for event tracking
            trackEvent(category, "ChangeCulture", "Success");
           
          

        });
        resultPromise.error(function (xhr) {

            // This statement is used for event tracking
            trackEvent(category, "ChangeCulture", "Fail");
         

            //To show exception message
            // ShowMessagePopUp("MsgPopContactException");

        });

       
    };

    this.ChangeUrl = function (pageId) {
        var pagename;
        switch (pageId) {

            case "51":
                pagename = "/terms-and-privacy";
                break;
            case "52":
                pagename = "/about/data-and-evaluation";
                break;
            case "53":
                pagename = "/about/message-content";
                break;
            case "54":
                pagename = "/privacy-policy";
                break;
            case "55":
                pagename = "/terms-and-conditions";
                break;
            case "56":
                pagename = "/about/faq";
                break;
            case "57":
                pageId = "/about/how-it-works";
                break;
            case "58":
                pageId = "/about/text4baby";
                break;
            case "59":
                pageId = "/about/who-is-involved";
                break;

            case "60": pagename = "/learn/pregnancy/weight-gain"; break;
            case "61": pagename = "/learn/pregnancy/prenatal-vitamins"; break;
            case "62": pagename = "/learn/pregnancy/folic-acid"; break;
            case "63": pagename = "/learn/pregnancy/breakfast-ideas"; break;
            case "64": pagename = "/learn/pregnancy/breakfast-recipes"; break;
            case "65": pagename = "/learn/pregnancy/healthy-snacks"; break;
            case "66": pagename = "/learn/pregnancy/listeriosis"; break;
            case "67": pagename = "/learn/pregnancy/food-safety"; break;
            case "68": pagename = "/learn/pregnancy/eating-seafood"; break;
            case "69": pagename = "/learn/pregnancy/exercise"; break;
            case "70": pagename = "/learn/pregnancy/exercise-video"; break;
            case "71": pagename = "/learn/pregnancy/visits-video"; break;
            case "72": pagename = "/learn/pregnancy/visits"; break;
            case "73": pagename = "/learn/pregnancy/ultrasound"; break;
            case "74": pagename = "/learn/pregnancy/tests-during-pregnancy"; break;
            case "75": pagename = "/learn/pregnancy/dental-care"; break;
            case "76": pagename = "/learn/pregnancy/babys-development"; break;
            case "77": pagename = "/learn/pregnancy/flu-shot"; break;
            case "78": pagename = "/learn/pregnancy/flu-shot-video"; break;
            case "79": pagename = "/learn/pregnancy/pertussis"; break;
            case "80": pagename = "/learn/pregnancy/signs-of-labor"; break;
            case "81": pagename = "/learn/pregnancy/get-ready-for-labor"; break;
            case "82": pagename = "/learn/pregnancy/why-wait-39-weeks"; break;
            case "83": pagename = "/learn/pregnancy/high-blood-pressure"; break;
            case "84": pagename = "/learn/pregnancy/hiv"; break;
            case "85": pagename = "/learn/pregnancy/anemia"; break;
            case "86": pagename = "/learn/pregnancy/gestational-diabetes"; break;
            case "87": pagename = "/learn/pregnancy/morning-sickness"; break;
            case "88": pagename = "/learn/pregnancy/utis"; break;
            case "89": pagename = "/learn/pregnancy/swelling"; break;
            case "90": pagename = "/learn/pregnancy/stress-and-pregnancy"; break;
            case "91": pagename = "/learn/pregnancy/bleeding-in-pregnancy"; break;
            case "92": pagename = "/learn/pregnancy/reducing-preterm-labor"; break;
            case "93": pagename = "/learn/pregnancy/seatbelts-in-pregnancy"; break;
            case "94": pagename = "/learn/pregnancy/smoking-in-pregnancy"; break;
            case "95": pagename = "/learn/pregnancy/staying-quit"; break;
            case "96": pagename = "/learn/pregnancy/substanc-abuse"; break;
            case "97": pagename = "/learn/pregnancy/x-rays-pregnancy"; break;
            case "98": pagename = "/learn/pregnancy/secondhand-smoke"; break;
            case "99": pagename = "/learn/newmom/growthy-charts"; break;
            case "100": pagename = "/learn/newmom/milestones-month-2"; break;
            case "101": pagename = "/learn/newmom/milestones-month-3"; break;
            case "102": pagename = "/learn/newmom/milestones-month-4"; break;
            case "103": pagename = "/learn/newmom/milestones-month-5"; break;
            case "104": pagename = "/learn/newmom/milestones-month-7"; break;
            case "105": pagename = "/learn/newmom/6-month-visit"; break;
            case "106": pagename = "/learn/newmom/games-4-6-months"; break;
            case "107": pagename = "/learn/newmom/hand-finger-skills"; break;
            case "108": pagename = "/learn/newmom/stranger-anxiety"; break;
            case "109": pagename = "/learn/newmom/crawling"; break;
            case "110": pagename = "/learn/newmom/milestones-month-9"; break;
            case "111": pagename = "/learn/newmom/milestones-month-12"; break;
            case "112": pagename = "/learn/newmom/language-development"; break;
            case "113": pagename = "/learn/newmom/games-10-12-months"; break;
            case "114": pagename = "/learn/newmom/learning-8-12-months"; break;
            case "115": pagename = "/learn/newmom/newborn-care"; break;
            case "116": pagename = "/learn/newmom/safe-sleep"; break;
            case "117": pagename = "/learn/newmom/crying-baby"; break;
            case "118": pagename = "/learn/newmom/tummy-time"; break;
            case "119": pagename = "/learn/newmom/babies-and-tv"; break;
            case "120": pagename = "/learn/newmom/bathing-baby"; break;
            case "121": pagename = "/learn/newmom/handwashing"; break;
            case "122": pagename = "/learn/newmom/bedtime-routines"; break;
            case "123": pagename = "/learn/newmom/making-a-routine"; break;
            case "124": pagename = "/learn/newmom/reading-to-baby"; break;
            case "125": pagename = "/learn/newmom/teething-tips"; break;
            case "126": pagename = "/learn/newmom/tooth-decay"; break;
            case "127": pagename = "/learn/newmom/cavities"; break;
            case "128": pagename = "/learn/newmom/jaundice"; break;
            case "129": pagename = "/learn/newmom/treating-babys-fever"; break;
            case "130": pagename = "/learn/newmom/preemies-corrected-age"; break;
            case "131": pagename = "/learn/newmom/developmental-concerns"; break;
            case "132": pagename = "/learn/newmom/food-allergy"; break;
            case "133": pagename = "/learn/newmom/iron-deficiency"; break;
            case "134": pagename = "/learn/newmom/rsv"; break;
            case "135": pagename = "/learn/newmom/gving-baby-medicine"; break;
            case "136": pagename = "/learn/newmom/protect-baby-from-flu"; break;
            case "137": pagename = "/learn/newmom/vaccines-for-baby"; break;
            case "138": pagename = "/learn/newmom/immunizations-video"; break;
            case "139": pagename = "/learn/newmom/vaccines-for-children"; break;
            case "140": pagename = "/learn/newmom/applying-for-wic"; break;
            case "141": pagename = "/learn/newmom/babys-social-security"; break;
            case "142": pagename = "/learn/newmom/symptom-checker"; break;
            case "143": pagename = "/learn/newmom/newborn-screening"; break;
            case "144": pagename = "/learn/newmom/well-child-visits"; break;
            case "145": pagename = "/learn/newmom/finding-child-care"; break;
            case "146": pagename = "/learn/newmom/state-newborn-screens"; break;
            case "147": pagename = "/learn/newmom/breastfeeding-basics"; break;
            case "148": pagename = "/learn/newmom/breastfeeding-toddler"; break;
            case "149": pagename = "/learn/newmom/how-often-to-feed-baby"; break;
            case "150": pagename = "/learn/newmom/starting-solid-foods"; break;
            case "151": pagename = "/learn/newmom/babys-first-foods"; break;
            case "152": pagename = "/learn/newmom/self-feeding"; break;
            case "153": pagename = "/learn/newmom/sample-menu-8-12-months"; break;
            case "154": pagename = "/learn/newmom/sample-menu-1-year"; break;
            case "155": pagename = "/learn/newmom/choking"; break;
            case "156": pagename = "/learn/newmom/suffocation"; break;
            case "157": pagename = "/learn/newmom/prevent-drowning"; break;
            case "158": pagename = "/learn/newmom/houshold-drowning"; break;
            case "159": pagename = "/learn/newmom/bathroom-safety"; break;
            case "160": pagename = "/learn/newmom/poisoning"; break;
            case "161": pagename = "/learn/newmom/poisoning-and-choking"; break;
            case "162": pagename = "/learn/newmom/sun-safety"; break;
            case "163": pagename = "/learn/newmom/baby-walkers"; break;
            case "164": pagename = "/learn/newmom/healthy-travel"; break;
            case "165": pagename = "/learn/newmom/fire-safety"; break;
            case "166": pagename = "/learn/newmom/carbon-monoxide"; break;
            case "167": pagename = "/learn/newmom/lead-safety"; break;
            case "168": pagename = "/learn/newmom/poisonous-plants"; break;
            case "169": pagename = "/learn/newmom/falls"; break;
            case "170": pagename = "/learn/newmom/burns"; break;
            case "171": pagename = "/learn/newmom/baby-safety-checklist"; break;
            case "172": pagename = "/learn/newmom/car-seat-safety-checks"; break;
            case "173": pagename = "/learn/newmom/rear-facing-car-seat"; break;
            case "174": pagename = "/learn/newmom/car-seats-video"; break;
            case "175": pagename = "/learn/newmom/confident-parenting"; break;
            case "176": pagename = "/learn/newmom/managing-your-stress"; break;
            case "177": pagename = "/learn/newmom/managing-relationships"; break;
            case "178": pagename = "/learn/newmom/pregnancy-babys-dad"; break;
            case "179": pagename = "/learn/newmom/new-baby-dad"; break;
            case "180": pagename = "/learn/newmom/brain-development"; break;
            case "181": pagename = "/centeringla-family-planning"; break;
            case "182": pagename = "/centeringla-relaxation"; break;
            case "183": pagename = "/hotlines"; break;
            case "184": pagename = "/carrier-list"; break;
            case "185": pagename = "/flu-shot-information"; break;
            case "186": pagename = "/for-dad-brain-development"; break;
            case "187": pagename = "/for-dad-new-baby"; break;
            case "188": pagename = "/for-dad-pregnancy-tips"; break;

            case "190": pagename = "/learn/newmom/1-month-visit"; break;
            case "191": pagename = "/learn/newmom/2-month-visit"; break;
            case "192": pagename = "/learn/newmom/4-month-visit"; break;
//            case "193": pagename = "/learn/newmom/6-month-visit"; break;
            case "194": pagename = "/learn/newmom/9-month-visit"; break;
            case "195": pagename = "/learn/newmom/12-month-visit"; break;

            case "196": pagename = "/learn/newmom/making-shots-less-stressful"; break;
            case "197": pagename = "/learn/newmom/vaccines-hepatitis-b"; break;
            case "198": pagename = "/learn/newmom/vaccines-dtap"; break;
            case "199": pagename = "/learn/newmom/vaccines-hib"; break;
            case "200": pagename = "/learn/newmom/vaccines-polio"; break;
            case "201": pagename = "/learn/newmom/vaccines-pcv13"; break;
            case "202": pagename = "/learn/newmom/vaccines-rotavirus"; break;
            case "203": pagename = "/learn/newmom/vaccines-hepatitis-a"; break;
            case "204": pagename = "/learn/newmom/vaccines-mmr"; break;
            case "205": pagename = "/learn/newmom/vaccines-varicella"; break;
            case "206": pagename = "/learn/newmom/vaccines-flu"; break;
        }

        //  window.History.pushState("url", "pagename", pagename); 
        return pagename;

    };

    this.GTMEventTracking = function (pageName, theme, status, functionName) {

        var category = theme + pageName;
        // This statement is used for event tracking
        trackEvent(category, functionName, status);
    };

    this.GetPageId = function (pageName) {
        var pageId;
        pageName = pageName.toLowerCase();
        switch (pageName) {

            case "/terms-and-privacy":
                pageId = "51";
                break;

            case "/about/data-and-evaluation":
                pageId = "52";
                break;
            case "/about/message-content":
                pageId = "53";
                break;
            case "/privacy-policy":
                pageId = "54";
                break;
            case "/terms-and-conditions":
                pageId = "55";
                break;
            case "/about/faq":
                pageId = "56";
                break;
            case "/about/how-it-works":
                pageId = "57";
                break;
            case "/about/text4baby":
                pageId = "58";
                break;
            case "/about/who-is-involved":
                pageId = "59";
                break;

            case "/learn/pregnancy/weight-gain": pageId = "60"; break;
            case "/learn/pregnancy/prenatal-vitamins": pageId = "61"; break;
            case "/learn/pregnancy/folic-acid": pageId = "62"; break;
            case "/learn/pregnancy/breakfast-ideas": pageId = "63"; break;
            case "/learn/pregnancy/breakfast-recipes": pageId = "64"; break;
            case "/learn/pregnancy/healthy-snacks": pageId = "65"; break;
            case "/learn/pregnancy/listeriosis": pageId = "66"; break;
            case "/learn/pregnancy/food-safety": pageId = "67"; break;
            case "/learn/pregnancy/eating-seafood": pageId = "68"; break;
            case "/learn/pregnancy/exercise": pageId = "69"; break;
            case "/learn/pregnancy/exercise-video": pageId = "70"; break;
            case "/learn/pregnancy/visits-video": pageId = "71"; break;
            case "/learn/pregnancy/visits": pageId = "72"; break;
            case "/learn/pregnancy/ultrasound": pageId = "73"; break;
            case "/learn/pregnancy/tests-during-pregnancy": pageId = "74"; break;
            case "/learn/pregnancy/dental-care": pageId = "75"; break;
            case "/learn/pregnancy/babys-development": pageId = "76"; break;
            case "/learn/pregnancy/flu-shot": pageId = "77"; break;
            case "/learn/pregnancy/flu-shot-video": pageId = "78"; break;
            case "/learn/pregnancy/pertussis": pageId = "79"; break;
            case "/learn/pregnancy/signs-of-labor": pageId = "80"; break;
            case "/learn/pregnancy/get-ready-for-labor": pageId = "81"; break;
            case "/learn/pregnancy/why-wait-39-weeks": pageId = "82"; break;
            case "/learn/pregnancy/high-blood-pressure": pageId = "83"; break;
            case "/learn/pregnancy/hiv": pageId = "84"; break;
            case "/learn/pregnancy/anemia": pageId = "85"; break;
            case "/learn/pregnancy/gestational-diabetes": pageId = "86"; break;
            case "/learn/pregnancy/morning-sickness": pageId = "87"; break;
            case "/learn/pregnancy/utis": pageId = "88"; break;
            case "/learn/pregnancy/swelling": pageId = "89"; break;
            case "/learn/pregnancy/stress-and-pregnancy": pageId = "90"; break;
            case "/learn/pregnancy/bleeding-in-pregnancy": pageId = "91"; break;
            case "/learn/pregnancy/reducing-preterm-labor": pageId = "92"; break;
            case "/learn/pregnancy/seatbelts-in-pregnancy": pageId = "93"; break;
            case "/learn/pregnancy/smoking-in-pregnancy": pageId = "94"; break;
            case "/learn/pregnancy/staying-quit": pageId = "95"; break;
            case "/learn/pregnancy/substanc-abuse": pageId = "96"; break;
            case "/learn/pregnancy/x-rays-pregnancy": pageId = "97"; break;
            case "/learn/pregnancy/secondhand-smoke": pageId = "98"; break;
            case "/learn/newmom/growthy-charts": pageId = "99"; break;
            case "/learn/newmom/milestones-month-2": pageId = "100"; break;
            case "/learn/newmom/milestones-month-3": pageId = "101"; break;
            case "/learn/newmom/milestones-month-4": pageId = "102"; break;
            case "/learn/newmom/milestones-month-5": pageId = "103"; break;
            case "/learn/newmom/milestones-month-7": pageId = "104"; break;
            case "/learn/newmom/6-month-visit": pageId = "105"; break;
            case "/learn/newmom/games-4-6-months": pageId = "106"; break;
            case "/learn/newmom/hand-finger-skills": pageId = "107"; break;
            case "/learn/newmom/stranger-anxiety": pageId = "108"; break;
            case "/learn/newmom/crawling": pageId = "109"; break;
            case "/learn/newmom/milestones-month-9": pageId = "110"; break;
            case "/learn/newmom/milestones-month-12": pageId = "111"; break;
            case "/learn/newmom/language-development": pageId = "112"; break;
            case "/learn/newmom/games-10-12-months": pageId = "113"; break;
            case "/learn/newmom/learning-8-12-months": pageId = "114"; break;
            case "/learn/newmom/newborn-care": pageId = "115"; break;
            case "/learn/newmom/safe-sleep": pageId = "116"; break;
            case "/learn/newmom/crying-baby": pageId = "117"; break;
            case "/learn/newmom/tummy-time": pageId = "118"; break;
            case "/learn/newmom/babies-and-tv": pageId = "119"; break;
            case "/learn/newmom/bathing-baby": pageId = "120"; break;
            case "/learn/newmom/handwashing": pageId = "121"; break;
            case "/learn/newmom/bedtime-routines": pageId = "122"; break;
            case "/learn/newmom/making-a-routine": pageId = "123"; break;
            case "/learn/newmom/reading-to-baby": pageId = "124"; break;
            case "/learn/newmom/teething-tips": pageId = "125"; break;
            case "/learn/newmom/tooth-decay": pageId = "126"; break;
            case "/learn/newmom/cavities": pageId = "127"; break;
            case "/learn/newmom/jaundice": pageId = "128"; break;
            case "/learn/newmom/treating-babys-fever": pageId = "129"; break;
            case "/learn/newmom/preemies-corrected-age": pageId = "130"; break;
            case "/learn/newmom/developmental-concerns": pageId = "131"; break;
            case "/learn/newmom/food-allergy": pageId = "132"; break;
            case "/learn/newmom/iron-deficiency": pageId = "133"; break;
            case "/learn/newmom/rsv": pageId = "134"; break;
            case "/learn/newmom/gving-baby-medicine": pageId = "135"; break;
            case "/learn/newmom/protect-baby-from-flu": pageId = "136"; break;
            case "/learn/newmom/vaccines-for-baby": pageId = "137"; break;
            case "/learn/newmom/immunizations-video": pageId = "138"; break;
            case "/learn/newmom/vaccines-for-children": pageId = "139"; break;
            case "/learn/newmom/applying-for-wic": pageId = "140"; break;
            case "/learn/newmom/babys-social-security": pageId = "141"; break;
            case "/learn/newmom/symptom-checker": pageId = "142"; break;
            case "/learn/newmom/newborn-screening": pageId = "143"; break;
            case "/learn/newmom/well-child-visits": pageId = "144"; break;
            case "/learn/newmom/finding-child-care": pageId = "145"; break;
            case "/learn/newmom/state-newborn-screens": pageId = "146"; break;
            case "/learn/newmom/breastfeeding-basics": pageId = "147"; break;
            case "/learn/newmom/breastfeeding-toddler": pageId = "148"; break;
            case "/learn/newmom/how-often-to-feed-baby": pageId = "149"; break;
            case "/learn/newmom/starting-solid-foods": pageId = "150"; break;
            case "/learn/newmom/babys-first-foods": pageId = "151"; break;
            case "/learn/newmom/self-feeding": pageId = "152"; break;
            case "/learn/newmom/sample-menu-8-12-months": pageId = "153"; break;
            case "/learn/newmom/sample-menu-1-year": pageId = "154"; break;
            case "/learn/newmom/choking": pageId = "155"; break;
            case "/learn/newmom/suffocation": pageId = "156"; break;
            case "/learn/newmom/prevent-drowning": pageId = "157"; break;
            case "/learn/newmom/houshold-drowning": pageId = "158"; break;
            case "/learn/newmom/bathroom-safety": pageId = "159"; break;
            case "/learn/newmom/poisoning": pageId = "160"; break;
            case "/learn/newmom/poisoning-and-choking": pageId = "161"; break;
            case "/learn/newmom/sun-safety": pageId = "162"; break;
            case "/learn/newmom/baby-walkers": pageId = "163"; break;
            case "/learn/newmom/healthy-travel": pageId = "164"; break;
            case "/learn/newmom/fire-safety": pageId = "165"; break;
            case "/learn/newmom/carbon-monoxide": pageId = "166"; break;
            case "/learn/newmom/lead-safety": pageId = "167"; break;
            case "/learn/newmom/poisonous-plants": pageId = "168"; break;
            case "/learn/newmom/falls": pageId = "169"; break;
            case "/learn/newmom/burns": pageId = "170"; break;
            case "/learn/newmom/baby-safety-checklist": pageId = "171"; break;
            case "/learn/newmom/car-seat-safety-checks": pageId = "172"; break;
            case "/learn/newmom/rear-facing-car-seat": pageId = "173"; break;
            case "/learn/newmom/car-seats-video": pageId = "174"; break;
            case "/learn/newmom/confident-parenting": pageId = "175"; break;
            case "/learn/newmom/managing-your-stress": pageId = "176"; break;
            case "/learn/newmom/managing-relationships": pageId = "177"; break;
            case "/learn/newmom/pregnancy-babys-dad": pageId = "178"; break;
            case "/learn/newmom/new-baby-dad": pageId = "179"; break;
            case "/learn/newmom/brain-development": pageId = "180"; break;
            case "/centeringla-family-planning": pageId = "181"; break;
            case "/centeringla-relaxation": pageId = "182"; break;
            case "/hotlines": pageId = "183"; break;
            case "/carrier-list": pageId = "184"; break;
            case "/flu-shot-information": pageId = "185"; break;
            case "/for-dad-brain-development": pageId = "186"; break;
            case "/for-dad-new-baby": pageId = "187"; break;
            case "/for-dad-pregnancy-tips": pageId = "188"; break;

            case "/learn/newmom/1-month-visit": pageId = "190"; break;
            case "/learn/newmom/2-month-visit": pageId = "191"; break;
            case "/learn/newmom/4-month-visit": pageId = "192"; break;
//            case "/learn/newmom/6-month-visit": pageId = "193"; break;
            case "/learn/newmom/9-month-visit": pageId = "194"; break;
            case "/learn/newmom/12-month-visit": pageId = "195"; break;


            case "/learn/newmom/making-shots-less-stressful": pageId = "196"; break;
            case "/learn/newmom/vaccines-hepatitis-b": pageId = "197"; break;
            case "/learn/newmom/vaccines-dtap": pageId = "198"; break;
            case "/learn/newmom/vaccines-hib": pageId = "199"; break;
            case "/learn/newmom/vaccines-polio": pageId = "200"; break;
            case "/learn/newmom/vaccines-pcv13": pageId = "201"; break;
            case "/learn/newmom/vaccines-rotavirus": pageId = "202"; break;
            case "/learn/newmom/vaccines-hepatitis-a": pageId = "203"; break;
            case "/learn/newmom/vaccines-mmr": pageId = "204"; break;
            case "/learn/newmom/vaccines-varicella": pageId = "205"; break;
            case "/learn/newmom/vaccines-flu": pageId = "206"; break;
        }

        return pageId;

    };

});



var AboutController = function ($scope, $http, CommonService) {



    var baseUrl = document.location.protocol + "//" + document.location.host + "/";
    var theme = $("#hdnTheme").val();
    var category = theme + document.location.pathname;
    var token = $('input[name=""__RequestVerificationToken""]').val();
    var headers = {};
    // other headers omitted
    headers['__RequestVerificationToken'] = token;

    //hide loading
    $("#c4lhomepopup").css("display", "none");



    // This function is used to bind Learn page on page load and culture change
    BindAboutPages();

    // This function is used to bind Learn page on page load and culture change
    function BindAboutPages(culture) {

        if (culture == undefined || culture == "" || culture == null) {
            culture = "";
        }

        var pageId = $("#hdnPageId").val();
        pageId = CommonService.GetPageId(document.location.pathname);

        // To show Learn link active
        if (pageId !== "54" && pageId !== "55") {
            $('#aboutBtn').addClass("navactive");
        }

        var resultPromise = $http({
            method: "Get",
            headers: headers,
            url: baseUrl + "About/BindAboutPage",
            params: { pageId: pageId, culture: culture },      
            async: false
        });

        resultPromise.success(function (data) {

            data.aboutTextModel.Html = data.aboutTextModel.Html.replace(/&amp;/g, '&');
            $scope.contactModel = data.contactModel;
            $scope.aboutTextModel = data.aboutTextModel;
            $scope.footerModel = data.footerModel;
            $scope.headerModel = data.headerModel;
            $scope.messageBoxModel = data.messageBoxModel;
            $scope.signInModels = data.signInModels;

            $(document).prop('title', data.aboutTextModel.PageTitle);

            // This statement is used for event tracking
            trackEvent(category, "LoadAboutPage", "Success");



            // change left menu selection
        });
        resultPromise.error(function (xhr) {
            // This statement is used for event tracking
            trackEvent(category, "LoadAboutPage", "Fail");

            //To show exception message
            ShowMessagePopUp("MsgPopContactException");

        });
    }

    // This function is used to change culture of page
    $scope.ChangeCulture = function (culture) {

     //   $.when(CommonService.ChangeCulture($scope, $http, culture, baseUrl, category, headers), setTimeout(function () { }, 500)).done(function () {
        BindAboutPages(culture);
     //   }); 

        // move to top
        //        $('html,body').animate({
        //            scrollTop: $('body').offset().top
        //        }, 0);

    }

    // This function is used to save support details
    $scope.SaveContact = function (contactModel) {
        CommonService.SaveSupportDetails($scope, $http, contactModel, baseUrl, category, headers);

    }

    // This function is used to bind Learn page on angular request
    $scope.LoadAboutPageContent = function (pageId) {
        $("#hdnPageId").val(pageId);
        // change url
        var pageName = CommonService.ChangeUrl(pageId);

        // change left menu selection

        var resultPromise = $http({
            method: "Get",
            headers: headers,
            url: baseUrl + "About/GetAboutPageContent",
            params: { pageId: pageId },
            async: false
        });

        resultPromise.success(function (data) {
            $scope.aboutTextModel = data.aboutTextModel;

            $(document).prop('title', data.aboutTextModel.PageTitle);

            // This statement is used for event tracking         
            CommonService.GTMEventTracking(pageName, theme, "Success", "LoadAboutPageContent");

        });
        resultPromise.error(function (xhr) {
            // This statement is used for event tracking
            CommonService.GTMEventTracking(pageName, theme, "Fail", "LoadAboutPageContent");

            //To show exception message
            ShowMessagePopUp("MsgPopContactException");

        });
    }
}


var IndexController = function ($scope, $http, $timeout, CommonService) {


    var baseUrl = document.location.protocol + "//" + document.location.host + "/";
    var category = $("#hdnTheme").val() + "/Home";

    var token = $('input[name=""__RequestVerificationToken""]').val();
    var headers = {};
    // other headers omitted
    headers['__RequestVerificationToken'] = token;
    //hide loading
    $("#c4lhomepopup").css("display", "none");

    // This function is called to bind home page on page load
    BindPage();

    // This function is used to save contact details
    $scope.SaveContact = function (contactModel) {

        CommonService.SaveContactDetails($scope, $http, contactModel, baseUrl, category, headers);

    }

    // This function is used to bind home page
    function BindPage(changeCulture, culture) {

        // ngProgress.complete();
        // <!-- bind Header Links--> 
        $("#featuresBtn").attr("href", "#features");
        $("#testimonialsBtn").attr("href", "#testimonials");
        $("#contactBtn").attr("href", "#contact");
        // <!-- bind Header Links--> 

        if (culture == undefined || culture == "" || culture == null) {
            culture = "";
        }
        var resultPromise = $http({
            method: "Get",
            headers: headers,
            url: baseUrl + "Home/BindPage",
            params: { culture: culture },
            async: false,
            cache: false
        });
        //  var resultPromise = $http.get("/Home/BindPage");
        resultPromise.success(function (data) {

            $scope.contactModel = data.contactModel;
            $scope.featuresModel = data.featuresModel;
            $scope.footerModel = data.footerModel;
            $scope.headerModel = data.headerModel;
            $scope.testimonialsModel = data.testimonialsModel;
            $scope.bannersModel = data.bannersModel;
            $scope.messageBoxModel = data.messageBoxModel;

            //signin section
            $scope.signInTextModel = data.signInModels.signInTextModel;
            $scope.signInFieldModel = data.signInModels.signInFieldModel;
            $scope.signInFieldValidationModel = data.signInModels.signInFieldValidationModel;

            //bind banner
            $("#banner").css("display", "none");
            $(".slide-four.banner-clone").find("img").attr("src", data.bannersModel.lstBanner[0].ImageUrl);
            $(".slide-four.banner-clone").find("div").children("h3").html(data.bannersModel.lstBanner[0].HeaderText);
            $(".slide-four.banner-clone").find("div").children("p").find('[class*=video]').html(data.bannersModel.LinkText2);
            $(".slide-four.banner-clone").find("div").children("p").find('[class*=signup]').html(data.bannersModel.LinkText1);

            $(".slide-one.banner-clone").find("img").attr("src", data.bannersModel.lstBanner[0].ImageUrl);
            $(".slide-one.banner-clone").find("div").children("h3").html(data.bannersModel.lstBanner[0].HeaderText);
            $(".slide-one.banner-clone").find("div").children("p").find('[class*=video]').html(data.bannersModel.LinkText2);
            $(".slide-one.banner-clone").find("div").children("p").find('[class*=signup]').html(data.bannersModel.LinkText1);


            // <!-- bind banner cloned items-->  
            $("#banner").trigger("resize");
            $("#banner").css("display", "");


            // bind sign-in section
            $("#SignInButtonText").text(data.signInModels.signInTextModel.SignInButtonText);
            $("#SignInPhoneNoLabel").text(data.signInModels.signInTextModel.SignInPhoneNoLabel);
            $("#SignInPasswordLabel").text(data.signInModels.signInTextModel.SignInPasswordLabel);
            $("#SignInRememberLabel").text(data.signInModels.signInTextModel.SignInRememberLabel);
            $("#SignInResetLinkText").text(data.signInModels.signInTextModel.SignInResetLinkText);
            $("#SignInAdministratorLinkText").text(data.signInModels.signInTextModel.SignInAdministratorLinkText);
            $("#SignInHelpText").text(data.signInModels.signInTextModel.SignInHelpText);
            $("#btnSignIn").text(data.signInModels.signInTextModel.SignInButtonText);


            // set culture in hidden field
            var culture;
            if (data.headerModel.Culture == "es") {
                culture = "en"
            }
            else {
                culture = "es"
            }
            $("#hdnCulture").val(culture);

            // hide app icon for spanish
            if (culture == "es") {
                $('#appIcon').css("display", "none");
                $('#video1').css("display", "none");
            }
            else {
                $('#appIcon').css("display", "");
                $('#video1').css("display", "");
            }

            $("#hdnPosition").val("0");
            $("#hdnMomsLength").val(data.testimonialsModel.lstTestimonialMom.length);
            $("#hdnExpertsLength").val(data.testimonialsModel.lstTestimonialExpert.length);
            $("#hdnCommunityLength").val(data.testimonialsModel.lstTestimonialCommunity.length);
            //set position and length of testimonial carousal


            // bind videos of testimonial section
            // bind testimonial mom section list video and images
            //            var momHtmlList = " ";
            //            for (var momidx = 0; momidx < data.testimonialsModel.lstTestimonialMom.length; momidx++) {
            //                if (data.testimonialsModel.lstTestimonialMom[0].IsVideo == "1") {
            //                    momHtmlList += "<div class='item'><div><a style='cursor:pointer' onclick='LoadVideo('" + data.testimonialsModel.lstTestimonialMom[momidx].VideoUrl + "','" + data.testimonialsModel.lstTestimonialMom[momidx].Name + "', 'moms')' ><img alt='' src='" + data.testimonialsModel.lstTestimonialMom[momidx].ThumbnailImageUrl + "' > <span ng-bind='" + data.testimonialsModel.lstTestimonialMom[momidx].Name + "'></span><span class='video-icon'><img alt='' src='/images/en/video-play-icon.png'></span></a></div></div>";
            //                }
            //                else {
            //                    momHtmlList += "<div class='item'><div><a style='cursor:pointer' onclick='LoadImage('" + data.testimonialsModel.lstTestimonialMom[momidx].ImageUrl + "','" + data.testimonialsModel.lstTestimonialMom[momidx].Name + "','" + data.testimonialsModel.lstTestimonialMom[momidx].Message + "','moms')'><img alt='' src='" + data.testimonialsModel.lstTestimonialMom[momidx].ThumbnailImageUrl + "' ><span ng-bind='" + data.testimonialsModel.lstTestimonialMom[momidx].Name + "'></span></a></div></div>";
            //                }
            //            }
            BindTestimonialLists(data.testimonialsModel.lstTestimonialMom, "owl-demo", "moms");
            //  BindTestimonialLists(data.testimonialsModel.lstTestimonialExpert, "owl-demo1", "experts");
            // BindTestimonialLists(data.testimonialsModel.lstTestimonialCommunity, "owl-demo2", "community");


            // Mom section
            if (data.testimonialsModel.lstTestimonialMom.length > 0) {
                if (data.testimonialsModel.lstTestimonialMom[0].IsVideo == "1") {

                    SetTestimonialVideo(data.testimonialsModel.lstTestimonialMom[0].ImageUrl, data.testimonialsModel.lstTestimonialMom[0].VideoUrl, "divMomPlayer", "videoMomObject");
                    $("#spnMomTitle").text(data.testimonialsModel.lstTestimonialMom[0].Name);

                    $("#dvMomVideoBlock").css("display", "");
                    $("#dvMomImageBlock").css("display", "none");

                }
                else {

                    data.testimonialsModel.lstTestimonialMom[0].Message = data.testimonialsModel.lstTestimonialMom[0].Message.replace(/\[quot]/g, "'"); //replace single quotes
                    data.testimonialsModel.lstTestimonialMom[0].Message = data.testimonialsModel.lstTestimonialMom[0].Message.replace(/\[dblquot]/g, '"'); //replace double quotes
                    data.testimonialsModel.lstTestimonialMom[0].Message = data.testimonialsModel.lstTestimonialMom[0].Message.replace(/\[comma]/g, ","); //replace comma
                    data.testimonialsModel.lstTestimonialMom[0].Name = data.testimonialsModel.lstTestimonialMom[0].Name.replace(/\[quot]/g, "'"); //replace single quotes
                    data.testimonialsModel.lstTestimonialMom[0].Name = data.testimonialsModel.lstTestimonialMom[0].Name.replace(/\[dblquot]/g, '"'); //replace double quotes

                    $("#imgTestimonialMomImage").attr("src", data.testimonialsModel.lstTestimonialMom[0].ImageUrl);
                    $("#spnTestimonialMomName").text(data.testimonialsModel.lstTestimonialMom[0].Name);
                    $("#pTestimonialMomMessage").text(data.testimonialsModel.lstTestimonialMom[0].Message);

                    $("#dvMomVideoBlock").css("display", "none");
                    $("#dvMomImageBlock").css("display", "");

                }
            }
            //Expert section
            if (data.testimonialsModel.lstTestimonialExpert.length > 0) {
                if (data.testimonialsModel.lstTestimonialExpert[0].IsVideo == "1") {
                    SetTestimonialVideo(data.testimonialsModel.lstTestimonialExpert[0].ImageUrl, data.testimonialsModel.lstTestimonialExpert[0].VideoUrl, "divExpertPlayer", "videoExpertObject");
                    $("#spnExpertTitle").text(data.testimonialsModel.lstTestimonialExpert[0].Name);

                    $("#dvExpertVideoBlock").css("display", "");
                    $("#dvExpertImageBlock").css("display", "none");

                }
                else {
                    data.testimonialsModel.lstTestimonialExpert[0].Message = data.testimonialsModel.lstTestimonialExpert[0].Message.replace(/\[quot]/g, "'"); //replace single quotes
                    data.testimonialsModel.lstTestimonialExpert[0].Message = data.testimonialsModel.lstTestimonialExpert[0].Message.replace(/\[dblquot]/g, '"'); //replace double quotes
                    data.testimonialsModel.lstTestimonialExpert[0].Message = data.testimonialsModel.lstTestimonialExpert[0].Message.replace(/\[comma]/g, ","); //replace comma
                    data.testimonialsModel.lstTestimonialExpert[0].Name = data.testimonialsModel.lstTestimonialExpert[0].Name.replace(/\[quot]/g, "'"); //replace single quotes
                    data.testimonialsModel.lstTestimonialExpert[0].Name = data.testimonialsModel.lstTestimonialExpert[0].Name.replace(/\[dblquot]/g, '"'); //replace double quotes

                    $("#imgTestimonialExpertImage").attr("src", data.testimonialsModel.lstTestimonialExpert[0].ImageUrl);
                    $("#spnTestimonialExpertName").text(data.testimonialsModel.lstTestimonialExpert[0].Name);
                    $("#pTestimonialExpertMessage").text(data.testimonialsModel.lstTestimonialExpert[0].Message);

                    $("#dvExpertVideoBlock").css("display", "none");
                    $("#dvExpertImageBlock").css("display", "");

                }
            }

            //Community section
            if (data.testimonialsModel.lstTestimonialCommunity.length > 0) {
                if (data.testimonialsModel.lstTestimonialCommunity[0].IsVideo == "1") {
                    SetTestimonialVideo(data.testimonialsModel.lstTestimonialCommunity[0].ImageUrl, data.testimonialsModel.lstTestimonialCommunity[0].VideoUrl, "divCommunityPlayer", "videoCommunityObject");
                    $("#spnCommunityTitle").text(data.testimonialsModel.lstTestimonialCommunity[0].Name);

                    $("#dvCommunityVideoBlock").css("display", "");
                    $("#dvCommunityImageBlock").css("display", "none");

                }
                else {

                    data.testimonialsModel.lstTestimonialCommunity[0].Message = data.testimonialsModel.lstTestimonialCommunity[0].Message.replace(/\[quot]/g, "'"); //replace single quotes
                    data.testimonialsModel.lstTestimonialCommunity[0].Message = data.testimonialsModel.lstTestimonialCommunity[0].Message.replace(/\[dblquot]/g, '"'); //replace double quotes
                    data.testimonialsModel.lstTestimonialCommunity[0].Message = data.testimonialsModel.lstTestimonialCommunity[0].Message.replace(/\[comma]/g, ","); //replace comma
                    data.testimonialsModel.lstTestimonialCommunity[0].Name = data.testimonialsModel.lstTestimonialCommunity[0].Name.replace(/\[quot]/g, "'"); //replace single quotes
                    data.testimonialsModel.lstTestimonialCommunity[0].Name = data.testimonialsModel.lstTestimonialCommunity[0].Name.replace(/\[dblquot]/g, '"'); //replace double quotes

                    $("#imgTestimonialCommunityImage").attr("src", data.testimonialsModel.lstTestimonialCommunity[0].ImageUrl);
                    $("#spnTestimonialCommunityName").text(data.testimonialsModel.lstTestimonialCommunity[0].Name);
                    $("#pTestimonialCommunityMessage").text(data.testimonialsModel.lstTestimonialCommunity[0].Message);

                    $("#dvCommunityVideoBlock").css("display", "none");
                    $("#dvCommunityImageBlock").css("display", "");

                }
            }


            // <!-- bind banner cloned items-->  
            //            $(".slide-four.banner-clone").find("img").attr("src", data.bannersModel.lstBanner[3].ImageUrl);
            //            $(".slide-four.banner-clone").find("div").children("h3").html(data.bannersModel.lstBanner[3].HeaderText);
            //            $(".slide-four.banner-clone").find("div").children("p").find('[class*=video]').html(data.bannersModel.LinkText2);
            //            $(".slide-four.banner-clone").find("div").children("p").find('[class*=signup]').html(data.bannersModel.LinkText1);
            if (changeCulture == "1") {
                ReloadMomTestimonialLists();
                ReloadExpertsTestimonialLists();
                ReloadCommunityTestimonialLists();
            }
            // This statement is used for event tracking
            trackEvent(category, "LoadHomePage", "Success");

        });
        resultPromise.error(function (xhr) {
            //To show exception message
            ShowMessagePopUp("MsgPopContactException");
            // This statement is used for event tracking
            trackEvent(category, "LoadHomePage", "Fail");

        });
    }

    $timeout(function () {
        setTimeout(function () {
            // show selected menu on home page
            // $(document).on("scroll", onScroll); 
            var qstring = location.search;
            var qstring2 = qstring.split('?');
            var positionlink = ($('#navigation-affix').css('position'));
            if (qstring2[1] == "name=contact") {

                $('html,body').animate({
                    scrollTop: $('#contact').offset().top - 50
                }, 1500);

                $('.nav ul li a').removeClass("navactive");
                $('#contactBtn').addClass("navactive");

            }
            else if (qstring2[1] == "name=testimonials") {

                $('html,body').animate({
                    scrollTop: $('#testimonials').offset().top - 110
                }, 1500);

                $('.nav ul li a').removeClass("navactive");
                $('#testimonialsBtn').addClass("navactive");

            }
            else if (qstring2[1] == "name=features") {

                $('html,body').animate({
                    scrollTop: $('#features').offset().top
                }, 1500);
                $('.nav ul li a').removeClass("navactive");
                $('#featuresBtn').addClass("navactive");

            }


        }, 2500);
    });



    // This function is used to show selected testimonial section
    $scope.ShowSelectedItem = function (type) {

        setTimeout(function () {
            var index = parseInt($("#hdnPosition").val());

            if (type == "") {
                type = $("#hdnActiveTab").val();
            }
            if (type == "moms") {
                if ($scope.testimonialsModel.lstTestimonialMom[index].IsVideo == "1") {

                    LoadVideo($scope.testimonialsModel.lstTestimonialMom[index].VideoUrl, $scope.testimonialsModel.lstTestimonialMom[index].Name, type);
                }
                else {
                    LoadImage($scope.testimonialsModel.lstTestimonialMom[index].ImageUrl, $scope.testimonialsModel.lstTestimonialMom[index].Name, $scope.testimonialsModel.lstTestimonialMom[index].Message, type);
                }


            }
            else if (type == "experts") {

                if ($scope.testimonialsModel.lstTestimonialExpert[index].IsVideo == "1") {

                    LoadVideo($scope.testimonialsModel.lstTestimonialExpert[index].VideoUrl, $scope.testimonialsModel.lstTestimonialExpert[index].Name, type);
                }
                else {
                    LoadImage($scope.testimonialsModel.lstTestimonialExpert[index].ImageUrl, $scope.testimonialsModel.lstTestimonialExpert[index].Name, $scope.testimonialsModel.lstTestimonialExpert[index].Message, type);
                }

            }
            else if (type == "community") {
                if ($scope.testimonialsModel.lstTestimonialCommunity[index].IsVideo == "1") {

                    LoadVideo($scope.testimonialsModel.lstTestimonialCommunity[index].VideoUrl, $scope.testimonialsModel.lstTestimonialCommunity[index].Name, type);
                }
                else {
                    LoadImage($scope.testimonialsModel.lstTestimonialCommunity[index].ImageUrl, $scope.testimonialsModel.lstTestimonialCommunity[index].Name, $scope.testimonialsModel.lstTestimonialCommunity[index].Message, type);
                }
            }
        }, 100);

    }
    // This function is used for sign in user 
    $scope.SignIn = function (signInFieldModel) {

        signInFieldModel.Password = $("#txtSignInPassword").val();
        signInFieldModel.PhoneNo = $("#txtSignInPhoneNo").val();

        if ($('[id=chkRemember]:checked').val() == "on") {
            signInFieldModel.RememberMe = true;
        }
        else {
            signInFieldModel.RememberMe = false;
        }

        CommonService.SignIn($scope, $http, signInFieldModel, baseUrl, category, headers);
    }

    // This function is used to open video popup
    $scope.OpenVideoPopup = function (videoUrl) {
        DisableTouchMove();
        $("body").bind("keydown keyup", false);
        // $('body').css('overflow', 'hidden');
        // $('body').css('position', 'fixed');
        $('#slides').superslides('stop');
        videoUrl = videoUrl.replace("autoplay=0", "autoplay=1");
        $('#c4lvideohomeid').attr('src', videoUrl);
        //e.preventDefault();
        $('#c4lvideopopup').show();
        $("#home-popup, .modal-backdrop").css('display', 'block');
    }

    // This function is used to change culture of page
    $scope.ChangeCulture = function (culture) {

        //  $.when(CommonService.ChangeCulture($scope, $http, culture, baseUrl, category, headers), test()).done(function () {

        BindPage("1", culture); // pass 1 to reload testimonial

        //      });

        // hide app icon for spanish
        if (culture == "es") {
            $('#appIcon').css("display", "none");
            $('#video1').css("display", "none");
            
        }
        else {
            $('#appIcon').css("display", "");
            $('#video1').css("display", "");
        }

        // Reset contactus fields
        ClearContactUsFields();

    }

    function test() {
        setTimeout(function () { var a; }, 500);
    }

    // This function is used to load video on page
    $scope.LoadVideo = function (VideoUrl, name, sectionName) {

        // $('#videoObject').html(VideoUrl);

        if (sectionName == "community") {
            labnolIframe(VideoUrl, "videoCommunityObject", "0");
            $("#spnCommunityTitle").text(name);
            $("#dvCommunityVideoBlock").css("display", "");
            $("#dvCommunityImageBlock").css("display", "none");
        }
        else if (sectionName == "moms") {
            labnolIframe(VideoUrl, "videoMomObject", "0");
            $("#spnMomTitle").text(name);
            $("#dvMomVideoBlock").css("display", "");
            $("#dvMomImageBlock").css("display", "none");
        }
        else if (sectionName == "experts") {
            labnolIframe(VideoUrl, "videoExpertObject", "0");
            $("#spnExpertTitle").text(name);
            $("#dvExpertVideoBlock").css("display", "");
            $("#dvExpertImageBlock").css("display", "none");
        }

    }

    // This function is used to load image on page
    $scope.LoadImage = function (ImageUrl, name, message, sectionName) {

        message = message.replace(/\[quot]/g, "'"); //replace single quotes
        message = message.replace(/\[dblquot]/g, '"'); //replace double quotes

        message = message.replace(/\[comma]/g, ","); //replace comma

        name = name.replace(/\[quot]/g, "'"); //replace single quotes
        name = name.replace(/\[dblquot]/g, '"'); //replace double quotes


        if (sectionName == "community") {
            $("#imgTestimonialCommunityImage").attr("src", ImageUrl);
            $("#spnTestimonialCommunityName").text(name);
            $("#pTestimonialCommunityMessage").text(message);
            $("#dvCommunityVideoBlock").css("display", "none");
            $("#dvCommunityImageBlock").css("display", "");
        }
        else if (sectionName == "moms") {
            $("#imgTestimonialMomImage").attr("src", ImageUrl);
            $("#spnTestimonialMomName").text(name);
            $("#pTestimonialMomMessage").text(message);
            $("#dvMomVideoBlock").css("display", "none");
            $("#dvMomImageBlock").css("display", "");
        }
        else if (sectionName == "experts") {
            $("#imgTestimonialExpertImage").attr("src", ImageUrl);
            $("#spnTestimonialExpertName").text(name);
            $("#pTestimonialExpertMessage").text(message);
            $("#dvExpertVideoBlock").css("display", "none");
            $("#dvExpertImageBlock").css("display", "");
        }

    }


    //    $scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
    //        

    //        ; (function ($) {
    //            var delay = 0;
    //            $.fn.translate3d = function (translations, speed, easing, complete) {
    //                var opt = $.speed(speed, easing, complete);
    //                opt.easing = opt.easing || 'ease';
    //                translations = $.extend({ x: 0, y: 0, z: 0 }, translations);

    //                return this.each(function () {
    //                    var $this = $(this);

    //                    $this.css({
    //                        transitionDuration: opt.duration + 'ms',
    //                        transitionTimingFunction: opt.easing,
    //                        transform: 'translate3d(' + translations.x + 'px, ' + translations.y + 'px, ' + translations.z + 'px)'
    //                    });

    //                    setTimeout(function () {
    //                        $this.css({
    //                            transitionDuration: '0s',
    //                            transitionTimingFunction: 'ease'
    //                        });

    //                        opt.complete();
    //                    }, opt.duration + (delay || 0));
    //                });
    //            };
    //        })(jQuery);

    //        //you also get the actual event object
    //        //do stuff, execute functions -- whatever...   
    //        $("#div-1").addClass("slick-active");
    //        $("#div0").addClass("slick-active");
    //        $("#div0").addClass("slick-center");
    //        $("#div1").addClass("slick-active");



    //    });

}





var LearnController = function ($scope, $http, CommonService) {



    var baseUrl = document.location.protocol + "//" + document.location.host + "/";
    var theme = $("#hdnTheme").val();
    var category = theme + document.location.pathname;
    var token = $('input[name=""__RequestVerificationToken""]').val();
    var headers = {};
    // other headers omitted
    headers['__RequestVerificationToken'] = token;
    var History = window.History;
    var initialUrl = document.location.href;
    //hide loading
    $("#c4lhomepopup").css("display", "none");

    // To show Learn link active
    $('#learnBtn').addClass("navactive");

    // This function is used to bind Learn page on page load and culture change
    BindLearnPages();

    // This function is used to bind Learn page on page load and culture change
    function BindLearnPages(culture) {
        var pageId;
        initialUrl = document.location.href;
        if (culture == undefined || culture == "" || culture == null) {
            culture = "";
        }
        var State = History.getState(); // Note: We are using History.getState() instead of event.state
        pageId = State.data.pageId;
        if (pageId == "" || pageId == null || pageId == undefined) {
            pageId = CommonService.GetPageId(document.location.pathname);
        }

        $("#hdnPageId").val(pageId);

        var resultPromise = $http({
            method: "Get",
            headers: headers,
            url: baseUrl + "Learn/BindLearnPage",
            params: { pageId: pageId, culture: culture },
            async: false
        });

        resultPromise.success(function (data) {

            $scope.contactModel = data.contactModel;
            $scope.learnTextModel = data.learnTextModel;
            $scope.footerModel = data.footerModel;
            $scope.headerModel = data.headerModel;
            $scope.messageBoxModel = data.messageBoxModel;
            $scope.leftMenuModel = data.leftMenuModel;
            $scope.signInModels = data.signInModels;
            $scope.quizModel = data.learnTextModel.quizs;

            // set display of quiz section
            SetQuizDisplay(data.learnTextModel.quizs);

            $(document).prop('title', data.learnTextModel.PageTitle);

            var pageName = CommonService.ChangeUrl(pageId);

            History.pushState({ content: data.learnTextModel, pageId: pageId }, data.learnTextModel.PageTitle, pageName);
            // history.replaceState({ content: data.learnTextModel, pageId: pageId }, data.learnTextModel.PageTitle, pageName);


            // This statement is used for event tracking
            trackEvent(category, "LoadLearnPage", "Success");


        });
        resultPromise.error(function (xhr) {
            // This statement is used for event tracking
            trackEvent(category, "LoadLearnPage", "Fail");

            //To show exception message
            ShowMessagePopUp("MsgPopContactException");

        });
    }


    // This function is used to change culture of page
    $scope.ChangeCulture = function (culture) {
           //  $.when(CommonService.ChangeCulture($scope, $http, culture, baseUrl, category, headers), setTimeout(function () { }, 500)).done(function () {
        BindLearnPages(culture);
        
        //  });

        $('.radio input').removeAttr('checked');
        // move to top
        //        $('html,body').animate({
        //            scrollTop: $('body').offset().top
        //        }, 0); 


    }

    $scope.MatchAnswer = function (selectedAns, correctOpt) {

        $('#dvQuizAnswer').css("display", "");

        if (selectedAns == correctOpt) {
            //show correct answer and add class
            $('#dvQuizAnswer').removeClass('quiz-wrong');
            $('#dvQuizAnswer').addClass('quiz-ans');
            $('#lblAns').text($scope.learnTextModel.LearnAnsRight);

        }
        else {
            //show wrong answer and add class
            //  $('#dvQuizAnswer').removeClass('quiz-ans');
            $('#dvQuizAnswer').addClass('quiz-wrong');
            $('#lblAns').text($scope.learnTextModel.LearnAnsWrong);

        }
    }

    // This function is used to save support details
    $scope.SaveContact = function (contactModel) {
        CommonService.SaveSupportDetails($scope, $http, contactModel, baseUrl, category, headers);

    }

    // This function is used to bind Learn page on angular request
    $scope.LoadLearnPageContent = function (pageId) {

        LoadPageContent(pageId);
        $('.radio input').removeAttr('checked');

        var menuId = "LearnleftMenu" + pageId;
        ShowSelectedMenu(menuId);

    }

    function LoadPageContent(pageId) {

        $('html,body').animate({
            scrollTop:0
        }, 10);

        $("#hdnPageId").val(pageId);

        initialUrl = document.location.href;
        // change left menu selection

        var resultPromise = $http({
            method: "Get",
            headers: headers,
            url: baseUrl + "Learn/GetLearnPageContent",
            params: { pageId: pageId },
            async: false
        });

        resultPromise.success(function (data) {
            $scope.learnTextModel = data.learnTextModel;
            $scope.quizModel = data.learnTextModel.quizs;

            // set display of quiz section
            SetQuizDisplay(data.learnTextModel.quizs);

            $(document).prop('title', data.learnTextModel.PageTitle);

            var pageName = CommonService.ChangeUrl(pageId);

            History.pushState({ content: data.learnTextModel, pageId: pageId }, data.learnTextModel.PageTitle, pageName);


            // This statement is used for event tracking         
            CommonService.GTMEventTracking(pageName, theme, "Success", "LoadLearnPageContent");

        });
        resultPromise.error(function (xhr) {
            // This statement is used for event tracking
            CommonService.GTMEventTracking(pageName, theme, "Fail", "LoadLearnPageContent");

            //To show exception message
            ShowMessagePopUp("MsgPopContactException");

        });
    }

    // THIS EVENT WILL FIRE WHEN CLICK ON BROWSER BACK BUTTON
    History.Adapter.bind(window, 'statechange', function () { // Note: We are using statechange instead of popstate
        var State = History.getState(); // Note: We are using History.getState() instead of event.state

        var url = State.cleanUrl;

        //BindLearnPages();
        $("#hdnPageId").val(State.data.pageId);

        $("#dvLearnContent").html(State.data.content.LearnHtml);

        $("#dvPageHeading").html(State.data.content.PageTitle);

        $(".mainblocks").nextAll('ul').css("display", "none");
        $(".mainblocks").find('span').text(">");
        $(".mainblocks").removeClass("active1");
        $(".mainblocks").removeClass("active");

        var menuId = "LearnleftMenu" + State.data.pageId;
        ShowSelectedMenu(menuId);

        $("#lblQuestion").text(State.data.content.quizs.Question);
        $("#lblopt1").text(State.data.content.quizs.QuizOption1);
        $("#lblopt2").text(State.data.content.quizs.QuizOption2);
        $("#lblopt3").text(State.data.content.quizs.QuizOption3);
        $("#dvAnswerText").text(State.data.content.quizs.AnswerText);

        // set display of quiz section
        SetQuizDisplay(State.data.content.quizs);

    });



}



var SignupController = function ($scope, $http, CommonService) {



    var baseUrl = document.location.protocol + "//" + document.location.host + "/";
    var category = $("#hdnTheme").val() + "/SignUp";
    var token = $('input[name=""__RequestVerificationToken""]').val();
    var headers = {};
    // other headers omitted
    headers['__RequestVerificationToken'] = token;

    //hide loading
    $("#c4lhomepopup").css("display", "none");

    // To show SignUp link active
    $('#btnSignUp').addClass("navactive");

    // This function is called to bind Signup page on page load
    BindSignupPage();

    // This function is used to save signup details on signup page
    $scope.SaveSignUpDetails = function (signUpFieldModel) {

        $('#hdnIsSubmitted').val("1");
        signUpFieldModel.MobileNo = $("#TxtMobileNo").val();


        if ($("#hdnParticipantCode").val() != "0") {
            signUpFieldModel.ParticipantCode = $("#hdnParticipantCode").val();
        }
        else {
            signUpFieldModel.ParticipantCode = $("#txtParticipantCode").val();
        }

        // This statement is used to set values of calendar and radio button in sign up model
        if (signUpFieldModel.CustomerType.Value == "1") {
            signUpFieldModel.RbAns = $('[name="RbDueDate"]:checked').prop('value');
        }
        else {
            signUpFieldModel.RbAns = "";
        }
        signUpFieldModel.ParticipantCodeAns = $('[name="rdoParticipantCode"]:checked').prop('value');

        var BabyDueDate;
        var MenstrualDate;
        var BabyBirthDate;
        var DueBirthDate;

        if ($("#txtDueDate").val() != "") {
            BabyDueDate = new Date($("#txtDueDate").val());
            signUpFieldModel.BabyDueDate = getDate(BabyDueDate);
        }
        else if ($("#txtMenstrualDate").val() != "") {
            MenstrualDate = new Date($("#txtMenstrualDate").val());
            signUpFieldModel.MenstrualDate = getDate(MenstrualDate);
        }
        else if ($("#txtBirthdate").val() != "") {
            BabyBirthDate = new Date($("#txtBirthdate").val());
            signUpFieldModel.BabyBirthDate = getDate(BabyBirthDate);
        }
        else if ($("#txtOthersDate").val() != "") {
            DueBirthDate = new Date($("#txtOthersDate").val());
            signUpFieldModel.DueBirthDate = getDate(DueBirthDate);
        }

        // validate signup model
        if (ValidateSignUp(signUpFieldModel, 2)) {
            // show loading
            $("#c4lhomepopup").css("display", "");
            $("input").prop("disabled", true);
            $("body").bind("keydown keyup", false);
            //disable submit button
            $('#btnSignUp').attr('disabled', 'disabled');
            $('#btnSignUp').removeClass("signbtn");
            $('#btnSignUp').addClass("disabled");
            //  $("#btnSignUp").removeClass('.sign-up-btn-box .signbtn:hover');

            if (window.parent !== window) {
                signUpFieldModel.ReferringURL = document.referrer;
            }
            else {
                signUpFieldModel.ReferringURL = window.location.href;
            }
            var resultPromise = $http({
                method: "POST",
                headers: headers,
                url: baseUrl + "SignUp/SaveSignUpDetails",
                data: signUpFieldModel,
                async: false
            });

            resultPromise.success(function (responseInfo) {

                //hide loading
                $("#c4lhomepopup").css("display", "none");
                $("input").prop("disabled", false);
                $("body").unbind("keydown keyup", false);
                //$("input").prop('');
                // This statement is used for event tracking
                trackEvent(category, "SaveSignUpDetails", "Success");

                if (responseInfo.error != null && responseInfo.error.Code != '' && responseInfo.error.Code != null) {
                    if (responseInfo.error.Code == "30011" || responseInfo.error.Code == "30028") // Zip Code must be 5-digits long. It can include leading zeros
                    {
                        ShowMessagePopUp("MsgPopSignUpZipError");
                    }
                    else if (responseInfo.error.Code == "30009") //Phone Number must be either 10-digits or 11-digits long.
                    {
                        ShowMessagePopUp("MsgPopSignUpPhoneError");
                    }
                    else if (responseInfo.error.Code == "30263") //Email address is invalid
                    {
                        ShowMessagePopUp("MsgPopSignUpEmailError");
                    }
                    else if (responseInfo.error.Code == "30287") //Duplicate Email Address
                    {
                        ShowMessagePopUp("MsgPopSignUpDupEmailError");
                    }
                    else if (responseInfo.error.Code == "30280") //Unable to send message
                    {
                        ShowMessagePopUp("MsgPopContactException");
                    }
                    else if (responseInfo.error.Code == "30314") //User Already exists in Text4baby Program
                    {
                        ShowMessagePopUp("MsgPopSignUpDupUserError");
                    }
                    else if (responseInfo.error.Code == "30262") //participantcode is invalid.
                    {
                        ShowMessagePopUp("MsgPopSignUpParticipantCodeError");
                    }
                    else if (responseInfo.error.Code == "30266") //participanttype is invalid.
                    {
                        ShowMessagePopUp("MsgPopSignUpParticipantTypeError");
                    }
                    else if (responseInfo.error.Code == "30268") //referringurl is invalid.
                    {
                        ShowMessagePopUp("MsgPopSignUpReferringUrlError");
                    }
                    else if (responseInfo.error.Code == "30269") //sourceofenrollment is invalid.
                    {
                        ShowMessagePopUp("MsgPopSignUpSourceOfEnrollmentError");
                    }
                    else if (responseInfo.error.Code == "30270") //Password is invalid.
                    {
                        ShowMessagePopUp("MsgPopSignUpPasswordError");
                    }
                    else if (responseInfo.error.Code == "30274") //pregnancyduedate is invalid.
                    {
                        ShowMessagePopUp("MsgPopSignUpDueDateError");
                    }
                    else if (responseInfo.error.Code == "30275") //menstrualperioddate is invalid.
                    {
                        ShowMessagePopUp("MsgPopSignUpMenstrualDateError");
                    }
                    else if (responseInfo.error.Code == "30276") //duedateknown is invalid.
                    {
                        ShowMessagePopUp("MsgPopSignUpDueDateKnownError");
                    }
                    else if (responseInfo.error.Code == "30277") //babydateofbirth is invalid.
                    {
                        ShowMessagePopUp("MsgPopSignUpBabyDOBError");
                    }
                    else if (responseInfo.error.Code == "30278") //duedateorbabydateofbirth is invalid.
                    {
                        ShowMessagePopUp("MsgPopSignUpOtherDueDateDOBError");
                    }
                    else {
                        ShowMessagePopUp("MsgPopContactException");
                    }
                }
                else if (responseInfo.result != null && responseInfo.result.customertype != '' && responseInfo.result.customertype != null && responseInfo.result.customertype != '0') {

                    //                    if (responseInfo.result.customertype == "2") {
                    //                        // To show verification box
                    //                        ShowVerificationBox();
                    //                        $('#txtVerificationCode').val(' ');
                    //                        $('#txtVerificationCode').focus();
                    //                    }
                    //                    else {
                    //   ResetFields();
                    //  ClearSignUpModels(signUpFieldModel);
                    //To show confirmation message
                    //  ShowMessagePopUp("MsgPopSignUpSuccessful");

                    // window.location.replace(baseUrl + "SignUp");
                    //  }

                    // redirect to 3rd page                 
                    $("#dvSignupFrameOne").css("display", "none");
                    $("#dvPageOneButton").css("display", "none");
                    $("#dvSignupFrameTwo").css("display", "none");
                    $("#dvPageTwoButton").css("display", "none");
                    $("#dvSignupFrameThree").css("display", "");
                    $("#dvPageThreeButton").css("display", "");
                    $("#dvSignupFrameFour").css("display", "none");


                    // change header message for 3rd and 4th page
                    $scope.signUpTextModel.SignUpHeadText = $scope.signUpTextModel.SignUpThankYouMessage;
                    $scope.signUpFieldModel.ParticipantId = responseInfo.result.participantid;

                    // set customer mobile no.
                    $("#spnMobNo").text($("#TxtMobileNo").val());

                    // show top of page
                    $("html, body").animate({ scrollTop: 0 }, 1);

                    //Load health plans for medicaid and others
                    LoadhealthPlan('medicaid', signUpFieldModel.ZipCode);
                    LoadhealthPlan('other', signUpFieldModel.ZipCode);

                    $('#hdnIsSubmitted').val("0");

                }
                else {
                    ShowMessagePopUp("MsgPopContactException");
                }

                // enable submit button               
                $('#btnSignUp').removeAttr('disabled');
                $('#btnSignUp').removeClass("disabled");
                $('#btnSignUp').addClass("signbtn");

                $('#txtFirstName').focus();

                //                //To show post confirmation message
                //                ShowMessagePopUp("MsgPopSignUpPostConfirmation");


                // window.location.replace(baseUrl + data.result.customertype);


            });
            resultPromise.error(function (xhr) {
                // This statement is used for event tracking
                trackEvent(category, "SaveSignUpDetails", "Fail");
                //hide loading
                $("#c4lhomepopup").css("display", "none");
                // alert('Unable to connect to server. \nPlease check your network connection & then try again.');

                //To show exception message
                ShowMessagePopUp("MsgPopContactException");

                //  ShowMessagePopUp("MsgPopSignUpSuccessful");

                // enable submit button               
                $('#btnSignUp').removeAttr('disabled');
                $('#btnSignUp').removeClass("disabled");
                $('#btnSignUp').addClass("signbtn");
                $("input").prop("disabled", false);
                $("body").unbind("keydown keyup", false);


            });
        }
    }

    $scope.LoadhealthPlan = function (option, zipcode) {

        LoadhealthPlan(option, zipcode);
    }
    function LoadhealthPlan(option, zipcode) {

        if (option != "No" && option != "") {
            var resultPromise = $http({
                method: "Get",
                headers: headers,
                url: baseUrl + "SignUp/LoadHealthPlan",
                params: { option: option, zipcode: zipcode },
                async: false
            });

            resultPromise.success(function (data) {

                // empty datasource
                var kendoAutoCompleteWC = null;
                $("#txtMedicaIdPlanName").kendoAutoComplete(null);

                // bind datasource
                //  $scope.HealthPlanMedicaid = data; //.result.healthplans.healthplan;
                if (option == "medicaid") {
                    $scope.HealthPlanMedicaid = data;
                    BindAutoCompleteTextBox("txtMedicaIdPlanName", data);

                }
                else {
                    $scope.HealthPlanOther = data;
                    BindAutoCompleteTextBox("txtOtherPlanName", data);
                }

            });
            resultPromise.error(function (xhr) {

                //To show exception message
                ShowMessagePopUp("MsgPopContactException");

            });


        }
    }

    function BindAutoCompleteTextBox(controlId, data) {

        $("#" + controlId).kendoAutoComplete({
            dataSource: data,
            serverSorting: true,
            serverFiltering: true,
            filter: "contains",
            dataTextField: 'name',
            dataValueField: 'healthplanid',
            template: '<span data-recordid="#= healthplanid #"> #= name #</span>', // here we just use a template and put the id as data on the span wrapping the name
            select: function (e) {

                // this is how you grab the id from the item selected
                $('#hdnHealthPlanValue').val(e.item.find('span').data('recordid'));
            }
        });

        $("#" + controlId).prop('type', 'text');
    }
    // This function is used to skip to signup 4th page 
    $scope.SignUpSkip = function () {
        // redirect to thank you page
        $("#dvSignupFrameOne").css("display", "none");
        $("#dvPageOneButton").css("display", "none");
        $("#dvSignupFrameTwo").css("display", "none");
        $("#dvPageTwoButton").css("display", "none");
        $("#dvSignupFrameThree").css("display", "none");
        $("#dvPageThreeButton").css("display", "none");
        $("#dvSignupFrameFour").css("display", "");

        $scope.signUpTextModel.SignUpHeadText = $scope.signUpTextModel.SignUpThankYouMessage;
        $scope.signUpTextModel.SignUpThankYouPageMessage = $scope.signUpTextModel.SignUpThankYouPageSkipMessage;

        // show top of page
        $("html, body").animate({ scrollTop: 0 }, 1);
    }

    // This function is used to save signup information of 3rd page 
    $scope.SaveSignUpAdditionalInfo = function (signUpFieldModel) {

        $('#hdnIsSubmitted').val("1");

        signUpFieldModel.HealthInsuranceAns = $('[name="RbHealthInsuranceQuestion"]:checked').prop('value');
        signUpFieldModel.HealthInsuranceTypeAns = $('[name="RbHealthInsuranceTypeQuestion"]:checked').prop('value');

        // set default value in case of undefined
        if (signUpFieldModel.HealthInsuranceTypeAns == null || signUpFieldModel.HealthInsuranceTypeAns == undefined) {
            signUpFieldModel.HealthInsuranceTypeAns = "medicaid";
        }

        signUpFieldModel.MedicaIdPlanName.Value = $("#hdnHealthPlanValue").val();

        if ($("#dvOtherPlanName").css('display') != 'none') {
            signUpFieldModel.MedicaIdPlanName.Text = $("#txtOtherPlanName").val();
        }
        else {
            signUpFieldModel.MedicaIdPlanName.Text = $("#txtMedicaIdPlanName").val();
        }

        if (ValidateSignUp(signUpFieldModel, 3)) {

            if ($("#dvHealthInsuranceTypeQuestion").css('display') != 'none') {
                // match heath plan with scope
                var healthPlan;
                if (signUpFieldModel.HealthInsuranceTypeAns == "other") {
                    healthPlan = $("#txtOtherPlanName").val();
                    if ($scope.HealthPlanOther != null && $scope.HealthPlanOther != undefined) {
                        var flag = 0;
                        for (var i = 0; i < $scope.HealthPlanOther.length; i++) {
                            if (healthPlan == $scope.HealthPlanOther[i].name) {
                                flag = 1;
                            }
                        }

                        // show error message in case of wrong health plan name
                        if (flag == 0) {
                            ShowErrorMessage("txtOtherPlanName");

                            return false;
                        }
                    }
                }
                else {
                    healthPlan = $("#txtMedicaIdPlanName").val();
                    if ($scope.HealthPlanMedicaid != null && $scope.HealthPlanMedicaid != undefined) {
                        var flag = 0;
                        for (var i = 0; i < $scope.HealthPlanMedicaid.length; i++) {
                            if (healthPlan == $scope.HealthPlanMedicaid[i].name) {
                                flag = 1;
                            }
                        }

                        // show error message in case of wrong health plan name
                        if (flag == 0) {
                            ShowErrorMessage("txtMedicaIdPlanName");
                            return false;
                        }
                    }
                }

            }
            // show loading
            $("#c4lhomepopup").css("display", "");
            $("input").prop("disabled", true);

            //disable submit button
            $('#btnAddInfo').attr('disabled', 'disabled');
            $('#btnAddInfo').removeClass("signbtn");
            $('#btnAddInfo').addClass("disabled");

            $("body").bind("keydown keyup", false);
            var resultPromise = $http({
                method: "POST",
                headers: headers,
                url: baseUrl + "SignUp/SaveSignUpAdditionalInfo",
                data: signUpFieldModel,
                async: false
            });

            resultPromise.success(function (responseInfo) {

                //hide loading
                $("#c4lhomepopup").css("display", "none");
                $("input").prop("disabled", false);

                if (responseInfo.result != null && responseInfo.result.status != '' && responseInfo.result.status != null && responseInfo.result.status != '0') {

                    // change header message for 3rd and 4th page
                    $scope.signUpTextModel.SignUpHeadText = $scope.signUpTextModel.SignUpThankYouSharingMessage;

                    // redirect to thank you page
                    $("#dvSignupFrameOne").css("display", "none");
                    $("#dvPageOneButton").css("display", "none");
                    $("#dvSignupFrameTwo").css("display", "none");
                    $("#dvPageTwoButton").css("display", "none");
                    $("#dvSignupFrameThree").css("display", "none");
                    $("#dvPageThreeButton").css("display", "none");
                    $("#dvSignupFrameFour").css("display", "");
                }
                // This statement is used for event tracking
                trackEvent(category, "SaveSignUpAdditionalInfo", "Success");

                // enable submit button               
                $('#btnAddInfo').removeAttr('disabled');
                $('#btnAddInfo').removeClass("disabled");
                $('#btnAddInfo').addClass("signbtn");

                $("body").unbind("keydown keyup", false);
                // show top of page
                $("html, body").animate({ scrollTop: 0 }, 1);
            });
            resultPromise.error(function (xhr) {
                $("body").unbind("keydown keyup", false);
                //hide loading
                $("#c4lhomepopup").css("display", "none");

                // enable submit button               
                $('#btnAddInfo').removeAttr('disabled');
                $('#btnAddInfo').removeClass("disabled");
                $('#btnAddInfo').addClass("signbtn");

                // This statement is used for event tracking
                trackEvent(category, "SaveSignUpAdditionalInfo", "Fail");
                $("input").prop("disabled", false);
                //To show exception message
                ShowMessagePopUp("MsgPopContactException");

            });
        }
    }


    // This function is used to change culture of page
    $scope.ChangeCulture = function (culture) {


        //   $.when(CommonService.ChangeCulture($scope, $http, culture, baseUrl, category, headers),setTimeout(function () { }, 500)).done(function () {
        BindSignupPage(culture);

        //clear and reset signup model and textbox
        ResetFields();
        ClearSignUpModels($scope.signUpFieldModel);
        $scope.SignUpBack();
        //  });

        // hide app icon for spanish
        if (culture == "es") {
            $('#appIcon').css("display", "none");
        }
        else {
            $('#appIcon').css("display", "");
        }



    }

    // This function is used to save support details
    $scope.SaveContact = function (contactModel) {

        CommonService.SaveSupportDetails($scope, $http, contactModel, baseUrl, category, headers);

    }

    // This function is called on customer dropdoen change
    $scope.CustomerChange = function (signUpFieldModel) {

        if (signUpFieldModel.CustomerType.Value == "0") {
            // show error message
            ShowErrorMessage("Customers");
            SetSignUpDisplay(signUpFieldModel.CustomerType.Value);
            return false;

        }
        else {
            // hide error message
            HideErrorMessage("Customers");

            // Reset dates on dropdown change
            signUpFieldModel.BabyDueDate = "";
            signUpFieldModel.MenstrualDate = "";
            signUpFieldModel.BabyBirthDate = "";
            signUpFieldModel.DueBirthDate = "";

            // set active radio button YES option in case of pregnant
            $('#RbDueDateYes').prop('checked', true);
            $('#RbDueDateNo').prop('checked', false);

            $('#lblDueDateYes').removeClass('activeradiolabel');
            $('#lblDueDateNo').removeClass('activeradiolabel');
            $('#lblDueDateYes').removeClass('inactiveradiolabel');
            $('#lblDueDateNo').removeClass('inactiveradiolabel');

            $('#lblDueDateNo').addClass('inactiveradiolabel');
            $('#lblDueDateYes').addClass('activeradiolabel');

            SetSignUpDisplay(signUpFieldModel.CustomerType.Value);
        }
    }


    // This function is used to bind Signup page
    function BindSignupPage(culture) {
      
        if (culture == undefined || culture == "" || culture == null) {
            culture = "";
        }

        var resultPromise = $http({
            method: "Get",
            headers: headers,
            url: baseUrl + "SignUp/BindSignUpPage",
            params: { culture: culture },
            async: false
        });

        resultPromise.success(function (data) {

            $scope.contactModel = data.contactModel;
            $scope.signUpTextModel = data.signUpTextModel;
            $scope.footerModel = data.footerModel;
            $scope.headerModel = data.headerModel;
            $scope.messageBoxModel = data.messageBoxModel;

            //signup section
            $scope.signUpFieldModel = data.signUpFieldModel;
            $scope.signUpFieldValidationModel = data.signUpFieldValidationModel;

            //singin section
            $scope.signInTextModel = data.signInModels.signInTextModel;
            $scope.signInFieldModel = data.signInModels.signInFieldModel;
            $scope.signInFieldValidationModel = data.signInModels.signInFieldValidationModel;

            // set culture in hidden field
            var culture;
            if (data.headerModel.Culture == "es") {
                culture = "en"
            }
            else {
                culture = "es"
            }
            $("#hdnCulture").val(culture);

            // hide app icon for spanish
            if (culture == "es") {
                $('#appIcon').css("display", "none");
            }
            else {
                $('#appIcon').css("display", "");
            }

            // set datepicker dates
            DateSettings();


            //set page title
            $(document).prop('title', data.signUpTextModel.PageTitle);

            //check if signup page open in iframe
            if ($("#hdnParticipantCode").val() != "0") {
                $("#dvParticipantBlock").css("display", "none");
            }
            else {
                $("#dvParticipantBlock").css("display", "");
            }

            // change header message for 3rd and 4th page
            $("#dvMedicaIdPlanName").css('display') != 'none'
            if ($("#dvSignupFrameThree").css('display') != 'none' || $("#dvSignupFrameFour").css('display') != 'none') {
                $scope.signUpTextModel.SignUpHeadText = $scope.signUpTextModel.SignUpThankYouMessage;
            }


            // bind sign-in section
            //            $("#SignInButtonText").text(data.signInModels.signInTextModel.SignInButtonText);
            //            $("#SignInPhoneNoLabel").text(data.signInModels.signInTextModel.SignInPhoneNoLabel);
            //            $("#SignInPasswordLabel").text(data.signInModels.signInTextModel.SignInPasswordLabel);
            //            $("#SignInRememberLabel").text(data.signInModels.signInTextModel.SignInRememberLabel);
            //            $("#SignInResetLinkText").text(data.signInModels.signInTextModel.SignInResetLinkText);
            //            $("#SignInAdministratorLinkText").text(data.signInModels.signInTextModel.SignInAdministratorLinkText);
            //            $("#SignInHelpText").text(data.signInModels.signInTextModel.SignInHelpText);
            //            $("#btnSignIn").text(data.signInModels.signInTextModel.SignInButtonText);

            // To set default value
            $scope.signUpFieldModel.CustomerType = $scope.signUpTextModel.SignUpCustomerDropDownList[0];

            // This statement is used for event tracking
            trackEvent(category, "LoadSignupPage", "Success");

        });
        resultPromise.error(function (xhr) {
            // This statement is used for event tracking
            trackEvent(category, "LoadSignupPage", "Fail");

            //To show exception message
            ShowMessagePopUp("MsgPopContactException");

        });
    }


    $scope.SetDisplayForPreg = function () {


        $("#spnBabyDueDate").css("display", "");
        $("#spnBabyBirthDate").css("display", "none");

        //clear textbox
        $("#txtBirthdate").val("");
        $("#txtDueDate").val("");

        // set focus on textbox
        //   $("#txtDueDate").focus();
    }

    $scope.SetDisplayForNewMom = function () {


        $("#spnBabyDueDate").css("display", "none");
        $("#spnBabyBirthDate").css("display", "");

        //clear textbox
        $("#txtBirthdate").val("");
        $("#txtDueDate").val("");

        // set focus on textbox
        // $("#txtBirthdate").focus();

    }

    $scope.ShowCalendar = function (dpId) {
        $("#dpSoon").css("display", "none");
        $("#dpAlreadyQuit").css("display", "none");
        $("#txtSoon").val("");
        $("#txtAlreadyQuit").val("");
        if (dpId != '') {
            $("#" + dpId).css("display", "");
        }

        // set focus on textbox
        //        if (dpId == "dpSoon") {
        //            $('#txtSoon').focus();
        //        }
        //        else if (dpId == "dpAlreadyQuit") {
        //            $('#txtAlreadyQuit').focus();
        //        }
        //        else {
        $('#ïmgRadioToday').focus();
        //  }
    }

    //This function is used to validate from server
    function ValidateFromServer(validationFieldText, validationFieldValue, controlId, spnInnerId, spnOuterId) {

        var resultPromise = $http({
            method: "Get",
            headers: headers,
            url: baseUrl + "SignUp/ValidateFromServer",
            params: { validationFieldText: validationFieldText, validationFieldValue: validationFieldValue },
            async: false
        });

        resultPromise.success(function (data) {

            if (data.status != 1) {
                ShowValidationMessage(controlId, spnInnerId, spnOuterId);
                return false;
            }
            else {
                HideValidationMessage(controlId, spnInnerId, spnOuterId);
                return true;
            }

            // This statement is used for event tracking
            trackEvent(category, "ValidateFromServer", "Success");

        });
        resultPromise.error(function (xhr) {
            // This statement is used for event tracking
            trackEvent(category, "ValidateFromServer", "Fail");

            //To show exception message
            ShowMessagePopUp("MsgPopContactException");

        });
    }


    // This function is used to signin customer
    $scope.SignIn = function (signInFieldModel) {


        signInFieldModel.Password = $("#txtSignInPassword").val();
        signInFieldModel.PhoneNo = $("#txtSignInPhoneNo").val();

        if ($('[id=chkRemember]:checked').val() == "on") {
            signInFieldModel.RememberMe = true;
        }
        else {
            signInFieldModel.RememberMe = false;
        }

        CommonService.SignIn($scope, $http, signInFieldModel, baseUrl, category, headers);

    }

    // Close verification box on signup page   
    $scope.CloseVerificationBox = function (signUpFieldModel) {

        var signUpUrl = document.location.protocol + "//" + document.location.host + "/";
        HideVerificationBox();
        ResetFields();
        ClearSignUpModels(signUpFieldModel);
        // window.location.replace(signUpUrl + "SignUp");
    }


    $scope.SignUpNext = function (signUpFieldModel) {

        // Assign values in model
        signUpFieldModel.BabyDueDate = $("#txtDueDate").val();
        signUpFieldModel.MenstrualDate = $("#txtMenstrualDate").val();
        signUpFieldModel.BabyBirthDate = $("#txtBirthdate").val();
        signUpFieldModel.DueBirthDate = $("#txtOthersDate").val();

        // Validation check
        if (ValidateSignUp(signUpFieldModel, 1)) {
            //show next section
            $("#dvSignupFrameOne").css("display", "none");
            $("#dvPageOneButton").css("display", "none");
            $("#dvSignupFrameTwo").css("display", "");
            $("#dvPageTwoButton").css("display", "");
            $("#dvSignupFrameThree").css("display", "none");
            $("#dvPageThreeButton").css("display", "none");
            $("#dvSignupFrameFour").css("display", "none");

            $("#dvHeaderImg").css("display", "none");

            // show top of page
            $("html, body").animate({ scrollTop: 0 }, 1);
        }

        $("#TxtZipCode").focus();

    }
    $scope.SignUpBack = function () {

        //show next section
        $("#dvSignupFrameOne").css("display", "");
        $("#dvPageOneButton").css("display", "");
        $("#dvSignupFrameTwo").css("display", "none");
        $("#dvPageTwoButton").css("display", "none");
        $("#dvSignupFrameThree").css("display", "none");
        $("#dvPageThreeButton").css("display", "none");
        $("#dvSignupFrameFour").css("display", "none");
        $("#dvHeaderImg").css("display", "");
        // show top of page
        $("html, body").animate({ scrollTop: 0 }, 1);

    }


}





















var Text4Baby = angular.module('Text4Baby', ['Text4Baby.directives', 'Text4Baby.services', 'oblador.lazytube']);


 //===========================================================================================================================================================================================================================//
                                                                                                                /* Controllers declaration section */
 //===========================================================================================================================================================================================================================//

Text4Baby.controller('IndexController', IndexController);
Text4Baby.controller('SignupController', SignupController);
Text4Baby.controller('AboutController', AboutController);
Text4Baby.controller('LearnController', LearnController);


//===========================================================================================================================================================================================================================//
                                                                                                                /* Angular load complete event */
//===========================================================================================================================================================================================================================//

// for lazy loading of videos
  Text4Baby.run(function (obLazytubeConfig) {
      //Change default player size
      obLazytubeConfig.width = 800;
      obLazytubeConfig.height = 600;

      //Disable related videos
      obLazytubeConfig.urlParams.rel = 0;

      //Disable responsive player
      obLazytubeConfig.responsive = false;
  }
);

Text4Baby.run(function () {
//    // Do post-load initialization stuff here
    setTimeout(function () {
        // display main container on load complete
        $("#loading-mask").css("display", "none");

    }, 1000)

    
  
});

//===========================================================================================================================================================================================================================//
                                                                                                                      /* Filter section */
//===========================================================================================================================================================================================================================//

Text4Baby.filter("sanitize", ['$sce', function ($sce) {
    return function (htmlCode) {
        return $sce.trustAsHtml(htmlCode);
    }
} ]);

//===========================================================================================================================================================================================================================//
                                                                                                                          /* End */
//===========================================================================================================================================================================================================================//

!function (t) { function e(e, i) { this.element = e, this.options = t.extend({}, o, i), this._defaults = o, this._name = s, this._loader = null, this.init() } function i() { t[s] || (t.isLoading = function (e) { t("body").isLoading(e) }) } var s = "isLoading", o = { position: "right", text: "", "class": "icon-refresh", tpl: '<span class="isloading-wrapper %wrapper%">%text%<i class="%class% icon-spin"></i></span>', disableSource: !0, disableOthers: [] }; e.prototype = { init: function () { t(this.element).is("body") && (this.options.position = "overlay"), this.show() }, show: function () { var e = this.options.tpl.replace("%wrapper%", " isloading-show  isloading-" + this.options.position); switch (e = e.replace("%class%", this.options["class"]), e = e.replace("%text%", "" !== this.options.text ? this.options.text + " " : ""), this._loader = t(e), t(this.element).is("input, textarea") && !0 === this.options.disableSource ? t(this.element).attr("disabled", "disabled") : !0 === this.options.disableSource && t(this.element).addClass("disabled"), this.options.position) { case "inside": t(this.element).html(this._loader); break; case "overlay": if (t(this.element).is("body")) t("body").prepend('<div class="isloading-overlay" style="position:fixed; left:0; top:0; z-index: 10000; background: rgba(0,0,0,0.5); width: 100%; height: ' + t(this.element).outerHeight() + 'px;" />'); else { var i = t(this.element).css("position"), s = null; s = "relative" === i || "absolute" === i ? { top: 0, left: 0} : t(this.element).position(), t(this.element).prepend('<div class="isloading-overlay" style="position:absolute; top: ' + s.top + "px; left: " + s.left + "px; z-index: 10000; background: rgba(0,0,0,0.5); width: " + t(this.element).outerWidth() + "px; height: " + t(this.element).outerHeight() + 'px;" />') } t(".isloading-overlay").html(this._loader); break; default: t(this.element).after(this._loader) } this.disableOthers() }, hide: function () { "overlay" === this.options.position ? t(".isloading-overlay").remove() : (t(this._loader).remove(), t(this.element).text(t(this.element).attr("data-isloading-label"))), t(this.element).removeAttr("disabled").removeClass("disabled"), this.enableOthers() }, disableOthers: function () { t.each(this.options.disableOthers, function (e, i) { var s = t(i); s.is("button, input, textarea") ? s.attr("disabled", "disabled") : s.addClass("disabled") }) }, enableOthers: function () { t.each(this.options.disableOthers, function (e, i) { var s = t(i); s.is("button, input, textarea") ? s.removeAttr("disabled") : s.removeClass("disabled") }) } }, t.fn[s] = function (i) { return this.each(function () { if (i && "hide" !== i || !t.data(this, "plugin_" + s)) t.data(this, "plugin_" + s, new e(this, i)); else { var o = t.data(this, "plugin_" + s); "hide" === i ? o.hide() : o.show() } }) }, i() } (jQuery, window, document);
