var product = 'WSJ';

var dtext = '';
dtext += '<table cellpadding="0" cellspacing="0" border="0" width="100%"><tr>';
if (typeof window.nSP != 'undefined') {
	dtext += ('<td class="p10" style="padding:4px 0px 5px 0px;border-right:1px solid #9BADCE;" align="center"><a href="' + nSP + '/acct/setup_account" class="unvisited p10">My Account</a></td>');
	dtext += ('<td class="p10" style="padding:4px 0px 5px 0px;border-right:1px solid #9BADCE;" align="center"><a href="' + nSP + '/msgcenter/view_messages.html?product=WSJ" class="unvisited p10">Messages</a></td>');
	dtext += ('<td class="p10" style="padding:4px 0px 5px 0px;" align="center"><a href="' + nSP + '/setup/setup_center_mainpage" class="unvisited p10">Preferences</a></td>');
} else {
	dtext += '<table cellpadding="0" cellspacing="0" border="0" width="100%"><tr>';
	dtext += '<td class="p10" style="padding:4px 0px 5px 0px;border-right:1px solid #9BADCE;" align="center"><a href="/acct/setup_account" class="unvisited p10">My Account</a></td>';
	dtext += '<td class="p10" style="padding:4px 0px 5px 0px;border-right:1px solid #9BADCE;" align="center"><a href="/msgcenter/view_messages.html?product=WSJ" class="unvisited p10">Messages</a></td>';
	dtext += '<td class="p10" style="padding:4px 0px 5px 0px;" align="center"><a href="/setup/setup_center_mainpage" class="unvisited p10">Preferences</a></td>';

}
dtext += '</tr></table>';

var atext = '';
if (typeof window.nSP != 'undefined') {
	atext += ('<a href="' + nSP + '/msgcenter/view_messages.html?product='+product+'">');
} else {
	atext += '<a href="/msgcenter/view_messages.html?product='+product+'">';
}
atext += '<img src="/img/message_alert_icon.gif" border="0" width="25" height="16" style="padding:0px;margin:0px;vertical-align:middle;"/><span class="p11" style="vertical-align:middle;color:#990000">You have an important message</span>';
atext += '</a>';

var ntext = '';
if (typeof window.nSP != 'undefined') {
	ntext += ('<a href="' + nSP + '/msgcenter/view_messages.html?product='+product+'">');
} else {
	ntext += '<a href="/msgcenter/view_messages.html?product='+product+'">';
}
ntext += '<img src="/img/message_icon_WSJ.gif" border="0" width="15" height="11" style="padding:0px;margin:0px;vertical-align:middle;"/><span class="p11" style="vertical-align:middle;color:#990000">You have a new message</span>';
ntext += '</a>';
			
var messageCenterRequest = null;
var messageCenterTimeout = null;
var displayedInterstitialRequest = null;
var displayedInterstitialTimeout = null;
var readRequest = null;
var readTimeout = null;
var getContentRequest = null;
var getContentTimeout = null;
var changeOrderRequest = null;
var changeOrderTimeout = null;

var x = null;
var y = null;
var z = null;

function getNewRequest() {
	var req = null;
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		if (wsjaxActiveXObjType) {
			req = new ActiveXObject(wsjaxActiveXObjType);
		} else {
			for(var v=7;v>0;v--){
				if(v>2){
					if(v>3){
						wsjaxActiveXObjType="Msxml2.XMLHTTP."+v+".0"
					} else {
						wsjaxActiveXObjType="MSXML2.XMLHTTP.3.0";
					}
				} else if(v==2) {
					wsjaxActiveXObjType="MSXML2.XMLHTTP";
				} else {
					wsjaxActiveXObjType="Microsoft.XMLHTTP";
				}
				try {
					var tempObj = new ActiveXObject(wsjaxActiveXObjType);
					if (tempObj) {
						req = tempObj;
					}
				} catch (objException) {
				}
			}
		}
	}
	return req;
}
 

function processTop(httpRequest) {
	try {
		var message = httpRequest.responseXML.getElementsByTagName("message")[0];	
		if (message != null) {
			if (message.firstChild != null) {
				var mid = (message.getElementsByTagName("mid")[0]).firstChild.nodeValue;	
				var uid = (message.getElementsByTagName("uid")[0]).firstChild.nodeValue;
				var umid = (message.getElementsByTagName("umid")[0]).firstChild.nodeValue;
				var mname = (message.getElementsByTagName("messageid")[0]).firstChild.nodeValue;	
				var priority = message.getElementsByTagName("priority")[0];
				var display = message.getElementsByTagName("display")[0];
				if (display != null) {
					var dvalue = display.firstChild.nodeValue;
					if (dvalue=='true') {
						var content = message.getElementsByTagName("content")[0];
						showInterstitialContent(content, mid, uid, umid, mname);
					} else {
						if (priority != null) {
							var value = priority.firstChild.nodeValue;
							if (value == 1) {
								$('msgCenter').innerHTML = atext;
							} else {
								$('msgCenter').innerHTML = ntext;
							}
						} 	
					}
				} else {
					$('msgCenter').innerHTML = dtext;
				}			
			} else {
				$('msgCenter').innerHTML = dtext;
			}
		} else {
			$('msgCenter').innerHTML = dtext;
		}
		return true; 
	} catch(e){
		$('msgCenter').innerHTML = dtext;
		return false;
	}
}

function showInterstitialContent(content, mid, uid, umid, mname) {
	var tmp = '';
  	try {
   		tmp = (new XMLSerializer()).serializeToString(content);
  	} catch (e) {
		tmp = content.xml;
  	}
        tmp = tmp.replace(/&amp;/g,'&');
	tmp = tmp.replace(/<user\/>/g, userName);
        tmp = tmp.replace(/gotosite/g, 'WSJ.com');
 	tmp = tmp.replace(/myacctsite/g, 'https://commerce.wsj.com/myaccount/do/viewBillingInfo');
	tmp = tmp.replace(/modvalue/g, 'mc_wsj_interstitial_' + mname);
	tmp = tmp.replace(/<site_name\/>/g, 'WSJ.com');
	tmp = tmp.replace(/site/g, 'wsj');
	tmp = tmp.replace(/msgbg/g, '#364A92');
	var d = new Date();
    	tmp = tmp.replace(/<year\/>/g, d.getFullYear());
  	tmp = tmp.substring(9, tmp.indexOf("</content>"));
  	displayDiv(tmp, mid, mname, true);
  	sendDisplayedInterstitialRequest(uid, umid);
}

function showMessage(httpRequest, msgid, umid, mname) {
	var message = httpRequest.responseText.replace(/&amp;/g,'&');
	message = message.replace(/<user\/>/g, userName);
        message = message.replace(/gotosite/g, 'WSJ.com');
 	message = message.replace(/myacctsite/g, 'https://commerce.wsj.com/myaccount/do/viewBillingInfo');
	message = message.replace(/modvalue/g, 'mc_wsj_message_' + mname);
	var d = new Date();
    	message = message.replace(/<year\/>/g, d.getFullYear());
	message = message.replace(/<site_name\/>/g, 'WSJ.com');
	message = message.replace(/site/g, 'wsj');
	message = message.replace(/msgbg/g, '#364A92');
  	displayDiv(message, msgid, mname, false);
   	sendReadRequest(msgid, umid);
}

function displayDiv(content, mid, mname, isInterstitial) {
	x = $('modal');
  	y = $('message');
  	z = $('messagecontent');
  	z.innerHTML = content;
  	y.style.zIndex = 100000000001;
  	y.style.display = 'block';
  	y.style.overflow = 'hidden';
  	x.style.zIndex = 100000000000;
  	x.style.display = 'block';
	x.style.height = getDist(document.getElementById('navExtender'),true) + 'px';
	var s = s_gi(s_account);
    	s.events = "event30";
	if (isInterstitial) {
		s.eVar30 = 'WSJ Interstitial - ' + mname;	
	} else {
		s.eVar30 = 'WSJ Message - ' + mname;
	}
    	s.linkTrackVars = "eVar30,events";
    	s.linkTrackEvents = "event30";
	if (isInterstitial) {
		s.tl(true,'o','WSJ Interstitial - ' + mname);	
	} else {
		s.tl(true,'o','WSJ Message - ' + mname);
	}
}
			
function changeStyle(httpRequest, msgid) {
	var v = document.getElementById('m_'+msgid+'_f');
	v.style.fontWeight='';
	v = document.getElementById('m_'+msgid+'_s');
	v.style.fontWeight='';
	v = document.getElementById('m_'+msgid+'_r');
	v.style.fontWeight='';
	v = document.getElementById('m_'+msgid+'_e');
	v.style.fontWeight='';
}
	
function displayMessages(httpRequest) {
	var m = document.getElementById("messages");
	m.innerHTML = httpRequest.responseText;
}

function closeMessage() {
	y.style.display = 'none';
	x.style.display = 'none';
}

function checkAll() {
	var f = document.getElementById("mform");
	var num = f.elements.length;
	for (var i=0; i < num; i++) {
		var e = f.elements[i];
		if (e.type == 'checkbox') {
			e.checked = true;
		}
	}
}
	
function uncheckAll() {
	var f = document.getElementById("mform");
	var num = f.elements.length;
	for (var i=0; i < num; i++) {
		var e = f.elements[i];
		if (e.type == 'checkbox') {
			e.checked = false;
		}
	}
}

function  loadMessageContent(msgid, uid, umid, read, mname) {
	if (getContentRequest != null) {
		getContentRequest.abort();
		getContentdRequest = null;
	}
	getContentRequest = getNewRequest();
	getContentRequest.open("GET",'/msgcenter/get_message.html?messageId='+msgid,true);
	getContentRequest.onreadystatechange = function() {
		if (getContentRequest.readyState == 4) {
			if (getContentRequest.status == 200) {
				clearTimeout(getContentTimeout);
 				showMessage(getContentRequest, msgid, umid, mname);
			}
		}
	}
	getContentRequest.send(null);
	getContentTimeout = setTimeout("ajaxTimeout('getContent');",1000);
}

function  sendReadRequest(msgid, umid) {
	if (readRequest != null) {
		readRequest.abort();
		readRequest = null;
	}
	readRequest = getNewRequest();
	var params = "umId=" + umid;
	readRequest.open("POST",'/msgcenter/read_message.html',true);
	readRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	readRequest.onreadystatechange = function() {
		if (readRequest.readyState == 4) {
			if (readRequest.status == 200) {
				clearTimeout(readTimeout);
 				changeStyle(readRequest, msgid);
				reloadMessageCenter();
			}
		}
	}
	readRequest.send(params);
	readTimeout = setTimeout("ajaxTimeout('read');",1000);
}

function sendChangeOrderRequest(order, product) {
	if (changeOrderRequest != null) {
		changeOrderRequest.abort();
		changeOrderRequest = null;
	}
	changeOrderRequest = getNewRequest();
	changeOrderRequest.open("GET",'/msgcenter/order_messages.html?order='+order+'&product='+product,true);
	changeOrderRequest.onreadystatechange = function() {
		if (changeOrderRequest.readyState == 4) {
			if (changeOrderRequest.status == 200) {
				clearTimeout(changeOrderTimeout );
 				displayMessages(changeOrderRequest);
			}
		}
	}
	changeOrderRequest.send(null);
	changeOrderTimeout = setTimeout("ajaxTimeout('changeOrder');",1000);
}

function sendDisplayedInterstitialRequest(uid, umid) {
	if (displayedInterstitialRequest != null) {
		displayedInterstitialRequest.abort();
		displayedInterstitialRequest = null;
	}
	displayedInterstitialRequest = getNewRequest();
	var params = "uId=" + uid;
	params += ("&umId=" + umid);
	displayedInterstitialRequest.open("POST","/msgcenter/displayed_interstitial.html",true);
	displayedInterstitialRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	displayedInterstitialRequest.onreadystatechange = function() {		
		if (displayedInterstitialRequest.readyState == 4) {
			if (displayedInterstitialRequest.status == 200) {
				clearTimeout(displayeInterstitialTimeout);
 				reloadMessageCenter();
			}
		}
	}
	displayedInterstitialRequest.send(params);
	displayeInterstitialTimeout = setTimeout("ajaxTimeout('displayedInterstitial');",1000);
}

function reloadMessageCenter() {
	var cmccookie = GetCookie("CMC");
	if (cmccookie == null) {
		var o = document.getElementById('msgCenter');
		if  (o) {
			if (messageCenterRequest != null) {
				messageCenterRequest.abort();
				messageCenterRequest = null;
			}
			SetCookie("CMC", "top", "1d+");
			messageCenterRequest = getNewRequest();
			var x;
			var d= new Date();
			messageCenterRequest.open("GET",'/msgcenter/top_message.html?product='+product+'&d='+d.getTime(),true);
			messageCenterRequest.onreadystatechange = function() {
				if (messageCenterRequest.readyState == 4) {
					if (messageCenterRequest.status == 200) {
						clearTimeout(messageCenterTimeout);
 						x = processTop(messageCenterRequest);
					}
				}
			}
			messageCenterRequest.send(null);
			messageCenterTimeout = setTimeout("ajaxTimeout('messageCenter');",1000);	
		}
	}
}

function ajaxTimeout(requestType) {
	if (requestType == 'messageCenter') {
   		messageCenterRequest.abort();
		messageCenterRequest = null;
	} else if (requestType == 'displayedInterstitial') {
		displayedInterstitialRequest.abort();
		displayedInterstitialRequest = null;
	} else if (requestType == 'read') {
		readRequest.abort();
		readRequest = null;
	} else if (requestType == 'getContent') {
		getContentRequest.abort();
		getContentRequest = null;
	} else if (requestType == 'changeOrder') {
		changeOrderRequest.abort();
		changeOrderRequest = null;
	}
}


if (typeof window.loggedIn != 'undefined') {
	if (loggedIn) {
		if (window.addEventListener) {
			window.addEventListener("load", reloadMessageCenter, false);
		} else if (window.attachEvent) {
			window.attachEvent("onload", reloadMessageCenter);
		}
	}
}