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.]+)/,'jQuery1');
                        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",
    currentToolboxAd : "",

    initialize:function()
    {
        wwd.events.addListener( "hashChanged", function(hash){ wwd.content.onHashChange(hash); });
        wwd.events.addListener( "pageLoad", function(){
            wwd.content.updateLinks();wwd.content.eventtracking();if(wwd.events.mostViewedJson){wwd.events.callTheMostViewed(wwd.events.mostViewedJson);}if(wwd.events.mostEmailedJson){wwd.events.callTheMostEmailed(wwd.events.mostEmailedJson);}if(wwd.events.mostViewedXRailJson){wwd.events.callTheMostViewedXRail(wwd.events.mostViewedXRailJson);}if(wwd.events.mostEmailedXRailJson){wwd.events.callTheMostEmailedXRail(wwd.events.mostEmailedXRailJson);}
        });


        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 ( jQuery("body.publications").length > 0 ) {
            wwd.pageType = "publication";
        } else if ( jQuery(".ss-roadblock").length > 0 ) {
            wwd.pageType = "roadblock";
        } else if ( jQuery("#slideshow-container").length > 0 ) {
            wwd.pageType = "slideshow";
        } else if ( jQuery(".article-roadblock").length > 0 ) {
            wwd.pageType = "roadblock";
        /*} else if ( jQuery("#return-to-url").val() != undefined ) {
            wwd.pageType = "refresh";*/
        } else if ( jQuery("#subscriptions-container").length > 0 ) {
            wwd.pageType = "subscription";
        } else if ( jQuery("#all-profiles").length > 0 ) {
            wwd.pageType = "profiles_companies";
        } else if ( jQuery("#homepage-wrapper").length > 0 ) {
            wwd.pageType = "homepage";
        } else if ( jQuery("#static").length > 0 ) {
            wwd.pageType = "static";
        } else if ( jQuery("#footer-nav").length > 0 ) {
            wwd.pageType = "footer-page";
        } else if ( jQuery(".packages-main-container").length > 0 ) {
            wwd.pageType = "package-page";
        } else if ( jQuery("#blog-filter").length > 0 ) {
            wwd.pageType = "blog";
        } else if ( jQuery("#runway-content").length > 0 ) {
            wwd.pageType = "article";
        } else if ( jQuery("#content #article-content").length > 0 ) {
            wwd.pageType = "article";
        } 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 = (jQuery("#return-to-url").val());
                  window.location = (urlre + "?reload=true");
            }
        }
    },
    eventtracking:function(){
        if ((jQuery("#articleSection").val() != "fashion-week") && !wwd.user.isLoggedIn() ) {
            return;
        }
        var EVENT_CODE = "most_viewed";
        var ENVIRONMENT = jQuery("#articleEnvironment").val();
        var EVENT_URL = jQuery("#articleEventURL").val();
        var CONTENT_TITLE = jQuery("#articleContentTitle").val();
        var CONTENT_URL = jQuery("#articleContentUrl").val();
        var CONTENT_TYPE = jQuery("#articleSection").val();
        var CONTENT_ID = jQuery("#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\//, "");
            }

            //fireEventTracker is in wwd-toolkit.js
            if (jQuery("#articleEnvironment")) {
                fireEventTracker('WWD',EVENT_CODE,ENVIRONMENT,CONTENT_ID,CONTENT_TYPE,CONTENT_URL,CONTENT_TITLE,EVENT_URL);
            }
        }
    },
    updateLinks:function(){
        var thisptr = this;
        var anchors = jQuery("." + this.paginationContainer + " a");
        anchors.each(function(i){
            var href = jQuery(this).attr("href");
            if ( href.indexOf("javascript") == -1 && wwd.pageType != 'microsite') {
                jQuery(this).click(function(){
                    thisptr.paginate(jQuery(this).attr("href"));
                    return false;
                });
            }
        });
        if(jQuery("#articleContentUrl").attr("value") == null)
        {
        }
        else
        {
            jQuery(".logout-link").attr("href", "/account/logout?returnto="+jQuery("#articleContentUrl").attr("value"));
        }
    },
    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 );
        }
    },
    refreshAdInfo:function() {
        var tileCount = 0;
        ordHolder = parseInt(Math.random()*10000000000000000);
        sub = "free";
        if ( wwd && wwd.user ) {
            sub = wwd.user.getSubscriptionLevel();
        }
        sub = sub == "free" ? "" : sub;
    },
    adReload:function(iframe)
    {
        var curSrc = iframe.src;
        var re = new RegExp('ord%3D\\d+', 'g');
        var re2 = new RegExp('ord\\=\\d+', 'g');
        if (curSrc.match(re)) {
            //change the ord value to new value
            iframe.src = curSrc.replace(re, encodeURIComponent('ord=' + ordHolder));
            //set s2 value to 'news' for article pages loaded thru AJAX
            if (wwd.pageType == "article" || wwd.pageType == "roadblock") {
                iframe.src = iframe.src.replace('s2%3Dlanding', "s2%3Dnews");
                iframe.src = iframe.src.replace('%2Flanding', "%2Fnews");
            }
            articleLoaded = true;
            ajaxLoadedArticle(articleLoaded);
        } else {
            if (curSrc.match(re2)) {
                //change the ord value to new value
                iframe.src = curSrc.replace(re, 'ord=' + ordHolder);
            } else {
                //no match - refresh current url
                iframe.src = curSrc;
            }
        }
    },
    adReloadAll:function(){
        refreshAdInfo();
        jQuery('iframe.refreshable').each(function(index) {
            adReload(this);
        });
    },
    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
        jQuery("#ajax-wrapper-hide").css({
            "display":"none"
        });

        // show toolbox ad
        jQuery("#tools-sponsored-by").show();

        // create the loading cover
        jQuery("#slideshow-container").after( jQuery("<div>").attr("id","load-cover").css("display","none") );

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

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

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

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

                jQuery("#tools-sponsored-by #ad-tag-container").empty();
                jQuery("#tools-sponsored-by #ad-tag-container").append(wwd.content.currentToolboxAd);

                //adReload(jQuery("#"));
                if (wwd.pageType != 'roadblock' ) {

                   if (wwd.pageType != "microsite" && wwd && wwd.toc) {
                        wwd.toc.updateLinks();
                   }

                    try{
                        disqus_url = 'http://' + window.location.host + jQuery("#articleContentUrl").attr("value");
                          (function() {
                              try{
                                                             disqus_url = window.disqus_url;
                           var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
                           dsq.src = 'http://wwd.disqus.com/embed.js';
                           (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
                              }catch(Err)
                              {}

                          })();
                    }catch(Err)
                    {}
                    try {
                        wwd.qc.varQC = jQuery("#quantcastid").text();

                        var qclabel = wwd.qc.dzscrub(wwd.qc.varQC);
                        _qoptions={ qacct:"p-993k9glOBrag6", labels:qclabel };
                        document.append( '<scr'+'ipt src="http://pixel.quantserve.com/seg/'+_qoptions.qacct+'.js" type="text/javascript"></scr'+'ipt>');

                    }
                    catch(Err) {
                    }
                   wwd.events.dispatchEvent("pageLoad");
                }
            }
        });
    }
};


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