var isInitial = true,
        end_of_result = false,
        curStory = 1,
        nxtStory = 2,
        nextStoryId = 1,
        socialRibbonContent = ['st_facebook_custom', 'st_twitter_custom', 'st_googleplus_custom', 'st_linkedin_custom', 'st_email_custom'],
        socialRibbonCount = ['st_facebook_vcount', 'st_twitter_vcount', 'st_googleplus_vcount', 'st_email_vcount', 'st_linkedin_vcount'],
        filters = ['just_in', 'most_read', 'most_shared', 'top_picks', 'breaking_news'],
        story_id = 0,
        story_origin = '',
        origin_name = '',
        bOutbrain = 0,
        font_size = 18,
        line_height = 25,
        initialPop = true
stories = {};

var resizeIframe = function(obj) {
    obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';
    if (bOutbrain == 0) {
        $(window).resize(function() {
            if (!($(window).width() >= 768 && $(window).height() >= 510)) {
                $("#story_social_ribbon").css("top", "");
            }
            $.each($(".obiframe_holder iframe"), function() {
                if (this.contentWindow.document.getElementsByClassName("ob-widget")[0]) {
                    var height = this.contentWindow.document.getElementsByClassName("ob-widget")[0].clientHeight + this.contentWindow.document.getElementsByClassName("ob_what")[0].clientHeight;
                    this.style.height = height + 'px';
                }
            });
        });
        bOutbrain = 1;
    }
}

var getCrossSell = function() {
    var story_container_attr = $('#story_container').attr('style');

    var at_a_glance_params = {section: "home"};
    atAGlanceCall(at_a_glance_params);
}

var nextStoryEvent = function() {
    if (end_of_result === false && $(window).scrollTop() + window.innerHeight > $('#story' + nextStoryId).offset().top) {
        //console.log("test");
        isLoading = true;
        $(window).unbind('scroll', nextStoryEvent); // Unbind until the next article is generated
        var order = '';
        if (story_origin == 'top_picks') {
            order = '&order=' + tpOrder;
        }
        $("#loadMore").show();
        $.ajax({
            url: base_url + "story/" + story_id + "/" + story_origin + "?nextStory=" + nextStoryId + order,
            dataType: "json",
            success: function(data) {
                if (data.id > 0) {
                    getStaticArticle(data.id);

                } else {
                    end_of_result = true;
                    $('#loadMore').hide();
                }
                isLoading = false;
            },
            error: function() {
                isLoading = false;
                end_of_result = true;
                $('#loadMore').hide();
            }
        });
    }
};
String.prototype.rpad = function(padString, length) {
    var str = this;
    while (str.length < length)
        str = str + padString;
    return str;
}

var getData = function(data, id) {
    if (Object.keys(data).length > 0) {
        zone_id = data.zone_story * 1;
        if (zone_id == 8701)
            zone_id = 8700; //for ulat filipino on story
        else if (zone_id == 8025)
            zone_id = 8475; //boxing on story
        else if (zone_id == 8075)
            zone_id = 8125; //basketball
        else if (zone_id == 8175)
            zone_id = 8225; //football
        else if (zone_id == 8275)
            zone_id = 8325; //other sports

        var html = '';
        nextStoryId++;
        if (story_origin == 'top_picks') {
            tpOrder++;
        }
        html = generateArticleContent(data);
        createStoryObject(data, nextStoryId);
        $(window).bind('scroll', nextStoryEvent); // Re-bind event due to unbinding when loading next article
        $('#story_container').children().eq(-2).after(html).promise().done(function() {
            loadBannerAd(nextStoryId)
            loadMrect((parseInt(zone_id) + 1), nextStoryId);
            if (window_width >= 768) {
                var story_leaderboard_frame_node = document.getElementById("story_leaderboard_frame_" + nextStoryId);
                story_leaderboard_frame_node.contentWindow.contents = $ads_json.leaderboard.replace($initial_zone_id + "", zone_id * 1 + 24);
                story_leaderboard_frame_node.src = 'javascript:window["contents"]';
            }
        }); //Append to container
        loadOutbrain(nextStoryId, (base_url + data.story.link));
        $('#story_container').children().eq(-2).after("<iframe id='alexa_story_"+nextStoryId+"' style='display:none;'></iframe>");
        loadAlexa(nextStoryId);
        contentResize(nxtStory);
        story_id = id; // Global var
        csell_zoneid = zone_id;
        if(typeof FB !== "undefined"){
          FB.XFBML.parse();
        }

        related_content_params = {id: id, start: 0, item: 5, container: "#story" + nextStoryId + "_related_content"};
        relatedContentCall_(related_content_params);

    } else {
        end_of_result = true;
    }
    $('#loadMore').hide();
}

var getStaticArticle = function(id) {
    var folder = 100;
    if (String(id).length > 4) {
        folder = String(id).substr(0, 3);
    }
    var partition = reverse(id.toString().rpad("0", 3).substr(-3, 3));
//    var url = data_url + 'story/'+folder+'/'+id;
    var url = data_url.replace('gno/', '') + partition + '/gno/story/' + id + ".gz";
    $.ajax({
        url: url,
        type: 'GET',
        dataType: 'json',
        success: function(data) {
            getData(data, id);
        },
        error: function() {
            url = data_url.replace('gno/', '') + partition + '/gno/story/' + id;
            $.ajax({
                url: url,
                type: 'GET',
                dataType: 'json',
                success: function(data) {
                    getData(data, id);
                },
                error: function() {
                    $('#loadMore').hide();
                }
            });
        }
    });
}

var getVariableArticle = function(data) {
    //console.log(data);
    var html = generateArticleContent(data);
    var tempObj;

    zone_id = data.zone_story * 1;
    if (zone_id == 8701)
        zone_id = 8700; //for ulat filipino on story
    else if (zone_id == 8025)
        zone_id = 8475; //boxing on story
    else if (zone_id == 8075)
        zone_id = 8125; //basketball
    else if (zone_id == 8175)
        zone_id = 8225; //football
    else if (zone_id == 8275)
        zone_id = 8325; //other sports

    $('#story_container').children().eq(-1).before(html);
    createStoryObject(data, "1");
    loadOutbrain(nextStoryId, (base_url + data.story.link));
    loadMrect((parseInt(zone_id) + 1), '1');
    contentResize(curStory);

    changePageState(false);
    changeSTUrls(base_url + data.story.link, data.story.id);

    related_content_params = {id: data.story.id, start: 0, item: 5, container: "#story1_related_content"};
    relatedContentCall_(related_content_params);

    if($(window).width() >= 768){
      loadBannerAd(nextStoryId);
    }

    if ($(window).width() < 768) {
        changeSTUrls_mobile(base_url + data.story.link, data.story.id);
    }
    setTimeout(function() {
        if (typeof FB !== "undefined")
            FB.XFBML.parse();
    }, 1000);
}

var createStoryObject = function(data, storyCount) {
    var tempObj = {};
    var tagTitles = "";
    var ctitle = $("<div>" + data.title + "</div>").text();
    if (typeof data.all_tags !== "undefined" && data.all_tags.length > 0) {
        tagTitles = data.all_tags.join(', ');
    }

    tempObj = {
        title: data.story.title,
        url: base_url + data.story.link,
        image: data.story.image_url,
        description: data.story.teaser,
        isMultimedia: data.story.multimedia,
        tags: data.story.tags,
        all_tags: tagTitles,
        story_id: data.story.id,
        sto: data.story.override_share_title,
        smt: data.story.social_media_title,
        ad: data.zone_story,
        comments: data.story.comments,
        alt_title: ctitle
    }
    stories['story' + storyCount] = tempObj; // push to global variable 'stories'
}

var generateArticleContent = function(data) {
    var html = '';
    var tagTitles = '';
    var tagDisplay = '';
    var regexp = new RegExp('prd.gmanetwork.com', 'g'); // Temporary until re-gen of articles from 2014 and below
    var regcommas = new RegExp(', ', 'g');
    var regcomma = new RegExp(',', 'g');
    data.story.special_author = (!data.story.special_author.match(/by/i) && data.story.special_author.length > 3) ? "By " + data.story.special_author : data.story.special_author;

    if (data.tag_array.length >= 1 && data.tag_array[0] != "") {
        tagDisplay = '<p style="word-wrap: break-word; margin-bottom: 0px;">Tags: ' + data.tag_array.join(', ') + '</p>';
    }
    html = '<div id="story' + nextStoryId + '">' +
            (nextStoryId > 1 ? '<div class="row padded leaderboard text-center" style="padding-top: 0; height:100%; margin: 20px 20px 20px 0;">' +
                    '<iframe scrolling="no" id="story_leaderboard_frame_' + nextStoryId + '" "></iframe>' +
                    '</div>' : '') +
            (nextStoryId > 1 ? "<div id='mobile-mrec-top_" + nextStoryId + "' class='ad mobile-leaderboard_story' style='text-align: center;display: none; padding: 10px;'> <div class='label'>advertisement</div> </div>" : '') +
            '<div class="row padded storyHoldr">' +
            '<div style="text-align: right; font-size:14px">Filtered By: ' + origin_name + '</div>' +
            '<div class="section_identifier ' + data.story.section.sec_stub + '_background"></div>' +
            '<div class="subsection ' + data.story.section.sec_stub + '_background">' + data.story.section.sec_name + '</div>' +
            ' <div class="clear"></div>' +
            '<div style="padding: 2.5% 2.5% 0 2.5%;">' +
            '<div class="story_title">' +
            ' <h1 style="margin-top: 10px;">';
    //var byline = (typeof data.story.by_line === "undefined" || data.story.by_line.length <= 3) ? '' : data.story.by_line.replace('By,', 'By ').replace(regcommas,',').replace(regcomma,', ');
    if (typeof data.story.kicker !== "undefined" && data.story.kicker != '' && data.story.kicker != null) {
        html += '<p style="display:block" class="sKicker">' + data.story.kicker + '</p>';
    }
    html += '<span id="story' + nextStoryId + '_link" class="story_links" data-ismultimedia="' + data.story.multimedia + '">' + data.story.title + '</span>' +
            '</h1>' +
            '<div class="clear"></div>' +
            '<span class="timestamp">' + parseDate(data.story.timestamp) + '</span>' +
            '<div class="row tb_container">' +
            '<div class="col-xs-7 col-sm-6 rtcontainer">' +
            //'<p style="display:none;" style="word-wrap: break-word; margin-bottom: 0px;">Tags: '+data.story.tagsDisplay.replace(regexp,"http://www.gmanetwork.com")+'</p>'+
            tagDisplay +
            //'<div class="fb-like" style="display: inline-flex; margin-right: 5px;" data-href="'+data.story.link.replace(base_url, "http://www.gmanetwork.com/news/")+'" data-action="recommend" data-send="false" data-width="80" data-layout="button_count" data-show-faces="false"></div>'+
            '</div>';
    if (data.story.special_author != '') {
        html += '<div class="col-xs-4 col-sm-5 bylineContainer">' +
                '<div class="row noMargin">' +
                //'<span class="byline">'+ ((data.story.by_line.length > 3) ? byline : '') +'</span>'+
                '<span class="byline">' + ((typeof data.story.special_author !== "undefined" && data.story.special_author.length > 3) ? data.story.special_author.replace('By,', 'By ').replace(regcommas, ',').replace(regcomma, ', ') : '') + '</span>' +
                '</div>' +
                '<div class="row noMargin">';
        // if(typeof data.story.author_fb !== "undefined" && data.story.author_fb != ""){
        //     html += '<div class="fb-like" style="display: inline-flex; margin-right: 5px;" data-href="http://www.facebook.com/'+data.story.author_fb+'" data-send="false" data-width="50" data-layout="button" data-show-faces="false"></div>';
        // }
        // if(typeof data.story.author_twitter !== "undefined" && data.story.author_twitter != ""){
        //     //console.log(data.story.author_twitter);
        //     html += '<iframe src="//platform.twitter.com/widgets/follow_button.html?screen_name='+data.story.author_twitter.replace('@', '')+'&show_screen_name=false" style="width: 60px; height: 20px;" allowtransparency="true" frameborder="0" scrolling="no"></iframe>';
        // }
        html += '</div>';
        html += '</div>';

        // if(typeof data.story.author_photo && data.story.author_photo !="" && data.story.author_photo != null){
        //   html += '<div class="col-xs-1 col-sm-1" style="padding-left: 5px;">'+
        //               '<img class="authorimg" alt="Author" title="Author" src="'+data.story.author_photo+'" width="50" height="50" style="border-radius: 5px;">'+
        //           '</div>';
        // }
    }
    html += '</div>';
    if (typeof data.story.translationLink !== "undefined") {
        html += '<div style="padding: 10px 0">' +
                '<a href="' + base_url + data.story.translationLink + '" class="translation">';
        html += (data.story.language_id == 2) ? 'Read in English' : 'Basahin sa Filipino';
        html += '</a>' +
                '</div>';
    }
    html += '</div>' +
            '<div class="story_main" style="line-height: ' + line_height + 'px; font-size: ' + font_size + 'px; ">' +
            '<div id="story' + nextStoryId + '_related_content" class="related_content_holder">' +
            '<div class="related_content_title">RELATED CONTENT</div>' +
            '</div>';
    html += data.story.content_1;
    var tagsBanner = (typeof data.tag_array !== "undefined" && data.tag_array.length > 0) ? getTagBanner(data.tag_array) : '';
    if (tagsBanner.length > 0) {
        html += "<div class='links' style='overflow:hidden;position:relative;margin-top: 15px;'>" +
                "<a href='" + tagsBanner[2] + "' target='_blank'>" +
                "<img width='100%' src='" + tagsBanner[0] + "' alt='" + tagsBanner[1] + "' style='max-height:150px'>" +
                "</a>" +
                "</div>";
    }
    html += '<div class="clear"></div>' +
            '<div class="commentLink">';
    if (data.story.comments) {
        html += '<span style="top: 3px;" class="glyphicon glyphicon-comment"></span> <a style="cursor: pointer;" id="comment" data-target="' + nextStoryId + '">Show comments</a>';
    }
    if (nextStoryId > 1) {
        html += '<p class="b2p"><img alt="Previous" title="Previous" class="backbtn" style="margin-top: -4px; width: 18px !important; height: 18px !important;" src="' + assets_url + 'img/article/prev.png">Previous </p>' +
                '<p class="b2t" style="margin-right: 5px;"><img alt="Back to top" title="Back to top" class="backbtn" style="margin-top: -4px; width: 18px !important; height: 18px !important;" src="' + assets_url + 'img/article/top.png">Top </p>';
    }
    html += ' </div>';
    html += '<div style="display: none;">' +
            '<a href="' + base_url + 'widgets/related_content/' + data.story.id + '">related_content</a>';
    if (typeof data.next_article_id !== "undefined" && data.next_article_id > 0) {
        html += '<a href="' + base_url + 'story/' + data.next_article_id + '">Next Article</a>';
    }
    html += '</div>' +
            ' </div>' +
            '<div class="clear"></div>' +
            '<div class="obiframe_holder" style="padding-left: 0px;">' +
            '<div id="mobile-mrec-ob_'+nextStoryId+'" style="width:300px;height:200px;float:left;display:none;margin-top:-5px;" class="ob_mrect ad"> <div class="label">advertisement</div> </div>'+
            '<iframe style="min-height: 250px;width:400px;" class="obiframe" id="story'+nextStoryId+'_ob_iframe" frameborder="0" scrolling="no" onload="resizeIframe(this)"></iframe>'+
            '</div>' +
            '<div class="clear"></div>' +
            '<div class="comments" id="comnt">' +
            '</div>' +
            '<div class="clear"></div>' +
            '</div>' +
            '</div>' +
            '</div>';

    return html;
}

var contentResize = function(stId) {
    if ($(window).width() <= 768) {
        var iframes = $('#story' + stId + ' .storyHoldr').find('iframe');
        $.each(iframes, function() {
            if ($(this).attr('src') == 'http://www.gmanetwork.com/news/imready/overview/mmshakedrill') {
                $(this).attr('height', '960');
                $(this).attr('width', '320');
                $(this).attr('scrolling', 'no');
                $(this).attr('frameborder', '0');
            }
        });
        var imgs = $('#story' + stId + ' .story_main').find('img');
        $.each(imgs, function() {
            if (!$(this).parent().hasClass("related_content_story_image") && !$(this).hasClass('backbtn') && !$(this).hasClass('authorimg')) {
                $(this).parent().css('float', 'none');
                $(this).parent().css('width', '100%');
                $(this).css('width', "100%");
                $(this).css('height', "auto");
            }
        });

        // $('#story'+stId+' img').each(function() {
        //       if (!$(this).parent().hasClass("related_content_story_image") && !$(this).hasClass('backbtn') && !$(this).hasClass('authorimg') ) {
        //           console.log($(this));
        //           $(this).parent().css('float', 'none');
        //           $(this).parent().css('width', '100%');
        //           $(this).css('width', "100%");
        //           $(this).css('height', "auto");
        //       }
        //   });
    }
};

var getTagBanner = function(tagArray) {
    var bannerData = [];
    var static_server = "http://images.gmanews.tv/v3";
    if (tagArray.indexOf('myhusbandslover') > -1) {
        bannerData = [static_server + "/img/coverage/leaderboard_mhl.jpg", "My Husband's Lover", "http://www.gmanetwork.com/gma/myhusbandslover"];
    } else if (tagArray.indexOf('weather') > -1) {
        bannerData = [static_server + "/img/coverage/leaderboard_imready.png", "IM Ready", "http://www.gmanetwork.com/news/imready/"];
    } else if (tagArray.indexOf('bangsamorocomprehensivepeaceagreement') > -1) {
        bannerData = [static_server + "/img/coverage/leaderboard_bangsamororoad.jpg", "Bangsamoro", "http://www.gmanetwork.com/news/tracking/bangsamorocomprehensivepeaceagreement"];
    } else if (tagArray.indexOf('bangsamoropeacedeal') > -1) {
        bannerData = [static_server + "/img/coverage/leaderboard_bangsamororoad.jpg", "Bangsamoro", "http://www.gmanetwork.com/news/tracking/bangsamorocomprehensivepeaceagreement"];
    } else if (tagArray.indexOf('bangsamoropeacetalks') > -1) {
        bannerData = [static_server + "/img/coverage/leaderboard_bangsamororoad.jpg", "Bangsamoro", "http://www.gmanetwork.com/news/tracking/bangsamorocomprehensivepeaceagreement"];
    } else if (tagArray.indexOf('gphmilfpeacedeal') > -1) {
        bannerData = [static_server + "/img/coverage/leaderboard_bangsamororoad.jpg", "Bangsamoro", "http://www.gmanetwork.com/news/tracking/bangsamorocomprehensivepeaceagreement"];
    } else if (tagArray.indexOf('gphmilfpeacetalks') > -1) {
        bannerData = [static_server + "/img/coverage/leaderboard_bangsamororoad.jpg", "Bangsamoro", "http://www.gmanetwork.com/news/tracking/bangsamorocomprehensivepeaceagreement"];
    } else if (tagArray.indexOf('milfgrppeacetalks') > -1) {
        bannerData = [static_server + "/img/coverage/leaderboard_bangsamororoad.jpg", "Bangsamoro", "http://www.gmanetwork.com/news/tracking/bangsamorocomprehensivepeaceagreement"];
    } else if (tagArray.indexOf('bangsamorobasiclaw') > -1) {
        bannerData = [static_server + "/img/coverage/leaderboard_bangsamororoad.jpg", "Bangsamoro", "http://www.gmanetwork.com/news/tracking/bangsamorocomprehensivepeaceagreement"];
    } else if (tagArray.indexOf('bantaykaban') > -1) {
        bannerData = [static_server + "/img/coverage/bantaykaban-leaderboard.jpg", "Bantay Kaban", "http://www.gmanetwork.com/news/tracking/bantaykaban"];
    } else if (tagArray.indexOf('yolanda') > -1) {
        bannerData = [static_server + "/img/coverage/131114-yolandaruins-badge.jpg", "Super Typhoon Yolanda", "http://www.gmanetwork.com/news/tracking/yolanda"];
    }

    return bannerData;
}

var changePageState = function(fullChange) {
    var currentArticle = stories['story' + curStory];
    var url = currentArticle.url;
    var storyTitle = parseInt(currentArticle.sto) == 1 ? currentArticle.smt : currentArticle.title;
    if (history.state != url) {
        if (typeof fullChange === "undefined") {
            $(document).prop('title', currentArticle.alt_title + " GMA News Online");
            history.pushState({'url': document.referrer, 'nextArticle': true}, '', url);
            /*stWidget Global vars*/
            stWidget.ogdesc = stWidget.twitterdesc = (currentArticle.description != "") ? currentArticle.description : storyTitle;
            stWidget.ogurl = stWidget.twitterurl = url;
            stWidget.ogtitle = stWidget.twittertitle = storyTitle;
            stWidget.ogtype = "article";
            stWidget.ogimg = stWidget.twitterimg = currentArticle.image;
            /*social ribbon*/
            changeSTUrls(url, currentArticle.story_id);
            if ($(window).width() < 768) {
                changeSTUrls_mobile(url, currentArticle.story_id);
            }

            $('#story_social_ribbon .gno_comment #comment').attr('data-target', curStory);
            $('.commentLink #comment').attr('data-target', curStory);

            /*SEO Tags*/
            $("meta[property='og\\:title'], meta[property='twitter\\:title']").attr("content", storyTitle);
            $("meta[property='og\\:url'], meta[property='twitter\\:url']").attr("content", url);
            $("link[rel='canonical']").attr('href', url);
            $("meta[property='og\\:image'], meta[property='twitter\\:image'], meta[property='thumbnail']").attr("content", currentArticle.image);
            $("meta[property='twitter\\:description']").attr("content", currentArticle.description);
            $("meta[property='og\\:description'], meta[name='description']").attr("content", currentArticle.description);
            $("meta[name='keywords']").attr("content", currentArticle.all_tags != '' ? currentArticle.all_tags : currentArticle.tags);

            /*Reserve Ads*/
            if ($(window).width() > 1360) {
                var html = '<iframe class="aWallpaper" frameborder="0" allowtransparency="true" id="wallpaper_frame"></iframe>';
                $("div#footer_ads .side_ads").html(html).promise().done(function() {
                    var wallpaper_frame_node = document.getElementById('wallpaper_frame');
                    wallpaper_frame_node.contentWindow.contents = $ads_json.wallpaper.replace($initial_zone_id + 21 + "", zone_id + 21);
                    wallpaper_frame_node.src = 'javascript:window["contents"]';
                });
            }
        } else {
            history.pushState({'url': document.referrer, 'nextArticle': true}, '', url);
        }

        /*Disqus*/
        if (currentArticle.comments == true) {
            disqusCall(currentArticle.url);
            $('.gno_comment').show();
        } else {
            $('.gno_comment').hide();
        }

        analyticsCall(url);
    }
};

var changeSTUrls = function(url, story_id) {
    for (var i = 0; i <= socialRibbonContent.length; i++) {
        $('#story_social_ribbon .' + socialRibbonContent[i]).attr('st_url', url.replace(base_url, "http://www.gmanetwork.com/news/"));
        $('#story_social_ribbon .' + socialRibbonContent[i]).removeAttr('st_processed');
        $('#story_social_ribbon #mystream').attr('cid', story_id);
        $('#story_social_ribbon #mystream').attr('type', 'article');

        /*social ribbon counter*/

        $('#story_social_ribbon .' + socialRibbonCount[i]).html("");
        $('#story_social_ribbon .' + socialRibbonCount[i]).attr('st_url', url.replace(base_url, "http://www.gmanetwork.com/news/"));
        $('#story_social_ribbon .' + socialRibbonCount[i]).removeAttr('st_processed');
        /*end*/
    }
    stButtons.locateElements();
}

var changeSTUrls_mobile = function(url, story_id) {
    for (var i = 0; i <= socialRibbonContent.length; i++) {
        $('.header_social .' + socialRibbonContent[i]).attr('st_url', url.replace(base_url, "http://www.gmanetwork.com/news/"));
        $('.header_social .' + socialRibbonContent[i]).removeAttr('st_processed');
        // $('#story_social_ribbon #mystream').attr('cid', story_id);
        // $('#story_social_ribbon #mystream').attr('type', 'article');
        $('.header_social #comment').attr('data-target', curStory);
        /*social ribbon counter*/

        $('.header_social .' + socialRibbonCount[i]).html("");
        $('.header_social .' + socialRibbonCount[i]).attr('st_url', url.replace(base_url, "http://www.gmanetwork.com/news/"));
        $('.header_social .' + socialRibbonCount[i]).removeAttr('st_processed');
        /*end*/
    }
    stButtons.locateElements();
}

var parseDate = function(timestamp) {
    var zdate = timestamp;
    var ddate = zdate.split(" ");
    var tdate = ddate[1];
    var dddate = ddate[0].split("-");
    var titime = tdate.split(':');
    var dd = dddate[1] + " " + dddate[2] + ", " + dddate[0] + " " + tdate;
    var month = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

    var d = new Date(dddate[0], parseInt(dddate[1] - 1), dddate[2], parseInt(titime[0]), titime[1]);
    var dateString = month[d.getMonth()] + ' ' + d.getDate() + ', ' + d.getFullYear() + ' ' + formatTime(d);

    return dateString;
}

var formatTime = function(date) {
    var hours = date.getHours();
    var minutes = date.getMinutes();
    var ampm = hours >= 12 ? 'pm' : 'am';
    hours = hours % 12;
    hours = hours ? hours : 12; // the hour '0' should be '12'
    minutes = minutes < 10 ? '0' + minutes : minutes;
    var strTime = hours + ':' + minutes + '' + ampm;

    return strTime;
}

var loadMrect = function(zone_id, storyDiv) {
    if ($(window).width() <= 480) {
        var middleElem = $("#story" + storyDiv + " .story_main").children().not('.related_content_holder, div.commentLink, style, div.clear').length / 2;
        $mrec_container = $("#story" + storyDiv + " .story_main").children().not('.related_content_holder, div.commentLink, style, div.clear').eq(Math.round(middleElem));
        $mrec_container.after('<div class="ad" style="width:100%; text-align:center;margin: 10px 0px;"><div class="label">advertisement</div><iframe id="mrec_story_frame_' + storyDiv + '" scrolling="no" class="mrect_mobile" style="width:300px; height: 250px; border: 0px;"></iframe></div>');
        var mrec_frame_node = document.getElementById('mrec_story_frame_' + storyDiv);
        mrec_frame_node.contentWindow.contents = $story_ads_json.mobile_mrec.replace($initial_zone_id + 1 + "", zone_id);
        mrec_frame_node.src = 'javascript:window["contents"]';
        /*
         if ($(window).width() <= 340) {
         var margin = ($(window).width() - 300);
         $("#story"+storyDiv+" .story_main #mrectDiv").css('margin', '10px 0px 10px -5%');
         }*/
    }
}

var loadOutbrain = function(story_container, link){
  var outbrain_node = document.getElementById('story'+story_container+'_ob_iframe');
  outbrain_node.contentWindow.contents = $outbrain_view.ob.replace('changelink_stub', link.replace(base_url, "http://www.gmanetwork.com/news/"));
  outbrain_node.src = 'javascript:window["contents"]';
}

var loadBannerAd = function(nextStory) {
    var html = "";
    var hldr = '';
    var iframe = '';
    if ($(window).width() >= 768) {
      hldr = 'mobile-mrec-ob_' + nextStory;
      iframe = 'mobile_mrec_ob_' + nextStory;
      $('#mobile-mrec-ob_' + nextStory).append('<iframe id="mobile_mrec_ob_' + nextStory + '" scrolling="no" style="width: 300px !important; text-align:center; border: 0px; height: 250px !important;"></iframe>');
    } else {
      hldr = 'mobile-mrec-top_' + nextStory
      iframe = 'mobile_mrec_top_frame_' + nextStory
      $('#mobile-mrec-top_' + nextStory).append('<iframe id="mobile_mrec_top_frame_' + nextStory + '" scrolling="no" style="width: 300px !important; text-align:center; border: 0px; height: 250px !important;"></iframe>');
    }
    var mobile_mrec_top_frame_node = document.getElementById(iframe);
    if (typeof mobile_mrec_top_frame_node !== "undefined" && typeof mobile_mrec_top_frame_node.contentWindow !== "undefined" && mobile_mrec_top_frame_node.contentWindow != null) {
        mobile_mrec_top_frame_node.contentWindow.contents = $ads_json.mrec;
        mobile_mrec_top_frame_node.src = 'javascript:window["contents"]';
    }

    $('#story' + nextStory + ' #'+ hldr).css("display", "block");

    return html;
}

var disqusCall = function(story_url) {
    /*disqus comment count*/
    $.getScript('http://gmanews.disqus.com/count-data.js?1=' + encodeURIComponent(story_url.replace(base_url, "http://www.gmanetwork.com/news/")));
    var actualDisplayCount = DISQUSWIDGETS.displayCount;
    DISQUSWIDGETS.displayCount = function(options) {
        var count = (typeof options.counts[0] !== "undefined") ? ((parseInt(options.counts[0].comments) > 1000) ? options.counts[0].comments + 'K' : options.counts[0].comments) : 0;
        $('#story_social_ribbon div.gno_comment_count').text(count);
        $('.shr_header_comment').text(count);
        return actualDisplayCount(options);
    };
}

var analyticsCall = function(location) {
    /*google analytics send*/
    //var location = window.location.hostname + window.location.pathname + window.location.search;
    //console.log("Analytics Loc: "+location);
    var params_ = {page_overriden: location.replace(base_url, 'news/'), page_title: document.title};
    CUSTOM_ANALYTICS.ga_send_event(params_);
    /*end*/
}

var commentsEvent = function() {
    var itemLink = $('.article_mode_sr div:first').attr('st_url'); // Get link from any of the st_url
    var src = $('#story' + $(this).attr('data-target')).find("#comnt");
    //console.log(itemLink);
    loadDisqus(src, itemLink, itemLink);
}

var bindMiscEvents = function() {
    $(document).on('click', '#comment', commentsEvent);

    $(document).on('click', '#font_resize', function() {
        font_size = (font_size != 22) ? font_size + 2 : 18;
        line_height = (font_size <= 22) ? font_size + 7 : 25;
        $('.story_main').attr('style', 'font-size: ' + font_size + 'px; line-height: ' + line_height + 'px;');
        $(document).scrollTop($("#story" + curStory + " .story_title").offset().top - 150);
    });

    $(document).on("click", ".b2t", function() {
        curStory = 1;
        nxtStory = 2;
        if ($(".cross_sell_container #mrect1").length > 1) {
            for (var i = crsElemCount; i < 12; i++) {
                CROSS_SELL.loadWidget();
            }
            $(".cross_sell_container #mrect1").last().prevAll().remove();
            $(document).scrollTop(0);
        } else {
            $(document).scrollTop(0);
        }
        changePageState();
    });

    $(document).on("click", ".b2p", function() {
        var prev = curStory - 1;
        var scroll = 0;
        if (prev > 0) {
            //$(window).scrollTop($("#story"+prev).offset().top);
            $('html, body').animate({
                scrollTop: $("#story" + prev).offset().top
            }, "20000");
        } else {
            $(document).scrollTop(0);
        }
        var intrval = setInterval(function() {
            if (scroll <= 20) {
                $(window).scroll(); // trigger scroll to remove excess widget in cross-sell
                scroll++;
            } else {
                clearInterval(intrval);
            }
        }, 1);
    });

    $(window).scroll(function() {
        if ($(window).width() >= 768 && $(window).height() >= 510) {
            if ($(document).scrollTop() > 0) {
                $("#story_social_ribbon").css("top", "90px");
            } else {
                $("#story_social_ribbon").css("top", "");
            }
        }
    });

    $(document).on("mouseover", ".b2t", function() {
        $(this).find("img").attr("src", assets_url + "img/article/top_hover.png");
    }).on("mouseout", ".b2t", function() {
        $(this).find("img").attr("src", assets_url + "img/article/top.png");
    });

    $(document).on("mouseover", ".b2p", function() {
        $(this).find("img").attr("src", assets_url + "img/article/prev_hover.png");
    }).on("mouseout", ".b2p", function() {
        $(this).find("img").attr("src", assets_url + "img/article/prev.png");
    });
}

var loadAlexa = function(containerId){
    var alexaHtml = '<script type="text/javascript">'+
                    '_atrk_opts = { atrk_acct:"LssQl1aE+GW1O7", domain:"gmanetwork.com",dynamic: true};'+
                    '(function() { var as = document.createElement("script"); as.type = "text/javascript"; as.async = true; as.src = "https://d31qbv1cthcecs.cloudfront.net/atrk.js"; var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(as, s); })();'+
                    '</script>'+
                    '<noscript><img src="https://d5nxst8fruw4z.cloudfront.net/atrk.gif?account=LssQl1aE+GW1O7" style="display:none" height="1" width="1" alt="" /></noscript>';
    var alexaIframe = document.getElementById("alexa_story_"+containerId);
    alexaIframe.contentWindow.contents = alexaHtml;
    alexaIframe.src = 'javascript:window["contents"]';
}

$(document).ready(function() {
    getCrossSell();


    $(window).scroll(nextStoryEvent);
    bindMiscEvents();
    $(window).scroll(function() {
        if ($('div#story_container').children().length > 2) {
            if ($('#story' + (nxtStory)).length > 0 && $(window).scrollTop() + 100 > $('#story' + (nxtStory)).offset().top) {
                nxtStory += 1;
                curStory += 1;
                changePageState();
            }
            if ($('#story' + (curStory)).offset().top > $(window).scrollTop() + 500) {

                if (curStory > 1) {
                    curStory -= 1;
                }
                if (nxtStory > 2) {
                    nxtStory -= 1;
                }
                changePageState();
            }
        }
        if ($(window).width() >= 1200) {
            if ($('#story' + (curStory - 1) + '_link').data('ismultimedia') == 1 && $('#story' + (curStory)).offset().top > $(window).scrollTop() + 100) {
                $('#cross_sell_drawer').fadeOut("fast");
            } else if ($('#story' + (curStory) + '_link').data('ismultimedia') != 1) {
                $('#cross_sell_drawer').fadeIn("fast");
            } else if ($('#story' + (curStory - 1) + '_link').data('ismultimedia') != 1 && $('#story' + (curStory)).offset().top > $(window).scrollTop() + 500) {
                $('#cross_sell_drawer').fadeIn("fast");
            } else if ($('#story' + (curStory) + '_link').data('ismultimedia') == 1) {
                $('#cross_sell_drawer').fadeOut("fast");
            }

        }

    });

    //console.log("origin: " + filters[filters.indexOf(story_origin)] );
    var path = window.location.pathname.replace('/' + filters[filters.indexOf(story_origin)], '');
    var loc = window.location.hostname + path + window.location.search;
    //console.log("History "+loc);
    // end of onboarding

});

$(window).load(function() {
    $(this).on('popstate', function(e) {
        e.stopPropagation();
        if (initialPop === false) {
            window.location.href = e.originalEvent.state.url;
        }
    });
    initialPop = false; // Allow binded popstate function to take effect after page load
});


function reverse(s) {
    var o = '';
    for (var i = s.length - 1; i >= 0; i--)
        o += s[i];
    return o;
}
