//******************************************************************************************************
// On load handling

function page_load() {
	callPreloader();

	// Declare default font-size
	m_iFontSize_Default = 11;
	m_iFontSize_Max = 13;
	m_iFontSize_Step = 1;
}

//******************************************************************************************************

// ******************************************************************************************************
// Image handling

function MM_preloadImages() { //v3.0
	var d = document;
	if (d.images) {
		if (!d.MM_p)
			d.MM_p = new Array();
		var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
		for (i = 0; i < a.length; i++)
			if (a[i].indexOf("#") != 0) {
				d.MM_p[j] = new Image;
				d.MM_p[j++].src = a[i];
			}
	}
}

function MM_swapImgRestore() { //v3.0
	var i, x, a = document.MM_sr;
	for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++)
		x.src = x.oSrc;
}

function MM_findObj(n, d) { //v4.01
	var p, i, x;
	if (!d)
		d = document;
	if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
		d = parent.frames[n.substring(p + 1)].document;
		n = n.substring(0, p);
	}
	if (!(x = d[n]) && d.all)
		x = d.all[n];
	for (i = 0; !x && i < d.forms.length; i++)
		x = d.forms[i][n];
	for (i = 0; !x && d.layers && i < d.layers.length; i++)
		x = MM_findObj(n, d.layers[i].document);
	if (!x && d.getElementById)
		x = d.getElementById(n);
	return x;
}

function MM_swapImage() { //v3.0
	var i, j = 0, x, a = MM_swapImage.arguments;
	document.MM_sr = new Array;
	for (i = 0; i < (a.length - 2); i += 3)
		if ((x = MM_findObj(a[i])) != null) {
			document.MM_sr[j++] = x;
			if (!x.oSrc)
				x.oSrc = x.src;
			x.src = a[i + 2];
		}
}

function MM_showHideLayers() { //v6.0
	var i, p, v, obj, args = MM_showHideLayers.arguments;
	for (i = 0; i < (args.length - 2); i += 3)
		if ((obj = MM_findObj(args[i])) != null) {
			v = args[i + 2];
			if (obj.style) {
				obj = obj.style;
				v = (v == 'show') ? 'visible' : (v == 'hide') ? 'hidden' : v;
			}
			obj.visibility = v;
		}
}

// Pre-load handling
var m_sPreloadImgs = "";

function addToPreload(v_sImgPaths) {
	(m_sPreloadImgs == "") ? m_sPreloadImgs += v_sImgPaths : m_sPreloadImgs += ", " + v_sImgPaths;
}

function callPreloader() {
	if (m_sPreloadImgs != "")
		eval("MM_preloadImages(" + m_sPreloadImgs + ");");
}
//******************************************************************************************************

// ******************************************************************************************************
// Page Tools

// Bookmark current page
function BookmarkThisPage() {
	var sTitle = "AstraZeneca - " + window.document.title;
	var sUrl = window.document.location.href;

	if (window.sidebar) // Mozilla Firefox Bookmark
		window.sidebar.addPanel(sTitle, sUrl, "");
	else if (window.external) // IE Favorite
		window.external.AddFavorite(sUrl, sTitle);
	else if (navigator.appVersion.indexOf('Mac') != -1)
		alert('Press Apple+D to bookmark this site.');
	else
		alert('Press Control+D to bookmark this site.');
}

// Print current page
function PrintThisPage() {
	if (window.print)
		window.print();
	else
		alert('Select PRINT from the File menu.');
}

// Share current page - 
function ShareWithFriend() {
	createCookie("page_title", window.document.title, null);
	createCookie("page_address", window.document.location.href, null);

	var winShare = window.open("/share-page.aspx", "winShare", "width=400,height=480,toolbar=no,directories=0,status=0,menubar=no,resizable=no,scrollbars=no");
}

//*****************************************************************************************************
// Alternate Stylesheet handling

function getPreferredStyleSheet() {
	var i, a;

	for (i = 0; (a = document.getElementsByTagName("link")[i]); i++)
		if ((a.getAttribute("rel").indexOf("style") != -1) && (a.getAttribute("rel").indexOf("alt") == -1) && (a.getAttribute("title")))
			return (a.getAttribute("title"));

	return (null);
}

function setActiveStyleSheet(title) {
	var i, a, main;

	for (i = 0; (a = document.getElementsByTagName("link")[i]); i++)
		if ((a.getAttribute("rel").indexOf("style") != -1) && (a.getAttribute("title"))) {
			a.disabled = true;
			if (a.getAttribute("title") == title)
				a.disabled = false;
		}

	createCookie('FontSize', title);
}
//*****************************************************************************************************

// ***********************************************************************************************
// Cookie related functions

function createCookie(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		var expires = "; expires=" + date.toGMTString();
	} else
		expires = "";
	document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for ( var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ')
			c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0)
			return c.substring(nameEQ.length, c.length);
	}
	return null;
}
//***********************************************************************************************

// ******************************************************************************************************
// URLEncode -

function URLDecode(str) {
	str = str.replace(new RegExp('\\+', 'g'), ' ');
	return unescape(str);
}
function URLEncode(str) {
	str = escape(str);
	str = str.replace(new RegExp('\\+', 'g'), '%2B');
	str = str.replace(new RegExp('-', 'g'), '%96');
	return str.replace(new RegExp('%20', 'g'), '+');
}
//******************************************************************************************************

// ******************************************************************************************************
// Expand/contract HTML elements -

function displaySwitch(r_arrOpen, r_arrClose, v_strDisplayType) {
	// Open the elements in the first array passed
	for ( var i = 0; i < r_arrOpen.length; i++)
		if (document.getElementById(r_arrOpen[i]))
			document.getElementById(r_arrOpen[i]).style.display = (v_strDisplayType == null) ? 'block' : v_strDisplayType;

	// Close the elements in second array passed
	for (i = 0; i < r_arrClose.length; i++)
		if (document.getElementById(r_arrClose[i]))
			document.getElementById(r_arrClose[i]).style.display = 'none';
}
//******************************************************************************************************

// ******************************************************************************************************
// Switch CSS Class

function switchClass(v_sId, sCssClass) {
	if (document.getElementById(v_sId))
		document.getElementById(v_sId).className = sCssClass;
}
//******************************************************************************************************

// ******************************************************************************************************
// Open Window -

function openWindow(v_sURL, v_sName, v_sFeatures) {
	winRef = window.open(v_sURL, v_sName, v_sFeatures);

}
//******************************************************************************************************

// Show/Hide Second Date Field for "Between" Option
function showSpan(grup, elemId) {
	if (elemId == 1) {
		document.getElementById(grup + 'EndDate').style.visibility = "visible";
	} else {
		document.getElementById(grup + 'EndDate').style.visibility = "hidden";
	}
}

// EMail this Page
function mailpage() {
	mail_str = "mailto:?subject=Check out " + document.title;
	mail_str += "&body=I thought you might be interested in: " + document.title;
	mail_str += ". You can view it at, " + location.href;
	location.href = mail_str;
}

// Clear Default Text from Textboxs
function clearText(thefield) {
	if (thefield.defaultValue == thefield.value)
		thefield.value = ""
}
function addText(thefield, thetext) {
	if (thefield.value == "")
		thefield.value = thetext;
}

//******************************************************************************************************
// TEXT ZOOMING

function setActiveStyleSheet(title) {
	var i, a, main;
	for (i = 0; (a = document.getElementsByTagName("link")[i]); i++) {
		if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
			a.disabled = true;
			if (a.getAttribute("title") == title)
				a.disabled = false;
		}
	}
}

function getActiveStyleSheet() {
	var i, a;
	for (i = 0; (a = document.getElementsByTagName("link")[i]); i++) {
		if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled)
			return a.getAttribute("title");
	}
	return null;
}

function getPreferredStyleSheet() {
	var i, a;
	for (i = 0; (a = document.getElementsByTagName("link")[i]); i++) {
		if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("rel").indexOf("alt") == -1 && a.getAttribute("title"))
			return a.getAttribute("title");
	}
	return null;
}

window.onload = function(e) {
	var cookie = readCookie("style");
	var title = cookie ? cookie : getPreferredStyleSheet();
	setActiveStyleSheet(title);
}

window.onunload = function(e) {
	var title = getActiveStyleSheet();
	createCookie("style", title, 365);
}

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);

/* navigation funcs */
function addHoverToClass(obj) {
	if (obj.className.indexOf("selected") == -1) {
		obj.className = obj.className + "_hover";

		var nav = obj.firstChild.firstChild;
		nav.className = nav.className + "navlink_hover";
	}
}

function removeHoverFromClass(obj) {
	if (obj.className.indexOf("selected") == -1) {
		obj.className = obj.className.replace(new RegExp("_hover\\b"), "");

		var nav = obj.firstChild.firstChild;
		nav.className = "";

	}

}

// Load shadowbox
// Shadowbox.loadSkin('classic', '/includes/shadowbox/skin');
/*
 * function setUpShadowBox(){ var options = { modal: true, animate: false,
 * onFinish: wireClose, flashBgColor: '#ffffff' }; Shadowbox.init(options);
 *  // Make clicking inside the shadowbox close it function wireClose() { //
 * Hide shadowbox title, since we're not using it and clicking // it will close
 * the popup (clicking on an empty title div and // having the popup close could
 * be confusing) $('#shadowbox_title').hide();
 *  // Safari Mac doesn't like this - closes popup whenever flash is clicked on
 * if (!$.browser.safari) { $('div#shadowbox').unbind().click( function() {
 * Shadowbox.close(); return false; }); } } }
 */

function showEDetail() {
	// Don't show eDetail if the correct version of Flash isn't available
	if (!$().flash.hasFlash(minFlashVersion)) {
		return;
	}

	setUpShadowBox()

	// Read var1 value to pass to Flash
	var var1val = $('input#hidVar1').val();
	var var3val = $('input#hidVar2').val();

	// get the port number
	var portNumber = '';
	if (location.port) {
		portNumber = ':' + location.port;
	}
	// Get domain and make it safe to pass into url
	var encodedDomain = encodeURIComponent('http://' + document.domain + portNumber);

	Shadowbox.open( {
		player: 'swf',
		content: '/flash/5things/Symbicort.swf?var1=' + var1val + '&var2=' + encodedDomain + '&var3=' + var3val + '&swfPath=/flash/5things/',
		height: 646,
		width: 816
	});
}

// Tracking functionality
function trackingFunc() {
	var tx = readCookie("tx");
	var lv = readCookie("lv");
	if (tx) {

		// Calculate time since lv cookie was set
		var now = new Date();
		var currentSeconds = now.getTime();
		var cookieSeconds = Date.parse(lv);

		// Set to time difference
		var diff = new Date();
		diff.setTime(Math.abs(currentSeconds - cookieSeconds));

		// Get hours since last cookie
		var hours = Math.floor(diff.getTime() / (1000 * 60 * 60));

		// Of no last cookie or >24 hours, send info and write new cookie
		if ((!lv) || (hours > 24)) {

			// Call google code
			try {
				var pageTracker = _gat._getTracker(tx);
				pageTracker._trackPageview();
			} catch (err) {
			}

			// Update cookie
			createCookie("lv", now.toDateString(), 365)
		}
	}
}

function flashTrack(var1, var2, var3) {
	pageTracker._trackEvent(var1, var2, var3);
}

function flashTrackPage(var1) {
	pageTracker._trackPageview(var1);
}

/**
 * check npi number.
 */
function checkNpiNumber(npi) {
	// assert npi is digit
	if (npi == null || npi == "") {
		return false;
	}
	var tmp = 0, sum = 0, i = 0, j = 0;
	i = npi.length;
	if ((i == 15) && (npi.substring(0, 5).equals("80840")))
		sum = 0;
	else if (i == 10)
		sum = 24; /* to compensate for the prefix */
	else
		return false; /* length must be 10 or 15 bytes */
	j = 0;
	/* now scan the NPI from right to left */
	while (i-- > 0) { /* only digits are valid for the NPI */
		/* this conversion works for ASCII and EBCDIC */
		tmp = npi.charAt(i) - '0';
		/* the odd positions are multiplied by 2 */
		if (((j++) & 1) > 0) {
			if ((tmp <<= 1) > 9) {
				tmp -= 10; /* 'tmp mod 10' */
				tmp++; /* left digit is '1' */
			}
		}
		sum += tmp;
	}

	/* If the checksum mod 10 is zero then the NPI is valid */
	if (sum % 10 == 0)
		return true;
	else
		return false;
}

$(window).load( function() {
	//    setUpShadowBox()
	});
function onImgError(source, picturePath) {
	source.src = picturePath; // "/images/no-image-100px.gif"
	// disable onerror to prevent endless loop
	source.onerror = "";
	return true;
}

