﻿var Newsweek = window.Newsweek || {};

Newsweek.namespace = function(ns){
  if(!ns || !ns.length){
      return null;
  }

  var nw_2 = ns.split(".");
  var nw_3 = Newsweek;

   for(var i=(nw_2[0]=="Newsweek")?1:0;i<nw_2.length;++i){
       nw_3[nw_2[i]] = nw_3[nw_2[i]] || {};
       nw_3 = nw_3[nw_2[i]];
   }
   return nw_3;
};

Newsweek.namespace("Component");
Newsweek.namespace("Widget");
Newsweek.namespace("Util");


var Paths = {
	
	Current : null,

	InferRootPath : function() {
		var subdirectory = window.location.pathname;
		subdirectory = subdirectory.substring(0, subdirectory.lastIndexOf("/"));
		if (subdirectory.indexOf("/id") > -1) {
			subdirectory = subdirectory.substring(0, subdirectory.indexOf("/id"));
		}
		if (subdirectory.indexOf("/profile") > -1) {
			subdirectory = subdirectory.substring(0, subdirectory.indexOf("/profile"));
		}
		return window.location.protocol + "//" + window.location.host + subdirectory;
	},
	
	Init : function() {
		var defaultPath = Paths.InferRootPath();
		this.RootPath = defaultPath;
		this.FilePath = defaultPath;
		this.StaticContentRoot = defaultPath;
		this.RegistrationHost = defaultPath;
		this.SearchHost = defaultPath;
		
		if (typeof(rootpath) != 'undefined'){
			this.RootPath = rootpath;
		}
		if (typeof(filepath) != 'undefined'){
			this.FilePath = filepath;
		}
		if (typeof(staticContentRoot) != 'undefined'){
			this.StaticContentRoot = staticContentRoot;
		}
		if (typeof(registrationHost) != 'undefined'){
			this.RegistrationHost = registrationHost;
		}
		if (typeof(searchHost) != 'undefined'){
			this.SearchHost = searchHost;
		}
	}
};

Paths.Current = new Paths.Init();

function detectProxy(url){
    if(typeof(proxyUrl) != 'undefined'){
        var encodedUrl = proxyUrl + '?url=' + encodeURIComponent(url);    
        return encodedUrl;
    } else {  
        return url;
    }
}

function initializeSubscribeForm(){
	$('#subFirstName').focus(function(){
	    if (this.value == 'First Name'){ this.value = '';}
	});
	$('#subLastName').focus(function(){
	    if (this.value == 'Last Name'){this.value = '';}
	});
	$('#cds_email').focus(function(){
	    if (this.value == 'Email Address'){this.value = '';}
	});
}

function search(button){   
    if(button.id=="site-search-submit"){
        $("#searchForm").attr("action", Paths.Current.SearchHost + "/search.aspx");
        $("#searchForm").attr("target", "_self");
    } else if (button.id=="web-search-submit") {
		// SMH we don't want to submit the default search parameters to msn
		$("//form[@id='searchForm']/input[@type='hidden']").remove();
        $("#searchForm").attr("action", "http://search.msn.com/results.asp");
        $("#searchForm").attr("target", "_blank");
    }
}

function subscribeMag(){
    $("#cds_name").val($("#subFirstName").val() + " " + $("#subLastName").val());
    $("#cds_page_id").val(32693);
}

function setHome(node) {
	if($.browser.msie) {
		node.style.behavior='url(#default#homepage)';node.setHomePage('http://newsweek.test');
		return false;
	}
	return true;
}

function quickReadDelayedAdCall(){
	if (document.getElementById('wpni_adi_468x60_quickread')){
		placeAd2('module/quickread','468x60|quickread','AJAX','');
	}
}

function quickReadAdCall(){
	window.setTimeout(quickReadDelayedAdCall, 250);
}

function quickGuideDelayeAddCall(){
	if (document.getElementById('wpni_adi_88x31_quickguide')){
		placeAd2('module/quickguide','88x31|quickguide','AJAX','');
	}
}

function quickGuideAdCall(){
	window.setTimeout(quickGuideDelayeAddCall, 250);
}

function travelingHomepageAdTarget(){
	return '<div id="slug_88x31_thp" class="sponsoredAd" style="float:right;margin:0 13px 0 0;width:160px;"><div id="wpni_adi_88x31_thp" class="sponsorship" style="float:right;"><xsl:text> </xsl:text></div><div class="sponsoredAdText" style="color:#868685;font-size:0.8em;margin:5px 2px 0 0;">Sponsored by</div></div>';
}

function travelingHomepageDelayedAdCall(){
	if (document.getElementById('wpni_adi_88x31_thp')){
		placeAd2('module/travelinghomepage','88x31|thp','AJAX','');
	}
}

function travelingHomepageAdCall(){
	window.setTimeout(travelingHomepageDelayedAdCall, 250);
}

function peekAdCall(id)
{
	if (typeof(placeAd2) == 'function'){
		var peekPageId = '';
		var peekCommercialNode = '';
		var idParts = id.split(':');
		if (idParts.length > 1) {
			peekPageId = idParts[1];
		}
		if (idParts.length > 2) {
			peekCommercialNode = idParts[2];
		}
		if (peekCommercialNode === '' && typeof(commercialNode) != 'undefined'){
			peekCommercialNode = commercialNode;
		}
		placeAd2(peekCommercialNode,'88x31|'+peekPageId,false,'');
	}
	return false;
}

function multimediaAdCall()
{
	if (document.getElementById('wpni_adi_leaderboard'))
	{
		placeAd2(commercialNode,'leaderboard','AJAX','');
	}
	if (document.getElementById('wpni_adi_articleFlex'))
	{
		placeAd2(commercialNode,'articleFlex','AJAX','');
	}
}

function setIphoneBanner(){
	if(navigator.userAgent && navigator.userAgent.toLowerCase().indexOf('iphone') > -1){
		$('#iphoneBanner').html('<a href="http://newsweek.test" style="float:left;padding-bottom:5px"><img src="' + Paths.Current.StaticContentRoot + '/i/nwk_iphone_redirect_banner.gif"/></a>');
	}
}

function hasFlash(divid)
{
	var version = deconcept.SWFObjectUtil.getPlayerVersion();
    if (document.getElementById && (version.major === 0))
    {
      document.getElementById(divid).innerHTML = "<a href='http://www.adobe.com/go/getflashplayer'><img src='/i/nw_flash_install_ccol.jpg' border=0></a>";
    }
    else if (document.getElementById && (version.major > 0 && version.major < 8))
    {
      document.getElementById(divid).innerHTML = "<a href='http://www.adobe.com/go/getflashplayer'><img src='/i/nw_flash_upgrade_ccol.jpg' border=0></a>";
    }
    else
    {
		return true;
    }

    return false;
}

function getRealTopByObj(thisObj) 
{
	yPos = 0;
	if(thisObj)
	{
		yPos = thisObj.offsetTop;
		tempEl = thisObj.offsetParent;
		while(tempEl !== null)
		{
			yPos += tempEl.offsetTop;
			tempEl = tempEl.offsetParent;
		}
	}
	return yPos;
}

function getRealTop(div)
{
	thisObj = div;
	yPos = getRealTopByObj(div);
	return yPos;
}

function getRealLeftByObj(thisObj)
{
	xPos = 0;
	if(thisObj)
	{
		xPos = thisObj.offsetLeft;
		tempEl = thisObj.offsetParent;
		while(tempEl !== null)
		{
			xPos += tempEl.offsetLeft;
			tempEl = tempEl.offsetParent;
		}
	}
	return xPos;
}

function getRealLeft(div)
{
	thisObj = div;
	xPos = getRealLeftByObj(div);
	return xPos;
}

function getMouseY(e)
{
    if(e === null){e = event;}
	return e.clientY + document.documentElement.scrollTop; // true yPos mouse event, exclusive to ie
}

function getMouseX(e)
{
    if(e === null){e = event;}
    
	return e.clientX + document.documentElement.scrollLeft; // true xPos mouse event, exclusive to ie
}

function getPointerX(e)
{  
	return ((e !== null) ? e.pageX : getMouseX(window.event));
}

function getPointerY(e)
{  
	return ((e !== null) ? e.pageY : getMouseY(window.event));
}

function GetObjPos(obj)
{
	var xPos = 0, yPos = 0;
	var tempEl = null;
	if(obj){
	
		xPos = obj.offsetLeft;
		yPos = obj.offsetTop;	
		tempEl = obj.offsetParent;
		
		while(tempEl !== null){
			xPos += tempEl.offsetLeft;
			yPos += tempEl.offsetTop;
			tempEl = tempEl.offsetParent;			
		}
	}
	return [xPos, yPos];
}

function getScrollTop()
{
	if (document.documentElement && document.documentElement.scrollTop){
		return document.documentElement.scrollTop;
	} else if (document.body) {
		return document.body.scrollTop;
	} else if (window.pageYOffset) {
		return window.pageYOffset;
	}
	return 0;
}

$.fn.center = function(f) {
    return this.each(function(){
        if ( !f && this.nodeName == 'DIV' &&
                 !this.offsetWidth && !this.offsetHeight ) {
            var self = this;
            setTimeout(function(){
                $(self).center(true);
            }, 13);
        } else {
            var s = this.style;
            var p = this.parentNode;
            if ( $.css(p,"position") == 'static' ) {
                p.style.position = 'relative';
            }
            s.position = 'absolute';
            s.left = (($.css(p,"width") - $.css(this,"width"))/2) + "px";
            var scroll = getScrollTop();
            s.top = (scroll + 180) + "px";
            //s.top = ((200 - $.css(this,"height"))/2) + "px";
        }
    });
};

// Adds an event handler to the source
function AddHandler(eventSource, eventName, handlerName, eventParent) {
    var eventHandler = function(e) {eventSource[handlerName](e, eventParent);};

    if (eventSource.addEventListener){
        eventSource.addEventListener(eventName, eventHandler, false);
    } else if (eventSource.attachEvent) { 
        eventSource.attachEvent("on" + eventName, eventHandler);
    } else {
        var originalHandler = eventSource["on" + eventName];

        if (originalHandler){
            eventHandler = function(e) {originalHandler(e); eventSource[handlerName](e, eventParent);};
        }
        eventSource["on" + eventName] = eventHandler;
    }
}

function GetEventXY(e){
    if (e === null) {e = window.event;}
    return [e.clientX + document.documentElement.scrollLeft, e.clientY + document.documentElement.scrollTop];
}

//Returns the true offset position of an element
function GetPos(Obj) {
	var curleft = 0;
	var curtop = 0;

	if (Obj.offsetParent){
		curleft = Obj.offsetLeft;
		curtop = Obj.offsetTop;

		while (Obj == Obj.offsetParent){
			curleft += Obj.offsetLeft;
			curtop += Obj.offsetTop;
		}
	}
	return [curleft, curtop];
}

function evalScripts(html){
	var re = /<script.*?>([\s\S]*?)<\//igm;
	var match;
	while (match = re.exec(html)) {
		eval(match[1]);
	}
}

/* cache background images [IE Fix] */
try {
    document.execCommand("BackgroundImageCache", false, true);
} 
catch(err) {}

function toggleWindowObjects(show) {
    if (show) {
        $("select").css('visibility', 'visible');
        $("object").each(function() {
			var html = $(this).html().toLowerCase();
			if (html.indexOf('name="wmode" value="transparent"') == -1 && html.indexOf('name="wmode" value="opaque"') == -1) {
				$(this).css('visibility', 'visible');
			}
		});
        $("embed[@wmode != 'transparent']").css('visibility', 'visible');
        $("embed[@wmode != 'opaque']").css('visibility', 'visible');
    } else {
        $("select").css('visibility', 'hidden');
        $("object").each(function() {
			var html = $(this).html().toLowerCase();
			if (html.indexOf('name="wmode" value="transparent"') == -1 && html.indexOf('name="wmode" value="opaque"') == -1) {
				$(this).css('visibility', 'hidden');
			}
		});
        $("embed[@wmode != 'transparent']").css('visibility', 'hidden');
        $("embed[@wmode != 'opaque']").css('visibility', 'hidden');
    }
}

var arrNodeClass = ['peekOff', 'peekSelected', 'ctrl', 'thpButton', 'quickGuide', 'next', 'prev'];

function disableContextMenu(ctrlClass){   
    document.oncontextmenu = function(e){
        if(!e) {e = window.event;}
        var evtTarget = (e.target) ? e.target : e.srcElement;
        for(var i=0;i<ctrlClass.length;i++){   
            if(evtTarget.className.indexOf(ctrlClass[i]) != -1 || evtTarget.parentNode.className.indexOf(ctrlClass[i]) != -1){
				evtTarget = null;
                return false;
            }        
        }
    };
}

disableContextMenu(arrNodeClass);



$(document).ready(function(){
    initializeSubscribeForm();
});

function Omniture_SendDLData(){
    Omniture_SendMicroData("Dynamic Lead", "event20");
}

function BindTHPTracking()
{
    $("div.TopHeadlines a").unbind();
    $("div.convWisdom a").unbind();

    $("div.TopHeadlines a").click(function(){Omniture_SendMicroData("Breaking News", "event18");});
    $("div.convWisdom a").click(function(){Omniture_SendMicroData("Conventional Wisdom", "event19");});
}

function Omniture_SendMicroData(customLinkName, event)
{
    if (event)
    {
        s.linkTrackVars = "events";
        s.linkTrackEvents = event;
        s.events = event;
    }

    s.tl(this, 'o', customLinkName);
}

function ShareLinks(Container) {
    this.Visible = false;
    this.FullyExpanded = false;
    this.Container = Container;
    
	this.hide = function() {
		$(this.Container).fadeOut('fast');
		this.Visible = false;
	};
	
	this.show = function() {
	    var pos = GetPos($('#ToolBox li.social').get(0));
	    var sl = [parseInt($('.SocialLinks').height()*.32), parseInt($('.SocialLinks').width()*.9)];
	    $(this.Container).css('left',(pos[0]+sl[1])+'px');
	    $(this.Container).css('top',(pos[1]-sl[0])+'px');
		$(this.Container).fadeIn('fast');
		this.Visible = true;
	};
}

Newsweek.Widget.FontSizeSlider = {
    
    init : function(obj, width, caretWidth) {
        var slider = {
            dragging       : false,
            width          : width,
            percent        : 0,
            origFontSize   : 1,
            lineHeightRate : 0.416667,
            container      : obj,
            caret          : $('div', obj).slice(0, 1),
            caretWidth     : caretWidth
        };
                
        $(slider.caret).mousedown(function() {
            if(slider.dragging) {return;}
            slider.dragging = true;
        });
        
        $(document).mousemove(function(e) {
            Newsweek.Widget.FontSizeSlider.onSliderMouseMove(e, slider);
        });
        
        $(document).mouseup(function(e) {
            Newsweek.Widget.FontSizeSlider.onSliderMouseUp(e, slider);       
        });        
    },
    
    slideToStart : function(slider){
        this.slideTo(0, slider);
    },
    
    slideToEnd : function(slider){
        var X = (slider.width - slider.caretWidth);
        this.slideTo(X, slider);    
    },
    
    slideTo : function(X, slider){
        $(slider.caret).css('left', X + 'px');
        slider.percent = (X / slider.width);
    },
    
    onSliderMouseUp : function(e, slider){
        if (slider.dragging){
            slider.dragging = false;
            this.onAfterResize(slider);
        }    
    },
    
    onSliderMouseMove : function(e, slider){
    
        if (!slider.dragging) {return;}
        
        var MouseP = GetEventXY(e);
        var MouseX = MouseP[0];
        var MouseY = MouseP[1];    
        var SliderP = GetPos(slider.container);
        SliderX = getRealLeft(slider.container);

        if (MouseX < (SliderX + (slider.caretWidth / 2))) {
            this.slideToStart(slider);
        } else if (MouseX > (SliderX + slider.width - slider.caretWidth)) {
            this.slideToEnd(slider);
        } else {
            var X = (MouseX - SliderX - (slider.caretWidth / 2));
            this.slideTo(X, slider);
        }
    },
    
    onAfterResize : function(slider){
    
        var NewSize = slider.origFontSize;

        if (slider.percent > 0){
            NewSize = slider.origFontSize + (slider.origFontSize * slider.percent);
        }
        
        $('#content').css('font-size', NewSize + 'em');
        slider.dragging = false;
    }
}


Newsweek.Widget.Peek = {
    
    strQueryParam : '/output/thepeek',
    strLoadingImg : '',
    intRequestTimeout : 500000,
    arrSections : [],
    
    init : function(objCurrentPeek, args){
        $("div.ThePeek").each(function(i){
            
            var objPeek = this;
                 
            objPeek = {
                peekId      : this.id,
                tabs        : $("div.box div.content div.peekBox div.content div.sectionWrapper ul.peekSections li", this).slice(0),
                sections    : $("div.box div.content div.peekBox div.content div.sectionWrapper ul.peekSections", this),
                content     : $("div.box div.content div.peekBox div.content div.contentWrapper div.peekContent", this),
                initHeight  : $("div.box div.content div.peekBox div.content div.sectionWrapper ul.peekSections", this).height()
            };
            
            Newsweek.Widget.Peek.setHandler(objPeek);
        });     
    },
    
    setHandler : function(objPeek){    
       $("a", objPeek.tabs).click(function(){
        
            $(this).blur();
            
            if($(this).attr("class") == 'selected')
            {
                return false;
            }
            
            $(objPeek.tabs).removeClass("peekSelected").addClass("peekOff");
            $(objPeek.tabs).children("a").removeClass("selected");
            
            if(objPeek.peekId == "mmWrapper")
            {
                Newsweek.Widget.Peek.strQueryParam = '/output/multimediaguide';
                $("../../li", this).removeClass("lightTan");
                $("../../li:even", this).slice(1).addClass("medTan");            
            }
            
            $(this).parent("li").removeClass("peekOff").addClass("peekSelected");
            $(this).addClass("selected");                               
            
            Newsweek.Widget.Peek.getAjaxRequest(this, objPeek);

            Omniture_SendMicroData("What's Inside - " + this.innerHTML, "event17");

            return false;
        });
    },
    
    getAjaxRequest : function(source, objPeek)
    { 
        $.ajax({
           beforeSend : function()
           {
               $(objPeek.content).empty();
               $(objPeek.content).append('<div class="loading peekld"><span>Loading</span></div>');           
           },
           url : detectProxy(source + this.strQueryParam),
           success :function(html) 
           {    
                $(objPeek.content).html(html);
                Newsweek.Widget.QuickRead('', '', '');
				peekAdCall(source.id);
				
           },
           error : function()
           {
               $(objPeek.content).html("<span class='peekError'>We are currently unable to return the requested content. Please try again later.</span>");
           }           
        });        
    }
};

Newsweek.Widget.Overlay = {
    
    isActive : false,
    tags : ['embed', 'object', 'select', 'iframe'],

    init : function(dBox){
        if(this.isActive){return false;}
        
        var modal = document.createElement('div');
        modal.id = 'modal2';
        $(modal).insertBefore("#nwContainer");
    
        var overlay = document.createElement('div');
        overlay.id = 'overlay2';
        var docHeight = $(document).height();
        
        $(overlay).css({
            height: docHeight + 'px',
            opacity : 0                
        });
        
        $(overlay).appendTo("#modal2");
        $(dBox.box).appendTo("#modal2");
        
        if(dBox.bIsCentered){
        
            $(dBox.box).center();
            $(window).resize(function(){
                $(dBox.box).center();
            });
            
            if(dBox.bIsScrollable){
                var scroll = getScrollTop();   
                
                window.onscroll = function(e){
                    var scroll = getScrollTop();
                    var scrollDelay = setTimeout(function(){
                        $(dBox.box).css({
                            top : (scroll + 120) + 'px'
                        });
                    }, 250);
                }; 
            }                        
        } else {
            $(window).resize(function(){
                
                Newsweek.Widget.DialogBox.setCoord(dBox);
            });             
         }
                
        this.checkEmbedded();                
        this.showOverlay(overlay, modal, dBox);
    },
    
    checkEmbedded : function(){
				
		for(var i=0;i<this.tags.length;i++){
		
			var node = document.getElementsByTagName(this.tags[i]);

			for(var j=0;j<node.length;j++){
				
				if(node[j].id == 'top10_vert'){
					continue;
				}				
				
				if(node[j].style.visibility === 'hidden' || $(node[j]).hasClass('hideTag')){
					$(node[j]).removeClass('hideTag');
				} else {
					$(node[j]).addClass('hideTag');
				}														
			}
		}             
    }, 
    
    showOverlay : function(overlay, modal, dBox){        
        $(overlay).animate({opacity : .4,'display':'block'}, 250, function(){
            $(this).click(function(e){
                if(e.target == this)            {
                    Newsweek.Widget.Overlay.hideOverlay();                        
                }
            });
            
            if($('#dialog')){
				$(dBox.box).find(".closeModal").click(function(e){
					Newsweek.Widget.Overlay.hideOverlay(overlay, modal);                        
				});  
            }
        });        
    },
    
    hideOverlay : function(overlay, modal){
        $("#dialog").remove();
        $("#overlay2").animate({opacity : 0}, 250, function(){           
           $("#modal2").empty().remove();
           Newsweek.Widget.Overlay.checkEmbedded();
           Newsweek.Widget.DialogBox.isActive = false;           
           $(".closeModal").unbind('click');
           $(window).unbind("resize");
        });
    }
};


Newsweek.Widget.DialogBox = {
     
    isActive : false,
    dBoxTimer : 0,
    isTimerSet : false,
    currentBox : null,
    eventType : 'click',

    init : function(evtType, target, link, html, wrapper, mPos, adCall, args){
        if(this.isActive) {return;}
        Newsweek.Widget.DialogBox.isActive = true;          
                
        this.eventType = evtType;  
        
        var dBox = {
            box : $("<div id='dialog'></div>"),
			target: (target) ? target : null,
			targetPos: function(){
				if(this.target){
					if(this.target.nodeName.toLowerCase() === 'a' || this.target.nodeName.toLowerCase() === 'img'){
						return GetObjPos(this.target);
					} else if(mPos){
						return mPos;
					}
				} else {
					return [200, 500];
				}
			},
			url: function(){
				var href = $(this.target).attr('href');
				if(this.target){
					if(this.target.nodeName.toLowerCase() === 'a' && href != '#' && href.indexOf('void') == -1){
						return $(this.target).attr('href');
					} else if (link !== '') {
						return link;
					}
				}
			},
			output: (args && args.output && typeof args.output == 'string') ? args.output : null,
			bIsModal: (!args.bIsModal) ? false : true,
			bIsScroll: (args.bIsScrollable) ? args.bIsScrollable : false,
			adjCoords: (typeof args.adjCoords === 'object') ? args.adjCoords : 0,
			width : (args.width) ? args.width : 0,
			align : function(){
				var pos = this.targetPos();
				var docWidth = $(document).width();
				var align = (pos[0]>docWidth/2) ? 'right' : 'default';
				return align;		
			},
			html: (html) ? html : null,
			wrapper : (wrapper) ? wrapper : '',
			adCall : (adCall) ? adCall : null,
            errorMsg : 'We are currently unable to process your request'  			
        };
        
        this.currentBox = dBox;
        Newsweek.Widget.DialogBox.getBoxContent(dBox);
    },
    
    getBoxContent : function(dBox){
        if(dBox.url() && dBox.url() !== ''){
            this.getAjaxRequest(dBox);
        } else {
            this.showDBox(dBox);
        }
    },
    
    getAjaxRequest : function(dBox){
		var url = dBox.url() + '/output/' + dBox.output + '/align/' + dBox.align();
		$.ajax({
			dataType : 'html',
			url: detectProxy(url),
			success: function(html){
				dBox.html = html;
				if(!$.browser.mozilla){
					evalScripts(html);
				}
				Newsweek.Widget.DialogBox.showDBox(dBox);
			},
			error : function(html, msg, e){
				$(dBox.box).html(dBox.errorMsg);
				return;
			}   
		});       
    },
    
    setCoord : function(dBox){   
		if(dBox.bIsScroll){
            var scroll = getScrollTop();   
            window.onscroll = function(e){
                var scroll = getScrollTop();
                var scrollDelay = setTimeout(function(){
                    $(dBox.box).css({
                        top : (scroll + 120) + 'px'
                    });
                }, 250);
            };
        } else {
			window.onscroll = null;              		
			var pos = dBox.targetPos();
			var docWidth = $(document).width();
			var targetWidth = $(dBox.target).width();
			
			if(pos[0]>docWidth/2){
				$(dBox.box).attr('style', 'left:' + (pos[0] - (dBox.width + dBox.adjCoords[0])) + 'px;top:' + (pos[1] + (dBox.adjCoords[1])) + 'px;');
			} else {
				$(dBox.box).attr('style', 'left:' + (pos[0] + targetWidth + dBox.adjCoords[0]) + 'px;top:' + (pos[1] + (dBox.adjCoords[1])) + 'px');
			}
        }               
    }, 
    
    showDBox : function(dBox){

		if(dBox.target){
			if(dBox.output == 'quickread' && !$(dBox.target).hasClass('dBoxActive')){
				$(dBox.target).addClass('dBoxActive');
			}
		}

        if(dBox.bIsModal){
			$(dBox.box).append(dBox.html);
			this.setCoord(dBox);		
			//this.showAd(dBox);        	
            Newsweek.Widget.Overlay.init(dBox);
            return;
        }  
		
		Newsweek.Widget.Overlay.checkEmbedded();
		this.setCoord(dBox);
		$(dBox.box).insertBefore("#nwContainer");
		this.showAd(dBox);
		
        if(dBox.wrapper !== ''){
			$(dBox.box).append(dBox.wrapper);
		}
		
		if($('#innerContent')){
			$('#innerContent').append(dBox.html);
			if(dBox.output == 'quickread'){
				var arrowHtml;
				if(dBox.align() == 'right'){
					arrowHtml = '<div class="arrowRightDS"><img class="transp" width="15" height="32" src="' + staticContentRoot + '/site/images/dialog/preview_arrow_right.png"/></div>';
				} else {
					arrowHtml = '<div class="arrowLeftDS"><img class="transp" width="15" height="32" src="' + staticContentRoot + '/site/images/dialog/preview_arrow_left.png"/></div>';
				}
				$(arrowHtml).insertBefore('#QkRead div.closeBtn');
			}			
		}
		
		if(dBox.wrapper === '' && document.getElementById('innerContent') === null){
			$(dBox.box).append(dBox.html);
		}

		$(dBox.box).css('display', 'block');
		Newsweek.Widget.DialogBox.closeHandlers(dBox);
       
        $(window).resize(function(){
            Newsweek.Widget.DialogBox.setCoord(dBox);
        });           
    },
    
	closeHandlers : function(dBox){
			
		$(document).mousemove(function(e){
			if(Newsweek.Widget.DialogBox.eventType == 'mouseover'){			
				if(e.target != dBox.target){
					Newsweek.Widget.DialogBox.hideDBox_OnMouseout(dBox);
					var evtCoords = Newsweek.Widget.DialogBox.getDBoxInfo(e, dBox);				
				}
				return;
			} else {
				$(this).unbind('mousemove');
			}
			return false;
		});				
			
		$(document).click(function(e){
			if(Newsweek.Widget.DialogBox.eventType == 'click' && e.target != dBox.target && e.target.nodeName.toLowerCase() != 'a'){
				var evtCoords = Newsweek.Widget.DialogBox.getDBoxInfo(e, dBox);
				Newsweek.Widget.DialogBox.hideDBox_OnClick(e, dBox, evtCoords);
				evtCoords = null;
				$(this).unbind('click');
				return false;
			}
			return;
		});		
	},
	
	getDBoxInfo : function(e, dBox){
		var box = document.getElementById('dialog');
		var evtCoords = {
			mPos : GetEventXY(e),
			dBoxHt : parseFloat($(box).height()),
			dBoxWt : parseFloat($(box).width()),
			dBoxPos : GetObjPos(box)
		};
        return evtCoords;
	},	
	
	hideDBox_OnClick : function(e, dBox, evtCoords){
        function fadeBox(){
			window.clearTimeout(Newsweek.Widget.DialogBox.dBoxTimer);
			Newsweek.Widget.DialogBox.dBoxTimer = 0;
			if(dBox.target){
				$(dBox.target).removeClass('dBoxActive');                
			}
            
            $(dBox.box).fadeOut(100, function(){
               
				Newsweek.Widget.DialogBox.isActive = false;
				Newsweek.Widget.DialogBox.isTimerSet = false;
				Newsweek.Widget.Overlay.checkEmbedded();
                $('#dialog').remove();
                $(window).unbind("resize");
            });
        }
        
        if(e.target.className == 'closeBtn transp'){
			fadeBox();
		} else if (e.target.nodeName.toLowerCase() === 'a') {
			fadeBox();
        } else if ((evtCoords.mPos[1] > (evtCoords.dBoxPos[1] + evtCoords.dBoxHt) || evtCoords.mPos[1] < evtCoords.dBoxPos[1]) || ((evtCoords.mPos[0] > (evtCoords.dBoxPos[0] + evtCoords.dBoxWt) || evtCoords.mPos[0] < evtCoords.dBoxPos[0])) && $(dBox.box)) {
			fadeBox();
        } else {
			Newsweek.Widget.DialogBox.closeHandlers(dBox);
        }
	},
	
	hideDBox_OnMouseout : function(dBox){
		$('#dialog').remove();				
		$(dBox.target).removeClass('dBoxActive');
		Newsweek.Widget.Overlay.checkEmbedded();
		$(window).unbind("resize");		
		Newsweek.Widget.DialogBox.isActive = false;
		Newsweek.Widget.DialogBox.isTimerSet = false;	
		$(document).unbind('mousemove');
	},	
    
    showAd : function(dBox){
		if(typeof(dBox.adCall) === 'function'){
            dBox.adCall();
        }
    }
};


Newsweek.Widget.TipStrip = {

    init : function(){
        $("#tipStripBox .content ul li a.next, #tipStripBox .content ul li a.prev").click(function(){
            var content = $("#tipStripBox .content");
            var link = $(this).attr("href");
            Newsweek.Widget.TipStrip.getAjaxRequest(content, link);    
            return false;
        });     
    },
    
    getAjaxRequest : function(content, link){
        $.ajax({
           beforeSend : function(){
               $("ul li div", content).empty().append('<div class="loading"><span>Loading</span></div>'); 
           },
           url: detectProxy(link + "/output/ajaxtipstrip"),
           success:function(html) {     
               $(content).html(html);          
               Newsweek.Widget.TipStrip.init();
               Newsweek.Widget.QuickRead('', '', '');
           },
           error:function(e, msg){
               $("ul li div", content).empty().append('<div class="ajaxErrorMsg">We are currently unable to return the requested content. Please try again later.</div>');          
           }
        }); 
    }
};


Newsweek.Widget.TravelHp = {
    
    init : function(){
        $("div.travelHp").each(function(i){
            var NwThp = this;
            NwThp = {
                isActive        : false,
                thp             : this,
                isOpen          : false,
                isCleared       : true,
                control         : [$("div.box div.content div.thpBut a", this), $("div.thpTab div.tabBot a", this)],
                content         : $("div.box div.content", this),
                scrollBut       : null,
                activeControl   : null,
                colWrapper      : $("div.box div.content div.thpColWrapper", this)
            };
            Newsweek.Widget.TravelHp.controller(NwThp);              
        });            
    },

    controller : function(NwThp){ 

        $(NwThp.control).each(function(i){
            $(this).attr('href', rootpath + 'id/' + pid).click(function(e){
				Newsweek.Widget.TravelHp.checkSocialNet(e);
                if(!$(this).hasClass('ctrl') || $(this).attr('href') == '#'){return false;}
                if(!NwThp.isOpen && NwThp.isCleared){$(this).removeClass("ctrl");}
                NwThp.isActive = true;
                NwThp.activeControl = this;
                NwThp.scrollBut = getRealTop(NwThp.thp);
                Newsweek.Widget.TravelHp.handlerThp(NwThp);
                return false;
            });                       
        });
    },
    
    checkSocialNet : function(e){
		if($('.SocialLinksDiv').css('display') == 'block'){
			$(".SocialLinksDiv").fadeOut(250, function(){
				Newsweek.Widget.SocialNetwork.isActive = false;
			});
		}
		
		if(document.getElementById('dialog')){
			var evtCoords = {
				mPos : GetEventXY(e),
				dBoxHt : parseFloat($('#dialog div').height()),
				dBoxWt : parseFloat($('#dialog div').width()),
				dBoxPos : GetObjPos(document.getElementById('dialog'))
			};
			
			Newsweek.Widget.DialogBox.hideDBox_OnClick(e, Newsweek.Widget.DialogBox.currentBox, evtCoords);
		}
    },
    
    handlerThp : function(NwThp){
            
        if(NwThp.isOpen && !NwThp.isCleared){
            var agent = navigator.userAgent.toLowerCase();
            if($(NwThp.thp).attr('id') == 'ThpBottom'){
                if(agent.indexOf('msie') == -1){            
                    window.scrollTo(0, NwThp.scrollBut - 600);
                }
            } 
            agent = null;

            setTimeout(function(){
                Newsweek.Widget.TravelHp.shrinkThp(NwThp);
            }, 500);
        }
        else
        {
            Newsweek.Widget.TravelHp.growThp(NwThp);

            Omniture_SendMicroData("Traveling Homepage", "event15", $(NwThp.activeControl).attr("class"));
        }            
    },

    growThp : function(NwThp){       
        var currDocHt = $(document).height();
             
        if(NwThp.isOpen && !NwThp.isCleared && !NwThp.isActive) {return;}
        
        $(NwThp.control).each(function(i){
            $(this).removeClass("ctrl");
        });

        $(NwThp.thp).find(".btn").css({
            'background' : "url(" + Paths.Current.StaticContentRoot + "/site/images/thp_arrow_up.gif) no-repeat left top"
        });
        
        $(".thpRgt, .thpMid, .thpLft", NwThp.colWrapper).hide();           
        
        $(NwThp.colWrapper).animate({
            height : 324 + 'px'
        }, 250, function(){
            $(NwThp.thp).find("div.tabBot").removeClass("thpDown").addClass("thpUp");                
            $(NwThp.thp).find(".thpTab div a img").attr({
                src: Paths.Current.StaticContentRoot + "/site/images/thp_close.gif",
                alt: 'collapse'                        
            });
        });
        
        setTimeout(function(){
            Newsweek.Widget.TravelHp.getContent(NwThp);
        }, 250);
    },
    
    getContent : function(NwThp){    
        
        $(NwThp.colWrapper).css({
           width : "100%",
           clear : "both",
           margin : "0 0 0 -3px"    			           
        }); 
	     
	    var url = $(NwThp.control[0]).attr('href') + '/output/traveling' + '/sender/' + $(NwThp.thp).attr("id");
	     
        $.ajax({
           url      : detectProxy(url),
           success  : function(html) { 
				$(NwThp.colWrapper).append(html);
				$(travelingHomepageAdTarget()).insertBefore(NwThp.colWrapper);
				travelingHomepageAdCall();               
				if(!$.browser.mozilla){
					evalScripts(html);
				}
				setTimeout(function(){
					$(NwThp.control).each(function(i){					    
						$(this).addClass("ctrl");
					});			           
				}, 1000);

				NwThp.isOpen = true;
				NwThp.isCleared = false; 

                //wire on Omniture events after content comes in
                BindTHPTracking();
			} 
		});
        url = null;
    },
    
    shrinkThp : function(NwThp){  
        var currDocHt = $(document).height();
        if(!NwThp.isOpen && NwThp.isCleared) {return;}
        if(NwThp.isOpen && !NwThp.isCleared){
            $(NwThp.control).each(function(i){
                $(this).removeClass("ctrl");
            });		
        }        
        
        $('.sponsoredAd', NwThp.content).remove();
        $("div.thpFeature", NwThp.content).empty();
        $("div.thpFeature", NwThp.content).remove();
        
        $(NwThp.colWrapper).animate({
            height: 37 + 'px'
        }, 100, function(){
        
			$(NwThp.thp).find(".btn").css({
				'background' : "url(" + Paths.Current.StaticContentRoot + "/site/images/thp_arrow_down.gif) no-repeat left top"
			});       
            $("div div.tabBot", NwThp.thp).removeClass("thpUp").addClass("thpDown");
            $(NwThp.thp).find(".thpTab div a img").attr({
                src: Paths.Current.StaticContentRoot + "/site/images/thp_open.gif",
                alt: 'collapse'                        
            });
            
            $(NwThp.colWrapper).css({
                width : "934px",
                clear : "none",
                margin: "0px"
            });
            
            $(".thpRgt, .thpMid, .thpLft", NwThp.colWrapper).show();
            if(!$.browser.mozilla){
				evalScripts($(NwThp.colWrapper).html());
			}                    

			setTimeout(function(){
				$(NwThp.control).each(function(i){			    
					$(this).addClass("ctrl");
				});			           
			}, 750);           
           
           NwThp.isCleared  = true;
           NwThp.isOpen = false;
        });
    }
};

Newsweek.Widget.QuickRead = function(link, target, adjustXY){
	
	var timer;
	var evtType;
	var currTarget = null;
	var newTarget = null;
	var htmlWrapper = function(){
	
		var html = {
			boxTop : '<div class="top transp">&#xA0;</div>',
			boxContent : '<div id="boxContent" class="transp"><div id="innerContent"></div></div>',
			boxBot : '<div class="bot transp">&#xA0;</div>',
			boxWrapper : function(){
				return ['<div id="boxDs" class="boxDs">' + this.boxTop  +  this.boxContent + this.boxBot + '</div>'].join("");
			}
		};	
		return html.boxWrapper();	
	};
	
	if(link && null != target){

		var adjustX;
		var adjustY;
		var target = document.getElementById(target)
		var mPos = GetObjPos(target);
		
		if(mPos[0] < (parseFloat($(document).width())/2) && target.id == 'topTenVertical'){
			adjustX = -($(document.getElementById('topTenVertical')).width()) + 75;
			adjustY = (parseInt(adjustXY) - 160);
		} else if (mPos[0] > (parseFloat($(document).width())/2) && target.id == 'topTenVertical') {
			adjustX = 0;
			adjustY = parseInt(adjustXY) - 166;
		}
		
		Newsweek.Widget.DialogBox.init('click', target, link, '', htmlWrapper(), mPos, quickReadAdCall, {"output" : "quickread", "adjCoords": [adjustX, adjustY], "width":486});
		return;
	}		
	
	var init = function(link){
		$("a.quickRead").removeAttr("onclick");
		setTriggers(link);
	};
	
	var setTriggers = function(link){
			
		$("a.quickRead").click(function(e){
			window.clearTimeout(timer);
			if(!document.getElementById('dialog')){
				Newsweek.Widget.DialogBox.init(e.type, e.target, '', '', htmlWrapper(), '', quickReadAdCall, {"output" : "quickread", "adjCoords": [15, -160], "width":486});
			} else {
				Newsweek.Widget.DialogBox.eventType = 'click';
			}
			return false;
		});
		
		$("a.quickRead").mouseover(function(e){
			currTarget = e.target;
			evtType = e.type;
			
			timer = window.setTimeout(function(){
				if(!document.getElementById('dialog')){
					Newsweek.Widget.DialogBox.init(evtType, currTarget, '', '', htmlWrapper(), '', quickReadAdCall, {"output" : "quickread", "adjCoords": [15, -160], "width":486});			
				}
				timer = 0;
			}, 500);			
				
			return false;
		});	
	};
	
	init(link);
};

Newsweek.Widget.QuickGuide = function(){
    $("a.quickGuide").css({visibility : 'visible'}).click(function(e){
		Newsweek.Widget.DialogBox.init(e.type, e.target, '', '', '', '', quickGuideAdCall, {"bIsModal" : true, "output" : "quickGuide", "adjCoords": [546, 10]});
        Omniture_SendMicroData("Site Guide", "event16");
		return false;
    });    
};

Newsweek.Widget.SocialNetwork = {

	isActive : false,
	src : null,
	targetX : 0,
	targetY : 0,
	
	init : function(){
	
		$('.socialNetworks').click(function(e){
			if(Newsweek.Widget.DialogBox.isActive || Newsweek.Widget.SocialNetwork.isActive) {return;}
			Newsweek.Widget.SocialNetwork.src = e.target;
			Newsweek.Widget.SocialNetwork.targetX = getRealLeft(e.target);
			Newsweek.Widget.SocialNetwork.targetY = getRealTop(e.target);
			Newsweek.Widget.SocialNetwork.showPopup();
			return false;    
		});	
	},
	
	showPopup : function(){
	
		$(".SocialLinksDiv").insertBefore('#header').css({
			'left' : (Newsweek.Widget.SocialNetwork.targetX + 102) + 'px',
			'top' : (Newsweek.Widget.SocialNetwork.targetY - 42) + 'px'
		}).fadeIn(250, function(){
			Newsweek.Widget.SocialNetwork.isActive = true;
			$(document).unbind("click");
			Newsweek.Widget.SocialNetwork.hidePopup();			
		});
	},
	
	hidePopup : function(){
	
		$(document).one('click', function(e){
			if(!Newsweek.Widget.SocialNetwork.isActive) {return;}
			$(".SocialLinksDiv").fadeOut(250, function(){
				Newsweek.Widget.SocialNetwork.isActive = false;
			});
		});		
	}
};

Newsweek.Widget.Login = {

    init : function(){
        
        $('#login').click(function(e){
			Newsweek.Widget.DialogBox.init(e.type, e.target, '', $("#loginFormDiv").html(), '', '', '', {"bIsModal" : true, "output" : "quickread", "adjCoords": [368, -1]});
            Newsweek.Widget.Login.validate();
            $("#loginForm input[@name='ReturnUrl']").val(location.href);
            return false;
        });      
    },
    
    validate : function(){
        $("#loginForm").validate({
          errorPlacement: function(error, element) {
            error.insertAfter(element.parent("span").siblings("label"));
          },          
          errorClass: "invalid",              
		        event: "submit",
		        wrapper: "span",
		        rules: {
			          username: {
				          required: true
			          },
			          password: {
				          required: true
			          }
		        },
		        messages: {
			          username: {
				            required: 'Please enter your username'
			          },
			          password: {
				            required: 'Please enter a password'
			          }
		        }
	      });        
    }
};

Newsweek.Widget.MMToolBar = {

    isInitSocial : false,
    isOpenSocial : false,
    
    init : function(){
        
        $(".socialNetworks").click(function(e){
            Newsweek.Widget.MMToolBar.isInitSocial = true;
            Newsweek.Widget.MMToolBar.openSocialBox(this);
            return false;
        });    
    },
    
    openSocialBox : function(link){
        if(this.isOpenSocial) {
            this.closeSocialBox();
            return;
        }
    
        this.isInitSocial = true;
        var left = getRealLeft(link);
        var top = getRealTop(link);
        
        $("#ShareLinks").css("left", left - 147 + "px").slideDown(250, function(){
            Newsweek.Widget.MMToolBar.isOpenSocial = true;
        });
        
        $(document).one('click', function(e){
            if(e.target.getAttribute('class') != 'SocialNetworks'){
				Newsweek.Widget.MMToolBar.closeSocialBox();
				return;
            }
            return false;
        });        
    },
    
    closeSocialBox : function(){
        if(!this.isInitSocial && !this.isOpenSocial) {return;}
        
        $("#ShareLinks").fadeOut(250, function(){
            Newsweek.Widget.MMToolBar.isOpenSocial = false;
            Newsweek.Widget.MMToolBar.isInitSocial = false;
        });
    }
};

Newsweek.Widget.Comments_Reply = {

    isInitReply : false,
    source      : '',
    textVal     : '',
    replyId     : '',

    init : function(){ 
        
        $("a.reply").click(function(e){   
            if(Newsweek.Widget.Comments_Submit.isActive){return;}
            Newsweek.Widget.Comments_Reply.replyId = parseFloat(this.id);            
            Newsweek.Widget.Comments_Reply.source = this;
            Newsweek.Widget.Comments_Reply.getForm(e);
            return false;
        });      
    },
    
    getForm : function(e){
    
        var reportTop = $(this.source).parent().siblings(".postContent").height() + 15;
        Newsweek.Widget.DialogBox.init(e.type, e.target, '', $("#replyFormDiv").html(), '', '', '', {"bIsModal" : true, "adjCoords": [-491, reportTop]});
        
        $("#replyField").focus(function(){
            if($(this).val() == 'Enter Your Comment'){
                $(this).val('');
            }
        });

        $("#replyToId").val(this.replyId);                                
		$("#replyForm input[@name='ReturnUrl']").val(location.href);
        Newsweek.Widget.Comments_Submit.form = $("#replyForm");        
        Newsweek.Widget.Comments_Submit.init();       
    },  
    
    resetForm : function(){
    
        $("a.closeModal, #overlay2").click(function(){
            if($("#replyBox")){
                $("input[@name = 'replyToId']").val('-1');
                $("#articleCommentForm").slideDown(250);                                
            }
            Newsweek.Widget.Comments_Submit.init(); 
            return false;
        });
    }
};

Newsweek.Widget.Comments_Report = {
    
    isInitNwReport : false,
    reportId : '',
    source : '',
    
    init : function(){
        
        $("a.report").click(function(e){   
            if(Newsweek.Widget.Comments_Submit.isActive){return;}
            Newsweek.Widget.Comments_Report.reportId = parseFloat(this.id);                     
            Newsweek.Widget.Comments_Report.source = this;
            Newsweek.Widget.Comments_Report.getForm(e); 
            return false;        
        });    
    },
    
    getForm : function(e){
    
        var reportTop = $(this.source).parent().siblings(".postContent").height() + 15;
		Newsweek.Widget.DialogBox.init(e.type, e.target, '', $("#abuseFormDiv").html(), '', '', '', {"bIsModal" : true, "adjCoords": [501, reportTop]});        
       
        $("#reportField").focus(function(){
            if($(this).val() == 'Report Abuse'){
                $(this).val('');
            }
        });
        
        $("#reportPostId").val(Newsweek.Widget.Comments_Report.reportId);          
        Newsweek.Widget.Comments_Submit.form = $("#abuseForm");
        Newsweek.Widget.Comments_Submit.init();       
    }   
};

Newsweek.Widget.Comments_Submit = {
    
    form : null,
    msg : null,
    isActive : false,
    
    successMsg : function(){
        if($(this.form).attr('id') == 'replyForm'){
            return 'Your reply has been successfully submitted.  It may take a few minutes for it to appear.';
        } else if($(this.form).attr('id') == 'abuseForm') {
            return 'Your report has been successfully submitted.';
        } else {
            return 'Your comment has been successfully submitted.  It may take a few minutes for it to appear.';
        }
    },
    
    errorMsg : function(){
        if($(this.form).attr('id') == 'replyForm'){
            return 'Your reply could not be submitted at this time. Please try again later.';
        } else if($(this.form).attr('id') == 'abuseForm') {
            return 'Your report could not be submitted at this time. Please try again or contact Newsweek.com';
        } else {
            return 'Your comment could not be submitted at this time. Please try again later.';
        }    
    },
     
    init : function(){   
    
        if($("#commentForm").siblings("span.message").text() !== '' && $("#commentForm").siblings("span.message").text() !== ' '){
            this.isActive = true;
            this.isRedirect();
            return;
        }
    
        if(this.isActive){return;}
        
        $(this.form).find("textarea").focus(function(){
            if($(this).val() === 'Enter Your Comment'){
                $(this).val('');
            }
        });        
                
        var handleForm = {    
            beforeSubmit : function(formData, e){            
		        if(!Newsweek.Widget.Comments_Submit.validatePost()){
		            return false;
		        }	            
   
                Newsweek.Widget.Comments_Submit.isActive = true;
                $("#overlay2, .closeModal").unbind("click");
                $("<span class='loading2'></span>").insertBefore($(Newsweek.Widget.Comments_Submit.form).siblings("h5"));
                $(Newsweek.Widget.Comments_Submit.form).find("input:submit").attr("disabled", "disabled");
                $("fieldset textarea", Newsweek.Widget.Comments_Submit.form).attr("disabled", "disabled").css("background", "#f5edc9");
            },
            	    
            success : function(responseText) {
                var errorCode = parseInt($(responseText).children().children().children().children().children("ErrorCode").text());

                if(errorCode !== "" && errorCode === 0) {   
                    $(Newsweek.Widget.Comments_Submit.msg).text(Newsweek.Widget.Comments_Submit.successMsg());
                    $(".loading2").fadeOut(400).remove();   
                    
                    setTimeout(function(){     
                        $("fieldset textarea", Newsweek.Widget.Comments_Submit.form).removeAttr("disabled").css("background", "#fff").val('Enter Your Comment');
                        Newsweek.Widget.Comments_Submit.form = $("#commentForm");
                        
                        if($("#dialog")) {   
                            Newsweek.Widget.Overlay.hideOverlay();
                        }
                       
                        $(Newsweek.Widget.Comments_Submit.msg).html(''); 
                        Newsweek.Widget.Comments_Submit.resetForm();
                    }, 5000);
                } else {
                    Newsweek.Widget.Comments_Submit.proxyErr();
                    return;                
                }         
                return false;
            },
            
            error : function(request, msg, e){ 
                Newsweek.Widget.Comments_Submit.proxyErr();
            }
        };
        
        if((typeof isAuthenticated != 'undefined' && isAuthenticated) || $(this.form).attr('id') == 'abuseForm') {    
			$(this.form).ajaxForm(handleForm);   
		} else {
		    if(typeof document.commentForm != 'undefined') {
			    $("#commentForm input[@name='ReturnUrl']").val(location.href);
		    }
		    
		    $(this.form).submit(function(){
		        if(!Newsweek.Widget.Comments_Submit.validatePost()){
		            return false;
		        }		    
		    });
		}                       
    },
    
    validatePost : function(){
        Newsweek.Widget.Comments_Submit.msg = $(Newsweek.Widget.Comments_Submit.form).siblings("span.message");
    
        if($("fieldset textarea", Newsweek.Widget.Comments_Submit.form).val().length > 3000){               
            $(Newsweek.Widget.Comments_Submit.msg).text('Please enter up to 3000 characters.').slideDown(250);
            return false;
        } else if($.trim($("fieldset textarea", Newsweek.Widget.Comments_Submit.form).val()) === 'Enter Your Comment' || $("fieldset textarea", Newsweek.Widget.Comments_Submit.form).val() === '') {
            $(Newsweek.Widget.Comments_Submit.msg).text('Please enter a comment.').slideDown(250);            
            return false;
        }
        return true;    
    },
    
    proxyErr : function(msg){
        $(Newsweek.Widget.Comments_Submit.msg).css("color", '#bf1b02').text(Newsweek.Widget.Comments_Submit.errorMsg()).fadeIn(function(){
             $(".loading2").fadeOut(400).remove();   
        });
        
        setTimeout(function(){
            $("fieldset textarea", Newsweek.Widget.Comments_Submit.form).removeAttr("disabled").css("background", "#fff");
            if(document.getElementById('dialog')){                  
                Newsweek.Widget.Overlay.hideOverlay();
            }
            
            $(Newsweek.Widget.Comments_Submit.msg).text('');             
            Newsweek.Widget.Comments_Submit.resetForm();            
        }, 5000);
    },
    
    resetForm : function(){
    
        $("#reportField, #replyField, #commentField").focus(function(){    
            if($(this).val() == 'Enter Your Comment' || $(this).val() == 'Report Abuse'){
                $(this).val('');
            }
        });
                    
        $(Newsweek.Widget.Comments_Submit.form).find("input:submit").attr("disabled", false);
        Newsweek.Widget.Comments_Submit.isActive = false;                
    },
    
    isRedirect : function(){
        setTimeout(function(){
            $("#commentForm").siblings("span.message").text('');
            $("#commentForm fieldset textarea").removeAttr("disabled").css("background", "#fff");
            $("#commentForm input:submit").removeAttr("onclick");
            Newsweek.Widget.Comments_Submit.isActive = false;               
            Newsweek.Widget.Comments_Submit.init();         
        }, 5000);
    }
};

function RegexValidate(Value, Pattern){
    if (Pattern != null && Pattern.length > 0){
        var re = new RegExp(Pattern);
        return Value.match(re);
    } else {
        return false;
    }
}

function IsValidEmailAddress(Value){
    return RegexValidate(Value, "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
}

function StringTrim(value){
    value = value.replace( /^\s+/g, "");
    return value.replace( /\s+$/g, "");
}

function IsValidEmailAddresses(value){
    var addresses = value.split(",");

    for (var a = 0; a < addresses.length; a++){
        var address = StringTrim(addresses[a]);

        if (address.length > 0){
            if (!IsValidEmailAddress(address)){
                return false;
                break;
            }
        }
    }
    return true;
}

function EmailArticle_ShowError(Message, Control){
    $("#EmailErrorMessage").show().html(Message)
    Control.focus();
}

function EmailArticle_RequiredExist(){
    var YourName = document.getElementById("EmailYourName");
    var YourEmailAddress = document.getElementById("EmailYourEmailAddress");
    var RecEmailAddress = document.getElementById("EmailRecEmailAddress");
    var Message = document.getElementById("EmailMessage");

    if (YourName.value.length === 0){
        EmailArticle_ShowError("Please enter Your Name before sending.", YourName);
        return false;
    }

    if (YourEmailAddress.value.length === 0){
        EmailArticle_ShowError("Please enter Your Email Address before sending.", YourEmailAddress);
        return false;
    } else {
        if (!IsValidEmailAddress(YourEmailAddress.value)){
            EmailArticle_ShowError("Your Email Address is not valid.  Please enter something different.", YourEmailAddress);
            return false;
        }
    }

    if (RecEmailAddress.value.length === 0){
        EmailArticle_ShowError("Please enter the Recipient's Email Address before sending.", RecEmailAddress);
        return false;
    } else {
        if (!IsValidEmailAddresses(RecEmailAddress.value)){
            EmailArticle_ShowError("At least one of the Recipient's Email Addresses is not valid.  Please enter something different.", RecEmailAddress);
            return false;
        }
    }
    return true;
}

Newsweek.Widget.EmailArticle = {       
    
    source : '',
    
    init : function(){
        
        $(".emailArticleLink").click(function(e){    
            Newsweek.Widget.EmailArticle.source = this;      
            Newsweek.Widget.EmailArticle.showForm(e);
            return false;
        });
    },
    
    showForm : function(e){    
    
        var emailSourceTop = parseFloat(getRealTop(this.source)) - 101;
        var emailSourceLeft = parseFloat(getRealLeft(this.source)) + 53;
        Newsweek.Widget.DialogBox.init(e.type, e.target, '', $("div.EmailArticleBlock").html(), '', '', '', {"bIsModal" : true, "adjCoords": [24, -101]});
        this.submitForm();   
    },
    
    submitForm : function(){        
    
        var emailArticle = {
            
            beforeSubmit : function(formData){
                EmailArticle_RequiredExist();
                
                if(EmailArticle_RequiredExist()){                    
                    $(".emailArticleForm :input").slice(0, 3).attr("disabled", "true");
                    $("#EmailPersonalMessage").attr("disabled", "disabled");
                    $("#EmailMain").height(186 + 'px');
                    $("#EmailMain p").slice(0, 1).text("Sending email now...");
                } else {
                    return false;
                }
            },
            	    
            success: function(msg){
                $("#EmailMain p").slice(0, 1).addClass("success").text(msg);
                $("#EmailMain div.loading2").remove();
                
                setTimeout(function(){
                    Newsweek.Widget.Overlay.hideOverlay();
                }, 5000);
            },
            
            error : function(request, msg, e){
            
                $("#EmailMain p").slice(0, 1).addClass("error").text(msg);
                $("#EmailMain div.loading2").remove();
                
                setTimeout(function(){
                    Newsweek.Widget.Overlay.hideOverlay();        
                }, 5000);               
            }            
        };
        $("#frmEmailThisArticle").ajaxForm(emailArticle);        
    }
};

Newsweek.Widget.Sphere = {

    bIsActive : false,
    
    init : function(){
        
        $('a#sphere').click(function(){
            if(document.getElementById('sphere_widget') && Newsweek.Widget.Sphere.bIsActive){
                return false;    
            }
            
            Sphere.Widget.search();        
            Newsweek.Widget.Sphere.bIsActive = true;
            Newsweek.Widget.Overlay.checkEmbedded();
            Newsweek.Widget.Sphere.closeSphere();    
            return false;
        });
    },
    
    closeSphere : function(){
    
        var thpurl = $('a.ctrl').attr('href');
        $('a.ctrl').attr('href', '#');
        Newsweek.Widget.DialogBox.isActive = true;
        
        $('.closeBtn').click(function(){
            Newsweek.Widget.Overlay.checkEmbedded();
            $('a.ctrl').attr('href', thpurl);
            $(this).unbind('click');
            Newsweek.Widget.DialogBox.isActive = false;             
            Newsweek.Widget.Sphere.bIsActive = false;
        });         
    }
};

Newsweek.Widget.LaunchPad = {
	timer: null,
	isActive : true,
	tempContent: null,
	iframesCount: 0,
	init: function(launchPadId, widgetId, trigger, targetId){
		
		$(document).ready(function(){
			Newsweek.Widget.LaunchPad.isActive = false;
		});
		
		if(this.isActive){return;}
		Newsweek.Widget.DialogBox.isActive = true;
		this.isActive = true;
		Newsweek.Widget.Overlay.checkEmbedded();
		this.tempContent = $('#NwLaunchPad .torso .content').html();
		
		setTimeout(function(){
			if(trigger === 'topTenVertical'){
				trigger = document.getElementById('topTenVertical');
			}
		
			var triggerPos = GetObjPos(trigger);
			var left = triggerPos[0];
			var docWidth = $(document).width();
			
			if(trigger.id === 'topTenVertical'){
				if((left > (docWidth/2))){
					left = left - 58;
				}	
				triggerPos[1] += 80;
			} 
			
			if((left > (docWidth/2)) && trigger.id !== 'topTenVertical'){
				left = (left - 400) + $('img', trigger).width();
			}			
			
			$Launchpad.ShowMenu({ 
					actionElement : 'launchpad_' + launchPadId,
					wid : widgetId,
					customCSS : Paths.Current.StaticContentRoot + 'site/css/launchpad.css',
					targetElement : document.getElementById('lpContent')
			});
			
			$('#NwLaunchPad').css({
				'position':'absolute',
				'display': 'block',
				'z-index' : 9999,
				'left' : left - 14,
				'top' : triggerPos[1] - 22
			});			
			Newsweek.Widget.LaunchPad.setCloseButton();		
		}, 150);
	},
	
	setCloseButton : function(){
					
		$('.close').one('click', function(e){
			Newsweek.Widget.DialogBox.isActive = false;
			Newsweek.Widget.LaunchPad.isActive = false;
			Newsweek.Widget.Overlay.checkEmbedded();
			$('#NwLaunchPad .torso .content').empty();
			$('#NwLaunchPad').hide();
			$('#NwLaunchPad .torso .content').html(Newsweek.Widget.LaunchPad.tempContent);
			return false;
		});
	}
};

Newsweek.Widget.RelatedCloud = {

	boxHt : null,
	isActive : false,

	init : function(){
	
		$('div.RelatedCloud').each(function(i){
            var Cloud = this;
            Cloud = {
              
                isActive     : false,
                isOpen       : false,
                source       : $('div.content div.column div.nav a', this),
                content      : $('div.content', this),
                contentHt    : $('div.content', this).css('height'),
                maxColumnHt  : null
            };   
            
			Newsweek.Widget.RelatedCloud.boxHt = parseInt($('div.content', this).height());
            
            $(Cloud.source).click(function(e){
				if(Newsweek.Widget.RelatedCloud.isActive) {return;}
				Newsweek.Widget.RelatedCloud.isActive = true;
            
				if(this.className == 'seeAll'){
					Newsweek.Widget.RelatedCloud.expand(Cloud);                         				
				} else if (this.className == 'collapseAll') {
					Newsweek.Widget.RelatedCloud.collapse(Cloud); 		
				}
            });
        });  
	},
	
	expand : function(Cloud){
			
		$(Cloud.source).removeClass('seeAll').addClass('collapseAll').text('Collapse All');
		$('div.column ul', Cloud.content).removeClass('collapsed');
		var colHeight = 0;
		
		if(Cloud.maxColumnHt === null){
			$('div.column ul', Cloud.content).each(function(i){
				if($(this).height() > colHeight){
					colHeight = $(this).height();
				}
			});
			Cloud.maxColumnHt = colHeight;			
		} else {
			colHeight = Cloud.maxColumnHt;
		}
						
		$('div.column ul', Cloud.content).height(colHeight);
								
		$(Cloud.content).animate({
			height : (colHeight + 26) + 'px'
		}, 250, function(){
			Newsweek.Widget.RelatedCloud.isActive = false;
		});
	},
	
	collapse : function(Cloud){
						
		$(Cloud.content).animate({
			height : Newsweek.Widget.RelatedCloud.boxHt + 1 + 'px'
		}, 250, function(){
			$(Cloud.source).removeClass('collapseAll').addClass('seeAll').text('See All');
			$('div.column ul', Cloud.content).css('height', '60px');
			$('div.column ul', Cloud.content).addClass('collapsed');			
			Newsweek.Widget.RelatedCloud.isActive = false;				
		});
	}
};

Newsweek.Widget.ToolTips = function(){
	$('a.msTip').click(function(e){
		Newsweek.Widget.DialogBox.init(e.type, e.target, '', $("div.msTipBlock").html(), '', '', '', {"bIsModal":true, "adjCoords": [-210, -217]});
	});
};


Newsweek.Widget.EmbeddedLinks = {
	init : function(){
		$('img.see-all').click(function(e){
			var html = $('#elb_wrapper_' + this.id).html();
			Newsweek.Widget.DialogBox.init(e.type, e.target, '', html, '', '', '', {"adjCoords": [-96, -19]});
			return false;
		});	
	}
}

Newsweek.Widget.SiteMap = {
    
    init : function(){
        Newsweek.Widget.SiteMap.wireToggle();
        Newsweek.Widget.SiteMap.wireExpandAll();
        Newsweek.Widget.SiteMap.wireCollapseAll();
    },
    
    wireToggle : function(){
        $('#sitemap a.expander').click(function(){
            Newsweek.Widget.SiteMap.toggle(this);
        });
    },
    
    wireExpandAll : function(){
        $('#sitemap-container li.expand a').click(function(){
            Newsweek.Widget.SiteMap.expandAll();
            Newsweek.Widget.SiteMap.enableExpandAll(false);
            Newsweek.Widget.SiteMap.enableCollapseAll(true);
        });
    },
    
    wireCollapseAll : function(){
        $('#sitemap-container li.collapse a').click(function(){
            Newsweek.Widget.SiteMap.collapseAll();
            Newsweek.Widget.SiteMap.enableExpandAll(true);
            Newsweek.Widget.SiteMap.enableCollapseAll(false);
        });
    },
    
    checkState : function(){
        if ($('#sitemap ul:visible').length == 0){
            Newsweek.Widget.SiteMap.enableExpandAll(true);
            Newsweek.Widget.SiteMap.enableCollapseAll(false);
            return;
        }
        if ($('#sitemap ul:visible').length == $('#sitemap ul').length){
            Newsweek.Widget.SiteMap.enableExpandAll(false);
            Newsweek.Widget.SiteMap.enableCollapseAll(true);
            return;
        }
        if ($('#sitemap ul:visible').length > 0){
            Newsweek.Widget.SiteMap.enableExpandAll(true);
            Newsweek.Widget.SiteMap.enableCollapseAll(true);
            return;
        }
    },
    
    enableExpandAll : function(doEnable){
			$('#sitemap-container li.expand').toggle();
        /*if (doEnable){
            var text = $('#sitemap-container li.expand').text();
            $('#sitemap-container li.expand').html('<a href="javascript:void(0);" title="' + text + '">' + text + '</a>');            
            $('#sitemap-container li.expand').removeClass('exDisabled').addClass('exEnabled');
            Newsweek.Widget.SiteMap.wireExpandAll();
        } else {
            var text = $('#sitemap-container li.expand a').text();
            $('#sitemap-container li.expand').html(text);
            $('#sitemap-container li.expand').addClass('exDisabled').removeClass('exEnabled');
        }*/
    },
    
    enableCollapseAll : function(doEnable){
			$('#sitemap-container li.collapse').toggle();
        /*if (doEnable){
            var text = $('#sitemap-container li.collapse').text();
            $('#sitemap-container li.collapse').html('<a href="javascript:void(0);" title="' + text + '">' + text + '</a>');  
            $('#sitemap-container li.collapse').removeClass('clDisabled').addClass('clEnabled');        
            Newsweek.Widget.SiteMap.wireCollapseAll();
        } else {
            var text = $('#sitemap-container li.collapse a').text();
            $('#sitemap-container li.collapse').html(text);
            $('#sitemap-container li.collapse').addClass('clDisabled').removeClass('clEnabled');
        }*/
    },
    
    toggle : function(el){
       $(el).parents('div.sitemapSection').children('ul').toggle();
       Newsweek.Widget.SiteMap.toggleImage(el, null);
       //Newsweek.Widget.SiteMap.checkState();
    },
    
    expand : function(el){
       $(el).parents('div.sitemapSection').children('ul').show();
       Newsweek.Widget.SiteMap.toggleImage(el, 'expand');
    },
    
    collapse : function(el){
       $(el).parents('div.sitemapSection').children('ul').hide();
       Newsweek.Widget.SiteMap.toggleImage(el, 'collapse');
    },
    
    expandAll : function(){
        $('#sitemap a.expander').each(function(){
            Newsweek.Widget.SiteMap.expand(this);
        });
    },
    
    collapseAll : function(){
        $('#sitemap a.expander').each(function(){
            Newsweek.Widget.SiteMap.collapse(this);
        });
    },
    
    toggleImage : function(el, force){
        $(el).parents('div.sitemapSection').children('a.expander').children('img').attr('src', Newsweek.Widget.SiteMap.getImage(el, force));
    },
    
    getImage : function(el, force){
        var expandedImage = 'embed_collapse_all_right.gif';
        var collapsedImage = 'embed_see_all_down.gif';
        var image = $(el).parents('div.sitemapSection').children('a.expander').children('img').attr('src');
        if (image.indexOf(expandedImage) > 0){
            if (force && force == 'collapse'){
                return image;
            }
            return image.replace(expandedImage, collapsedImage)
        } else {
            if (force && force == 'expand'){
                return image;
            }
            return image.replace(collapsedImage, expandedImage)
        }
        return '';
    }
};


Newsweek.Component.BoxCollection = {

	init : function(){
	
		$('.boxCollection').each(function(i){
		
			var bcObj = {
				node  : this,
				defaultBox : $('div.box', this).slice(0,1),
				content : $('div.box div.content', this),
				tabRoot: $('div.tabs', this),
				tabs  : $('div.tabs ul li', this),
				currentTab : null
			};
			
			Newsweek.Component.BoxCollection.setHandler(bcObj);					
		});
	},
	
	setHandler : function(bcObj){
        $(bcObj.tabs).each(function(i){
			$('span a', this).click(function(){
				if($(bcObj.tabs).length == 1){return;}


				if(bcObj.currentTab == i){
    				  return;
				}

				bcObj.currentTab = i;

				// Let's take it to the server
				Newsweek.Component.BoxCollection.toggleTab(i, bcObj);				

				var tabId = RegexValidate(this.id, "[0-9]+");
				
				// Lets decide if we need to make a request to the server to pick up any data
				// if not, lets look in the collection
				var boxId = 'box_' + tabId;
				var box = document.getElementById(boxId)
				
				if(box != null){
					if($(box).css('display') == 'block'){
						return;
					}
					
					Newsweek.Component.BoxCollection.getBoxFromCollection(bcObj, box);
					return;
					
				} else {
					var url = Paths.Current.RootPath + 'id/' + tabId + '/output/ajaxbox';
					
					if($(bcObj.node).hasClass('BoxCollectionAlt')){
						url += '/alt/1';
					}
					
					var callback = Newsweek.Component.BoxCollection.setCurrentBox;
											
					Newsweek.Component.BoxCollection.ajaxRequest(url, callback, bcObj);
				}
				
				return false;
			});
        });	
	},
	
    toggleTab : function(num, bcObj){

		// remove all current and prior
		$(bcObj.tabs).removeClass('current').removeClass('lcurrent').removeClass('prior').removeClass('midcurrent').removeClass('fcurrent').removeClass('fprior');
		
		if(num == 0){
			$(bcObj.tabs[num]).addClass('fcurrent');
		}
		
		if(num != 0 && num != bcObj.tabs.length-1){
			$(bcObj.tabs[num]).addClass('midcurrent');
			if(num == 1){
				$(bcObj.tabs[0]).addClass('fprior');
				return;
			}
			$(bcObj.tabs[num-1]).addClass('prior');
		}
	
		if(num == $(bcObj.tabs).length-1){
			$(bcObj.tabs[num]).addClass('lcurrent');
			
			if(bcObj.tabs.length == 2){
				$(bcObj.tabs[num-1]).addClass('fprior');
				return;
			}
			
			$(bcObj.tabs[num-1]).addClass('prior');
		} 
    },	
	
	setCurrentBox : function(bcObj, html){
		// Hide current box, but don't remove so we don't have to make another trip to the server
		$('div.box', bcObj.node).css('display', 'none');
		
		// First append the the newly requested box to the collection
		$(bcObj.node).append(html);		
	},
	
	getBoxFromCollection : function(bcObj, box){
		$('div.box', bcObj.node).css('display', 'none');
		$(box).css('display', 'block');
	},
	
	ajaxRequest : function(url, callback, bcObj){
		$.ajax({
			dataType : 'html',
			url: detectProxy(url),
			success:function(responseText) {  
				callback(bcObj, responseText);			
				Newsweek.Widget.QuickRead('', '', '');
			},
			error:function(e){

			} 
		}); 
	} 	
};


Newsweek.Component.BoxFlipper = {

	init : function(){
		$('div.boxFlipper').each(function(i){

			var boxObj = {
				node  : $(this).parent().parent().parent().parent('.box'),
				content : $(this).parent().parent().parent('.bot').siblings('.content'),
				flipper : this,
				pageNum : 1,
				itemsPerPage : $(this).parent().parent().parent('.bot').siblings('.content').children().length,
				totalItems : $(this).parent().parent().parent().parent('.box').attr('data')
			}		
			
			Newsweek.Component.BoxFlipper.setFlipperHandler(boxObj);
		});	
	},
	
	setFlipperHandler : function(boxObj){
		$('ul li a', boxObj.flipper).click(function(){
			
			if($(this).attr('class') == 'prev'){
				boxObj.pageNum--;
			} else {
				boxObj.pageNum++;
			}
				
			var url =  Paths.Current.RootPath + 'id/' + RegexValidate(this.id, "[0-9]+") + '/page/' + boxObj.pageNum + '/items/' + boxObj.itemsPerPage + '/output/ajaxbox';
			
			if($(boxObj.node).parent().hasClass('BoxCollectionAlt')){
				url += '/alt/1';
			}

			var callback = Newsweek.Component.BoxFlipper.loadBoxPage;
			Newsweek.Component.BoxFlipper.ajaxRequest(url, callback, boxObj);
			return false;
		});		
	},	
	
	
	ajaxRequest : function(url, callback, boxObj){
		$.ajax({
			dataType : 'html',
			url: detectProxy(url),
			success:function(responseText) { 
				callback(boxObj, responseText);			
				Newsweek.Widget.QuickRead('', '', '');
			},
			error:function(e){
			} 
		}); 
	},
	
	loadBoxPage : function(boxObj, content){
		$(boxObj.content).html(content);
		if(boxObj.pageNum == 1){
			$('ul.controls', boxObj.flipper).removeClass('prev').removeClass('prevNext').addClass('next');
			$('ul.controls li a.prev', boxObj.flipper).css('visibility', 'hidden');
			$('ul.controls li a.next', boxObj.flipper).css('visibility', 'visible');
			return;
		}		
		
		if(boxObj.pageNum > 1 && boxObj.itemsPerPage*boxObj.pageNum<boxObj.totalItems){
			$('ul.controls', boxObj.flipper).removeClass('next').removeClass('prev').addClass('prevNext');
			$('ul.controls li a', boxObj.flipper).css('visibility', 'visible');
			return;
		}		
		
		if(boxObj.pageNum*boxObj.itemsPerPage >= boxObj.totalItems){
			$('ul.controls', boxObj.flipper).removeClass('next').removeClass('prevNext').addClass('prev');
			$('ul.controls li a.prev', boxObj.flipper).css('visibility', 'visible');
			$('ul.controls li a.next', boxObj.flipper).css('visibility', 'hidden');
			return;
		}
		
	} 	
};



