//<![CDATA[

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }

var dataRefreshPrefix = "";
var validate_date = 1;

if (isProductionServer())
	dataRefreshPrefix = "http://www.salesinaclick.com";

function isProductionServer()
{
	var loc = document.location.toString();
	if( (loc.indexOf("staging") > -1) || (loc.indexOf("devimn") > -1) || (loc.indexOf("localhost") > -1) )
		return false;
	else
		return false;
}


// open video tutorial, specific to smblite
function openVideo()
{
	window.open('http://www.salesinaclick.com/lp/lt/video/index.html','video','toolbars=no,menubar=no,width=660,height=650,scrollbars=auto');
}


function showChicklet(name)
{
	if(name == 'Reviews')
	{
		var urlToken = document.customer_overview.urlToken.value;
		
		// ajax call to update the data
		var url = "/imn/omn/get_stats.cfm";
		var params = urlToken + "&dtype=Reviews";
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data)
		{
			var response = data.responseText.trim();
			if(response != "")
			{
				var arrData = response.split(',');
				$('opened_reviews').innerHTML = arrData[0];
				$('product_reviews_clicked').innerHTML = arrData[1];

				var stats = $$('.stats-newsletter');
				for(var i=0; i < stats.length; i++)
				{
					stats[i].hide();
				}
				stats = $$('.stats-reviews');
				for(var i=0; i < stats.length; i++)
				{
					stats[i].show();
				}
				$('chic-subscribers').hide(); 
				$('chic-promote').hide();
				toggleChicklets('chic-reviews-link');
			}
		}});
	}
	else if (name == 'Newsletter')
	{
		var stats = $$('.stats-newsletter');
		for(var i=0; i < stats.length; i++)
		{
			stats[i].show();
		}
		stats = $$('.stats-reviews');
		for(var i=0; i < stats.length; i++)
		{
			stats[i].hide();
		}
		$('chic-subscribers').show(); 
		$('chic-promote').show();
		toggleChicklets('chic-newsletter-link');
	}
}


function toggleChicklets(elm)
{
	var data = elm.split('-');
	var chicklets = $$('div.chicklet div.container');
	for (var i=0; i < chicklets.length; i++)
	{
		if(chicklets[i].id == (data[0]+'-'+data[1]+'-state'))
		{
			chicklets[i].removeClassName('inactive');
			chicklets[i].addClassName('active');
		}
		else
		{
			chicklets[i].removeClassName('active');
			chicklets[i].addClassName('inactive');
		}
	}
}

// Insert image into FCK editor box
function insertFCKImage(asset)
{
	if (typeof FCKeditorAPI != 'undefined')
	{
		var content_fckeditor = FCKeditorAPI.GetInstance('content_fckeditor') ;
		if(typeof content_fckeditor != 'undefined')
		{
			var imageHTML = $(asset + "-link").innerHTML;
			content_fckeditor.InsertHtml(imageHTML);
		}
	}
}


// At minimum, coupon name and description are required for coupons/offers
function validateCoupon()
{
	var couponname = document.form_months.couponname.value;
	//var details = document.form_months.details.value;
	var details = '';
	if (typeof FCKeditorAPI != 'undefined')
	{
		var content_fckeditor = FCKeditorAPI.GetInstance('details');
		if(typeof content_fckeditor != 'undefined')
		{
			details = content_fckeditor.GetXHTML();
		}
	}
	if(couponname.trim().length == 0 || details.trim().length == 0)
	{
		alert('Please enter a name and detail information for your offer/coupon');
		return false;
	}
	else
	{
		return true;
	}
}


// Show the Add coupon/offer form
function addCoupon()
{
	document.form_months.couponname.value = '';
	document.form_months.details.value = '';
	document.form_months.coupon_id.value = '';
	var expires = document.form_months.expires;
	for (var j=0; j < expires.length; j++)
	{
		if(expires.options[j].value == 0)
		{
			expires.options[j].selected = true;
		}
	}
	setCouponImage("remove");
	var coupons = document.form_months.selected_coupon;
	coupons.options[0].selected = true;
	$('new-coupon').show();
}


// Show edit coupon/offer form
function editCoupon(couponVal)
{
	
	$('save-coupon').innerHTML = "Save";
	
	var urlToken = document.form_months.urlToken.value;
	var coupons = document.form_months.selected_coupon;
	var couponId = "";
	for (var i=0; i < coupons.length; i++)
	{
		if(coupons.options[i].selected == true)
		{
			if(coupons.options[i].value != '') couponId = coupons.options[i].value;
		}
	}

	if(typeof(couponVal) != 'undefined')
	{
		couponId = couponVal;
	}
	
	if(couponId != "" && couponId != "undefined")
	{
		
		// load details of coupon
		var url = "update_coupons.cfm";
		var params = urlToken + "&couponids=" + couponId + "&action=details";
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data)
		{
			var response = data.responseText.trim();
			if(response != "")
			{
				var arrData = response.split('|');
				document.form_months.couponname.value = arrData[0];
				//document.form_months.details.value = arrData[1];

				document.form_months.coupon_id.value = couponId;
				var expires = document.form_months.expires;
				for (var j=0; j < expires.length; j++)
				{
					if(expires.options[j].value == arrData[3])
					{
						expires.options[j].selected = true;
					}
				}
				setCouponImage(arrData[2]);
				$('new-coupon').show();

				var content_fckeditor = FCKeditorAPI.GetInstance('details') ;
				if(typeof content_fckeditor != 'undefined')
				{
					content_fckeditor.SetHTML(arrData[1]);
				}
			}
		}});
	}
	else
	{
		alert('Please choose a coupon to edit');
	}
}


// Delete the coupon and refresh the page
function deleteCoupon()
{
	var urlToken = document.form_months.urlToken.value;
	var coupons = document.form_months.selected_coupon;
	var couponId = "";
	for (var i=0; i < coupons.length; i++)
	{
		if(coupons.options[i].selected == true)
		{
			if(coupons.options[i].value != '') couponId = coupons.options[i].value;
		}
	}
	if(couponId != "")
	{
		var url = "update_coupons.cfm";
		var params = urlToken + "&couponids=" + couponId + "&action=delete";
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data)
		{
			var response = data.responseText.trim();
			if(response == "success")
			{
				refreshPage('');				
			}
		}});
	}
	else
	{
		alert('Please choose a coupon to delete');
	}
}


// Show the image library preview
function setCouponImage(asset,width)
{
	var widthHtml = "";
	if(typeof(width) != 'undefined')
	{
		if(width > 150)
		{
			widthHtml = ' width="150';
		}
		else
		{
			widthHtml = ' width="' + width + '"';
		}
	}

	// remove preview image
	if (asset == "remove")
	{
		document.form_months.couponimage.value = "";
		$('image-preview').innerHTML = "";
	}
	// if full path of image is passed in, just used that
	else if (asset.indexOf('http') > -1)
	{
		document.form_months.couponimage.value = asset;
		$('image-preview').innerHTML = '<a href=\"javascript:void(0)\" onclick=\"setCouponImage(\'remove\')\" class=\"cancel\">Remove Image</a><br><img src=\"' + document.form_months.couponimage.value + '\" style=\"max-width:150px; width:expression(this.width\> 110 ? 110: true);\"' + widthHtml + '>';
	}
	// if asset link ID is passed in, grab the inner html
	else
	{
		var imageHTML = $(asset + "-link").innerHTML;
		var tmpHtml = imageHTML.split(' ');
		for (var i = 0; i < tmpHtml.length; i++)
		{
			if(tmpHtml[i].indexOf('http') > -1)
			{
				document.form_months.couponimage.value = tmpHtml[i].replace('src=','').replace(/"/g,'').replace('>','');
				$('image-preview').innerHTML = '<a href=\"javascript:void(0)\" onclick=\"setCouponImage(\'remove\')\" class=\"cancel\">Remove Image</a><br><img src=\"' + document.form_months.couponimage.value + '\" style=\"max-width:150px; width:expression(this.width\> 110 ? 110: true);\"' + widthHtml + '>';
			}
		}
	}
}


// Build the custom pallette html to include in color picker
function loadCustomColors(urlToken, formName)
{
	//color
	//RGBtoHex(R,G,B);
	var custom_colors = "";
	var url = "/imn/omn/update_asset.cfm";
	var params = urlToken + "&assettype=color&action=get";
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data)
	{
		var response = data.responseText.trim();
		//alert(response);
		if(response != '')
		{
			var colors = response.split('|');
			custom_colors += "<tr>";
			var color_length = colors.length;
			var additional_td = 0;

			if(colors.length > 18)
			{
				color_length = 17;
			}
			else
			{
				additional_td = 17-color_length;
			}

			for (var i=0; i < color_length; i++)
			{
				if(colors[i].trim() != '')
				{

					var arrColors = colors[i].trim().replace('rgb(','').replace(')','').replace(' ','').split(',');
					var hexVal = RGBtoHex(arrColors[0],arrColors[1],arrColors[2]);

					if(hexVal == 'FFFFFF')
					{
						additional_td += 1;
					}
					else
					{
						custom_colors += "<td style=\"background-color: " + colors[i].trim() + ";\" class=\"o5582brd\"><a onmouseover=\"javascript:document.getElementById('o5582n66').value='#" + hexVal + "'; javascript:document.getElementById('o5582n66a').style.backgroundColor='#" + hexVal + "';\" href=\"javascript:onclick=putOBJxColor6('XXXXXX', 'XXXXXX_preview','#" + hexVal + "'); updateColor('XXXXXX');\" class=\"o5582n66\" title=\"#" + hexVal + "\"><div style=\"width: 12px; height: 14px;\"></div></a></td>"
					}
				}
			}
			
			for (var j=0; j < additional_td+1; j++)
			{
				custom_colors += "<td>&nbsp;</td>";
			}
			custom_colors += "</tr>";
			//alert(custom_colors);
			eval('document.' + formName + '.custom_pallette.value = custom_colors;');
		}
	}});
	
	
}



// Switch the monthly view of coupons
function displayMonth(monthVal)
{
	var current = document.form_months.current_month.value;
	var months = $$('.coupon-month-container');
	for (var i=0; i < months.length; i++)
	{
		var data = months[i].id.split('-');

		if(monthVal == data[3])
		{
			months[i].show();
			$('month-nav-'+data[3]).addClassName('active');
		}
		else
		{	
			months[i].hide();
			$('month-nav-'+data[3]).removeClassName('active');
		}
		
		if(monthVal == 1)
		{
			if(data[3] == 1 || data[3] == 2 || data[3] == 3)
			{
				months[i].show();
			}
			else
			{
				months[i].hide();
			}
		}
		else if(monthVal == 12)
		{
			if(data[3] == 12)
			{
				months[i].show();
			}
		}
		else if(monthVal == data[3] || monthVal == (data[3]-1) || monthVal == (data[3]-2))
		{
			months[i].show();
		}
		else
		{
			months[i].hide();
		}

	}
}


// Update the selected coupons for the month 
function updateMonthlyCoupon(monthVal, action, couponID)
{
	var sel = $('coupons-' + monthVal);
	var urlToken = document.form_months.urlToken.value;	
	var coupons = '';
	for (var i=0; i < sel.length; i++)
	{
		if(sel[i].selected == true)
		{
			if (sel[i].value != '')
			{
				coupons = sel[i].value;
			}
		}
	}

	// if a specific coupon id is passed in, use that instead
	if (couponID != '' && typeof(couponID) != 'undefined')
	{
		coupons = couponID;
	}

	if($('valid-coupon-'+monthVal+'-'+coupons) != null && action == 'get')
	{
		alert('The coupon already exists for this month.');
	}
	else
	{
		var url = "update_coupons.cfm";
		var params = urlToken + "&couponids=" + coupons + "&month=" + monthVal + "&action=" + action;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data)
		{
			var response = data.responseText.trim();
			if (response.length > 0)
			{
				// if i'm getting coupons, show a preview of the coupon on the page
				if (action == "get")
				{
					// remove empty coupon holder
					if($('empty-coupon-'+monthVal)) $('empty-coupon-'+monthVal).remove();

					var currentHtml = $('coupon-list-'+monthVal).innerHTML;
					$('coupon-list-'+monthVal).innerHTML = currentHtml + response

					// reset coupon selector
					$('show-coupons-'+monthVal).show();
					$('coupon-selector-'+monthVal).hide();
					$('coupons-' + monthVal)[0].selected = true;
				}
				// remove coupon from page
				else if (action == "remove")
				{
					$('valid-coupon-' + monthVal + '-' + couponID).remove();
					// if all the coupons have been removed for month, show the empty coupon look
					if($('coupon-list-'+monthVal).innerHTML.trim() == '')
					{
						$('coupon-list-'+monthVal).innerHTML = '<a id=\"empty-coupon-' + monthVal + '\" class=\"empty-coupon\" href=\"javascript:void(0);\">NONE</a>';
					}

					// reset coupon selector
					$('show-coupons-'+monthVal).show();
					$('coupon-selector-'+monthVal).hide();
					$('coupons-'+monthVal)[0].selected = true;
				}
			}
		}});
	}
}


function updateLayoutColumn(action,col,urlToken)
{
	var url = "omn/update_layout.cfm";
	var params = urlToken + "&action=" + action + "&col=" + col;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data)
	{
		var response = data.responseText.trim();
		refreshFullPage('success');
	}});
}


function scrapeUrl(el,merchantId,accountName,urlToken,action)
{
	if(el.value != '')
	{
		
		if(el.value.indexOf('http://') > -1 && el.value.length > 8)
		{
			$('library-status').innerHTML = '<img src=\"/eletra/omn/images/ajax-loader.gif\" />&nbsp;<span class=\"working\">Gathering images and links from your URL...<\/span>';
			$('library-status').show();
			
			var url = '/eletra/omn/data_refresh.cfm';
			var params = 'runType=scrape&dataUrl=' + Url.encode(el.value) + '&merchantId=' + merchantId + '&accountName=' + Url.encode(accountName);
			var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data)
			{
				new PeriodicalExecuter(function(pe) {
					var url = '/eletra/omn/data_refresh.cfm';
					var params = 'runType=scrapeNoXml&dataUrl=' + Url.encode(el.value) + '&merchantId=' + merchantId + '&accountName=' + Url.encode(accountName);
					var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data)
					{
						var response = data.responseText.trim();
						if(response.indexOf('success') > -1)
						{
							var arrData = response.split(',');
							var arrColors = arrData[1].split('=');
							var arrLinks = arrData[2].split('=');
							var arrImages = arrData[3].split('=');
							if(arrColors[1] == 0 && arrLinks[1] == 0 && arrImages[1] == 0)
							{
								$('library-status').innerHTML = '';
								$('library-status').innerHTML = '<span class=\"failure\">Sorry, we were not able to pull information from the URL you provided. Our support team has been notified and we will resolve the issue shortly.<\/span>';
							}
							else if (arrColors[1] < 5 && arrLinks[1] < 5 && arrImages[1] < 5)
							{
								$('library-status').innerHTML = '';
								if (action != '')
								{
									$('library-status').innerHTML = '<span class=\"success\">Finished!</span> We were only able to find: <strong>' + arrColors[1] + '</strong> Colors, <strong>' + arrLinks[1] + '</strong> Links and <strong>' + arrImages[1] + '</strong> Images. <a target=\"_self\" href=\"javascript:void(0)\" onclick=\"' + action + '\">Refresh page to see your new images.</a>';
								}
								else
								{
									$('library-status').innerHTML = '<span class=\"success\">Finished!</span> We were only able to find: <strong>' + arrColors[1] + '</strong> Colors, <strong>' + arrLinks[1] + '</strong> Links and <strong>' + arrImages[1] + '</strong> Images. <a target=\"_parent\" href=\"/imn/admin_frame_omn.cfm?' + urlToken + '\">Return to your Newsletter.</a>';
								}

							}
							else
							{
								$('library-status').innerHTML = '';
								if (action != '')
								{
									$('library-status').innerHTML = '<span class=\"success\">Finished!</span> We were able to find: <strong>' + arrColors[1] + '</strong> Colors, <strong>' + arrLinks[1] + '</strong> Links and <strong>' + arrImages[1] + '</strong> Images. <a target=\"_self\" href=\"javascript:void(0)\" onclick=\"' + action + '\">Refresh page to see your new images.</a>';
								}
								else
								{
									$('library-status').innerHTML = '<span class=\"success\">Finished!</span> We were able to find: <strong>' + arrColors[1] + '</strong> Colors, <strong>' + arrLinks[1] + '</strong> Links and <strong>' + arrImages[1] + '</strong> Images. <a target=\"_parent\" href=\"/imn/admin_frame_omn.cfm?' + urlToken + '\">Return to your Newsletter.</a>';
								}
							}
						}
						else
						{
							$('library-status').innerHTML = '';
							$('library-status').innerHTML = '<span class=\"failure\">Sorry, we were not able to pull information from the URL you provided. Our support team has been notified and we will resolve the issue shortly.<\/span>';
						}
					}});
					pe.stop();
				}, 5);
			}});
		}
		else
		{
			alert('Please enter in a valid non-secure URL. e.g. http://www.mywebsite.com/');
		}
	}
	else
	{
		alert('Please enter in a valid non-secure sssURL. e.g. http://www.mywebsite.com/');
	}
}


function previewImageAsset(asset, width)
{
	var imageHTML = $(asset + "-link").innerHTML;
	var arrData = imageHTML.split(" ");
	var imgUrl = '';
	// get the url of the image
	for (var i=0; i < arrData.length; i++)
	{
		if(arrData[i].indexOf('src') > -1)
		{
			imgUrl = arrData[i].replace('"','').replace('>','').replace('src=','').replace('"','');
			
		}
	}
	document.update_banner.image_html.value = imgUrl;
	document.update_banner.current_image_width.value = width;
	changeBannerAttribute($("banner_display"),width);	
}


// Inactivate an asset from merchant library
function updateAsset(asset,action,urlToken)
{
	if (asset.indexOf("-") > -1)
	{
		var data = asset.split("-");
		var assetType = data[0];
		var assetID = data[1];
		var url = "update_asset.cfm";
		var params = urlToken + "&assettype=" + assetType + "&assetid=" + assetID + "&action=" + action;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data)
		{
			var response = data.responseText.trim();
			if(response.indexOf("successful") > -1)
			{
				if (action == 'remove')
				{
					if($(asset)) $(asset).remove();
					if($(asset + '-details')) $(asset + '-details').remove();
					if($(asset + '-edit')) $(asset + '-edit').remove();
				}
			}
		}});
	}
}

// Used for Email Upload feature. This function hides the input form, shows a "processing" icon then makes a call to add
// the email address to account
function saveEmailImport()
{

	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();

	$('processing-complete').hide();
	$('last-email').innerHTML = '';
	$('processing-email').show();
	$('pastehere').hide();
	document.email_import.email.value = findEmailAddresses(document.email_import.comments.value);

	var emails = document.email_import.email.value;
	var urlToken = document.email_import.urlToken.value;

	if (subs_uploaded != "")
	{
		if(emails.length > 0)
		{
			var arrEmails = emails.split(',');
			if(accountstate == "smblite-trial")
			{
				if(parseInt(subs_uploaded) > 250 && parseInt(subs_subscribed) > 100)
				{
					alert("You are attempting to upload, " + arrEmails.length + " emails, but you can only upload 250 email addresses in total during your free trial.");
					$('processing-email').hide();
					$('pastehere').show();
					return false;
				} 
				else if ((arrEmails.length + parseInt(subs_uploaded)) > 250)
				{
					alert("You are attempting to upload, " + arrEmails.length + " emails, but you can only upload 250 email addresses in total during your free trial.");
					$('processing-email').hide();
					$('pastehere').show();
					return false;
				}
			}			
		}
	}

	if (emails.length == 0)
	{
		alert("There were no email addresses found.");
		$('processing-email').hide();
		$('pastehere').show();
		return false;
	}
	else if (document.email_import.policy.checked == false)
	{
		alert("In order for you to add email addresses, you must confirm the source complies with our email policy.");
		$('pastehere').show();
		$('processing-email').hide();
		return false;
	}
	else
	{
		var lastEmail = document.email_import.email.value.split(', ');
		
		$('pastehere').hide();
		//$('validemails').hide();
		$('processing-email').show();
		//document.email_import.submit();
		var url = "import_emails_process.cfm?" + urlToken;
		var params = "email=" + emails + "&t=" + timestamp;
		var myAjax = new Ajax.Request(url, { method: 'post', parameters: params, onComplete: function(data)
		{
			var response = data.responseText.trim();
			$('processing-email').hide();
			document.email_import.email.value = "";
			document.email_import.comments.value = "";
			$('pastehere').show();
			//$('validemails').show();
			$('last-email').innerHTML = ('The last email we imported was <span style="font-weight:normal; text-decoration:underline;">' + lastEmail[lastEmail.length-1] + '</span>. <br /><br />');
			$('processing-complete').show();
			
		}});
	}
}

// Parse through text passed into function and return a comma delimeted string of emails
function findEmailAddresses(StrObj)
{
	var emailDel = ", ";
	var email = ""; // if no match, use this
	var emailsArray = StrObj.match(/([a-zA-Z0-9._\+-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
	
	$("pastehere-h3").setStyle({paddingBottom:'10'});
	$('loading-emails').show();
	if (emailsArray)
	{
		var uploadLimit = 5000;
		if (emailsArray.length < 5001)
		{
			uploadLimit = emailsArray.length;
		}
		else
		{
			alert('We have found more than 5,000 email addresses and will import the first 5,000. Please upload the rest of your list separately. Thank you.');
		}
		email = "";
		for (var i = 0; i < uploadLimit; i++)
		{
			if(email.indexOf(emailsArray[i]) == -1)
			{
				if (i != 0)
				{
					email += emailDel;
				}
				email += emailsArray[i];
			}
		}
	}
	$('loading-emails').hide();
	$("pastehere-h3").setStyle({paddingBottom:'25'});
	return email;
}

// Set the labels for email parser
function setEmailParseLabels (el1)
{
	// clear all current values
	$('emailcount').update('');
	$('firstemail').update('');
	$('lastemail').update('');
	
	// loop through valid emails and set the labels
	var arrData = el1.value.split(',');
	for (var i = 0; i < arrData.length; i++)
	{
		if(i == 0)
		{
			$('firstemail').update(arrData[i]);
		}
		if(i == (arrData.length - 1))
		{
			$('lastemail').update(arrData[i]);
		}
	}
	$('emailcount').update(arrData.length + ' found');
	if(el1.value.length == 0) { $('emailcount').update('0 found'); }
}


// When user clicks a channel, set it as the active channel and display any subcategories
function renderChannelList(el1,lvl)
{
	var urlToken = document.channel_content_edit.urlToken.value;
	var channel = document.channel_content_edit.content_id.value;
	var issue_id = document.channel_content_edit.issue_id.value
	var list1 = el1;
	var selectedCategory = "";
	var selectedCategoryName = "";
	var selectedCategoryParent = "";
	
	// only disable the top parent list
	if(el1.id == 'channel_list') {el1.disabled = true;}

	$('article-preview').update("<span id=\"loading-preview\"><img src=\"/eletra/omn/images/ajax-loader.gif\" /> Loading preview...</span>")
	
	// loop through the clicked list, set the selected item and output a preview of the channel
	for(var i = 0; i < list1.options.length; ++i)
	{
		if (list1.options[i].selected)
		{
			var arrData = list1.options[i].value.split('_');
			selectedCategory = arrData[3];
			selectedCategoryName = list1.options[i].text;
			selectedCategoryParent = arrData[4];

			document.channel_content_edit.currentCategoryId.value = arrData[3];

			// if the user has clicked "Other" don't auto-pull this article, pull the first child article of article
			if (el1.id == 'channel_list' && selectedCategoryName == "Other")
			{
				// if the user has clicked "Other" don't auto-pull this article, pull the first child article of article
			}
			else
			{

			// show preview of the article for the selected category
			var url = "/imn/omn/getArticle.cfm";
			var params = urlToken + "&accountName=smbparent&issueid=" + issue_id + "&categoryID=" + arrData[3];
			var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data){
					
				var response = data.responseText.trim();
				var strOutput = "";
				strOutput = strOutput + "<p class=\"close\"><a href=\"javascript:void(0)\" onclick=\"$('article-preview').hide();\">Close Preview</a></p>";
				strOutput = strOutput + "<p><strong>" + selectedCategoryName + " Preview</strong></p>";
				if(response.length > 0)
				{
					strOutput = strOutput + "<div class=\"article\">" + response + "</div>";
				}
				else
				{
					strOutput = strOutput + "<p>No article preview exists for the selected category</p>";
				}
				$('article-preview').update(strOutput);
				$('article-preview').show();
			}});

			}

		}
	}

	// if the top level is chosen, delete all subcategory lists
	if (lvl == 0)
	{
		var list2 = $$('select.select-channel-list');
		for(var i = 0; i < list2.length; i++)
		{
			if(list2[i].id != 'channel_list')
			{
				var el2 = 'span-'+list2[i].id;
				$(el2).remove();
			}
		}

		var list2 = $('channel_list');
		for(var i = 0; i < list2.options.length; ++i)
		{
			if(list2.options[i].selected)
			{
				$('parent-category-bc').update(list2.options[i].text);
			}
		}
		new Insertion.After($('channel_list'),"<span id=\"loading-category\"><img src=\"/eletra/omn/images/request_loading.gif\" /> Loading categories...</span>");
	}
	// if a sublevel category is chosen, delete all subcategory lists except for the current list and the top parent
	else
	{
		var list2 = $$('select.select-channel-list');
		for(var i = 0; i < list2.length; i++)
		{
			if(list2[i].id != 'channel_list' && list2[i].id != el1.id)
			{
				var el2 = 'span-'+list2[i].id;
				$(el2).remove();
			}
			else if(list2[i].id != 'channel_list')
			{
				var list3 = list2[i];
				for(var i = 0; i < list3.options.length; ++i)
				{
					if(list3.options[i].selected)
					{
						$('child-category-bc').update(list3.options[i].text);
					}
				}
			}
		}
	}

	// Only if user has selected a non general category, then find any subcategories
	if (selectedCategory != selectedCategoryParent)
	{
		var url = "/imn/omn/get_categories.cfm";
		var params = urlToken + "&parentid=" + selectedCategory + "&channel=" + channel + "&parentname=" + Url.encode(selectedCategoryName) + "&lvl=" + (parseInt(lvl)+1);
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data){
			var response = data.responseText.trim();
			new Insertion.After($(el1.id),response);

			var list2 = $('channel-list-' + (parseInt(lvl)+1));
			for(var i = 0; i < list2.options.length; ++i)
			{
				if(list2.options[i].selected)
				{
					$('child-category-bc').update(list2.options[i].text);
					var data = list2.options[i].value.split('_');

					// if it's the other category, then show the first sub-categories articles
					if(selectedCategoryName == 'Other')
					{

						//set the current category id to the first sub-category for "Other"
						document.channel_content_edit.currentCategoryId.value = data[3];

						// show preview of the article for the selected category
						var url = "/imn/omn/getArticle.cfm";
						var params = urlToken + "&accountName=smbparent&issueid=" + issue_id + "&categoryID=" + data[3];
						var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data){

							var response = data.responseText.trim();
							//alert(response);
							var strOutput = "";
							strOutput = strOutput + "<p class=\"close\"><a href=\"javascript:void(0)\" onclick=\"$('article-preview').hide();\">Close Preview</a></p>";
							strOutput = strOutput + "<p><strong>Preview</strong></p>";
							if(response.length > 0)
							{
								strOutput = strOutput + "<div class=\"article\">" + response + "</div>";
							}
							else
							{
								strOutput = strOutput + "<p>No article preview exists for the selected category</p>";
							}
							$('article-preview').update(strOutput);
							$('article-preview').show();
						}});

					}						

				}
			}

			el1.disabled = false;
			$('loading-category').remove();

		}});
	}
}

function previewArticle(account, issue, category, urlToken)
{
	// show preview of the article for the selected category
	var url = "/imn/omn/getArticle.cfm";
	var params = urlToken + "&accountName=" + account + "&issueid=" + issue + "&categoryID=" + category;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data){

		var response = data.responseText.trim();
		//alert(response);
		var strOutput = "";
		strOutput = strOutput + "<p class=\"close\"><a href=\"javascript:void(0)\" onclick=\"$('article-preview').hide();\">Close Preview</a></p>";
		strOutput = strOutput + "<p><strong>Preview</strong></p>";
		if(response.length > 0)
		{
			strOutput = strOutput + "<div class=\"article\">" + response + "</div>";
		}
		else
		{
			strOutput = strOutput + "<p>No article preview exists for the selected category</p>";
		}
		$('article-preview').update(strOutput);
		$('article-preview').show();
	}});
}

function removeDOM_id(element)
{
     var e = document.getElementById(element);
     if(!e)
          alert("There is no element with the id: "+element);
     e.removeChild(e.childNodes[0]);
}


// Utility for customers to refresh their categories and actively selected products based on their store data
function dataRefresh(accountName, merchantId, issueID, runType)
{

	var urlToken = "";
	if(typeof document.buildnl == 'object') urlToken = document.buildnl.urlToken.value;
	if(typeof document.utilities == 'object') urlToken = document.utilities.urlToken.value;

	if(runType == 'REFRESHACTIVEPRODUCTS')
	{
		var url = "/imn/omn/refresh_products.cfm";
		var params = urlToken;
		$('refresh-products').innerHTML = "<img src=\"/eletra/omn/images/ajax-loader.gif\" />&nbsp;refreshing products in newsletter...";
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(){
			$('refresh-products').innerHTML = "Refresh products in your newsletter";
			alert('Your store categories have been updated, please remove and re-add the products...');
		}});
	}
	else if (runType.indexOf('SMBLITEINIT') > -1)
	{
		$('rebuild-newsletter').innerHTML = '<span>...Rebuilding Newsletter...</span>';
		var data = runType.split(',');
		var url = "/eletra/omn/data_refresh.cfm";
		var params = "accountName=" + accountName + "&merchantId=" + merchantId + "&issueID=" + issueID + "&runType=INIT&dataUrl=" + Url.encode(data[1]);
		//$('refresh-categories').innerHTML = "<img src=\"/eletra/omn/images/ajax-loader.gif\" />&nbsp;...refreshing your categories...";
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(){
			parent.document.location = '/imn/admin_frame_omn.cfm?' + urlToken;
		}});
	}
	else
	{
		var url = "/eletra/omn/data_refresh.cfm";
		var params = "accountName=" + accountName + "&merchantId=" + merchantId + "&issueID=" + issueID + "&runType=" + runType;
		$('refresh-categories').innerHTML = "<img src=\"/eletra/omn/images/ajax-loader.gif\" />&nbsp;...refreshing your categories...";
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(){
			$('refresh-categories').innerHTML = "Refresh your Categories";
			alert('Your store categories have been updated...');
		}});
	}

}


function openAuthHelp()
{
	window.open('auth_help.cfm','auth_help','width=500,height=500,left=550,screenX=550');
}


// isValidCC
// Purpose: to validate a credit card number and type
function isValidCC(numStr, type)
{
	// remove non-numerics from number string
	var digits = "0123456789";
	var result = "";
	for (i = 0; i < numStr.length; i++)
	{
		x = numStr.charAt(i);
		if (digits.indexOf(x,0) != -1)
			result += x;
	}

	// validate result number using MOD10 algorithm
	half = result.length / 2;
	if (half < 6.5 || half > 8 || half == 7)
		return false;
	
	k = Math.floor(half);
	m = Math.ceil(half) - k;
	modNum = 0;
	for (i = 0; i < k; i++)
	{
		a = result.charAt(i*2+m) * 2;
		modNum += a > 9 ? Math.floor(a/10 + a%10) : a;
	}
	for (i = 0; i < k+m; i++) 
		modNum += result.charAt(i*2+1-m) * 1;

	var bOK = false;
	if (modNum % 10 == 0)
	{
		if (type.length > 0)
		{
			// validate number format based on type
			switch(type)
			{
				case "VISA":
					if (result.charAt(0) == '4' && (result.length == 13 || result.length == 16))
						bOK = true;
					break;
				case "MASTERCARD":
				case "MC":
					if (result.charAt(0) == '5' && result.length == 16)
					{
						second = result.charAt(1) * 1;
						if (second >= 1 && second <= 5)
							bOK = true;
					}
					break;
				case "AMEX":
					if (result.charAt(0) == '3' && result.length == 15)
					{
						second = result.charAt(1) * 1;
						if (second == 4 || second == 7)
							bOK = true;
					}
					break;
			}
		}
		else
			bOK = true;
	}
	return bOK;
}

// isValidZip
// Validates a zip code string based on the country
// Known formats are for US, CA, UK
// Other countries will always return true
function isValidZip(zip, country)
{
	var bOK = false;
	if(country == 'US')
	{
		if(/(^[0-9]{5}$)|(^[0-9]{5}-[0-9]{4}$)/.test(zip))
			bOK = true;
	}
	else if(country == 'CA')
	{
		if(/^[ABCEGHJKLMNPRSTVXY][0-9][A-Z] [0-9][A-Z][0-9]$/.test(zip))
			bOK = true;
	}
	else if(country == 'UK')
	{
		if(/^[A-Z]{1,2}[0-9][A-Z0-9]? [0-9][ABD-HJLNP-UW-Z]{2}$/.test(zip))
			bOK = true;
	}
	else
		bOK = true;

	return bOK;
}

// isValidPhone
// Validates a phone number string for US and CA
// Other countries always return true
function isValidPhone(phone, country)
{
	var bOK = false;
	if(country == 'US' || country == 'CA')
	{
		if(/^\(?[2-9][0-9]{2}\)?[- ]?[2-9][0-9]{2}[- ]?[0-9]{4}$/.test(phone))
			bOK = true;
	}
	else
		bOK = true;
	
	return bOK;
}

// Validates payment information when entering in credit card
function savePayment()
{
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();

	var urlToken = document.payment.urlToken.value;
	var merchantId = document.payment.merchantId.value;
	var nameoncard = document.payment.nameoncard.value;
	if(document.payment.modifyCard)
	{
		var modifyCard = document.payment.modifyCard.value;
	}else{
		var modifyCard = "F";
	}
	var first_name = document.payment.first_name.value;
	var last_name = document.payment.last_name.value;
	var address1 = document.payment.address1.value;
	var city = document.payment.city.value;
	var state = document.payment.state.value;
	var country = document.payment.country.value;
	var zip = document.payment.zip.value;
	var phone = document.payment.phone.value;
	
	if(first_name.length == 0)
	{
		alert('Please enter your First Name.');
		return false;
	}
	if(last_name.length == 0)
	{
		alert('Please enter your Last Name.');
		return false;
	}
	if(address1.length == 0)
	{
		alert('Please enter your Address.');
		return false;
	}
	if(city.length == 0)
	{
		alert('Please enter your City.');
		return false;
	}
	if(state.length == 0)
	{
		alert('Please enter your State/Region.');
		return false;
	}
	if(zip.length == 0)
	{
		alert('Please enter your Postal Code.');
		return false;
	}
	else if(!isValidZip(zip, country))
	{
		alert('Please enter a valid Postal Code.');
		return false;
	}
	if (phone.length > 0)
	{
		if(!isValidPhone(phone, country))
		{
			alert("Phone number must be valid if you choose to enter a phone number, which is optional."); return false; 
		}
	}
	

	if(nameoncard.length == 0)
	{
		alert('Please enter your name as it appears on your credit card.');
		return false;
	}
	if(modifyCard == 'T')
	{
		var ccnumber = document.payment.ccnumber.value;
		var cctype = document.payment.cctype.value;
		var ccmonth = document.payment.ccexpirationmonth.value;
		var ccyear = document.payment.ccexpirationyear.value;
		if(cctype.length == 0)
		{
			alert('Please select a Card Type.');
			return false;
		}
		if(ccnumber.length == 0)
		{
			alert('Please enter your Credit Card Number.');
			return false;
		}
		else if(!isValidCC(ccnumber, cctype))
		{
			alert('The Card Number is invalid.');
			return false;
		}
		if(ccmonth.length == 0 || ccyear.length == 0)
		{
			alert('Please select an Expiration Date.');
			return false;
		}
		else
		{
			var d = new Date();
			var curMonth = d.getMonth();
			var curYear = d.getFullYear();
			if(ccyear == curYear && ccmonth < curMonth)
			{
				alert('The Expiration Date is invalid.');
				return false;
			}
		}
	}

	document.payment.submit();
}


// Used to handle saving and validation of Contact Us form
function saveContact()
{
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();

	var selectedContactType = "";
	var cancelReason = "";
	var bsuccess = true;
	var list1 = document.contact_form.category;
	var urlToken = document.contact_form.urlToken.value;
	var merchantId = document.contact_form.merchantId.value;
	var phone = ""
	
	for(var i = 0; i < list1.options.length; ++i)
	{
		if (list1.options[i].selected)
		{
			selectedContactType = list1.options[i].value;
		}
	}
	if (selectedContactType == 'cancel')
	{
		var list2 = document.contact_form.reason;
		for(var i = 0; i < list2.options.length; ++i)
		{
			if (list2.options[i].selected)
			{
				cancelReason = list2.options[i].value;
			}
		}
		if(cancelReason.length == 0)
		{
			bsuccess = false;
			alert('Please select a Cancel Reason.');
			return false;
		}
		
		phone = document.contact_form.phone.value;
		if(phone.length < 8)
		{
			bsuccess = false;
			alert('Please enter in phone number.');
			return false;
		}
	}
	var comments = document.contact_form.comments.value;
	if(comments.length < 10)
	{
		bsuccess = false;
		alert('Please enter in comments (more than 10 characters).');
		return false;
	}
	if(bsuccess)
	{
		var url = "omn_contact_process.cfm";
		var params = urlToken + "&contact_type=" + selectedContactType + "&reason=" + cancelReason + "&phone=" + Url.encode(phone) + "&comment=" + Url.encode(comments) + "&t=" + timestamp;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: saveContactComplete} );
	}
}


// Function called after saveContact() has completed to refresh the page
function saveContactComplete(data)
{
	var urlToken = document.contact_form.urlToken.value;
	var merchantId = document.contact_form.merchantId.value;
	var response = data.responseText.toString().trim();
	if(response == 'success')
	{
		document.location = 'omn_contact.cfm?' + urlToken + '&msg=success';
	}
}


// NO LONGER USED
function changeContactCategory()
{
	var list1 = document.contact_form.category;
	for(var i = 0; i < list1.options.length; ++i)
	{
		if (list1.options[i].selected)
		{
			if(list1.options[i].value == 'cancel')
			{
				$('cancel_account_warning').show();
				$('cancel_phone').show();
				$('cancel_q0').show();
				$('cancel_q1').show();
			}
			else
			{
				$('cancel_account_warning').hide();
				$('cancel_phone').hide();
				$('cancel_q0').hide();
				$('cancel_q1').hide();
			}
		}
	}
}

function isValidPassword(strPassword)
{
	//var reg = new RegExp("^([A-Z]+(([a-z][A-Za-z]*[0-9~!@$%^&*:;'<>./\-|_?])|([0-9][A-Z0-9]*[a-z~!@$%^&*:;'<>./\-|_?])|([~!@$%^&*:;'<>./\-|_?][A-Z~!@$%^&*:;'<>./\-|_?]*[a-z0-9])))|([a-z]+(([A-Z][A-Za-z]*[0-9~!@$%^&*:;'<>./\-|_?])|([0-9][a-z0-9]*[A-Z~!@$%^&*:;'<>./\-|_?])|([~!@$%^&*:;'<>./\-|_?][a-z~!@$%^&*:;'<>./\-|_?]*[A-Z0-9])))");
	var regLetters = new RegExp("[A-Za-z]+");
	var regNumbers = new RegExp("[0-9]+");
	var regRepeatingLetters = new RegExp("(.)\\1{2}");
	
	var thisPass = strPassword.toString();	
	
	if(thisPass.length < 8)
	{				
		return false;
	}
	else if (regLetters.exec(thisPass) == null)
	{		
		return false;
	}
	else if (regNumbers.exec(thisPass) == null)
	{		
		return false;
	}
	else if (thisPass.indexOf('`') > -1)
	{		
		return false;
	}
	else if(regLetters.exec(thisPass.substr(0,1)) == null)
	{
		return false;
	}
	else if(regRepeatingLetters.exec(thisPass) != null)
	{
		return false;
	}
	
	return true;
	
	/*
	if(reg.exec(strPassword) == null)
	{
		//alert('not strong enough');
		return false;
	}
	else
	{
		//alert('good to go');
		return true;
	}
	*/
}


function validateChannelSelect(el)
{
	var other_channel = "";
	if(el == 'channel1')
	{
		var list1 = document.form_register.channel2;
		var list2 = document.form_register.channel1;
	}
	else
	{
		var list1 = document.form_register.channel1;
		var list2 = document.form_register.channel2;
	}
	for(var i = 0; i < list1.options.length; ++i)
	{
		if (list1.options[i].selected)
		{
			alreadyselected = list1.options[i].value;
		}
	}
	var list2index = 0;
	for(var i = 0; i < list2.options.length; ++i)
	{
		if (list2.options[i].selected)
		{
			nowselected = list2.options[i].value;
			if(alreadyselected == nowselected)
			{
				if(i == (list2.options.length-1))
				{
					list2index = i - 1;
				}
				else
				{
					list2index = i + 1;
				}
				alert('Please select different channels');
			}
		}
	}
	if(alreadyselected == nowselected)
	{
		for(var i = 0; i < list2.options.length; ++i)
		{
			if(i == list2index)
			{
				list2.options[i].selected = true;
			}
		}
		return false;
	}
	return true;
	
}

function displayRegisterMessage(msg)
{
	changeInnerHtml('status_message',msg);
	$('status_message').style.display = "block";
}

// Validate the registration form fields 
function validateRegisterStep1()
{
	// Clear status message
	$('status_message').style.display = "none";
	changeInnerHtml('status_message','');
	allerrmsg = "";

	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();

	changeInnerHtml('register_account','Processing...');
	var email_address = document.form_register.email_address.value;
	var marketingCode = document.form_register.marketingCode.value;
	var regGroupCode = document.form_register.regGroupCode.value;
	var storeName = document.form_register.storeName.value;
	var apiEntryPointUrl = document.form_register.apiEntryPointUrl.value;
	
	/* only if it's not a ebay merchant, then grab these fields */
	if(apiEntryPointUrl != "ebay")
	{
		var storeID = document.form_register.storeID.value;
		var store_url = document.form_register.store_url.value;
	}
	
	if (apiEntryPointUrl.length > 0)
	{
		validateRegisterStep2();
	}
	else if(storeID.length > 0)
	{
		var url = "/eletra/omn/getApiEntryUrl.cfm";
		var params = "storeUrl=" + storeID + "&storeName=" + storeName + "&email_address=" + email_address + "&marketingCode=" + marketingCode + "&regGroupCode=" + regGroupCode + "&t=" + timestamp;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: setApiEntryPointUrl} );
	}
	else if(store_url.length > 0)
	{
		if(store_url.indexOf('http://') > -1 && store_url.length > 8)
		{
			if(apiEntryPointUrl == "smblite")
			{
				validateRegisterStep2();
			}
			else
			{
				var url = "/eletra/omn/getApiEntryUrl.cfm";
				var params = "storeUrl=" + store_url + "&storeName=" + storeName + "&email_address=" + email_address + "&marketingCode=" + marketingCode + "&regGroupCode=" + regGroupCode + "&t=" + timestamp;
				var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: setApiEntryPointUrl} );
			}
		}
		else
		{
			displayRegisterMessage('Please enter in a valid ProStores URL.');
			changeInnerHtml('register_account','Create Account Now');
			return false;
		}
	}
	else
	{
		displayRegisterMessage('Please enter in a valid ProStores URL.');
		changeInnerHtml('register_account','Create Account Now');
		return false;
	}
}



// Validate the ProStores ApiEntryPointUrl value
function setApiEntryPointUrl(data)
{
	var storeID = document.form_register.storeID.value;
	var response = data.responseText.trim();
	if(response.indexOf('/servlet/') > -1 || response.indexOf('/rest/') > -1)
	{
		document.form_register.apiEntryPointUrl.value = response;
		validateRegisterStep2();
	}
	else if (storeID .indexOf('/getInfo') > -1)
	{
		document.form_register.apiEntryPointUrl.value = storeID;
		validateRegisterStep2();
	}
	else
	{
		displayRegisterMessage('We need your ProStores <strong>API Entry Point</strong> URL before creating your account. <a href="prostores_help.cfm" target="_blank">Need help finding this?</a>');
		changeInnerHtml('register_account','Create Account Now');
		$('store_id_list_item').style.display = "block";
		document.form_register.storeID.focus();
		$('storeID').className = "required_field";
		return false;
	}
}


// Validate the registration form fields 
function validateRegisterStep2()
{
	var email_address = document.form_register.email_address.value;
	var first_name = document.form_register.first_name.value;
	var last_name = document.form_register.last_name.value;
	var password = document.form_register.password.value;
	var passwordconfirm = document.form_register.passwordconfirm.value;

	var apiEntryPointUrl = document.form_register.apiEntryPointUrl.value;
	if(apiEntryPointUrl != "ebay")
	{
		var storeID = document.form_register.storeID.value;
	}
	var agreetoterms = document.form_register.termsAgree.checked;
	var address1 = document.form_register.address1.value;
	var city = document.form_register.city.value;
	var state = document.form_register.state.value;
	var zip = document.form_register.zip.value;
	var phone = document.form_register.phone.value;
	var storeName = document.form_register.storeName.value;


	var bSuccess = true;	
	allerrmsg = "";

	
	// if credit card form is on, then require all the credit card fields
	if (require_cc == true)
	{
		var ccname = document.form_register.ccname.value;
		var ccnumber = document.form_register.ccnumber.value;
		if(ccname.length == 0)
		{
			allerrmsg = allerrmsg + "Name on Card is required<br />";
			bSuccess = false;
		}
		if(ccnumber.length == 0)
		{
			allerrmsg = allerrmsg + "Card Number is required<br />";
			bSuccess = false;
		}
	}

	
	var list1 = document.form_register.channel1;
	var list2 = document.form_register.channel2;
	var list1val = "";
	var list2val = "";
	for(var i = 0; i < list1.options.length; ++i)
	{
		if (list1.options[i].selected)
		{
			list1val = list1.options[i].value;
		}
	}
	for(var i = 0; i < list2.options.length; ++i)
	{
		if (list2.options[i].selected)
		{
			list2val = list2.options[i].value;
		}
	}
	if(list1val == list2val)
	{
		allerrmsg = allerrmsg + "Please choose two different channels.<br />";
		bSuccess = false;
	}

	/* if this is a ebay registeration, require the ebay username and password */	
	if(apiEntryPointUrl == "ebay")
	{
		var ebayusername = document.form_register.ebayusername.value;
		//var ebaypassword = document.form_register.ebaypassword.value;
		if(ebayusername.length == 0)
		{
			allerrmsg = allerrmsg + "Your eBay username is required<br />";
			bSuccess = false;
		}
	}
	else
	{
		if(apiEntryPointUrl != "smblite")
		{
			if(storeID.length == 0 && apiEntryPointUrl.length == 0)
			{
				allerrmsg = allerrmsg + "Please enter a Api Entry Point<br />";
				bSuccess = false;
			}
		}
	}
	
	if(!agreetoterms)
	{
		allerrmsg = allerrmsg + "You must agree to the terms and conditions<br />";
		bSuccess = false;
	}

	if(!isValidEmail(email_address))
	{
		allerrmsg = allerrmsg + "Valid Email Address is required<br />";
		bSuccess = false;
	}

	if(first_name.length == 0)
	{
		allerrmsg = allerrmsg + "First Name is required<br />";
		bSuccess = false;
	}
	if(last_name.length == 0)
	{
		allerrmsg = allerrmsg + "Last Name is required<br />";
		bSuccess = false;
	}
	if(address1.length == 0)
	{
		allerrmsg = allerrmsg + "Address 1 is required<br />";
		bSuccess = false;
	}
	if(city.length == 0)
	{
		allerrmsg = allerrmsg + "City is required<br />";
		bSuccess = false;
	}
	if(state.length == 0)
	{
		allerrmsg = allerrmsg + "State is required<br />";
		bSuccess = false;
	}
	if(zip.length < 4)
	{
		allerrmsg = allerrmsg + "Zip is required<br />";
		bSuccess = false;
	}
	if(password.length == 0)
	{
		allerrmsg = allerrmsg + "Password is required<br />";
		bSuccess = false;
	}
	if(password != passwordconfirm)
	{
		allerrmsg = allerrmsg + "Please enter in matching passwords<br />";
		bSuccess = false;
	}
	if(password.indexOf("#") > -1)
	{
		allerrmsg = allerrmsg + "The symbol '#' is not allowed in your password<br />";
		bSuccess = false;
	}
	if(password.indexOf(",") > -1)
	{
		allerrmsg = allerrmsg + "The symbol ',' is not allowed in your password<br />";
		bSuccess = false;
	}
	
	
	if(storeName.length > 149)
	{
		allerrmsg = allerrmsg + "Please enter a store name less than 150 characters long<br />";
		bSuccess = false;
	}
	
	if(!isValidPassword(password))
	{
		allerrmsg = allerrmsg + "Please choose a password that has a combination of at least 8 letters and numbers. The password also can not start with a number or contain three or more consecutive characters.<br />";
		bSuccess = false;
	}
	
	if(phone.length < 9)
	{
		allerrmsg = allerrmsg + "Please enter a valid Phone number (optional)<br />";
		bSuccess = false;
	}


	// this is a PowerReviews registration, validate the review path
	if(document.form_register.review_path)
	{
		var review_path = document.form_register.review_path.value;
		if(review_path.length == 0)
		{
			allerrmsg = allerrmsg + "Please enter the full URL where customers will write their reviews.<br />";
			$('review_path_list_item').show();
			bSuccess = false;
		}
		else
		{
			var url = "/eletra/omn/verifyUrlContent.cfm";
			var review_path_list_item = document.form_register.review_path_list_item.value;
			if (review_path_list_item.trim().length > 0)
			{
				review_path = review_path_list_item;
			}
			
			var params = "reviewUrl=" + Url.encode(review_path) + "&verifyString=appLaunch.js";
			var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data){
				var response = data.responseText.trim();
				if(response != 'valid')
				{
					allerrmsg = allerrmsg + "The Reviews path does not appear to be valid, please enter the full URL.<br />";
					$('review_path_list_item').show();
					bSuccess = false;
				}
				
				if(bSuccess)
				{
					document.form_register.submit();		
				}
				else
				{
					allerrmsg = allerrmsg;
					displayRegisterMessage(allerrmsg);
					changeInnerHtml('register_account','Create Account Now');
					return false;
				}
			}});

		}
	}
	else
	{
		if(bSuccess)
		{
			document.form_register.submit();		
		}
		else
		{
			allerrmsg = allerrmsg;
			displayRegisterMessage(allerrmsg);
			changeInnerHtml('register_account','Create Account Now');
			return false;
		}
	}


}


// Validate the login form
function validateLogin()
{
	var email = document.login_form.emailAddress.value;
	var review_path = document.login_form.review_path.value;
	var mode = document.login_form.mode.value;
	var pin = document.login_form.pin.value;
	if(!isValidEmail(email.trim()))
	{
		alert("Please enter a valid email address");
		return false;
	}
	if(pin.length == 0)
	{
		alert("Please enter a password");
		return false;
	}
	if (mode == 'reviews' || review_path.trim().length > 0)
	{
		var url = "/eletra/omn/update_chicklets.cfm";
		var params = "chicklet=Reviews&action=activate&review_path=" + Url.encode(review_path) + "&email=" + Url.encode(email);
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data)
		{
			var response = data.responseText.trim();
			document.login_form.emailAddress.value = document.login_form.emailAddress.value.trim();
			document.login_form.submit();
		}});
	}else{
		document.login_form.emailAddress.value = document.login_form.emailAddress.value.trim();
		document.login_form.submit();
	}
}

// Redirect user to a session expired page
function sessionExpired()
{	
	parent.document.location="/login/?session";
}

// NO LONGER USED...
function saveInitialSettings()
{

	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();

	var settings_from = document.save_initial_settings.settings_from.value;
	var settings_replyto = document.save_initial_settings.settings_replyto.value;
	var settings_subject = document.save_initial_settings.settings_subject.value;
	var settings_address = document.save_initial_settings.settings_address.value;
	var settings_city = document.save_initial_settings.settings_city.value;
	var settings_state = document.save_initial_settings.settings_state.value;
	var settings_zip = document.save_initial_settings.settings_zip.value;
	var settings_phone = document.save_initial_settings.settings_phone.value;
	var urlToken = document.save_initial_settings.urlToken.value;

	var channel_one = "";
	var list0 = document.getElementById('channel_one_select');
	for(var i = 0; i < list0.options.length; ++i)
	{
		if (list0.options[i].selected)
		{
			channel_one = list0.options[i].value.replace("channel_","");
		}
	}

	var channel_two = "";
	var list1 = document.getElementById('channel_two_select');
	for(var i = 0; i < list1.options.length; ++i)
	{
		if (list1.options[i].selected)
		{
			channel_two = list1.options[i].value.replace("channel_","");
		}
	}
	
	// Validate from email address
	if (settings_from.length > 0)
	{
		if(!isValidEmail(settings_from))
		{
			alert("Please enter a valid From email address");
			return false;
		}
	}
	else
	{
		alert("Please enter a valid From email address");
		return false;
	}

	// Validate from reply-to address
	if (settings_replyto.length > 0)
	{
		if(!isValidEmail(settings_replyto))
		{
			alert("Please enter a valid Reply-To email address");
			return false;
		}
	}
	else
	{
		alert("Please enter a valid Reply-To email address");
		return false;
	}
	
	// Validate from subject
	if (settings_subject.length == 0) { alert("Please enter a Subject line"); return false; }

	// Validate from address
	if (settings_address.length == 0) { alert("Please enter an Address"); return false; }

	// Validate from city
	if (settings_city.length == 0) { alert("Please enter a City"); return false; }

	// Validate from state
	if (settings_state.length == 0) { alert("Please enter a State"); return false; }

	// Validate from zip
	if (settings_zip.length == 0) { alert("Please enter a Zip"); return false; }
	
	var url = "omn/update_initial_settings.cfm";
	var params = urlToken + "&from_email=" + settings_from + "&from_email_default=" + settings_from + "&replyto_email=" + settings_replyto + "&replyto_email_default=" + settings_replyto + "&subject=" + settings_subject + "&subject_default=" + settings_subject + "&settings_address=" + settings_address + "&settings_state=" + settings_state + "&settings_zip=" + settings_zip + "&settings_city=" + settings_city + "&settings_phone=" + settings_phone + "&channel_one=" + channel_one + "&channel_two=" + channel_two + "&t=" + timestamp;
	//alert(url + "?" + params);
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: refreshPage} );
}

// Validates and posts Account settings form
function saveSettings()
{

	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();

	var settings_og_emailaddress = document.account_settings.og_emailaddress.value;
	var settings_emailaddress = document.account_settings.emailaddress.value;
	var settings_firstname = document.account_settings.firstname.value;
	var settings_lastname = document.account_settings.lastname.value;
	var settings_company = document.account_settings.company.value;
	var settings_address = document.account_settings.address.value;
	var settings_address2 = document.account_settings.address2.value;
	var settings_city = document.account_settings.city.value;
	var settings_state = document.account_settings.state.value;
	var settings_zip = document.account_settings.zip.value;
	var settings_country = document.account_settings.country.value;
	var settings_phone = document.account_settings.phone.value;
	var settings_newpassword = document.account_settings.password.value;;
	var settings_newpasswordconfirm = document.account_settings.password_confirm.value;
	var settings_publisher = document.account_settings.publisher.value;
	var settings_storeurl = document.account_settings.storeurl.value;

	var list0 = document.getElementById('currency');
	for(var i = 0; i < list0.options.length; ++i)
	{
		if (list0.options[i].selected)
		{
			settings_currency = list0.options[i].value;
		}
	}
	
	var urlToken = document.account_settings.urlToken.value;
	
	if (settings_newpassword.length > 0 || settings_newpasswordconfirm.length > 0)
	{
		if(settings_newpassword.length != settings_newpasswordconfirm.length)
		{
			alert("Please enter matching passwords."); return false;
		}
		else if (!isValidPassword(settings_newpassword))
		{
			alert("Please enter a password of at least 8 letters and numbers."); return false;
		}
	}
	
	// Validate email address
	if (!isValidEmail(settings_emailaddress)) { alert("Please enter in a valid email address."); return false; }

	// Validate settings_publisher
	if (settings_publisher.length == 0) { alert("Please enter your Publisher Name. This name will appear in the footer of your email."); return false; }
	
	// Validate first name
	if (settings_firstname.length == 0) { alert("Please enter your First Name"); return false; }

	// Validate last name
	if (settings_lastname.length == 0) { alert("Please enter your Last Name"); return false; }
	
	// Validate company
	if (settings_company.length == 0) { alert("Please enter your Business Name"); return false; }

	// Validate form address
	if (settings_address.length == 0) { alert("Please enter an Address"); return false; }

	// Validate form city
	if (settings_city.length == 0) { alert("Please enter a City"); return false; }

	// Validate form state
	if (settings_state.length == 0) { alert("Please enter a State"); return false; }

	// Validate form storeurl
	if (settings_storeurl.length == 0) { alert("Please enter a URL"); return false; }
	else if((settings_storeurl.indexOf('http://') == -1) ||
		(settings_storeurl.length < 12))
	{
		alert("Please enter a valid URL");
		return false;
	}

	// Validate from zip
	if (settings_zip.length == 0) { alert("Please enter a Zip"); return false; }
	else if (!isValidZip(settings_zip, settings_country))
	{
		alert("Please enter a valid Zip");
		return false;
	}
	
	// Validate phone
	if (settings_phone.length > 0)
	{
		if(!isValidPhone(settings_phone, settings_country))
		{
			alert("Phone number must be valid if you choose to enter a phone number, which is optional."); return false; 
		}
	}
	
	var url = "update_initial_settings.cfm";
	var params = urlToken + "&settings_firstname=" + settings_firstname + "&settings_og_emailaddress=" + settings_og_emailaddress + "&settings_emailaddress=" + settings_emailaddress + "&settings_lastname=" + settings_lastname + "&settings_company=" + Url.encode(settings_company) + "&settings_address=" + Url.encode(settings_address) + "&settings_address2=" + Url.encode(settings_address2) + "&settings_state=" + settings_state + "&settings_zip=" + settings_zip + "&settings_city=" + Url.encode(settings_city) + "&settings_country=" + Url.encode(settings_country) + "&settings_phone=" + settings_phone  + "&settings_newpassword=" + settings_newpassword  + "&settings_newpasswordconfirm=" + settings_newpasswordconfirm + "&settings_publisher=" + Url.encode(settings_publisher) + "&settings_currency=" + Url.encode(settings_currency) + "&settings_storeurl=" + Url.encode(settings_storeurl) + "&t=" + timestamp;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: validateSettingsSave} );
}


function validateSettingsSave(data)
{

	var urlToken = document.account_settings.urlToken.value;
	var response = data.responseText.trim();
	document.location = 'omn_settings_edit.cfm?' + urlToken + '&msg=' + response;	
}

// Cancels SIAC account with external billing cancellation
function cancelAcct()
{
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();

	var cancelReason = "";
	var urlToken = document.account_cancel_form.urlToken.value;
	var merchantId = document.account_cancel_form.merchantId.value;
	var cancelTiming = document.account_cancel_form.timing.value;
	if(cancelTiming.length == 0)
	{
		alert('Please select an option for cancelling your account.');
		return false;
	}
	
	var list1 = document.account_cancel_form.reason;
	for(var i = 0; i < list1.options.length; ++i)
	{
		if (list1.options[i].selected)
		{
			cancelReason = list1.options[i].value;
		}
	}
	if(cancelReason.length == 0)
	{
		alert('Please select a Cancel Reason.');
		return false;
	}
	var phone = document.account_cancel_form.phone.value;
	if(phone.length == 0)
	{
		alert('Please enter in phone number.');
		return false;
	}
	else if(!isValidPhone(phone, 'US'))
	{
		alert('Please enter valid phone number.');
		return false;
	}
	var comments = document.account_cancel_form.comments.value;
	if(comments.length > 0 && comments.length < 10)
	{
		alert('Please enter in comments (more than 10 characters).');
		return false;
	}

	var confirmStr = 'Are you sure you wish to cancel your account?  ';
	if(cancelTiming == 'now')
	{
		confirmStr = confirmStr + 'You will be logged out of the system.';
	}
	if (confirm(confirmStr))
	{
		var url = "cancel_account.cfm";
		var params = urlToken + "&merchant_id=" + merchantId + "&timing=" + cancelTiming + "&reason=" + Url.encode(cancelReason) + "&phone=" + phone + "&comments=" + Url.encode(comments) + "&t=" + timestamp;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: completeCancel} );
	}
	return false;
}

function completeCancel(data)
{
	var urlToken = document.account_cancel_form.urlToken.value;
	var timing = document.account_cancel_form.timing.value;
	var response = data.responseText.trim();
	if (response == 'success')
	{
		if(timing == 'now')
		{
			parent.document.location = '/imn/admin_logout.cfm?' + urlToken;
		}
		else
		{
			document.location = 'omn_settings_edit.cfm?' + urlToken + '&cancelmsg=success&#cancel_anch';
		}
	}
	else
	{
		document.location = 'omn_settings_edit.cfm?' + urlToken + '&cancelmsg=' + response + '&#cancel_anch';
	}
}


// Searches for products by product name or product sku. 
// This function is called from the Seach button on product search screen
function searchProducts()
{
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	
	var urlToken = document.content_edit.urlToken.value;
	var product_search_box = "";
	var product_search_type = "";
	var list = document.getElementById('product_search_type');
	for(var i = 0; i < list.options.length; ++i)
	{
		if (list.options[i].selected)
		{
			product_search_type = list.options[i].value;
		}
	}
	product_search_box = document.content_edit.product_search_box.value;
	
	if (product_search_box.length == 0) { alert('Please enter a search term'); return false;}
	
	$('search_product').style.fontWeight = "bold";
	changeInnerHtml('search_product','Searching Now...');
	
	var url = "search_products.cfm";
	var params = urlToken + "&product_search_box=" + product_search_box + "&product_search_type=" + product_search_type + "&t=" + timestamp;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: refreshSearchResults} );
}


// Populates the product search results table and is called from searchProducts()
function refreshSearchResults(data)
{
	var response = data.responseText;
	
	//stop processing if session has expired, and simply display the resulting html
	if(response.indexOf("XXIMNERRORXX") >= 0) { sessionExpired(); return; }
	
	changeInnerHtml('product_search_results_table',response.trim());
	$('search_product').style.fontWeight = "normal";
	changeInnerHtml('search_product','Search');
}


// Retreives information about product. This function is called from the output of products after a product search
function getProductDetails(productId)
{
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	
	var urlToken = document.content_edit.urlToken.value;
	var content_type = "products";
	var content_id = productId;
	var content_action = "get";
	var url = "get_content.cfm";
	var params = urlToken + "&content_type=" + content_type + "&content_id=" + content_id + "&content_action=" + content_action + "&t=" + timestamp;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: addProductDetails} );
}


// Add products to database and is called from getProductDetails()
function addProductDetails(data)
{
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	
	var response = data.responseText;
	
	//stop processing if session has expired, and simply display the resulting html
	if(response.indexOf("XXIMNERRORXX") >= 0) { sessionExpired(); return; }	
	
	var arrData = response.trim().split("___");
	var urlToken = document.content_edit.urlToken.value;
	var content_cats = document.content_edit.content_cats.value;
	var content_issue = document.content_edit.content_issue.value;
	var content_type = arrData[2];
	var content_id = arrData[1];
	var content_action = "add";
	var content_title = arrData[3];
	var content_details = arrData[4];
	var content_price = arrData[5];
	var content_url = arrData[6];
	var content_photo = arrData[7];

	var url = "update_content.cfm?" + urlToken + "&content_type=" + content_type;
	var params = "productSearchAdd=T" + "&content_id=" + content_id + "&content_action=" + content_action + "&content_title=" + Url.encode(content_title) + "&content_details=" + Url.encode(content_details) + "&content_cats=" + content_cats + "&content_issue=" + content_issue + "&content_price=" + content_price + "&content_url=" + Url.encode(content_url) + "&content_photo=" + Url.encode(content_photo) + "&t=" + timestamp;
	var myAjax = new Ajax.Request(url, { method: 'post', parameters: params, onComplete: refreshFullPage} );
}

// Toggles tabs
function toggleTab(thelink,thecontent,id,number) {

	//make sure correct product fields are displayed/hidden
	if(thecontent == "create_custom_product")
	{
		displayObj('content_url_list_item');
		displayObj('content_price_list_item');
		hideObj('content_url_list_view');
		hideObj('content_price_list_view');
		document.content_edit.content_type.value = "customproducts";
		$('edit_article_actions').show();	
	}
	else
	{
		document.content_edit.content_type.value = "products";
		$('edit_article_actions').hide();
	}

	var tabbedcontenttabs = (id) ? $('tabbedcontenttabs-' + id) : $('tabbedcontenttabs' + number);
	var tabbedcontent = (id) ? $('tabbedcontent-' + id) : $('tabbedcontent' + number);
	thetablinks = tabbedcontenttabs.getElementsByTagName('li');
	thetabcontents = getElementsByClass('tabbedcontentholder',tabbedcontent,'div');
	for (i=0;i<thetablinks.length;i++) {
		thetablinks[i].className = '';
		thetablinks[i].blur();
		thetabcontents[i].style.display = 'none';
	}
	thelink.parentNode.className = 'on';
	$('tabbedcontent-'+thecontent).style.display = 'block';

	if (typeof FCKeditorAPI != 'undefined')
	{
		var content_fckeditor = FCKeditorAPI.GetInstance('content_fckeditor') ;
		if(typeof content_fckeditor != 'undefined')
		{
			content_fckeditor.MakeEditable();
		}
	}
}


function buildFontTag()
{
	var font_html = "";
	var font_size = "";
	var font_family = "";
	var list = document.getElementById("template_font_size");
	for(var i = 0; i < list.options.length; ++i)
	{
		if (list.options[i].selected)
		{
			font_size = list.options[i].value;
		}
	}
	var list = document.getElementById("template_font_style");
	for(var i = 0; i < list.options.length; ++i)
	{
		if (list.options[i].selected)
		{
			font_family = list.options[i].value;
		}
	}
	var font_color = document.update_banner.font_color.value;
	var banner_title = document.update_banner.banner_title.value;

	font_html = '<font id=\"font_text\" size=\"' + font_size + '\" face=\"' + font_family + '\" color=\"' + font_color + '\">' + banner_title + '</font>';

	return font_html;
}

// Changes banner font size, family and position from the customize banner screen
function changeBannerAttribute(el, width)
{
	if (el.id == "template_font_size")
	{
		var list = document.getElementById(el.id);
		for(var i = 0; i < list.options.length; ++i)
		{
			if (list.options[i].selected)
			{
				changeInnerHtml('font_details',buildFontTag());
				document.update_banner.font_size.value = list.options[i].value;
			}
		}
	}
	else if (el.id == "template_font_style")
	{
		var list = document.getElementById(el.id);
		for(var i = 0; i < list.options.length; ++i)
		{
			if (list.options[i].selected)
			{
				changeInnerHtml('font_details',buildFontTag());
				//var el = document.getElementById("font_text");
				//el.style.fontFamily = list.options[i].value;
				document.update_banner.font_family.value = list.options[i].value;
			}
		}
	}
	else if (el.id == "template_font_position")
	{
		var list = document.getElementById(el.id);
		for(var i = 0; i < list.options.length; ++i)
		{
			if (list.options[i].selected)
			{
				var el = document.getElementById("font_text");
				el.style.textAlign = list.options[i].value;
				document.update_banner.font_position.value = list.options[i].value;
			}
		}
	}
	else if (el.id == "template_logo_position")
	{
		var list = document.getElementById(el.id);
		for(var i = 0; i < list.options.length; ++i)
		{
			if (list.options[i].selected)
			{
				var el = document.getElementById("template_logo");
				el.style.textAlign = list.options[i].value;
				document.update_banner.font_position.value = list.options[i].value;
			}
		}
	}
	else if (el.id == "banner_position")
	{
		var list = document.getElementById(el.id);
		for(var i = 0; i < list.options.length; ++i)
		{
			if (list.options[i].selected)
			{
				$('template_design_cell').style.textAlign = list.options[i].value;
			}
		}
	}
	else if (el.id == "banner_display")
	{
		var list = document.getElementById(el.id);
		for(var i = 0; i < list.options.length; ++i)
		{
			if (list.options[i].selected)
			{

				var font_color = document.update_banner.font_color.value;
				var font_family = document.update_banner.font_family.value;
				var banner_title = document.update_banner.banner_title.value;
				var imageHTML = '';
				if(typeof(width) != 'undefined')
				{
					if(width > 650) width = 650;
					imageHTML = '<img width="' + width + '" src="' + document.update_banner.image_html.value + '">';
				}
				else
				{
					var currWidth = document.update_banner.current_image_width.value;
					if(currWidth != '')
					{
						if(currWidth > 650) currWidth = 650;
						imageHTML = '<img width="' + currWidth + '" src="' + document.update_banner.image_html.value + '">';
					}
					else
					{
						imageHTML = '<img src="' + document.update_banner.image_html.value + '">';
					}
				}
				
				var font_size = "";
				
				var list_size = document.getElementById("template_font_size");
				for(var k = 0; k < list_size.options.length; ++k)
				{
					if (list_size.options[k].selected)
					{
						font_size = list_size.options[k].value;
					}
				}

				if(list.options[i].value == "title")
				{
					$('template_design_cell').innerHTML = "<span id=\"font_details\">" + buildFontTag() + "</span>";
				}
				else if(list.options[i].value == "logo")
				{
					$('template_design_cell').innerHTML = imageHTML;
				}
				else if(list.options[i].value == "titleLogo")
				{
					var outputHtml = "";
					outputHtml += "<span id=\"font_details\">" + buildFontTag() + "</span>&nbsp;&nbsp;&nbsp;";
					outputHtml += imageHTML;
					$('template_design_cell').innerHTML = outputHtml;
				}
				else if(list.options[i].value == "logoTitle")
				{
					var outputHtml = "";
					outputHtml += imageHTML + "&nbsp;&nbsp;&nbsp;";
					outputHtml += "<span id=\"font_details\">" + buildFontTag() + "</span>";
					$('template_design_cell').innerHTML = outputHtml;
				}


				// Examine all the existing font template properties and make sure to keep them when display type is changed
				var list = document.getElementById("template_font_size");
				if(list)
				{
					for(var i = 0; i < list.options.length; ++i)
					{
						if (list.options[i].selected)
						{
							var el = document.getElementById("font_text");
							if(el)
							{
								//el.style.fontSize = list.options[i].value;
								//document.update_banner.font_size.value = list.options[i].value;
							}
						}
					}
				}

				var list = document.getElementById("template_font_style");
				if(list)
				{
					for(var i = 0; i < list.options.length; ++i)
					{
						if (list.options[i].selected)
						{
							var el = document.getElementById("font_text");
							if(el)
							{
								el.style.fontFamily = list.options[i].value;
								document.update_banner.font_family.value = list.options[i].value;
							}
						}
					}
				}

				var list = document.getElementById("banner_position");
				if(list)
				{
					for(var i = 0; i < list.options.length; ++i)
					{
						if (list.options[i].selected)
						{
							$('template_design_cell').style.textAlign = list.options[i].value;
						}
					}
				}
				
				$('template_design_cell').style.font_color = document.update_banner.font_color.value;


			}
		}
	}
	
}


// Updates title of banner as user is typing
function updateBannerTitle() 
{
	$('font_text').innerHTML = document.update_banner.banner_title.value;
}

// Updates the color of the background color and font color for custom banner
function updateColor(el)
{
	if(el == 'color')
	{
		$('template_design_cell').style.background = document.update_banner.color.value;
		$('template_design').style.background = document.update_banner.color.value;
	}
	else if(el == 'font_color')
	{
		$('font_details').style.color = document.update_banner.font_color.value;
	}
	else if(el == 'tab_color')
	{
		document.custom_colors.tab_color.value = $('tab_color').value;
	}
	else if(el == 'link_color')
	{
		document.custom_colors.link_color.value = $('link_color').value;
	}
	else if(el == 'text_color')
	{
		document.custom_colors.text_color.value = $('text_color').value;
	}
	else if(el == 'title_color')
	{
		document.custom_colors.title_color.value = $('title_color').value;
	}
}


// Validate and save new banner upload
function saveBannerUpload()
{
	document.update_banner.action_type.value = 'new_banner';
	if(document.update_banner.newfile.value == '')
	{
		alert('Please select a new file to upload');
	}
	else
	{
		document.update_banner.submit();
	}
}

// Validate and save custom template header
function saveBannerTemplate()
{
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	
	var urlToken = document.content_edit.urlToken.value;
	var banner_title = document.update_banner.banner_title.value;
	var bgcolor = document.update_banner.color.value;
	var font_color = document.update_banner.font_color.value;
	var font_size = document.update_banner.font_size.value;
	var font_family = document.update_banner.font_family.value;
	var font_position = document.update_banner.font_position.value;
	var content_id = document.update_banner.content_id.value;
	var content_cats = document.update_banner.content_cats.value;
	var content_type = "banner";
	var content_action = "edit";
	bgcolor = bgcolor.replace("#","");
	font_color = font_color.replace("#","");
	
	if (banner_title.length == 0) { alert('Please enter a title for your banner'); return false; }
	
	changeInnerHtml('save_banner','Saving...');
	
	var url = "omn/update_content.cfm";
	var params = urlToken + "&banner_title=" + banner_title + "&banner_bgcolor=" + bgcolor + "&banner_font_color=" + font_color + "&banner_font_size=" + font_size+ "&banner_font_family=" + font_family + "&banner_font_position=" + font_position + "&content_id=" + content_id + "&content_cats=" + content_cats + "&content_type=banner&content_action=edit&t=" + timestamp;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: refreshPage} );
}

function insertContentChannel(newChannel, entityOverride, makeDefault, urlToken, refreshWhenDone)
{
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	var url = "update_content_channel.cfm";
	var params = urlToken + "&cat_override_entity=" + entityOverride + "&new_channel_id=" + newChannel + "&makeDefault=" + makeDefault + "&createNew=TRUE&t=" + timestamp;
	
	if(refreshWhenDone == "TRUE")
		var myAjax = new Ajax.Request(url, { asynchronous:false, method: 'get', parameters: params, onComplete: function(data){
			refreshFullPage(data);
		}} );
	else
		var myAjax = new Ajax.Request(url, { asynchronous:false, method: 'get', parameters: params, onComplete: function(data){
		}} );
}

function addFeed(familyID, feedVariable, feedProviderID, urlToken, refreshWhenDone)
{
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	var url = "addFeed.cfm";
	var params = urlToken + "&familyID=" + familyID + "&feedVariable=" + feedVariable + "&feedProviderID=" + feedProviderID + "&makeDefault=TRUE&t=" + timestamp;

	if(refreshWhenDone == "TRUE")
		var myAjax = new Ajax.Request(url, { asynchronous:false, method: 'get', parameters: params, onComplete: function(data){
			refreshFullPage(data);
		}} );
	else
		var myAjax = new Ajax.Request(url, { asynchronous:false, method: 'get', parameters: params, onComplete: function(data){
		}} );
}
// Prepare the add custom article or add custom product screens
// This populates the forms with necessary data
function prepareForms (el)
{

	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	
	var productSeathResultsTable = $('product_search_results_table');
	if(productSeathResultsTable)
	{
		changeInnerHtml('product_search_results_table','');
	}

	var data = el.split("___");
	
	/*		
	// Clear out fckeditor form, form will be populated in later function
	if (typeof FCKeditorAPI != 'undefined')
	{
		var content_fckeditor = FCKeditorAPI.GetInstance('content_fckeditor') ;
		if(typeof content_fckeditor != 'undefined')
		{
			content_fckeditor.SetHTML("");
		}
	}
	*/

	if(document.content_edit)
	{
		var urlToken = document.content_edit.urlToken.value;
	}
	if(document.channel_content_edit)
	{
		var urlToken = document.channel_content_edit.urlToken.value;
	}
		
	if(data[2] != "change")
	{
		if($('edit_article_actions'))
		{
			$('edit_article_actions').show();
		}
	}

	if(data[2] == "add")
	{
		var content_type = data[0];
		var content_id = data[1];
		var content_action = data[2];
		var content_cats = data[3];
		var urlToken = data[4];
		document.content_edit.content_type.value = content_type;
		document.content_edit.content_id.value = content_id;
		document.content_edit.content_action.value = content_action;
		document.content_edit.content_cats.value = content_cats;	
		document.content_edit.content_title.value = "";
		//document.content_edit.content_details.value = "";
		document.content_edit.content_url.value = "";
		changeInnerHtml('content_url_span','');
		document.content_edit.content_price.value = "";	
		document.content_edit.content_photo.value = "";
		var url = "get_content.cfm";
		var params = urlToken + "&content_type=" + content_type + "&content_id=" + content_id + "&content_action=" + content_action + "&content_cats=" + content_cats + "&t=" + timestamp;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: populateContentForm} );

	}	
	else if(data[2] == "edit")
	{
		var content_type = data[0];
		var content_id = data[1];
		var content_action = data[2];
		if (content_type == 'banner')
		{
			var content_cats = data[3];
			var urlToken = data[4];
			document.update_banner.content_cats.value = content_cats;
			document.update_banner.urlToken.value = urlToken;
			document.update_banner.content_id.value = content_id;
		}
		else
		{
			//var urlToken = data[3];
		}

		document.content_edit.content_type.value = content_type;
		document.content_edit.content_id.value = content_id;
		document.content_edit.content_action.value = content_action;
		document.content_edit.content_title.value = "";
		//document.content_edit.content_details.value = "";
		var url = "get_content.cfm";
		var params = urlToken + "&content_type=" + content_type + "&content_id=" + content_id + "&content_action=" + content_action + "&t=" + timestamp;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: populateContentForm} );

	}	
	else if(data[2] == "remove")
	{
		var content_type = data[0];
		var content_id = data[1];
		var content_action = data[2];
		//var urlToken = data[3];
		document.content_edit.content_type.value = content_type;
		document.content_edit.content_id.value = content_id;
		document.content_edit.content_action.value = content_action;
		document.content_edit.content_title.value = "";
		//document.content_edit.content_details.value = "";
		var url = "get_content.cfm";
		var params = urlToken + "&content_type=" + content_type + "&content_id=" + content_id + "&content_action=" + content_action + "&t=" + timestamp;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: populateContentForm} );
	}
	else if(data[2] == "restore")
	{
		var content_type = data[0];
		var content_id = data[1];
		var content_action = data[2];
		//var urlToken = data[3];
		document.content_edit.content_type.value = content_type;
		document.content_edit.content_id.value = content_id;
		document.content_edit.content_action.value = content_action;
		document.content_edit.content_title.value = "";
		//document.content_edit.content_details.value = "";

		var url = "get_content.cfm";
		var params = urlToken + "&content_type=" + content_type + "&content_id=" + content_id + "&content_action=" + content_action + "&t=" + timestamp;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: populateContentForm} );
	}
	else if(data[2] == "change")
	{
		var content_type = data[0];
		var cat_override_entity = data[1];
		var content_action = data[2];
		//var urlToken = data[3];
		document.channel_content_edit.cat_override_entity.value = cat_override_entity;
		document.channel_content_edit.content_action.value = content_action;		
		var url = "get_content.cfm";
		var params = urlToken + "&content_type=" + content_type + "&cat_override_entity=" + cat_override_entity + "&content_action=" + content_action + "&t=" + timestamp;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: populateChannelContentForm} );
	}	
	return false;
}


function pausecomp(Amount)
    {
    d = new Date() //today's date
    while (1)
        {
        mill=new Date() // Date Now
        diff = mill-d //difference in milliseconds
        if( diff > Amount ) {break;}
        }
    }
    
function populateContentForm (data)
{
	var preData = data.responseText;
	var data = data.responseText.split("___");
	
	//stop processing if session has expired, and simply display the resulting html
	if(preData.indexOf("XXIMNERRORXX") >= 0) { sessionExpired(); return; }	
	
	var content_action = data[0].trim();	
	document.content_edit.content_type.value = data[2];
	var content_type = document.content_edit.content_type.value;

	if (content_type == 'articles')
	{
		displayType = 'Article';
		changeInnerHtml('content_title_label','Article Title:');
		changeInnerHtml('content_details_label','Contents:');
	}
	else if (content_type == 'events')
	{
		displayType = 'Event';
		changeInnerHtml('content_title_label','Event Title:');
		changeInnerHtml('content_details_label','Event Info:');
		changeInnerHtml('content_url_text','Event URL:');
	}
	else
	{
		displayType = 'Product';
		changeInnerHtml('content_title_label','Name:');
		changeInnerHtml('content_details_label','Description:');
	}

	if (typeof FCKeditorAPI != 'undefined') 
	{
		var content_fckeditor = FCKeditorAPI.GetInstance('content_fckeditor') ;
	}
	

	if (content_action == 'edit')
	{
		
		changeInnerHtml('save_content','Save');
		changeInnerHtml('cancel_save_content','Cancel');
		var productDescriptionText = "";
		
		hideObj('content_edit_remove');
		hideObj('content_edit_restore');

		if (content_type == 'articles' || content_type == 'events')
		{
			if (content_type == 'articles') hideObj('content_url_list_item');
			if (content_type == 'events') document.content_edit.content_url.value = data[5].trim();
			hideObj('content_price_list_item');
			hideObj('content_photo_list_item');
			hideObj('content_url_list_view');
			hideObj('content_price_list_view');
		}
		displayObj('content_edit_edit');

		document.content_edit.content_title.value = data[3].trim();
		//document.content_edit.content_details.value = data[4].trim();

		if (content_type == "products") 
		{			
			hideObj('content_url_list_item');
			hideObj('content_price_list_item');
			displayObj('content_url_list_view');
			displayObj('content_price_list_view');
			changeInnerHtml('content_price_view_span', document.content_edit.currency.value + data[5].trim());
			changeInnerHtml('content_url_view_span', data[6].trim());
			//var content_url_span = "<a href=\"" + data[6].trim() + "\" target=\"_blank\">" + data[6].trim() + "</a>";
			//changeInnerHtml('content_url_span',content_url_span);
			document.content_edit.content_photo.value = data[7].trim();
			productDescriptionText = " Description";
			document.content_edit.content_price.value = data[5].trim();
			document.content_edit.content_url.value = data[6].trim();
			
		}
		else if (content_type == "customproducts") 
		{
			displayObj('content_url_list_item');
			displayObj('content_price_list_item');
			hideObj('content_url_list_view');
			hideObj('content_price_list_view');
			document.content_edit.content_price.value = data[5].trim();
			document.content_edit.content_url.value = data[6].trim();
			//var content_url_span = "<a href=\"" + data[6].trim() + "\" target=\"_blank\">" + data[6].trim() + "</a>";
			//changeInnerHtml('content_url_span',content_url_span);
			document.content_edit.content_photo.value = data[7].trim();
			productDescriptionText = " Description";
			
		}	
		
		changeInnerHtml('edit_article_h1', 'Edit&nbsp;' + displayType + productDescriptionText);
		
		$('li_select_existing_product').style.display = "none";
		$('li_add_custom_product').style.display = "none";
		
		$('tabbedcontent-create_custom_product').className = "tabbedcontentholder on";
		$('tabbedcontent-create_custom_product').style.display = "block";
		
		$('tabbedcontent-select_existing_product').style.display = "none";	
		$('tabbedcontent-select_existing_product').className = "tabbedcontentholder";
		
		if(typeof content_fckeditor != 'undefined')
		{
			//alert('ok fckeditor does exist...');
			//content_fckeditor.SetHTML(data[4].trim());
		}


	}
	else if (content_action == 'remove')
	{
		changeInnerHtml('save_content','Yes');
		changeInnerHtml('cancel_save_content','No');
		displayObj('content_edit_remove');
		hideObj('content_edit_edit');
		hideObj('content_edit_restore');
		changeInnerHtml('content_title_remove', data[3].trim());
		changeInnerHtml('edit_article_h1', 'Remove&nbsp;' + displayType);
		
	}	
	else if (content_action == 'add')
	{
		hideObj('content_edit_remove');
		hideObj('content_edit_restore');
		displayObj('content_edit_edit');
		changeInnerHtml('edit_article_h1', 'Add&nbsp;' + displayType);

		$('tabbedcontenttabs1').style.display = "block";
		$('li_select_existing_product').style.display = "block";
		$('li_select_existing_product').className = "on";

		if(typeof enableCustomProduct != 'undefined')
		{
			if(enableCustomProduct == "F")
			{
				$('tabbedcontenttabs1').style.display = "none";
				$('li_select_existing_product').style.display = "none";
				$('li_add_custom_product').style.display = "none";
				$('tabbedcontent-select_existing_product').style.paddingTop = "5px";
				$('edit_article_actions').style.padding = "0px";
				$('edit_article_actions').style.margin = "0px";
				$('edit_article_actions').hide();
			}
		}
		else
		{
			$('li_add_custom_product').style.display = "block";
			$('li_add_custom_product').className = "";
		}


		if(typeof enableProductSearch != 'undefined')
		{
			if(enableProductSearch == "F")
			{
				
				$('tabbedcontenttabs1').style.display = "none";
				$('li_select_existing_product').style.display = "none";
				$('li_add_custom_product').style.display = "none";
				$('edit_article_actions').style.padding = "0px";
				$('edit_article_actions').style.margin = "0px";

				$('tabbedcontent-select_existing_product').hide();
				$('tabbedcontent-create_custom_product').show();

				$('tabbedcontent-create_custom_product').className = "tabbedcontentholder on";
				$('tabbedcontent-create_custom_product').style.display = "block";

				$('tabbedcontent-select_existing_product').style.display = "none";	
				$('tabbedcontent-select_existing_product').className = "tabbedcontentholder";
				$('content_url_list_view').hide();
				$('content_price_list_view').hide();
				
				if (content_type == "products") 
				{
					document.content_edit.content_type.value = 'customproducts';
				}

			}
		}
		else
		{
			$('li_select_existing_product').style.display = "block";
			$('li_select_existing_product').className = "";
			$('li_add_custom_product').style.display = "block";
			$('li_add_custom_product').className = "";

			$('tabbedcontent-create_custom_product').className = "tabbedcontentholder";
			$('tabbedcontent-create_custom_product').style.display = "none";

			$('tabbedcontent-select_existing_product').style.display = "block";	
			$('tabbedcontent-select_existing_product').className = "tabbedcontentholder on";

		}
		

		displayObj('content_url_list_item');
		displayObj('content_price_list_item');

		if(content_type == 'articles' || content_type == 'events')
		{
			$('tabbedcontenttabs1').style.display = "none";

			$('tabbedcontent-create_custom_product').className = "tabbedcontentholder on";
			$('tabbedcontent-create_custom_product').style.display = "block";

			$('tabbedcontent-select_existing_product').style.display = "none";	
			$('tabbedcontent-select_existing_product').className = "tabbedcontentholder";
			
			if (content_type == 'articles') hideObj('content_url_list_item');
			if (content_type == 'events') document.content_edit.content_url.value = data[5].trim();
			hideObj('content_price_list_item');
			hideObj('content_photo_list_item');
			hideObj('content_url_list_view');
			hideObj('content_price_list_view');
			
			if (content_type == 'events')
			{
				if(typeof content_fckeditor != 'undefined')
				{
					//alert('ok fckeditor does exist...');
					content_fckeditor.SetHTML('<div style="margin-bottom:12px"><span style="font-weight:bold">When:</span>&nbsp;</div><div style="margin-bottom:12px"><span style="font-weight:bold">Where:</span>&nbsp;</div><div><span style="font-weight:bold">Info:</span>&nbsp;</div>');
				}
			}
		}
		else if (content_type == 'products')
		{
			if(typeof enableProductSearch != 'undefined')
			{
				if(enableProductSearch == "F")
				{
				$('edit_article_actions').show();
				}
			}
			else
			{
				$('edit_article_actions').hide();	
			}
				
		}

		changeInnerHtml('save_content','Save');
		changeInnerHtml('cancel_save_content','Cancel');
	}
	else if (content_action == 'restore')
	{
		changeInnerHtml('save_content','Yes');
		changeInnerHtml('cancel_save_content','No');
	
		hideObj('content_edit_remove');
		hideObj('content_edit_edit');
		displayObj('content_edit_restore');
		changeInnerHtml('edit_article_h1', 'Restore&nbsp;' + displayType);
	}

	// Always hide PHOTO and PRICE 
	//hideObj('content_price_list_item');
	hideObj('content_photo_list_item');

	if($('edit_article_loading_form'))
	{
		$('edit_article_loading_form').hide();
	}
	
}

function populateChannelContentForm (data)
{

	$('actions_edit_article_channel').show();
	$('actions_edit_article_channel1').show();

	var preData = data.responseText;
	var data = data.responseText.trim().split("___");
		
	//stop processing if session has expired, and simply display the resulting html
	if(preData.indexOf("XXIMNERRORXX") >= 0) { sessionExpired(); return; }	
	
	var content_action = data[0].trim();
	var cat_override_entity = data[1].trim();
	var content_type = data[2].trim();
	var content_channel = data[3].trim();
	var content_channel_parent = data[7].trim();
	var content_channel_name = data[4].trim();
	var content_channel_defaults = data[5].trim();
	var thisDefaultChannel = content_channel_defaults.split(',')[cat_override_entity-1];
	var otherChannel = data[6].trim();

	document.channel_content_edit.currentDefault.value = thisDefaultChannel;
	var urlToken = document.channel_content_edit.urlToken.value;
	var channel = document.channel_content_edit.content_id.value;


	if (content_action == 'change')
	{
	
		// Clear all preview labels and radio button selections
		var labels = document.getElementsByTagName("span");
		for (var i=0; i < labels.length; i++) {
			if (labels[i].className.match("default_label") || labels[i].className.match("used_label")) {
				changeInnerHtml(labels[i].id, '');
			}
		}
		for (var i=0; i < document.channel_content_edit.channel_list.length; i++)  
		{ 
			document.channel_content_edit.channel_list[i].checked = false;
			document.channel_content_edit.channel_list[i].disabled = false;
		}		
		
		$('content_channel_edit').show();
		$('content_channel_remove').hide();
		var thisName = content_channel_name;
		thisName = content_channel_name.replace('~1','');
		thisName = thisName.replace('~2','');

		// Setup the label for the current article for this channel
		changeInnerHtml('article_channel', thisName);

		// set the current category for the channel
		document.channel_content_edit.currentCategoryId.value = content_channel;
		var issue_id = document.channel_content_edit.issue_id.value

		// auto-select the current article channel
		var list1 = $('channel_list');

		for(var i = 0; i < list1.options.length; ++i)
		{
			var arrData = list1.options[i].value.split('_');
			categoryId = arrData[3];
			if(content_channel_parent == categoryId)
			{
				list1.options[i].selected = true;
				$('parent-category-bc').update(list1.options[i].text);
				var url = "/imn/omn/get_categories.cfm";
				var params = urlToken + "&parentid=" + content_channel_parent + "&channel=" + channel + "&parentname=" + Url.encode(list1.options[i].text) + "&lvl=1&catID=" + content_channel;
				var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data){
					var response = data.responseText.trim();
					new Insertion.After(list1,response);
					var list2 = $('channel-list-1');
					for(var i = 0; i < list2.options.length; ++i)
					{
						if(list2.options[i].selected)
						{
							$('child-category-bc').update(list2.options[i].text);
						}
					}
				}});

				// preview the article for the selected category
				var url = "/imn/omn/getArticle.cfm";
				var params = urlToken + "&accountName=smbparent&issueid=" + issue_id + "&categoryID=" + content_channel;
				var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data){
					var response = data.responseText.trim();
					var strOutput = "";
					strOutput = strOutput + "<p class=\"close\"><a href=\"javascript:void(0)\" onclick=\"$('article-preview').hide();\">Close Preview</a></p>";
					strOutput = strOutput + "<p><strong>" + thisName + " Preview</strong></p>";
					if(response.length > 0)
					{
						strOutput = strOutput + "<div class=\"article\">" + response + "</div>";
					}
					else
					{
						strOutput = strOutput + "<p>No article preview exists for the selected category</p>";
					}
					$('article-preview').update(strOutput);
					$('article-preview').show();
				}});


			}
			else if(content_channel == categoryId)
			{
				list1.options[i].selected = true;
				var url = "/imn/omn/get_categories.cfm";
				var params = urlToken + "&parentid=" + content_channel + "&channel=" + channel + "&parentname=" + Url.encode(thisName) + "&lvl=1";
				var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data){
					var response = data.responseText.trim();
					new Insertion.After(list1,response);
					var list2 = $('channel-list-1');
					for(var i = 0; i < list2.options.length; ++i)
					{
						if(list2.options[i].selected)
						{
							$('child-category-bc').update(list2.options[i].text);
						}
					}
				}});

			// preview the article for the selected category
			var url = "/imn/omn/getArticle.cfm";
			var params = urlToken + "&accountName=smbparent&issueid=" + issue_id + "&categoryID=" + categoryId;
			var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: function(data){
					
				var response = data.responseText.trim();
				var strOutput = "";
				strOutput = strOutput + "<p class=\"close\"><a href=\"javascript:void(0)\" onclick=\"$('article-preview').hide();\">Close Preview</a></p>";
				strOutput = strOutput + "<p><strong>" + thisName + " Preview</strong></p>";
				if(response.length > 0)
				{
					strOutput = strOutput + "<div class=\"article\">" + response + "</div>";
				}
				else
				{
					strOutput = strOutput + "<p>No article preview exists for the selected category</p>";
				}
				$('article-preview').update(strOutput);
				$('article-preview').show();
			}});

			}


		}

		

		//alert(document.channel_content_edit.channel_list.length);
		for (var i=0; i < document.channel_content_edit.channel_list.length; i++)  
		{ 
			thisIdInfo = document.channel_content_edit.channel_list[i].id.split("_");
			channelNode = document.getElementById("channel_" + i);
			
			//alert(i);
			//alert(thisIdInfo[1]);
			//alert(cat_override_entity);
			
			if(thisIdInfo[1] == cat_override_entity)
			{
				channelNode.style.display="";
				
				
				if (document.channel_content_edit.channel_list[i].id == 'channel_' + cat_override_entity + '_' + content_channel)
				{
					document.channel_content_edit.channel_list[i].checked = true;
				}			


				if (document.channel_content_edit.channel_list[i].id == 'channel_' + cat_override_entity + '_' + thisDefaultChannel)
				{
					var data = document.channel_content_edit.channel_list[i].id.split('_');	
					changeInnerHtml('article_channel_' + data[2] + '_default', '<em>(Default)</em>');
				}

				/*
				if (document.channel_content_edit.channel_list[i].id == 'channel_' + cat_override_entity + '_' + otherChannel)
				{
					document.channel_content_edit.channel_list[i].disabled = true;
					var data = document.channel_content_edit.channel_list[i].id.split('_');	
					changeInnerHtml('article_channel_' + data[2] + '_used', '<em>(This content channel is already being used in your newsletter.)</em>');
				}*/
			}
			else
			{			
				channelNode.style.display="none";
			}			
		}
	}
	else
	{
		$('content_channel_edit').hide();
		$('content_channel_remove').show();
	}
}

function saveContent()
{

	$('edit_article_saving').show();
	$('edit_article_actions').hide();

	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	
	var content_type = document.content_edit.content_type.value;
	var content_id = document.content_edit.content_id.value;
	var content_action = document.content_edit.content_action.value;
	var content_title = document.content_edit.content_title.value;
	var content_price = document.content_edit.content_price.value;
	var content_url = document.content_edit.content_url.value;
	var urlToken = document.content_edit.urlToken.value;
	var content_cats = document.content_edit.content_cats.value;
	var content_issue = document.content_edit.content_issue.value;
	var content_photo = document.content_edit.content_photo.value;
	
	var content_details = "";
	
	if (typeof FCKeditorAPI != 'undefined')
	{
		var content_fckeditor = FCKeditorAPI.GetInstance('content_fckeditor') ;
		if(typeof content_fckeditor != 'undefined')
		{
			content_details = content_fckeditor.GetXHTML();
		}
	}
	
	if (content_action == "add" || content_action == "edit")
	{
		if(content_type == 'customproducts')
		{
			if(typeof requireUrl != 'undefined')
			{
				if(!requireUrl)
				{
					if (content_title.length == 0 || content_details.length == 0 || content_price.length == 0) 
					{ 
						$('edit_article_saving').hide();
						$('edit_article_actions').show();
						alert('Please fill in information for all fields.'); return false;
					} 
				}
			}
			else
			{
				if (content_title.length == 0 || content_details.length == 0 || content_url.length == 0 || content_price.length == 0) 
				{ 
					$('edit_article_saving').hide();
					$('edit_article_actions').show();
					alert('Please fill in information for all fields.'); return false;
				} 
			}
		}
		else
		{
			if (content_title.length == 0 || content_details.length == 0) 
			{ 
				if (content_type == 'articles')
				{
					displayType = 'Article';
				}
				else if (content_type == 'events')
				{
					displayType = 'Event';
				}
				else
				{
					displayType = 'Product';
				}
				$('edit_article_saving').hide();
				$('edit_article_actions').show();
				alert('Please enter ' +  displayType + ' title and contents.'); return false;
			} 
		}
		if(content_url.length > 0)
		{
			if(content_url.indexOf('http://') == -1)
			{
				$('edit_article_saving').hide();
				$('edit_article_actions').show();
				alert('Please enter a valid URL. http://www.mystore.com/myproduct/'); return false;
			}
		}
	}

	var url = "update_content.cfm?" + urlToken + "&content_type=" + content_type;
	var params = urlToken + "&content_type=" + content_type + "&content_id=" + content_id + "&content_action=" + content_action + "&content_title=" + Url.encode(content_title) + "&content_details=" + Url.encode(content_details) + "&content_cats=" + content_cats + "&content_issue=" + content_issue + "&content_url=" + Url.encode(content_url) + "&content_price=" + Url.encode(content_price) + "&content_photo=" + content_photo + "&t=" + timestamp;
	//alert(url + '?' + params);
	var myAjax = new Ajax.Request(url, { method: 'post', parameters: params, onComplete: refreshFullPage} );
}

function saveChannelContent(makeDefault)
{

	$('edit_article_channel_saving').show();
	$('edit_article_channel_saving1').show();
	
	$('actions_edit_article_channel').hide();
	$('actions_edit_article_channel1').hide();

	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	
	var cat_override_entity = document.channel_content_edit.cat_override_entity.value;
	var currentDefault = document.channel_content_edit.currentDefault.value;
	var content_action = document.channel_content_edit.content_action.value;
	var urlToken = document.channel_content_edit.urlToken.value;
	var new_channel_id = '';
	var new_channel_id_default = '';

	// set new channel id from the hidden form field
	new_channel_id = document.channel_content_edit.currentCategoryId.value;
	/*
	for (var i=0; i < document.channel_content_edit.channel_list.length; i++)  
	{ 
		if(document.channel_content_edit.channel_list[i].checked)
		{
			var data = document.channel_content_edit.channel_list[i].id.split('_');
			new_channel_id = data[2];
		}
	}
	*/

	/*
	if(makeDefault == true)
	{
		new_channel_id_default = new_channel_id
	}
	else
	{
		new_channel_id_default = content_channel_default
	}
	*/
	
	var url = "update_content_channel.cfm";
	var params = urlToken + "&cat_override_entity=" + cat_override_entity + "&new_channel_id=" + new_channel_id + "&makeDefault=" + makeDefault + "&currentDefault=" + currentDefault + "&t=" + timestamp;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: refreshFullPage} );
}


function refreshPage(data)
{
	var response = data.responseText;
	//alert(response);
	
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	
	var goPage = document.location;
	goPage = goPage.toString();
	
	var findts = goPage.indexOf("&ts");
	if(findts >= 0) goPage = goPage.substring(0,findts);	
	
	goPage += "&ts=" + timestamp;
	
	document.location = goPage;
}


function refreshFullPage(data)
{
	var response = data.responseText;
	
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	
	var goPage = document.location;
	goPage = goPage.toString();
	
	var findts = goPage.indexOf("&ts");
	if(findts >= 0) goPage = goPage.substring(0,findts);	
	
	goPage += "&ts=" + timestamp;

	var cfid = "";
	var cftoken = "";
	var list = goPage.replace('?','&').split('&');
	for(i=0; i < list.length; i++)
	{
		var data = list[i].split('=');
		if(data[0] == 'cfid' || data[0] == 'CFID')
		{
			cfid = data[1];
		}
		if(data[0] == 'cftoken' || data[0] == 'CFTOKEN')
		{
			cftoken = data[1];
		}
	}
	if (cfid.length == 0 || cftoken.length == 0)
	{
		parent.document.location.reload();
	}
	else
	{
		parent.document.location = '/imn/admin_frame_omn.cfm?cfid=' + cfid + '&cftoken=' + cftoken + '&ts=' + timestamp;
	}
}


function changeInnerHtml(obj, text) {
	var el = document.getElementById(obj);
	if(el == null)
	{
		el = top.content.document.getElementById(obj);
	}
	el.innerHTML = text;
	return false;
}

function changeLinkTarget(obj, newTarget) {
	var el = document.getElementById(obj);
	if(el == null)
	{
		el = top.content.document.getElementById(obj);
	}
	el.target = newTarget;
	return false;
}

function toggleDisplay(obj){
	var el = document.getElementById(obj);
	if(el == null)
	{
		el = top.content.document.getElementById(obj);
	}
	if(el.style.display == 'block')
	{
		el.style.display = "none";
	}else{
		el.style.display = "block";
	}
	return false;
}

function toggleUpload(action)
{
	var uploadNode = document.getElementById("uploadLogo");
	var displayNode = document.getElementById("displayLogo");
	//var logoPosNode = document.getElementById("template_logo_position_div");
	//var logoShowNode = document.getElementById("template_logo_show_div");

	if(action == "hide")
	{
		uploadNode.style.display = "none";
		//logoPosNode.style.display = "";
		//logoShowNode.style.display = "";
		displayNode.style.display = "";
	}
	else
	{
		uploadNode.style.display = "";		
		//logoPosNode.style.display = "none";
		//logoShowNode.style.display = "none";
		displayNode.style.display = "none";
	}
}

function displayObj(obj){
	var el = document.getElementById(obj);
	if(el == null)
	{
		el = top.content.document.getElementById(obj);
	}
	el.style.display = "block";
	return false;
}

function hideObj(obj){
	var el = document.getElementById(obj);
	if(el == null)
	{
		el = top.content.document.getElementById(obj);
	}
	el.style.display = "none";
	return false;
}

// Handle display of error messages
function displayErrorMessage(text){
	alert(text);
}

// Display the status display after ajax updates
function ajaxStatus(data){

	
	if(data.responseText){
		var text = data.responseText;
	}else{
		var text = data;
	}
	
	if(text.indexOf("XXIMNERRORXX") >= 0) { sessionExpired(); return; }
	
	//displayObj('update_status_wrapper');
	
	//text = text + "&nbsp;&nbsp;&nbsp;<a id=\"close_status\" href=\"javascript:void(0)\" class=\"close\" onclick=\"toggleDisplay('update_status_wrapper')\">Close</a>";
	//changeInnerHtml('update_status',text);	
}


// Display the status display after ajax updates
function ajaxStatusShow(data){
	if(data.responseText){
		var text = data.responseText;
	}else{
		var text = data;
	}
	if(text.indexOf("XXIMNERRORXX") >= 0) { sessionExpired(); return; }
	displayObj('update_status_wrapper');
	text = text + "&nbsp;&nbsp;&nbsp;<a id=\"close_status\" href=\"javascript:void(0)\" class=\"close\" onclick=\"toggleDisplay('update_status_wrapper')\">Close</a>";
	changeInnerHtml('update_status',text);	
}


// Save send date
function saveSendDate(el, urlToken)
{
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();

	var dateVal = new Date(el.value);
	var currVal = new Date(curr_send_date);
	
	var trialEndDate = new Date(document.form_send_schedule.trialEndDate.value);
	
	// validate the send is not today and is within the current month	
	if (Date.parse(dateVal) < Date.parse(thisDate)) 
	{
		alert("Please choose a future send date within this month.")
		document.form_send_schedule.sendDate.value = curr_send_date;
		return false;
	}
	else if (Date.parse(dateVal) > Date.parse(trialEndDate))
	{
		if(validate_date)
		{
			alert("Please choose a send date within your trial period. Your trial ends on " + document.form_send_schedule.trialEndDate.value + ".")
			document.form_send_schedule.sendDate.value = curr_send_date;
			return false;
		}
	}
	else
	{
		if((dateVal.getFullYear() == currVal.getFullYear()) && (dateVal.getMonth() == currVal.getMonth()))
		{
		}
		else
		{
			alert("Please choose a future send date within this month.")
			document.form_send_schedule.sendDate.value = curr_send_date;
			return false;
		}
	}

	if (el.value.length > 0)
	{
		var url = "omn/update_initial_settings.cfm";
		var params = urlToken + "&send_date=" + el.value + "&t=" + timestamp;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: ajaxStatus} );
		curr_send_date = el.value;
	}else{
		alert('Please enter in an email');
	}
	closePreview();
}


function previewNewsletter()
{
	//log it
	previewLog();
	
	var el = getElementsByClass('EditContentButtons', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		el[i].style.display = 'none';
	}
	var el = getElementsByClass('ghost_content_wrapper', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		el[i].style.display = 'none';
	}
	

	//var newsletter_banner = document.getElementById('newsletter_banner');
	//newsletter_banner.style.position = "static";
	//hideObj('banner_spacer');
	
	ajaxStatusShow('You are now previewing your newsletter. <a href=\"javascript:void(0)\" class=\"close\" id=\"preview-newsletter\" onclick=\"closePreview();\">Close</a>');
	
	hideObj('close_status');
	hideObj('email_schedule_container');

	hideObj('edit_from_name');
	hideObj('edit_from_email_address');
	hideObj('edit_replyto_email_address');
	hideObj('edit_subject_email_address');
	
	displayObj('edit_from_name_display');
	displayObj('edit_from_email_address_display');
	displayObj('edit_replyto_email_address_display');
	displayObj('edit_subject_email_address_display');

	hideObj('edit_from_email_address_form');
	hideObj('edit_replyto_email_address_form');
	hideObj('edit_subject_email_address_form');

	if($('remove-right-col')) $('remove-right-col').hide();
	if($('remove-left-col')) $('remove-left-col').hide();
	if($('customize-color')) $('customize-color').hide();
	
	var links=document.getElementsByTagName("a");
	for (var i=0; i < links.length; i++) 
	{
		if (links[i].className.match("editable")) 
		{
			links[i].className = "editable_noicon";
		}
	}
	
	//parent.document.getElementById("framewrapper").rows = "0,*";
	//parent.document.getElementById("framewrapper_cols").cols = "0,*";
	
	var el = getElementsByClass('EditFromPreviewTop', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		el[i].style.display = 'none';
	}
	
	var el = getElementsByClass('p_spacer', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		el[i].style.display = 'none';
	}
	
	var el = getElementsByClass('article_box', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		el[i].style.height = 'auto';
	}

	var el = getElementsByClass('EditFromPreviewItem', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		el[i].style.display = 'none';
	}
	
}


function closePreview()
{
	var el = getElementsByClass('EditContentButtons', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		el[i].style.display = 'block';
	}
	var el = getElementsByClass('ghost_content_wrapper', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		el[i].style.display = 'block';
	}

	//var newsletter_banner = document.getElementById('newsletter_banner');
	//newsletter_banner.style.position = "absolute";
	
	//var banner_spacer = document.getElementById('banner_spacer');
	//banner_spacer.style.display = "inline";
	
	//displayObj('help_container');
	displayObj('email_schedule_container');
	hideObj('update_status_wrapper');

	var links=document.getElementsByTagName("a");
	for (var i=0; i < links.length; i++) 
	{
		if (links[i].className.match("editable_noicon")) 
		{
			links[i].className = "editable";
		}
	}

	//parent.document.getElementById("framewrapper").rows = "48,*";
	//parent.document.getElementById("framewrapper_cols").cols = "260,*";

	var el = getElementsByClass('EditFromPreviewTop', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		el[i].style.display = 'block';
	}
	
	var el = getElementsByClass('article_box', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		//el[i].style.height = '125px';
	}

	var el = getElementsByClass('p_spacer', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		el[i].style.display = 'inline';
	}
	
	var el = getElementsByClass('EditFromPreviewItem', null, null);
	for (var i = 0; i < el.length; i++) 
	{
		el[i].style.display = 'none';
	}
	displayObj('edit_from_name');
	displayObj('edit_from_email_address');
	displayObj('edit_replyto_email_address');
	displayObj('edit_subject_email_address');
	
	hideObj('edit_from_name_display');
	hideObj('edit_from_email_address_display');
	hideObj('edit_replyto_email_address_display');
	hideObj('edit_subject_email_address_display');

	if($('remove-right-col')) $('remove-right-col').show();
	if($('remove-left-col')) $('remove-left-col').show();
	if($('customize-color')) $('customize-color').show();
	
}


// Save email settings
function saveEmailSettings (obj){
	
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();	
	
	var urlToken = document.email_settings_form.urlToken.value;
	
	if (obj.id == 'save_from_name')
	{
		var current_name = document.email_settings_form.from_name_current.value;
		var default_name = document.email_settings_form.from_name_default.value;
		
		default_name = current_name;
		
		if(current_name.length > 0 && default_name.length > 0)
		{
			changeInnerHtml('edit_from_name', current_name);

			// Make database call
			var url = "/imn/omn/update_initial_settings.cfm";
			var params = urlToken + "&from_name=" + current_name + "&from_name_default=" + default_name + "&t=" + timestamp;
			//alert(url + "?" + params);
			var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: ajaxStatus} );

			toggleDisplay('edit_from_name');
			toggleDisplay('edit_from_name_form');
			
			changeInnerHtml('edit_from_name_display', current_name);
			
		}else
		{
			document.email_settings_form.from_email_current.value = document.email_settings_form.og_from_email_current.value;
			document.email_settings_form.from_email_default.value = document.email_settings_form.og_from_email_default.value;
			displayErrorMessage('Please enter a valid from name');
		}
	}
	else if (obj.id == 'save_from_email')
	{
		var current_email = document.email_settings_form.from_email_current.value;
		var default_email = document.email_settings_form.from_email_default.value;
		
		default_email = current_email;
		
		if((current_email.length > 0 && isValidEmail(current_email) == true) && (default_email.length > 0 && isValidEmail(default_email) == true))
		{
			changeInnerHtml('edit_from_email_address', current_email);

			// Make database call
			var url = "/imn/omn/update_initial_settings.cfm";
			var params = urlToken + "&from_email=" + current_email + "&from_email_default=" + default_email + "&t=" + timestamp;
			//alert(url + "?" + params);
			var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: ajaxStatus} );

			toggleDisplay('edit_from_email_address');
			toggleDisplay('edit_from_email_address_form');
			
			changeInnerHtml('edit_from_email_address_display', current_email);
			
		}else
		{
			document.email_settings_form.from_email_current.value = document.email_settings_form.og_from_email_current.value;
			document.email_settings_form.from_email_default.value = document.email_settings_form.og_from_email_default.value;
			displayErrorMessage('Please enter a valid email address');
		}
	}else if (obj.id == 'save_replyto_email')
	{
		var current_email = document.email_settings_form.replyto_email_current.value;
		var default_email = document.email_settings_form.replyto_email_default.value;

		default_email = current_email;
		
		if((current_email.length > 0 && isValidEmail(current_email) == true) && (default_email.length > 0 && isValidEmail(default_email) == true))
		{
			changeInnerHtml('edit_replyto_email_address', current_email);

			// Make database call
			var url = "/imn/omn/update_initial_settings.cfm";
			var params = urlToken + "&replyto_email=" + current_email + "&replyto_email_default=" + default_email + "&t=" + timestamp;
			var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: ajaxStatus} );

			toggleDisplay('edit_replyto_email_address');
			toggleDisplay('edit_replyto_email_address_form');

			changeInnerHtml('edit_replyto_email_address_display', current_email);
		}else
		{
			document.email_settings_form.replyto_email_current.value = document.email_settings_form.og_replyto_email_current.value;
			document.email_settings_form.replyto_email_default.value = document.email_settings_form.og_replyto_email_default.value;
			displayErrorMessage('Please enter a valid email address');
		}
	}else if (obj.id == 'save_subject')
	{
		var current_subject = document.email_settings_form.subject_email_current.value;
		var default_subject = document.email_settings_form.subject_email_default.value;
		
		default_subject = current_subject;
		
		if(current_subject.length > 0 && default_subject.length > 0)
		{
			changeInnerHtml('edit_subject_email_address', current_subject);

			// Make database call
			var url = "/imn/omn/update_initial_settings.cfm";
			var params = urlToken + "&subject=" + Url.encode(current_subject) + "&subject_default=" + Url.encode(default_subject) + "&t=" + timestamp;
			var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: ajaxStatus} );

			toggleDisplay('edit_subject_email_address');
			toggleDisplay('edit_subject_email_address_form');

			changeInnerHtml('edit_subject_email_address_display', current_subject);
		}else
		{
			document.email_settings_form.subject_email_current.value = document.email_settings_form.og_subject_email_current.value;
			document.email_settings_form.subject_email_default.value = document.email_settings_form.og_subject_email_default.value;
			displayErrorMessage('Please enter a subject line');
		}
	}
}


function saveOptOut()
{
	var thisDate = new Date();
	timestamp = "_" + thisDate.getFullYear() + thisDate.getMonth() + thisDate.getDate() + thisDate.getHours() + thisDate.getMinutes() + thisDate.getSeconds() + thisDate.getMilliseconds();
	
	var opt_out_list = document.opt_out_customers_form.opt_out_list.value;
	var urlToken = document.opt_out_customers_form.urlToken.value;

	var url = "omn/opt_out_customers.cfm?" + urlToken;
	var params =  "&opt_out_list=" + Url.encode(opt_out_list) + "&t=" + timestamp;
	var myAjax = new Ajax.Request(url, { method: 'post', parameters: params, onComplete: function(){
		$('opt_out_customers_container').hide();
		document.customer_overview.opt_out_list = '';
		top.document.location.reload();
	}});
}


function dataInit(accountName, merchantID, issueID)
{	
	var url = dataRefreshPrefix + "/eletra/omn/data_refresh.cfm?RequestTimeout=1200";	
	var params = "requestTimeout=1200&runType=init&issueID=" + issueID + "&merchantID=" + merchantID + "&accountName=" + accountName;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: dataRefreshCompleted} );
}


function initPage() {
	
	if (!document.getElementsByTagName) return false;

/*
	if(is_first_time)
	{	
		// Start the data refresh process in the background
		var issueID = document.content_edit.content_issue.value;
		var merchantID = document.content_edit.merchantId.value;
		var accountName = document.content_edit.accountName.value;
		var url = dataRefreshPrefix + "/eletra/omn/data_refresh.cfm";		
		var params = "requestTimeout=1200&runType=init&issueID=" + issueID + "&merchantID=" + merchantID + "&accountName=" + accountName;
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: dataRefreshCompleted} );
		//fireClickEvent('initial_settings_link');
	}

	
	// Show the working status message and icon
	if (is_refreshing || is_first_time)
	{
		//$('working_wrapper').style.display = "block";
		//$('working_content').className = "working";
		//changeInnerHtml('working_content', 'Data Refresh is working...');
	}
*/

	/* Prepare setting save buttons */
	var buttons = document.getElementsByTagName("button");
	for (var i=0; i < buttons.length; i++) {

		if (buttons[i].className.match("save_email_settings")) {
			buttons[i].onclick=function() {
				saveEmailSettings(this);
				return false;
			}
		}

		/*
		if (buttons[i].className.match("save_optout")) {
			buttons[i].onclick=function() {
				alert('test');
				saveOptOut(this);
				return false;
			}
		}
		*/
		
		if (buttons[i].className.match("save_content")) {
			buttons[i].onclick=function() {
				saveContent();
				return false;
			}
		}
		if (buttons[i].className.match("save_channel_content")) {
			buttons[i].onclick=function() {
				saveChannelContent(false);
				return false;
			}
		}

		if (buttons[i].className.match("save_channel_content_default")) {
			buttons[i].onclick=function() {
				saveChannelContent(true);
				return false;
			}
		}
	}

	/* Start: Loop through all the links on the page */
	var links=document.getElementsByTagName("a");
	for (var i=0; i < links.length; i++) {
	
		/* Prepare preview link */
		if (links[i].className.match("preview")) {
			links[i].onclick=function() {
				previewNewsletter();
			return false;
			}
		}



		/* Prepare inline editable links */
		if (links[i].className.match("editable")) {
			links[i].onclick=function() {
				this.style.display = "none";
				var el = document.getElementById(this.id + '_form');
				el.style.display = "block";
				return false;
			}
		}


		/* Prepare Cancel link CLICK event */
		if (links[i].className.match("cancel")) {
			links[i].onclick=function() {
				var twoIds = this.id.split("___");
				if(twoIds.length == 2)
				{
					if (twoIds[0] != 'none')
					{
						var el1 = document.getElementById(twoIds[0]);
						el1.style.display = "block";
					}
					if (twoIds[1] != 'none')
					{
						var el2 = document.getElementById(twoIds[1]);
						el2.style.display = "none";
					}
				}
				return false;
			}
		}


		/* Prepare show container (div's) links */
		if (links[i].className.match("show_container")) {
			
			links[i].onclick=function() {
				var twoIds = this.id.split("___");
				if(twoIds.length == 2)
				{
					var el2 = document.getElementById(twoIds[1]);
					el2.style.display = "block";
				}
				return false;
			}
		}
		
	} /* End: Loop through all the links on the page */


	/* Hide/display system messages and status */
	var closestatus = document.getElementById("closestatus");
	if(closestatus)
	{
		closestatus.onclick = function()
		{
			parent.document.getElementById("framewrapper").rows = "48,*";
			var el = document.getElementById("statusbar");
			el.style.display = "none";
		}
	}
  
	enableTooltips();

}

function getOrdersSalesCustomers()
{	
	var merchantID = document.customer_overview.merchantId.value;
	var accountName = document.customer_overview.accountName.value;
	var url = dataRefreshPrefix + "/eletra/omn/data_refresh.cfm";		
	var params = "requestTimeout=1200&runType=ordersGetSales&merchantID=" + merchantID + "&accountName=" + accountName;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: getCustomerCountRefresh} );	
}

function getOrdersSales()
{	
	var merchantID = document.customer_overview.merchantId.value;
	var accountName = document.customer_overview.accountName.value;
	var url = dataRefreshPrefix + "/eletra/omn/data_refresh.cfm";		
	var params = "requestTimeout=1200&runType=ordersGetSales&merchantID=" + merchantID + "&accountName=" + accountName;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: showCustomerInfo} );	
}

function getCustomerCountRefresh()
{		
	var urlToken = document.customer_overview.urlToken.value;
	var url = "/imn/omn/get_customer_count.cfm";
	var params = "requestTimeout=1200&" + urlToken;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params, onComplete: showCustomerInfo} );
}

function getCustomerCount()
{		
	var urlToken = document.customer_overview.urlToken.value;
	var url = "/imn/omn/get_customer_count.cfm";
	var params = "requestTimeout=1200&" + urlToken;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params} );
}

function showCustomerInfo(resp)
{
	document.location.reload();
}

function dataRefreshCompleted(resp) 
{
	var data = resp.responseText
	
	if(data.indexOf("XXIMNERRORXX") > -1)
	{
		$('initial_screen_error').style.display = "block";
	}
		
	$('initial_screen_continue').style.display = "block";
	$('initial_screen_loading').style.display = "none";
		
}

function productsGet(merchantID, accountName)
{		
	var url = dataRefreshPrefix + "/eletra/omn/data_refresh.cfm";		
	var params = "requestTimeout=1200&runType=productsGet&merchantID=" + merchantID + "&accountName=" + accountName;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params} );	
}

function customersGet(merchantID, accountName)
{		
	var url = dataRefreshPrefix + "/eletra/omn/data_refresh.cfm";		
	var params = "requestTimeout=1200&runType=customersGet&merchantID=" + merchantID + "&accountName=" + accountName;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params} );	
}

function categoriesGet(merchantID, accountName)
{		
	var url = dataRefreshPrefix + "/eletra/omn/data_refresh.cfm";		
	var params = "requestTimeout=1200&runType=categoriesGet&merchantID=" + merchantID + "&accountName=" + accountName;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params} );	
}

function dataRefreshWorking() 
{
	
}

function previewLog()
{
	var merchantID = document.email_settings_form.merchantId.value;
	var accountName = document.email_settings_form.accountName.value;
	var url = "/eletra/omn/previewLog.cfm";		
	var params = "merchantID=" + merchantID + "&accountName=" + accountName;
	var myAjax = new Ajax.Request(url, { method: 'get', parameters: params} );
}


window.onload = initPage;


/* -------------------------------------------------------------------- */
/* USEFUL COMMON FUNCTIONS					        */
/* -------------------------------------------------------------------- */


function RGBtoHex(R,G,B) {return toHex(R)+toHex(G)+toHex(B)}
function toHex(N) {
 if (N==null) return "00";
 N=parseInt(N); if (N==0 || isNaN(N)) return "00";
 N=Math.max(0,N); N=Math.min(N,255); N=Math.round(N);
 return "0123456789ABCDEF".charAt((N-N%16)/16)
      + "0123456789ABCDEF".charAt(N%16);
}


/*
function fireClickEvent(elId) {
	var evt;
	var el = document.getElementById(elId);

	// Reinitializing lightbox specifically to fix issues with IE and Opera
	addLightboxMarkup();
	valid = new lightbox(el);
	
	if (document.createEvent)
	{
		evt = document.createEvent("MouseEvents");
		if (evt.initMouseEvent){
			evt.initMouseEvent("click", true, true, window,
			0, 0, 0, 0, 0, false, false, false, false, 0, null);
		} else {
			evt = false;
		}
	}
	(evt)? el.dispatchEvent(evt):(el.click && el.click() && el.fireEvent("onclick"));
}
*/


/*
showFormMask()
create iframe mask to hide select menus in IE6
positions iframe under specified element
*/
var ver = -1;
var ierv = -1;
function showFormMask(anchorLink,div) {
  if (navigator.appName == 'Microsoft Internet Explorer') {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null) { ver = parseFloat( RegExp.$1 ); }
  }	
	if (ver > -1) {	ierv = (ver < 7.0 ) ? 0 : 1; }
	if (ierv==0) {
		// first remove any existing instances of the form mask
		hideFormMask();		
		// set x/y coords for iframe mask
		var o = $(anchorLink);
  	x = Position.cumulativeOffset(o)[0];
  	y = Position.cumulativeOffset(o)[1];		
		// now create new instance
		var myDiv = $(div);
		var formMask = document.createElement('iframe');
		formMask.setAttribute('id','formMask');
		formMask.setAttribute('border','0');
		formMask.style.position = 'absolute';	
		formMask.style.top = y + $(anchorLink).offsetHeight + 'px';
		formMask.style.left = x + 'px';
		if (div=='formcalendar') { formMask.style.left = (x - 2) + 'px'; }
		formMask.style.zIndex = '1';
		formMask.style.border = 'none';
		formMask.style.width = myDiv.offsetWidth + 'px';
		formMask.style.height = myDiv.offsetHeight + 'px';
		document.body.appendChild(formMask);		
	}
}

/*
	hideFormMask()
	hides iframe form mask
*/
function hideFormMask() {
	if ((ierv==0)) {
		if($('formMask')) {
			document.body.removeChild($('formMask'));
		}
	}
}


/*
Client-side access to querystring name=value pairs.
*/
function Querystring(qs) {
	this.params = new Object()
	this.get=Querystring_get
	
	if (qs == null)
		qs=location.search.substring(1,location.search.length)

	if (qs.length == 0) return

	// Turn <plus> back to <space>
	// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&') // parse out name/value pairs separated via &
	
	// split out each name=value pair
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])

		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name
		
		this.params[name] = value
	}
}
function Querystring_get(key, default_) {
	// This line changes UNDEFINED to NULL
	if (default_ == null) default_ = null;
	
	var value=this.params[key]
	if (value==null) value=default_;
	
	return value
}

/*
isArray() determines if passed in object is an array
*/
function isArray(obj) {
	if (isNaN(obj.length))
		return false;
	else
		return true;
}

/*
IsNumeric() determines if passed in string is a valid number
*/
function IsNumeric(sText)

{
   var ValidChars = "0123456789.-";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
 }
 
/*
function RoundToQ() - round a number to the number passed in
*/
function RoundToQ(X, Q) {
    return Q * Math.round(X / Q);
}

/* 
setFormAction() - sets action for the form
*/
function setFormAction(frm,val) {
	if ($(frm)) {
		ofrm = $(frm);
		ofrm.action = val;
	}
}



/*
addLoadEvent() attaches functions to the window's load event
*/
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

/* 
addEvent() adds event handlers to elements
*/
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

/*
removeEvent() removes event handlers
*/
function removeEvent( obj, type, fn ) {
  if (obj.detachEvent) {
    obj.detachEvent( 'on'+type, obj[type+fn] );
    obj[type+fn] = null;
  } else
    obj.removeEventListener( type, fn, false );
} 

/*
EventCache() flushes all cached events on page unload
*/
var EventCache = function() {
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				}
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				}
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				}
				item[0][item[1]] = null;
			}
		}
	}
}();
addEvent(window,'unload',EventCache.flush);


/*
getElementsByClass() returns elements from the DOM by className
*/
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}


function LastDayOfMonth(Year, Month)
{
        return(new Date((new Date(Year, Month+1,1))-1)).getDate();
}


/*
Toggles element's visibility
*/
function toggleDiv(obj) {
  var el = $(obj);
	if ( el.style.display != 'block' ) {
		el.style.display = 'block';
	}	else {
		el.style.display = 'none';
	}
}

/*
findPosX() returns element's x co-ordinate
*/
function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}	else if (obj.x) {
		curleft += obj.x;
  }
	return curleft;
}

/*
Returns element's y co-ordinate
*/
function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	} else if (obj.y) {
		curtop += obj.y;
  }
	return curtop;
}

/*
isValidEmail
Purpose: to validate an email address
*/
function isValidEmail(str) {

	if (/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(str))
	{

		var emailRegEx = new RegExp("com|edu|net|org|mil|gov|biz|pro|aero|coop|info|name|int|museum|arpa|asia|cat|jobs|mobi|tel|travel|a[c-gil-oq-uwxz]|b[a-bd-jm-or-tvwyz]|c[acdf-ik-oruvx-z]|d[ejkmoz]|e[cegr-u]|f[i-kmor]|g[abd-ilmnp-uwy]|h[kmnrtu]|i[delm-oq-t]|j[emop]|k[eg-imnrwyz]|l[a-cikr-vy]|m[acdghk-z]|n[ace-gilopruz]|om|p[ae-hk-nrstwy]|qa|r[eouw]|s[a-eg-ort-vyz]|t[cdf-hj-prtvwz]|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw]");
		var data = str.split('.');
		if(data[data.length-1] == data[data.length-1].match(emailRegEx))
		{
			return (true)
		}
		else
		{
			return (false)
		}
	}
	return (false)
}


/* 
IsDate() - Checks to see if it is a date
*/
function IsDate(DateToCheck){
	if(DateToCheck==""){return false;}
	var m_strDate = FormatDate(DateToCheck);
	if(m_strDate==""){
		return false;
	}
	var m_arrDate = m_strDate.split("/");
	var m_DAY = m_arrDate[0];
	var m_MONTH = m_arrDate[1];
	var m_YEAR = m_arrDate[2];
	if(m_YEAR.length > 4){return false;}
	m_strDate = m_MONTH + "/" + m_DAY + "/" + m_YEAR;
	var testDate=new Date(m_strDate);
	if(testDate.getMonth()+1==m_MONTH){
		return true;
	} else{
		return false;
	}
}//end function



/*
Returns the current date in the specified format
*/
function GetDate(FORMAT){
	var m_TODAY = new Date();
	var m_Day = m_TODAY.getDate();
	var m_Month = (m_TODAY.getMonth()+1)
	var MY_DATE = m_Day + "/" + m_Month + "/" + m_TODAY.getYear();
	
	if(!FORMAT){
	FORMAT = "mm/dd/yyyy";
	MY_DATE = m_Month + "/" + m_Day + "/" + m_TODAY.getYear();
	}
	MY_DATE = FormatDate(MY_DATE,FORMAT);
	return MY_DATE;
}


/*
Returns the date in the specified format
*/
function FormatDate(DateToFormat,FormatAs){
	if(DateToFormat==""){return"";}
	if(!FormatAs){FormatAs="dd/mm/yyyy";}
	
	var strReturnDate;
	FormatAs = FormatAs.toLowerCase();
	DateToFormat = DateToFormat.toLowerCase();
	var arrDate
	var arrMonths = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	var strMONTH;
	var Separator;
	
	while(DateToFormat.indexOf("st")>-1){
	DateToFormat = DateToFormat.replace("st","");
	}
	
	while(DateToFormat.indexOf("nd")>-1){
	DateToFormat = DateToFormat.replace("nd","");
	}
	
	while(DateToFormat.indexOf("rd")>-1){
	DateToFormat = DateToFormat.replace("rd","");
	}
	
	while(DateToFormat.indexOf("th")>-1){
	DateToFormat = DateToFormat.replace("th","");
	}
	
	if(DateToFormat.indexOf(".")>-1){
	Separator = ".";
	}
	
	if(DateToFormat.indexOf("-")>-1){
	Separator = "-";
	}
	
	
	if(DateToFormat.indexOf("/")>-1){
	Separator = "/";
	}
	
	if(DateToFormat.indexOf(" ")>-1){
	Separator = " ";
	}
	
	arrDate = DateToFormat.split(Separator);
	DateToFormat = "";
		for(var iSD = 0;iSD < arrDate.length;iSD++){
			if(arrDate[iSD]!=""){
			DateToFormat += arrDate[iSD] + Separator;
			}
		}
	DateToFormat = DateToFormat.substring(0,DateToFormat.length-1);
	arrDate = DateToFormat.split(Separator);
	
	if(arrDate.length < 3){
	return "";
	}
	
	var DAY = arrDate[0];
	var MONTH = arrDate[1];
	var YEAR = arrDate[2];
	
	
	
	
	if(parseFloat(arrDate[1]) > 12){
	DAY = arrDate[1];
	MONTH = arrDate[0];
	}
	
	if(parseFloat(DAY) && DAY.toString().length==4){
	YEAR = arrDate[0];
	DAY = arrDate[2];
	MONTH = arrDate[1];
	}
	
	
	for(var iSD = 0;iSD < arrMonths.length;iSD++){
	var ShortMonth = arrMonths[iSD].substring(0,3).toLowerCase();
	var MonthPosition = DateToFormat.indexOf(ShortMonth);
		if(MonthPosition > -1){
		MONTH = iSD + 1;
			if(MonthPosition == 0){
			DAY = arrDate[1];
			YEAR = arrDate[2];
			}
		break;
		}
	}
	
	var strTemp = YEAR.toString();
	if(strTemp.length==3){
		YEAR = YEAR.substring(1,3);
	}
	var strTemp = YEAR.toString();
	
	if(strTemp.length==2){
	
		if(parseFloat(YEAR)>40){
		YEAR = "19" + YEAR;
		}
		else{
		YEAR = "20" + YEAR;
		}
	
	}

	if(parseInt(MONTH)< 10 && MONTH.toString().length < 2){
	MONTH = "0" + MONTH;
	}
	if(parseInt(DAY)< 10 && DAY.toString().length < 2){
	DAY = "0" + DAY;
	}
	switch (FormatAs){
	case "dd/mm/yyyy":
	return DAY + "/" + MONTH + "/" + YEAR;
	case "mm/dd/yyyy":
	return MONTH + "/" + DAY + "/" + YEAR;
	case "dd/mmm/yyyy":
	return DAY + " " + arrMonths[MONTH -1].substring(0,3) + " " + YEAR;
	case "mmm/dd/yyyy":
	return arrMonths[MONTH -1].substring(0,3) + " " + DAY + " " + YEAR;
	case "dd/mmmm/yyyy":
	return DAY + " " + arrMonths[MONTH -1] + " " + YEAR;	
	case "mmmm/dd/yyyy":
	return arrMonths[MONTH -1] + " " + DAY + " " + YEAR;
	}

	return DAY + "/" + strMONTH + "/" + YEAR;;
} //FormatDate()


var Url = {

	// public method for url encoding
	encode : function (string) {
		return escape(this._utf8_encode(string));
	},

	// public method for url decoding
	decode : function (string) {
		return this._utf8_decode(unescape(string));
	},

	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";

		for (var n = 0; n < string.length; n++) {

			var c = string.charCodeAt(n);

			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}

		}

		return utftext;
	},

	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i < utftext.length ) {

			c = utftext.charCodeAt(i);

			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}

		}

		return string;
	}

}


//]]>