var greetingTemplateId;
var greetingExtras;
var greetingAnimation;
var greetingExtraIds;
var greetingLine1;
var greetingLine2;
var greetingFrom;
var greetingMessage;

function setupCard(id) {
	greetingTemplateId = id;
	greetingExtras = new Array();
	greetingExtraIds = "";
	greetingLine1 = "Greeting Line 1";
	greetingLine2 = "Greeting Line 2";
	greetingMessage = "Message!";
	greetingFrom = "From";

}

function refreshPreview() {
	greetingLine1 = document.getElementById('line1').value;
	greetingLine2 = document.getElementById('line2').value;
	greetingMessage = document.getElementById('message').value;
	greetingFrom = document.getElementById('from').value;
	var extras = document.getElementsByTagName('extra');
	for (i in extras) {
		toggleExtra(extras[i].value);
	}
	previewCard();
}

function changeLine1(input) {
	greetingLine1 = input
	previewCard();
}

function changeLine2(input) {
	greetingLine2 = input
	previewCard();
}

function changeMessage(input) {
	greetingMessage = input
	previewCard();
}

function previewCard() {
	var cardContainer = document.getElementById('cardContainer');
	var so = new SWFObject("/flash/greeting.swf", "GreetingCard", "500", "375", "8", "#FFFFFF");
	so.addParam("wmode", "transparent");
	so.addVariable("greetingTemplateId", greetingTemplateId);
	so.addVariable("greetingExtraIds", greetingExtraIds);
	so.addVariable("greetingLine1", greetingLine1);
	so.addVariable("greetingLine2", greetingLine2);
	so.addVariable("greetingFrom", greetingFrom);
	so.addVariable("greetingMessage", greetingMessage);
	so.addVariable("greetingSample", "TRUE");
	so.write("flashcontent");
}

function updateExtras() {
	greetingExtraIds = "";
	for(i in greetingExtras) {
		greetingExtraIds +=  greetingExtras[i] + ",";
	}
	greetingExtraIds += greetingAnimation;
	previewCard();
}

function isSelected(id) {
	for(i in greetingExtras) {
		if(greetingExtras[i] == id) { return i; }
	}
	return false;
}

function toggleExtra(id) {
	if (i = isSelected(id)) {
		greetingExtras.splice(i, 1);
	} else {
		greetingExtras.push(id);
	}
	updateExtras();
}

function switchAnimation(id) {
	greetingAnimation = id;
	updateExtras();
}

function addRecipient() {
	var form = document.getElementById('createGreetingForm');
	var recipientname = form.recipientname;
	if (recipientname.value.length < 1) {
		recipientname.focus();
		alert('You must enter a recipient name.');
		return false;
	}
	var recipientemail = form.recipientemail;
	if (recipientemail.value.length < 1) {
		if (!confirm('You have not added an email address.\r\nGreetings sent to this contact will only be available through the search box on The Birthday Site homepage.\r\n\r\nDo you wish to continue?')) {
			return false;
		}
	} else {
		if (!isValidEmail(recipientemail.value)) {
		recipientemail.focus();
		alert('The email address you entered was not valid.');
		return false;
		}
	}
	var recipientsendsms = form.recipientsendsms;
	if (recipientsendsms.checked) {
		var recipientmobile = form.recipientmobile;
		if (recipientmobile.value.length < 9) {
			recipientmobile.focus();
			alert('You must enter a valid mobile number. Please use international formatting for non-UK numbers.');
			return false;
		}
	}
	var recipientList = document.getElementById('recipientlist');
	var recipientName = document.getElementById('recipientname').value;
	var recipientEmail = document.getElementById('recipientemail').value;
	var recipientSendSMS = document.getElementById('recipientsendsms').checked;
	var recipientMobile = document.getElementById('recipientmobile').value;
	var option = document.createElement('option');
	option.text = recipientName + " (" + (recipientEmail ? "Email: " + recipientEmail : "No Email") + (recipientSendSMS ? ", SMS: " + recipientMobile + ", Cost: 20p" : ", Cost: Free") + ")";
	option.value = recipientName + "|" + recipientEmail + "|" + recipientSendSMS + "|" + recipientMobile;
	recipientList.options.add(option);
}

function addRecipientFromAddressBook() {
	var recipientList = document.getElementById('recipientlist');
	var addressBook = document.getElementById('addressbookentries');
	var option = document.createElement('option');
	var addressBookEntry = addressBook.options[addressBook.selectedIndex].value; 
	var recipient = addressBookEntry.split("|");
	option.text = recipient[0] + " (" + (recipient[1] ? "Email: " + recipient[1] : "No Email") + (recipient[2] == "1" ? ", SMS: " + recipient[3] + ", Cost: 20p" : ", Cost: Free") + ")";
	option.value = recipient[0] + "|" + recipient[1] + "|" + (recipient[2] == "1" ? "true" : "false") + "|" + recipient[3];
	recipientList.options.add(option);
}

function deleteRecipient() {
	var recipientList = document.getElementById('recipientlist');
	for (var i=0; i<recipientList.options.length; i++) {
		if (recipientList.options[i].selected == true) {
			recipientList.options[i] = null;
		}
	}
}

function submitRecipients() {
	var recipientList = document.getElementById('recipientlist');
	for (var i=0; i<recipientList.options.length; i++) {
		recipientList.options[i].selected = true;
	}
}

function updateCounter(inputElement, counterElement, warningElement, maxLength) {
	var input = document.getElementById(inputElement);
	var warning = document.getElementById(warningElement);
	var counter = document.getElementById(counterElement);
	var inputLength = input.value.length;
	if (inputLength <= maxLength) {
		counter.innerHTML = maxLength - inputLength;
		warning.style.display = "none";		
	} else {
		counter.innerHTML = "0";
		warning.style.display = "block";
	}
}