// ----------------------------------------------------------------------
// NAME: Browser Check
// DESCRIPTION: Set global variables for browser compliancy
// ----------------------------------------------------------------------
var d, dom, ie, ie4, ie5x, moz, mac, ie5mac, op;

d = document;
n = navigator;
na = n.appVersion;
nua = n.userAgent;
mac = ( na.indexOf('Mac') != -1 );

if ( !d.layers ){
	dom = ( d.getElementById );
	op = ( nua.indexOf('Opera') != -1 );
	saf = ( nua.indexOf('Safari') != -1 );
	moz = ( nua.indexOf('Gecko') != -1 && !saf );

	ie5x = ( d.all && dom );
	ie5mac = ( mac && ie5x );
}

// ----------------------------------------------------------------------
// NAME: Display Toggle
// DESCRIPTION: Toggle visibility on elements
// ----------------------------------------------------------------------
function toggleDiv(id,toggle){
	document.getElementById(id).style.display = (toggle)? "block" : "none";
}

// ----------------------------------------------------------------------
// NAME: Element Position
// DESCRIPTION: Find Element position within page
// ----------------------------------------------------------------------
function findPosition(element) {
	var x,w,y,h,s;
	if (document.getBoxObjectFor) { // mozilla (pc & mac)
		var box = document.getBoxObjectFor(element); 
		x = box.x;
		w = box.width;
		y = box.y;
		h = box.height;
		s = 3; // scrollTop;
		return { x: x, y: (y+s), width: w, height: h }
	/*	
	} else if (element.getBoundingClientRect) { // IE (pc)
		var rect = element.getBoundingClientRect(); 
		x = rect.left; 
		w = rect.right - rect.left;
		y = rect.top;
		h = rect.bottom - rect.top;
		s = document.body.scrollTop;
		return { x: x, y: (y+s), width: w, height: h }
	*/	
	} else { // All Other browsers
		if(element.offsetParent) {
			var posWidth = element.offsetWidth;
			var posHeight = (saf)? element.offsetHeight+5 : element.offsetHeight;
			for(var posX = 0, posY = 0; element.offsetParent; element = element.offsetParent) {
				posX += element.offsetLeft;
				posY += element.offsetTop;
			}
			return { x: posX, y: posY, width: posWidth, height: posHeight };
		} else {
			return { x: element.x, y: element.y, width: element.offsetWidth, height: element.offsetHeight };
		}
	}
}
// ----------------------------------------------------------------------



function getRSS(id,contentId,rssId) {
/* ===== create container element - if unavailable ===== */
	if(!document.getElementById("rssPopup")){
	var divContainer = document.createElement("div");
		divContainer.setAttribute("id","rssPopup");
		document.body.appendChild(divContainer);
	}
	
	var FormProcessor = "/ajax_rss.aspx";
	var QueryString = "?id="+contentId+"&rssId="+rssId;
	var processor = FormProcessor + QueryString;
	
/* ===== position and display form ===== */
	var container = document.getElementById("rssPopup");
	var oPOS = findPosition(id);
	var offL = (ie5x)? -8 : 0;
	container.style.top = (oPOS.y) + "px";
	container.style.left = (oPOS.x+(offL)) + "px";
	container.style.display = "block";
	displayRSS("loading");
	if (window.XMLHttpRequest) {
        frmReq = new XMLHttpRequest();
        frmReq.onreadystatechange = processRSS;
        frmReq.open("GET", processor, true);
        frmReq.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        frmReq = new ActiveXObject("Microsoft.XMLHTTP");
        if (frmReq) {
            frmReq.onreadystatechange = processRSS;
            frmReq.open("GET", processor, true);
			frmReq.send();
        }
	}
}

function processRSS(){
	if (frmReq.readyState == 4) {
		if (frmReq.status == 200) {
		  	displayRSS("display",frmReq.responseText);
        } else {
            alert("There was a problem retrieving the XML data:\n" + frmReq.statusText);
        }
	}
}
function displayRSS(status,text){
	var copy;
	var popup;
	switch(status){
		case "loading" : copy = "<div class='loading'>loading...</div>"; break;
		case "display" : copy = text; break;
	}
	popup = "" +
			"<div id='popUpDisplay'>" +
			"	<div class='popUpHeader'><div class='closeX' onClick=\"toggleDiv('rssPopup',false);return false;\"></div>" +
			"	</div>" +
			"	<div id='popUpContent'>" + copy + "</div>" +
			"</div>";
	document.getElementById("rssPopup").innerHTML = popup;
	document.getElementById("rssPopup").style.display = "block";

}

function getRSSUp(id,contentId,rssId) {
/* ===== create container element - if unavailable ===== */
	if(!document.getElementById("rssPopup")){
	var divContainer = document.createElement("div");
		divContainer.setAttribute("id","rssPopup");
		document.body.appendChild(divContainer);
	}
	
	var FormProcessor = "/ajax_rss.aspx";
	var QueryString = "?id="+contentId+"&rssId="+rssId;
	var processor = FormProcessor + QueryString;
	
/* ===== position and display form ===== */
	var container = document.getElementById("rssPopup");
	var oPOS = findPosition(id);
	var offL = (ie5x)? -8 : 0;
	container.style.top = (oPOS.y - 230) + "px";
	container.style.left = (oPOS.x+(offL)) + "px";
	container.style.display = "block";
	displayRSS("loading");
	if (window.XMLHttpRequest) {
        frmReq = new XMLHttpRequest();
        frmReq.onreadystatechange = processRSS;
        frmReq.open("GET", processor, true);
        frmReq.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        frmReq = new ActiveXObject("Microsoft.XMLHTTP");
        if (frmReq) {
            frmReq.onreadystatechange = processRSS;
            frmReq.open("GET", processor, true);
			frmReq.send();
        }
	}
}
