var sizeText = new (function(){
    //private variables
    var me = this;
    var containers = [];

    //public methods
    me.init = function(id, className, tagName){
        var container = document.getElementById(id);
        if( container != undefined ) {
            var divs = container.getElementsByTagName(tagName);
            for(var i=0;i<divs.length;i++){
                if (divs[i].className.match(className)) {
                    var div = divs[i];
                    var fontSize = div.style.fontSize;
                    var intTextSize = 100;
                    if (fontSize != '') {
                        var s = fontSize.replace(/([0-9.]+)/,'$1');
                        var u = fontSize.slice(-1); //last character
                        intTextSize = parseInt(u=='m'?s*100:u=='%'?s:s*10);
                    }
                    containers.push({
                        domObj: div,
                        initialTextSize: intTextSize,
                        currentTextSize: intTextSize
                    });
                }
            }
        }
    };

    me.change = function(m){
        for(var i=0;i<containers.length;i++){
            var c = containers[i];
            var size = c.currentTextSize.toString();
            var intSize = size.indexOf("%") > -1 ? size.substring(0,size.indexOf("%")) : size;
            c.domObj.style.fontSize = c.currentTextSize = m==0 ? c.initialTextSize + "%" : parseInt(intSize) + m + "%";
        }
    }
})();

wwd.content =
{
    paginationContainer : "ajax-anchors",
    responseContainer : "ajax-wrapper",

    initialize:function()
    {
        wwd.events.addListener( "hashChanged", function(hash){ wwd.content.onHashChange(hash); });
        wwd.events.addListener( "pageLoad", function(){ wwd.content.updateLinks();wwd.content.eventtracking(); });
        wwd.events.addListener( "loggedIn", function(){ wwd.content.handleLogin(); });

        if ( (wwd.history.getHash()).length > 0 ) {
            this.onHashChange( wwd.history.getHash() );
        }
    },
    getPageType:function()
    {
        this.setPageType();
    },
    setPageType:function()
    {
        if ( $(".roadblock-container").length > 0 ) {
            wwd.pageType = "roadblock";
        } else if ( $("#subscriptions-container").length > 0 ){
            wwd.pageType = "subscription";
        } else if ( $(".microsite-content").length > 0 ){
            wwd.pageType = "microsite";
        } else if ( $("#return-to-url").val() != undefined ){
            wwd.pageType = "refresh";
        } else if ( $("#homepage-wrapper").length > 0 ) {
            wwd.pageType = "homepage";
        } else if ( $("#static").length > 0 ) {
            wwd.pageType = "static";
        } else if ( $("#footer-nav").length > 0 ) {
            wwd.pageType = "footer-page";
        } else if ( $(".packages-main-container").length > 0 ) {
            wwd.pageType = "package-page";
        } else {
            wwd.pageType = "default";
        }
    },
    handleLogin:function(){
        if (
            wwd.pageType == 'refresh' ||
            wwd.pageType == 'roadblock' ||
            wwd.pageType == 'subscription'
        ) {
        var randomNumber = Math.random();
            var randomNumberFloored = Math.floor(randomNumber * 1234567890123);
        var browsetString = "browsets=" + randomNumberFloored.toString();
            if (window.location.hash == null || window.location.hash == '' ) {
            if (window.location.search == ""){
                    window.location.href = window.location.href + "?" + browsetString;
        }else{
            window.location.href = window.location.href + "&" + browsetString;
        }
            } else {
                var hash = window.location.hash;
                hash = hash.substring(9);
        if (hash.indexOf("?") != -1){
            hash = hash + "&" + browsetString;
        }else{
            hash = hash + "?" + browsetString;
        }
                var urlre = ($("#return-to-url").val());
                  window.location = (urlre + "?reload=true");
            }
        }
    },
    eventtracking:function(){
    if (($("#articleContenType").val() != "fashion-week") && !wwd.user.isLoggedIn() ) {
        return;
    }
        var EVENT_CODE = "most_viewed";
        var ENVIRONMENT = $("#articleEnvironment").val();
        var EVENT_URL = $("#articleEventURL").val();
        var CONTENT_TITLE = $("#articleContentTitle").val();
        var CONTENT_URL = $("#articleContentUrl").val();
        var CONTENT_TYPE = $("#articleContenType").val();
        var CONTENT_ID = $("#articleContentId").val();

        var isPrint = /\/print\//.test(CONTENT_URL);
        var qs = wwd.getQueryString();
        if (isPrint == true || !(qs["page"] && qs["page"] > 1) ) {
            // convert print urls to normal article urls
            if (isPrint == true) {
                CONTENT_URL = CONTENT_URL.replace(/\/print\//, "");
            }

            // escape any crazy characters
            CONTENT_TITLE = escape(CONTENT_TITLE);

            //fireEventTracker is in wwd-toolkit.js
            if ($("#articleEnvironment")) {
                fireEventTracker(EVENT_CODE,ENVIRONMENT,CONTENT_ID,CONTENT_TYPE,CONTENT_URL,CONTENT_TITLE,EVENT_URL);
            }
        }
    },
    updateLinks:function(){
        var thisptr = this;
        var anchors = $("." + this.paginationContainer + " a");
        anchors.each(function(i){
            var href = $(this).attr("href");
            if ( href.indexOf("javascript") == -1 && wwd.pageType != 'microsite') {
                $(this).click(function(){
                    thisptr.paginate($(this).attr("href"));
                    return false;
                });
            }
        });
    },
    paginate:function(href){
        wwd.logger.log("Content.paginate("+href+")");
        if ( href && href.length > 0 ) {
            wwd.history.setHash( "article" + href );
        }
    },
    onHashChange:function( hash ){
        //look for article and parse hash
        var contentType = "article";
        startHash = contentType.length;
        if ( hash != null && hash.indexOf( contentType ) == 0 ) {
            this.doPage( hash.substring( startHash ), this.responseContainer );
        }
    },
    doPage:function( href, container ){
        var thisptr = this;
        var qs = href.indexOf("?") > -1 ? "&" : "?";

        if ( href.indexOf("#") > -1 ){
            var splitHref = href.split("#");
            href = splitHref[0];
            var scrollTo = "#" + splitHref[1];
        }

        container = (container)?(container):(this.responseContainer);


        // hide stuff from landing pages
        $("#ajax-wrapper-hide").css({
            "display":"none"
        });
        // create the loading cover
        $("#slideshow-container").after( $("<div>").attr("id","load-cover").css("display","none") );

        //$("body").append( $("<div>").attr("id","load-cover").css("display","none") );

        // align, size, style cover
        $("#load-cover").css( $("#content").offset() );
        $("#load-cover").css({
            "opacity": ".8",
            "filter" : "alpha(opacity=88)",
            "-moz-opacity" : ".88",
            "position": "absolute",
            /* "z-index" : "100", */
            "background-color" : "#ffffff"
        });
        $("#load-cover").width( $("#content").width() );
        $("#load-cover").height( $("#content").height() );

        // create loading indicator and container
        var img = $("<img>");
        img.attr("src","/images/icons/loader-blue.gif");
        img.css("margin","40px");
        $("#load-cover").append( img );

        // shoe cover
        $("#load-cover").css( "display","block");
        $.ajax({
            url: href + qs + "decorator=zero&confirm=true",
            success: function(myResponse){
                var domRes = $(myResponse);
                // render new content
                $("#" + thisptr.responseContainer).html(domRes.find("#render-wrapper"));
                $("#landing-ad").removeClass("ad-section-landing");
                $("#ajax-wrapper-xrail").html(domRes.find("#render-wrapper-xrail"));
                $("#ajax-wrapper-quizpoll").html(domRes.find("#render-wrapper-quizpoll"));
                $("#content-container").css({
                    "background":"url(/images/backgrounds/content-container-article.gif) top left repeat-y"
                });
                $(".tocContainer").show();
                // scroll to top of page, or the top of the content
                var top = Math.min( $("html").scrollTop(), $("#content").offset().top );
                $('html,body').animate( {scrollTop: top }, 1000 );
                $("#load-cover").remove();
                //mboxCreate('WWD_contnetPages_subBox');
                 $("body").find(".roadblock-container").find(".mboxDefault").attr("style", "visibility:visible");

                wwd.events.dispatchEvent("pageLoad");
            }
        });
    }
};

$(document).ready(
    function() {
        sizeText.init("content","size-text","div");
        wwd.jsHover();
        wwd.content.setPageType();
        wwd.content.updateLinks();
    }
);
