// JavaScript Document
var isRenewal = false;
var countriesWithoutStates = ['BM'];

function reformatCSV(divId)
{
	div = document.getElementById(divId);
	div.innerHTML = div.innerHTML.replace(/\,/g, "<br/>");
}
 
function hasValue(divId)
{
	div = document.getElementById(divId);
	if (div.innerHTML != "")
		return true;
	else
		return false;
}
 
function toggleVisibility(divId)
{
	div = document.getElementById(divId);
	if (div.style.display == "block")
		div.style.display = "none";
	else
		div.style.display = "block";
}

function formatText(html_id)
{
	var textArea = document.getElementById(html_id);	
	var newText = textArea.innerHTML;
	var intIndexOfMatch = newText.indexOf( '\n' );
	
	while (intIndexOfMatch != -1) {
		var newText = newText.replace(/\n/, '<br/>');
		intIndexOfMatch = newText.indexOf('\n');
	}
	textArea.innerHTML = newText;
}

function formatText2(text)
{
	var newText = text;
	var intIndexOfMatch = newText.indexOf( '\n' );
	
	while (intIndexOfMatch != -1) {
		var newText = newText.replace(/\n/, '<br/>');
		intIndexOfMatch = newText.indexOf('\n');
	}
	return newText;
}


function addDays(myDate,days) {
	return new Date(myDate.getTime() + days*24*60*60*1000);
}

function addYears(myDate,years) {
	return new Date(myDate.getFullYear()+years, myDate.getMonth(), myDate.getDate());	// Add year(s), month value - 1 (offset)
}


function formatDate(originalDate)
{
	var dateBits = originalDate.split("-");
	var month = getMonthValue(dateBits[1]);
	
	return month + "/" + dateBits[0] + "/" + dateBits[2];
}

function getMonthValue(monthAbbrev)
{
	var month = '';
	
	switch(monthAbbrev)
	{
		case 'Jan':
			month = '01';
			break;
		case 'Feb':
			month = '02';
			break;
		case 'Mar':
			month = '03';
			break;
		case 'Apr':
			month = '04';
			break;
		case 'May':
			month = '05';
			break;
		case 'Jun':
			month = '06';
			break;
		case 'Jul':
			month = '07';
			break;
		case 'Aug':
			month = '08';
			break;
		case 'Sep':
			month = '09';
			break;
		case 'Oct':
			month = '10';
			break;
		case 'Nov':
			month = '11';
			break;
		case 'Dec':
			month = '12';
			break;
		
	}
	
	return month;
}


function formatBCDate(dateObject)
{
	var m_names = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
	var newDateFormat = "";
	var month = dateObject.getMonth();
	var dayOfMonth = dateObject.getDate();
	var year = dateObject.getFullYear();
	
	// Pad day with leading zero
	dayOfMonth = dayOfMonth + "";
	if (dayOfMonth.length == 1)
		dayOfMonth = "0" + dayOfMonth;

	newDateFormat = dayOfMonth + "-" + m_names[month] + "-" + year;
	
	return newDateFormat;
}

function getDateObject(bcDate)
{
	var dateBits = bcDate.split("-");
	var newDate;
	
	// Format: 01-Jan-9999
	if (dateBits.length == 3) {
		newDate = new Date(dateBits[2], getMonthValue(dateBits[1])-1, dateBits[0]);
	// Format: Feb 11 2011 12:00AM
	// Format: Feb  1 2011 12:00AM
	} else {
		dateBits = bcDate.split(" ");
		if (dateBits.length == 5) {
			newDate = new Date(dateBits[3], getMonthValue(dateBits[0])-1, dateBits[2]);
		} else {
			newDate = new Date(dateBits[2], getMonthValue(dateBits[0])-1, dateBits[1]);
		}
	}
	
	return newDate;
}

function getCurrentDate(formatType) 
{
	var curdate = new Date();
	
	if (formatType == 'BC') {
		return formatBCDate(curdate);
	} else {
		return formatDate(formatBCDate(curdate));
	}
} 

function formatURL(url, text)
{
	if (url.length > 7)
	{
		if (!text) 
			text = url;
		else if (text && text == '')
			text = url;
		
		if (url.match(/https?\:\/\//))
			document.write("<a href=\"" + url + "\" target=\"_blank\">" + text + "</a>");
		else
			document.write("<a href=\"http://" + url + "\" target=\"_blank\">" + text + "</a>");
	}
	else
	{
		document.write("");	
	}
}

function urlify(html_id, newWindow) {
	var htmlText = $j('#' + html_id);
    var urlRegex = /(https?:\/\/[^\s]+)/g;
	
	if (htmlText.length > 0)
	{	
		var text = htmlText.html();
		htmlText.html( text.replace(urlRegex, function(url, newWindow) {
			if (newWindow)
			{
				return '<a href="' + url + '" target="_blank">' + url + '</a>';
			}
			else
			{
				return '<a href="' + url + '">' + url + '</a>';
			}
		}) );
	}
    // or alternatively
    // return text.replace(urlRegex, '<a href="$1">$1</a>')
}

function showHide(id, idTest)
{
	if ($j("#" + idTest).html() == '')
	{
		$j("#" + id).remove();
	}
}

function selectOption(thisField, thisValue, defaultValue)
{
	// Check if user is logged in, set drop down menus
	var findValue = "";
	findValue = defaultValue;
	
	if (thisValue != '')
	{
		findValue = thisValue;
	}
	
	for (i=0;i<thisField.options.length;i++)
	{
		if (thisField.options[i].value == findValue)
		{
			thisField.options[i].selected = true;
			break;
		}
	}
}

function copyShippingtoBilling() {
	if ($j('#CopyShippingToBilling').attr('checked')) {
		$j('#BillingAddress').val($j('#ShippingAddress').val());
		$j('#BillingAddress2').val($j('#ShippingAddress2').val());
		$j('#BillingCity').val($j('#ShippingCity').val());
		$j('#BillingState').val($j('#ShippingState').val());
		$j('#BillingZip').val($j('#ShippingZip').val());
		$j('#BillingCountry').val($j('#ShippingCountry').val());
		
		$j('#BillingCountry').trigger('change');
		setStateField('BillingState', 'BillingStateMenu');
	} 
}

function setCardExpiryYearMenu() {
	var currentDate = new Date();
	var startYear = currentDate.getFullYear();
	var endYear = startYear + 10;
	
	$j('#CardExpiryYear').empty();
	
	for (i = startYear; i < endYear; i++) {
		$j('#CardExpiryYear').append("<option value='" + i + "'>" + i + "</option>");
	}
}

		
// Credit Card info is not required if paying by PayPal, Hosted Credit Card, COD etc
function ShowCCFields(val) {							
	if (!document.getElementById('paymentdiv'))
		return;  		
	if (val != 1)
		document.getElementById('paymentdiv').style.display = 'none';				
	else
		document.getElementById('paymentdiv').style.display = 'inline';
}				
//]]>

function smoothScrollTop(html_id)
{
	$j('html,body').animate({
		scrollTop: $j("#" + html_id).offset().top
	}, 1000);	
}

function numbersonly(myfield, e, dec)
{
    var key;
    var keychar;
    
    if (window.event)
    {
        e = window.event;
        key = window.event.keyCode;
    }
    else if (e)
        key = e.which;
    else
        return true;
    
    keychar = String.fromCharCode(key);
    // control keys
    if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
    {
         if(window.event)
         {
            e.returnValue = true;
         }
         else
         {
            return true;
         }
    }
    // numbers
    else if ((("0123456789").indexOf(keychar) > -1))
    {
         if(window.event)
         {
            e.returnValue = true;
         }
         else
         {
            return true;
         }
        
        return true;
    }
    // decimal point jump
    else if (dec && (keychar == "."))
     {
         myfield.form.elements[dec].focus();
         if(window.event)
         {
            e.returnValue = false;
         }
         else
         {
            return false;
         }
         
     }
    else
    {
     if(window.event)
     {
        e.returnValue = false;
     }
     else
     {
        return false;
     }
    }
}

function showErrorMessage(errorMessage) {
	$j.fancybox(
		"<p align='center'><span style='color: red; font-size: 12pt;'>" + formatText2(errorMessage) + "</span><br/><br/><a href='javascript: void(0);' onclick='$j.fancybox.close()' style='font-size: 16px;'>Close</a></p>",
		{	
			autoDimensions: true,	
			width: 300,	
			height: 110,	
			padding: 20	
		}
	);	
}

function subscribeMenuAction() {
	if (isRenewal) {
		location.href = "/subscribers/renew";
	} else {
		// Attach lightbox to subscribe main menu link
		$j('#subscribe-prompt-link').fancybox(
				{
					autoDimensions: false,
					width: 300,
					height: 200,
					padding: 20,
					modal: true
				}
			);
			
		$j('#subscribe-prompt-link').trigger('click');
	}
}

function toggleStateMenu(countryFieldId, stateFieldId) {
	
	if ($j('#' + countryFieldId).val() == 'US') {
		$j('#' + stateFieldId).hide();		
		$j('#' + stateFieldId + 'Menu').show();
		$j('#' + stateFieldId + 'Menu').val('');	
	} else {
		$j('#' + stateFieldId).show();		
		$j('#' + stateFieldId + 'Menu').hide();
		$j('#' + stateFieldId + 'Menu').val('');		
	}
	
}

function setStateField(fromFieldId, toFieldId) {
	$j('#' + toFieldId).val($j('#' + fromFieldId).val());
}

// Overrides some search result links to redirect away from the web app detail page
function checkSearchResults(resultCounter) {
	var searchResultLink = $j('#search-result-' + resultCounter + ' a');
	if (searchResultLink.attr('href').match(/new\-patient\-guides1/)) {
		searchResultLink.attr('href', '/free-magazine-for-new-ostomy-patients');
	} else if (searchResultLink.attr('href').match(/home\-page\-sub\-features/)) {
		searchResultLink.attr('href', '/');
	} else if (searchResultLink.attr('href').match(/feature\-banners/)) {
		searchResultLink.attr('href', '/');
	}
}

function showCommentForm(url) {
	// Electronic Edition catalog ID
	if (url.match(/CatalogueID=193590/)) {
		$j('#comment-form').show();
		$j('#comment-list').show();
	} else if (url.match(/CatalogueID=192272/)) {
		$j('#comment-form').show();
		$j('#comment-list').show();
	}
}

function isURLSecure() {
	if (currentURL.match(/worldsecuresystesms/)) {
		return true;
	} else {
		return false;
	}
}

function submitSiteSearch(searchTerm) {
	$j('#site-search-form #CAT_Search').val(searchTerm);
	$j('#site-search-form').submit();
}

$j(document).ready( function() {
	// Show logout link if logged in
	if (isLoggedIn == '1') {
		$j('#utility-logout-link').show();
	}
	
	// Show cart link if shopping cart has products
	if ($j('#shopping-cart-status #catCartSummary td.cartSummaryItem').text() != "Shopping cart is empty.") {
		$j('#cart-menu-link').show();
	}
	
	// My Account menu action
	$j('#my-account-link a').click( function() {
		_gaq.push(['_link', $j(this).attr('href')]);return false;
	});
	
	// Show search field
	$j('#search-box').html("<form name=\"catsearchform92757\" id=\"site-search-form\" method=\"post\" action=\"/Default.aspx?SiteSearchID=2836&PageID=11156735\"><div class=\"search-box\"><input type=\"text\" name=\"CAT_Search\" id=\"CAT_Search\" size=\"15\" /><input class=\"cat_button\" type=\"submit\" value=\"Search\" /></div></form>");
	
	// Fill CardExpiryYear menu if present
	if ($j('#CardExpiryYear').length > 0) {
		setCardExpiryYearMenu();
	}
	
	// Set copyright date
	var date = new Date(); 
	$j('#copyright-date').html(date.getFullYear());
	
	// Set Subscribe Now menu action
	$j('.subscribe-button-main-nav').click( function() {
		subscribeMenuAction();
	});	
	
	// If renewal detected, change "Subscribe Now" to "Renew Now"
	if (isRenewal) {
		$j('.subscribe-button-main-nav a').text('Renew Now');
	}
	
	// State menu
	toggleStateMenu();
	
});

