vbarchivesn=xppr('archives_0.gif');
vbarchiveso=xppr('archives_1.gif');
vbarchivesc=xppr('archives_2.gif');
vblogoutn=xppr('logout_0.gif');
vblogouto=xppr('logout_1.gif');
vblogoutc=xppr('logout_2.gif');
vbdkn=xppr('dk_0.gif');
vbdko=xppr('dk_1.gif');
vbdkc=xppr('dk_2.gif');
vb7kn=xppr('7k_0.gif');
vb7ko=xppr('7k_1.gif');
vb7kc=xppr('7k_2.gif');
vbqkn=xppr('qk_0.gif');
vbqko=xppr('qk_1.gif');
vbqkc=xppr('qk_2.gif');
vbmkn=xppr('mk_0.gif');
vbmko=xppr('mk_1.gif');
vbmkc=xppr('mk_2.gif');
vb5kn=xppr('5k_0.gif');
vb5ko=xppr('5k_1.gif');
vb5kc=xppr('5k_2.gif');
vbakn=xppr('ak_0.gif');
vbako=xppr('ak_1.gif');
vbakc=xppr('ak_2.gif');
vbskn=xppr('sk_0.gif');
vbsko=xppr('sk_1.gif');
vbskc=xppr('sk_2.gif');
var btIdPref='vb';
function xppr(im){
	var i=new Image();
	i.src='/images/buttons/bt'+im;
	return i;
};
function xpe(id){
	x=id.substring(0,id.length-1);
	
if(document[btIdPref+x])document[btIdPref+x].src=eval(btIdPref+id+'.src');
	return false;
};

var subscriberList = null;

function changeFont(e) {
	var sindex = e.selectedIndex;
	var svalue = e.options[sindex].value;
	e.parentNode.nextSibling.nextSibling.style.fontFamily=svalue;
}
function changeSize(e) {
	var sindex = e.selectedIndex;
	var svalue = e.options[sindex].value;
	e.parentNode.nextSibling.nextSibling.style.fontSize=svalue;
}

function validateComposeForm() {
	var frm_subject = document.getElementById('maintitle');
	var frm_textmessage = document.getElementById('plaintext');
	var result = true;
	var errorText = 'The Following Fields Are Required';
	if (frm_subject.value==''||frm_subject.value==null) {
		frm_subject.style.border='2px solid red';
		frm_subject.style.backgroundColor='#FFCECE';
		errorText += "\nYou must enter a subject that will be used for your Newsletter."
		result = false;
	} else {
		frm_subject.style.border='2px groove grey';
		frm_subject.style.backgroundColor='#FFF';
	}
	if (frm_textmessage.value==''||frm_textmessage.value==null) {
		frm_textmessage.style.border='2px solid red';
		frm_textmessage.style.backgroundColor='#FFCECE';
		errorText += "\nYou must enter a plain text body that will be used for your Newsletter."
		result = false;
	} else {
		frm_textmessage.style.border='2px groove grey';
		frm_textmessage.style.backgroundColor='#FFF';
	}
	if (result===false) alert(errorText);
	return result;
}

function getNextSibling(n) {
//	alert(n);
	if (!n.nextSibling) return false;
	x=n.nextSibling;
	while (x.nodeType!=1) {
		x=x.nextSibling;
	}
	return x;
}

function changeTab(myelement, tab) {
	var parentElement = myelement.parentNode.parentNode;
	var childrenElements = parentElement.childNodes;
	for (var i=0;i<childrenElements.length;i++) {
		if (!childrenElements[i].id) continue;
		var idToUse = childrenElements[i].id;
		if (idToUse && idToUse==tab) {
			childrenElements[i].style.display='block';
		} else if (idToUse!==undefined) {
			childrenElements[i].style.display='none';
		}
	}
	myelement.parentNode.style.display='block';
	var tabelement = document.getElementById('tab');
	var childrenSpan = tabelement.childNodes;
	for (var j=0;j<childrenSpan.length;j++) {
		var currentChildSpan = childrenSpan[j];
		if (!currentChildSpan.nodeName) continue;
		if (!currentChildSpan.nodeName=='SPAN' || currentChildSpan.id==undefined) continue;
		var tempChild = addAttribute(childrenSpan[j], "class", "normal");
	}
	myelement = addAttribute(myelement, 'class', 'active');
	var nextElement = getNextSibling(myelement);
	var previousElement = myelement.previousSibling;
	if (nextElement!==false) nextElement = addAttribute(nextElement, 'class', 'nearactive');
	if (typeof(previousElement)=='object') previousElement = addAttribute(previousElement, 'class', 'nearactive');
}

function displaySubscriberList(responseText) {
	subscriberList = responseText;
	if (!document.getElementById('recipientSelector')) return false;
	var area = document.getElementById('recipientSelector');
	var heading = document.createElement('h1');
	heading.appendChild(document.createTextNode('Confirmed Subscribers List'));
	var desc = document.createElement('p');
	desc.appendChild(document.createTextNode('Please select the recipients you would like to send this list to from the available subscribers shown below'));
	desc.style.textAlign = 'center';
	heading.style.backgroundColor = '#888888';
	heading.style.color = '#FFFFFF';
	heading.style.margin = '0px';
	heading.style.fontSize = '11pt';
	heading.style.textAlign = 'center';
	while (area.childNodes.length>0) {
		area.removeChild(area.firstChild);
	}
	area.style.margin = '10px';
	area.style.border = '1px solid #888888';
	area.appendChild(heading);
	var subarea = document.createElement('div');
	subarea.style.overflow = 'scroll';
	subarea.style.height = '200px';
	subarea.appendChild(desc);
	var subscriberStr = subscriberList.split(';');
	for (var i=0;i<subscriberList.length;i++) {
		if (subscriberStr[i]=='') continue;
		if (subscriberStr[i]==undefined) continue;
		var subscriber = subscriberStr[i].split(':');
		var paragraph = document.createElement('p');
		var myInput = document.createElement('input');
		myInput = addAttribute(myInput, 'type', 'checkbox');
		myInput = addAttribute(myInput, 'name', 'subscriber' + subscriber[0]);
		paragraph.appendChild(myInput);
		paragraph.appendChild(document.createTextNode(subscriber[1]));
		paragraph.style.width = '32%';
		paragraph.style.cssFloat = 'left';
		paragraph.style.border = '1px solid #eeeeee';
		subarea.appendChild(paragraph);
	}
	area.appendChild(subarea);
}

function toMethodChange(toMethod) {
	if (!document.getElementById('toMethodArea')) return false;
	var area = document.getElementById('toMethodArea');
	while (area.childNodes.length>0) {
		area.removeChild(area.firstChild);
	}
	switch (toMethod) {
		case 'selection':
			var mainParagraph = document.createElement('p');
			var recipientArea = document.createElement('div');
			recipientArea = addAttribute(recipientArea, 'id', 'recipientSelector');
			secondaryParagraph = document.createElement('p');
			secondaryParagraph.appendChild(document.createTextNode('Loading Subscriber List Now'));
			recipientArea.appendChild(secondaryParagraph);
			area.appendChild(mainParagraph);
			area.appendChild(recipientArea);
			if (subscriberList==null) {
				ajaxRequest('/publishers/', 'task=subscriberlist', displaySubscriberList);
			} else {
				displaySubscriberList(subscriberList);
			}
			break;
		case 'upload':
			var heading = document.createElement('h1');
			heading.appendChild(document.createTextNode('CSV Upload Of Recipients'));
			heading.style.backgroundColor = '#888888';
			heading.style.color = '#FFFFFF';
			heading.style.margin = '0px';
			heading.style.fontSize = '11pt';
			heading.style.textAlign = 'center';
			area.appendChild(heading);
			var mainParagraph = document.createElement('p');
			mainParagraph.appendChild(document.createTextNode('Please use the following input box to select a CSV file containing recipients to upload and use for this Newsletter.'));
			mainParagraph.appendChild(document.createElement('br'));
			mainParagraph.appendChild(document.createTextNode('The CSV file must have the column names in the very first row and can have any of the following column headings,'));
			mainParagraph.appendChild(document.createElement('br'));
			mainParagraph.appendChild(document.createTextNode('email, emailaddress, firstname, lastname, lastnames, salutation. Any additional columns will be ignored and if no email or emailaddress column is found the Pending Newsletter will be cancelled'));
			var uploadFile = document.createElement('input');
			uploadFile = addAttribute(uploadFile, 'type', 'file');
			uploadFile = addAttribute(uploadFile, 'name', 'csvupload');
			mainParagraph.appendChild(document.createElement('br'));
			mainParagraph.appendChild(uploadFile);
			mainParagraph.style.padding = '5px';
			area.appendChild(mainParagraph);
			area.style.margin = '10px';
			area.style.border = '1px solid #888888';
			break;
		case 'everyone':
		case 'noone':
		default:
			break;
	}
}

function previewEmail() {
	var inst = FCKeditorAPI.GetInstance("htmltext");
	var htmlcontent = escape(inst.GetHTML());
	var textcontent = document.getElementById('plaintext').value;
	var subject = document.getElementById('maintitle').value;

	var hiddenelements = document.getElementsByTagName('input');
	var hiddenstr = '';
	for (var i=0;i < hiddenelements.length;i++) {
		if (hiddenelements[i].type=='hidden') {
			hiddenstr += "&" + hiddenelements[i].name + "=" + hiddenelements[i].value;
		}
	}
	var email = '';
	email = prompt('Please Enter The Email Address You Would Like The Preview To Be Sent To');
	if (email!=='' && email!==null) {
		ajaxRequest('/publishers/', 'task=preview&subject=' + subject + '&text=' + textcontent + '&html=' + htmlcontent + '&email=' + email + hiddenstr, alertResponse);
	}
}

function addEvent(myelement, eventName, functionToCall, propogate) {
        if (typeof(myelement)==String) {
		myelement = document.getElementById(myelement);
	}
        if (myelement.addEventListener) {
                myelement.addEventListener(eventName, functionToCall, propogate);
                return true;
        } else if (myelement.attachEvent) {
                myelement.attachEvent('on'+ eventName, functionToCall);
                return true;
        } else {
                myelement['on' + eventName] = functionToCall;
                return true;
        }
}

function clearComposeDom() {
	if (document.getElementById('optioncontent')) {
		 removeChildren(document.getElementById('optioncontent'));
	}
}

function displayCustomCompose() {
	if (document.getElementById('currentmethod')=='custom') {
		return true;
	}
	document.getElementById('currentmethod').value='custom';
	clearComposeDom();
	if (document.getElementById('optioncontent')) {
		var mainblock = document.createElement('div');
		mainblock = addAttribute(mainblock, 'class', 'customblock');
		var heading = document.createElement('h3');
		var textnode = document.createTextNode('Custom Template Options');
		heading.appendChild(textnode);
		mainblock.appendChild(heading);

		var paragraph1 = document.createElement('p');

		paragraph1.appendChild(document.createTextNode("Would you like to use create an HTML email section for this Newsletter. HTML sections work in the same way a web page works and can achieve the same look and feel of a web page."));
		paragraph1.appendChild(document.createElement('br'));

		var htmlinput1 = document.createElement(document.all?'<input name="htmlcontent">':'input');
		htmlinput1.type = 'radio';
		htmlinput1 = addAttribute(htmlinput1, 'name', 'htmlcontent');
		htmlinput1.value = '1';

		paragraph1.appendChild(htmlinput1);
		paragraph1.appendChild(document.createTextNode("Yes I would like to create an HTML message as well as a standard text message."));
		paragraph1.appendChild(document.createElement('br'));

		var htmlinput2 = document.createElement(document.all?'<input name="htmlcontent">':'input');
		htmlinput2.type = 'radio';
		htmlinput2 = addAttribute(htmlinput2, 'name', 'htmlcontent');
		htmlinput2.value = '0';

		paragraph1.appendChild(htmlinput2);
		paragraph1.appendChild(document.createTextNode("No I would like to create only a text message."));
		mainblock.appendChild(paragraph1);

		addEvent(htmlinput1, 'click', displayHtmlOptions, false);
		addEvent(htmlinput2, 'click', removeHtmlOptions, false);

		var htmlselected = document.createElement('div');
		htmlselected.id='htmloptions';
		mainblock.appendChild(htmlselected);

		var completedsection = document.createElement('p');
		var submitbutton = document.createElement('input');
		submitbutton.type = 'submit';
		submitbutton.name = 'proceed';
		submitbutton.value = 'Proceed';
		submitbutton = addAttribute(submitbutton, 'class', 'simple');


		completedsection.appendChild(submitbutton);
		mainblock.appendChild(completedsection);

		var optioncontent = document.getElementById('optioncontent');
		optioncontent.appendChild(mainblock);
	}
}

function displayHtmlOptions() {
	if (document.getElementById('htmloptions')) {
		removeChildren(document.getElementById('htmloptions'));
	}
	if (!document.getElementById('htmloptions')) {
		return true;
	}
	var section = document.getElementById('htmloptions');
	var heading = document.createElement('h3');
	var textnode = document.createTextNode('HTML Newsletter Options');
	heading.appendChild(textnode);
	section.appendChild(heading);
	var paragraph = document.createElement('p');
	paragraph.appendChild(document.createTextNode("The following options will allow you to configure the HTML message within your Newsletter."));
	section.appendChild(paragraph);

	var heading1 = document.createElement('h4');
	heading1.appendChild(document.createTextNode('Page Width'));
	section.appendChild(heading1);

	var paragraph1 = document.createElement('p');
	paragraph1.appendChild(document.createTextNode("Please select the width of the html message. It can be either a fixed width (number of pixels) or a percentage of the page."));
	paragraph1.appendChild(document.createElement('br'));
	var widthselect = document.createElement('select');
	widthselect.name='htmlpagewidthperc';
	widthselect.id='htmlpagewidthperc';
	widthselect = addPageWidthOption(widthselect, '100%');
	widthselect = addPageWidthOption(widthselect, '90%');
	widthselect = addPageWidthOption(widthselect, '80%');
	widthselect = addPageWidthOption(widthselect, '70%');
	widthselect = addPageWidthOption(widthselect, '60%');
	widthselect = addPageWidthOption(widthselect, '50%');
	widthselect = addPageWidthOption(widthselect, '800px');
	widthselect = addPageWidthOption(widthselect, '700px');
	widthselect = addPageWidthOption(widthselect, '600px');
	widthselect = addPageWidthOption(widthselect, '500px');
	widthselect = addPageWidthOption(widthselect, '400px');
	widthselect = addPageWidthOption(widthselect, '300px');

	paragraph1.appendChild(document.createTextNode("Choose A Percentage: "));
	paragraph1.appendChild(widthselect);
	paragraph1.appendChild(document.createElement('br'));
	paragraph1.appendChild(document.createTextNode("Or Enter A Fixed Width: "));
	var widthinput = document.createElement('input');
	widthinput.id='htmlpagewidthpix';
	widthinput.name='htmlpagewidthpix';
	paragraph1.appendChild(widthinput);
	section.appendChild(paragraph1);

	var heading6 = document.createElement('h4');
	heading6.appendChild(document.createTextNode('Background Colour'));
	section.appendChild(heading6);

	var paragraph2 = document.createElement('p');
	paragraph2.appendChild(document.createTextNode("Please select a background colour for your HTML message. By default this will be white."));
	paragraph2.appendChild(document.createElement('br'));
	paragraph2.appendChild(document.createTextNode("You can choose a colour by simply clicking the colour you wish to use in the box below or alternativly enter the hex value into the box to the right of the colours."));

	colourselecttable = createColourChart('htmlbackcolor', updateBackgroundColour);

	section.appendChild(paragraph2);
	section.appendChild(colourselecttable);

	var heading2 = document.createElement('h4');
	heading2.appendChild(document.createTextNode('Font Options'));
	section.appendChild(heading2);
	var paragraph3 = document.createElement('p');
	paragraph3.appendChild(document.createTextNode('Please choose your primary font settings from the options below. This will set the look of the initial fonts in the newsletter.'));
	paragraph3.appendChild(document.createElement('br'));
	paragraph3.appendChild(document.createTextNode('Font Style '));
	var fontselect = document.createElement('select');
	fontselect.name='htmlfontfamily';
	fontselect = addFontFamilyOption(fontselect, "Arial", "sans-serif");
	fontselect = addFontFamilyOption(fontselect, "Arial Black", "sans-serif");
	fontselect = addFontFamilyOption(fontselect, "Century Gothic", "sans-serif");
	fontselect = addFontFamilyOption(fontselect, "Courier", "serif");
	fontselect = addFontFamilyOption(fontselect, "Courier New", "serif");
	fontselect = addFontFamilyOption(fontselect, "Helvetica", "sans-serif");
	fontselect = addFontFamilyOption(fontselect, "Tahoma", "sans-serif");
	fontselect = addFontFamilyOption(fontselect, "Times New Roman", "serif");
	fontselect = addFontFamilyOption(fontselect, "Verdana", "sans-serif");

	paragraph3.appendChild(fontselect);
	paragraph3.appendChild(document.createElement('br'));
	paragraph3.appendChild(document.createTextNode('Font Size '));

	var fontsizeselect = document.createElement('select');
	fontsizeselect.name='htmlfontsize';
	fontsizeselect = addFontSizeOption(fontsizeselect, "6");
	fontsizeselect = addFontSizeOption(fontsizeselect, "7");
	fontsizeselect = addFontSizeOption(fontsizeselect, "8");
	fontsizeselect = addFontSizeOption(fontsizeselect, "9");
	fontsizeselect = addFontSizeOption(fontsizeselect, "10");
	fontsizeselect = addFontSizeOption(fontsizeselect, "11");
	fontsizeselect = addFontSizeOption(fontsizeselect, "12");
	fontsizeselect = addFontSizeOption(fontsizeselect, "13");
	fontsizeselect = addFontSizeOption(fontsizeselect, "14");
	fontsizeselect = addFontSizeOption(fontsizeselect, "15");
	paragraph3.appendChild(fontsizeselect);

	paragraph3.appendChild(document.createElement('br'));
	paragraph3.appendChild(document.createTextNode('Font Colour '));
 	section.appendChild(paragraph3);
	colourselecttable = createColourChart('htmlforecolor', updateForegroundColour);
 	section.appendChild(colourselecttable);

}

function createColourChart(inputName, eventToCall) {
	var table = document.createElement('table');
	var colourselecttable = document.createElement('tbody');
	table = addAttribute(table, 'class', 'colourchart');

	var row = addRow();
	var mainfield = document.createElement('td');
	var p = document.createElement('p');

	p.appendChild(document.createTextNode('w'));
	p.style.color = '#000000';
	mainfield.appendChild(p);
	mainfield = addAttribute(mainfield, 'colspan', '64');
	mainfield.style.backgroundColor = '#000000';
	row.appendChild(mainfield);
	colourselecttable.appendChild(row);
	addEvent(mainfield, 'click', eventToCall, false);

	for (var r=0;r < 255;r=r+36) {
		var rowx = addRow();
		for (var g=0;g <= 255;g=g+36) {
			for (var b=0;b <= 255;b=b+36) {
				hexcolour = "#" + dectohex(g) + dectohex(b) + dectohex(r);
				rowx = addTableColumn(rowx, hexcolour, eventToCall);
			}
		}
		colourselecttable.appendChild(rowx);
	}
	var row1 = addRow();
	var mainfield2 = document.createElement('td');
	mainfield2.style.borderTop = '1px solid #000000';
	var p2 = document.createElement('p');
	p2.style.color = '#ffffff';
	p2.appendChild(document.createTextNode('w'));
	mainfield2.appendChild(p2);
	mainfield2 = addAttribute(mainfield2, 'colspan', '64');
	mainfield2.style.backgroundColor = '#ffffff';
	row1.appendChild(mainfield2);
	colourselecttable.appendChild(row1);
	addEvent(mainfield2, 'click', eventToCall, false);

	var htmlbackcolor = document.createElement('input');
	htmlbackcolor.type = 'text';
	htmlbackcolor.name = inputName;
	htmlbackcolor.id = inputName;
	switch (inputName) {
		case 'htmlforecolor':
			htmlbackcolor.value = 'rgb(0, 0, 0)';
			break;
		default:
			htmlbackcolor.value = 'rgb(255, 255, 255)';
			break;
	}

	var paragraph4 = document.createElement('p');
	paragraph4.appendChild(document.createTextNode('Enter The RGB Value Of The Colour You Wish To Use'));
	paragraph4.appendChild(htmlbackcolor);

	var container = document.createElement('div');
	table.appendChild(colourselecttable);
	container.appendChild(table);
	container.appendChild(paragraph4);
	return container;
}

function addFontFamilyOption(selectbox, fontname, fontfamily) {
	var optionlength = selectbox.options.length;
	selectbox.options[optionlength] = new Option(fontname,"'" + fontname + "', " + fontfamily + "");
	selectbox.options[optionlength].style.fontFamily = "'" + fontname + "', " + fontfamily + "";
	return selectbox;
}

function addFontSizeOption(selectbox, sizeoffont) {
	var optionlength = selectbox.options.length;
	selectbox.options[optionlength] = new Option(sizeoffont + " pt\tThis is some example text",sizeoffont + "pt");
	selectbox.options[optionlength].style.fontSize = sizeoffont + "pt";
	return selectbox;
}

function addPageWidthOption(selectbox, pagewidth) {
	var optionlength = selectbox.options.length;
	selectbox.options[optionlength] = new Option(pagewidth,pagewidth);
	return selectbox;
}

function updateForegroundColour(e) {
	if (window.event) {
		e = window.event;
		var triggerelement = e.srcElement;
	} else {
		var triggerelement = e.target;
	}
	var colour = triggerelement.style.color;
	document.getElementById('htmlforecolor').value = colour;
	document.getElementById('htmlforecolor').style.color = colour;
	document.getElementById('htmlbackcolor').style.color = colour;
}

function updateBackgroundColour(e) {
	if (window.event) {
		e = window.event;
		var triggerelement = e.srcElement;
	} else {
		var triggerelement = e.target;
	}
	var colour = triggerelement.style.color;
	document.getElementById('htmlbackcolor').value = colour;
	document.getElementById('htmlbackcolor').style.backgroundColor = colour;
	document.getElementById('htmlforecolor').style.backgroundColor = colour;
}

function addTableColumn(tableRow, backgroundcolour,eventToCall) {
	var field = document.createElement('td');
	var fieldp = document.createElement('p');
	fieldp.appendChild(document.createTextNode('w'));
	fieldp.style.color = backgroundcolour;
	field.appendChild(fieldp);
	field.style.backgroundColor = backgroundcolour;
	tableRow.appendChild(field);
	addEvent(field, 'click', eventToCall, false);
	return tableRow;
}

function addRow() {
	var row = document.createElement('tr');
	return row;
}

function dectohex(decimal) {
	str = decimal.toString(16);
	if (str.length==1) {
		str='0'+str;
	}
	return str;
}

function removeChildren(elementToUse) {
	while (elementToUse.hasChildNodes()){
		elementToUse.removeChild(elementToUse.firstChild);
	}
}

function removeHtmlOptions() {
	if (document.getElementById('htmloptions')) {
		removeChildren(document.getElementById('htmloptions'));
	}
}

function displayTemplateCompose(page) {
	if (document.getElementById('currentmethod')=='template') {
		return true;
	}
	document.getElementById('currentmethod').value='template';
	clearComposeDom();
	trueAjaxRequest('/Ajax/getTemplates.php', 'p=' + page, insertTemplateOptions, true);
}


function displayTemplateUpload() {
	if (document.getElementById('currentmethod')=='template') {
		return true;
	}
	document.getElementById('currentmethod').value='template';
	clearComposeDom();
	displayUploadOptions();
}

function displayUploadOptions() {
	if (document.getElementById('optioncontent')) {
		var optioncontent = document.getElementById('optioncontent');
		var mainblock = document.createElement('div');
		mainblock = addAttribute(mainblock, 'class', 'templateupload');
		var mainheading = document.createElement('h3');
		mainheading.appendChild(document.createTextNode('Upload A Template & Images'));
		var uploadp = document.createElement('p');
		uploadp.appendChild(document.createTextNode('Please enter use the following box to select the file that you wish to upload and use as a template.'));
		uploadp.appendChild(document.createElement('br'));
		uploadp.appendChild(document.createTextNode('Once you click proceed you will be taken to the Newsletter composer and will be able to make last minute changes to the content.'));
		uploadp.appendChild(document.createElement('br'));
		var fileupload = document.createElement('input');
		fileupload.type='file';
		fileupload.name='templatefile';
		fileupload = addAttribute(fileupload, 'size', '100');
		uploadp.appendChild(fileupload);
		uploadp.appendChild(document.createElement('br'));
		uploadp.appendChild(document.createElement('br'));
		uploadp.appendChild(document.createElement('br'));
		uploadp.appendChild(document.createTextNode('You can also at this point choose to upload any images you require for you newsletter that you do not already have online provided you have space remaining on your profile.'));
		uploadp.appendChild(document.createElement('br'));

		var imagep = document.createElement('p');
		var imageupload = document.createElement('input');
		imageupload.type='file';
		imageupload.name='imagefile[]';
		imageupload = addAttribute(imageupload, 'size', '60');
		imagep.appendChild(document.createTextNode('Image To Upload: '));
		imagep.appendChild(imageupload);
		imagep.appendChild(document.createElement('br'));

		var addSlot = document.createElement('input');
		addSlot.type='button';
		addSlot.name='addSlot';
		addSlot.value='Add Another Image Upload Slot';
		addSlot = addAttribute(addSlot, 'class', 'simple');
		imagep.appendChild(addSlot);
		imagep.appendChild(document.createElement('br'));
		addEvent(addSlot, 'click', addNewImageUploadSlot, false);

		mainblock.appendChild(mainheading);
		mainblock.appendChild(uploadp);
		mainblock.appendChild(imagep);

		var completedsection = document.createElement('p');
		completedsection = addAttribute(completedsection, 'class', 'proceed');
		var submitbutton = document.createElement('input');
		submitbutton.type = 'submit';
		submitbutton.name = 'proceed';
		submitbutton.value = 'Proceed';

		submitbutton = addAttribute(submitbutton, 'class', 'simple');

		completedsection.appendChild(submitbutton);
		mainblock.appendChild(completedsection);


		optioncontent.appendChild(mainblock);
	}
}

function addNewImageUploadSlot(e) {
	var imageupload = document.createElement('input');
	imageupload.type='file';
	imageupload.name='imagefile[]';
	imageupload = addAttribute(imageupload, 'size', '60');
	var uploadp = document.createElement('span');
	uploadp.appendChild(document.createTextNode('Image To Upload: '));
	uploadp.appendChild(imageupload);
	uploadp.appendChild(document.createElement('br'));
	if (window.event) {
		e = window.event;
		var button = e.srcElement;
	} else {
		var button = e.target;
	}

	button.parentNode.insertBefore(uploadp,button);
}

var largecount = 1;

function insertTemplateOptions(responseXml) {
	if (document.getElementById('optioncontent')) {
		var optioncontent = document.getElementById('optioncontent');
		var templateoptions = responseXml.getElementsByTagName('template');
		var contents = document.createElement('div');
		contents = addAttribute(contents, 'class', 'templateoptions');
		var contentheading = document.createElement('h3');
		contentheading.appendChild(document.createTextNode('Available Templates'));
		contents.appendChild(contentheading);
		for(var i=0;i < templateoptions.length;i++) {
			// Get the name
			var children = templateoptions[i].childNodes;
			for(var j=0;j < children.length;j++) {
				var tempnode = children[j];
				switch(tempnode.nodeName) {
					case 'optionname':
						if (tempnode.childNodes[0]) {
							var optionname = tempnode.childNodes[0].nodeValue;
						}
						break;
					case 'optionid':
						if (tempnode.childNodes[0]) {
							var optionid = tempnode.childNodes[0].nodeValue;
						}
						break;
					case 'optiondesc':
						if (tempnode.childNodes[0]) {
							var optiondesc = tempnode.childNodes[0].nodeValue;
						}
						break;
					case 'optionthumbnail':
						if (tempnode.childNodes[0]) {
							var optionthumb = tempnode.childNodes[0].nodeValue;
						}
						break;
					case 'optionimage':
						if (tempnode.childNodes[0]) {
							var optionimage = tempnode.childNodes[0].nodeValue;
						}
						break;
				}
			}
			var singleoption = document.createElement('div');
			singleoption = addAttribute(singleoption, 'class', 'singleoption');
			largecount++;
			var optionheading = document.createElement('h4');
			var imagenode = document.createElement('img');
			imagenode.src = optionthumb;
			imagenode = addAttribute(imagenode, 'alt', optionname);
			imagenode = addAttribute(imagenode, 'title', optionname);
			imagenode.style.height = "150px";

			var radiobutton = document.createElement(document.all?'<input name="templateoption">':'input');
			radiobutton.type='radio';
			radiobutton.name='templateoption';
			radiobutton.value=optionid;
			optionheading.appendChild(imagenode);
			optionheading.appendChild(document.createElement('br'));
			optionheading.appendChild(radiobutton);
			optionheading.appendChild(document.createTextNode(optionname));

			singleoption.appendChild(optionheading);

			var mainnode = document.createElement('p');
			mainnode.appendChild(document.createTextNode("Description: " + optiondesc));
			mainnode.appendChild(document.createElement('br'));
			mainnode.appendChild(document.createTextNode("(Click On The Image For A Larger View)"));
			addEvent(imagenode, 'click', function(){window.open(optionimage, "Template", "menubar=no,width=700,height=500,toolbar=no");}, false);

			singleoption.appendChild(mainnode);
			contents.appendChild(singleoption);
		}

		var completedsection = document.createElement('p');
		completedsection = addAttribute(completedsection, 'class', 'proceed');
		var submitbutton = document.createElement('input');
		submitbutton.type = 'submit';
		submitbutton.name = 'proceed';
		submitbutton.value = 'Proceed';

		submitbutton = addAttribute(submitbutton, 'class', 'simple');

		completedsection.appendChild(submitbutton);
		contents.appendChild(completedsection);

		optioncontent.appendChild(contents);
	} else {
		alert('Unable to identify available templates');
	}
}

//function addAttribute(attelement, attname, attvalue) {
//	var attribute = document.createAttribute(attname);
//	attribute.value = attvalue;
//	attelement.setAttributeNode(attribute);
//	return attelement;
//}

function  addAttribute(attelement, attname, attvalue) {
	if (attname=='class' && document.all) attname = 'className';
	attelement.setAttribute(attname, attvalue);
	return attelement;
}

function popup(linkToUse) {
	var day = new Date();
	var id = day.getTime();
	eval("page" + id + " = window.open(linkToUse, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=500,left=262,top=134');");
}

function getCharacterCount(fckName, plainTextId, recipientsId, newlettertitleId) {
	var oEditor = FCKeditorAPI.GetInstance(fckName);
	var content = oEditor.GetHTML();
	var charcount = content.length;
	content = document.getElementById(plainTextId).value;
	charcount += content.length;
	content = document.getElementById(recipientsId).value;
	charcount += content.length;
	content = document.getElementById(newlettertitleId).value;
	charcount += content.length;
	return charcount;
}

function updateEstimatedSendTime() {
	var charcount = getCharacterCount('htmltext','plaintext', 'recipients', 'maintitle');
	var sendtime = document.getElementById('sendtime').value;
	var argumentsToSend = "charcount=" + charcount + "&sendtime=" + sendtime;
	ajaxRequest('/Ajax/updateTime.php', argumentsToSend, responseEstimateSendTime);
}

function responseEstimateSendTime(responseText) {
	document.getElementById('estimate').innerHTML = responseText;
}

function alertResponse(responseText) {
	alert(responseText);
}

function ajaxRequest(pageToRequest, argumentsToSent, functionToCall) {
        trueAjaxRequest(pageToRequest, argumentsToSent, functionToCall, false);
}

function trueAjaxRequest(pageToRequest, argumentsToSent, functionToCall, xml) {
        var xmlhttp = null;

        if (window.XMLHttpRequest) {
                xmlhttp=new XMLHttpRequest();
        } else if (window.ActiveXObject) {
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        if (xmlhttp!==null) {
                xmlhttp.onreadystatechange = function(){
                        if(xmlhttp.readyState == 4){
                                if (xmlhttp.status == 200) {
                                        if (xml) {
                                                functionToCall(xmlhttp.responseXML);
                                        } else {
                                                functionToCall(xmlhttp.responseText);
                                        }
                                } else {
                                        alert('Problem Loading Page ::: code-' + xmlhttp.status);
                                }
                        }
                }
                xmlhttp.open("POST",pageToRequest,true);
                xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                xmlhttp.setRequestHeader("Content-length", argumentsToSent.length);
                xmlhttp.setRequestHeader("Connection", "close");
                xmlhttp.send(argumentsToSent);
        }
}

function switchComposeMethod() {
	if (document.getElementsByName('composemethod')) {
		var composeOptions = document.getElementsByName('composemethod');
		composeMethod='';
		for(var i=0;i < composeOptions.length;i++) {
			if (composeOptions[i].checked===true) {
				var composeMethod = composeOptions[i].value;
			}
		}
		switch (composeMethod) {
			case 'template':
				displayTemplateCompose(1);
				break;
			case 'upload':
				displayTemplateUpload();
				break;
			default:
				displayCustomCompose();
				break;
		}
	} else {
		alert('Unable to toggle controls');
	}
}

