function showHdgFields() {
	document.getElementById('newmsgtype_fields').style.display = "block";
}

function hideHdgFields() {
	document.getElementById('newmsgtype_fields').style.display = "none";
}

function showMultiFields() {
	document.getElementById('recipient_multi_div').style.display = "block";
	document.getElementById('recipient_div').style.display = "none";
	document.getElementById('rec_email_div').style.display = "none";
}

function blankCustomHdg() {
	document.getElementById('msgcustomheading').value = "";
}

function toggleVis(fieldID,fieldValue,tplType) {
	if (fieldID == "recipient_input") {
		if (fieldValue == "0a") {
			$j('#newrecipient_fields').fadeIn("slow");
			$j('#rec_email_div').fadeOut("slow");
			document.getElementById("recipientfirstname_input").focus();
		} else {
			$j('#newrecipient_fields').fadeOut("slow");
			showEmail(fieldValue);
		}
	}
	if (fieldID == "recipSelectOne") {
		$j('#recipient_multi_div').hide();
		$j('#newrecipient_fields').hide();
		$j('#msghdg_multiple_div').hide();
		$j('#rec_email_div').hide();
		$j('#recipient_div').show();
	}
	if (fieldID == "recipSelectMultiple") {
		$j('#recipient_div').hide();
		$j('#newrecipient_fields').hide();
		$j('#msghdg_multiple_div').show();
		$j('#rec_email_div').hide();
		$j('#recipient_multi_div').show();
	}
}

function confirmDelete(type,divid) {
	if (type == "contact") {
		var confirmMsg=confirm("Are you sure you want to delete this friend from your address book?");
		if (confirmMsg) {
			$(divid).up('.contact').fade();
			return true;
		} else {
			return false;
		}
	} else if (type == "event") {
		var confirmMsg=confirm("Are you sure you want to delete this event from your diary?");
		if (confirmMsg) {
			$(divid).up('.event').fade();
			return true;
		} else {
			return false;
		}
	} else if (type == "message") {
		var confirmMsg=confirm("Are you sure you want to delete this message?");
		if (confirmMsg) {
			$(divid).up('.message').fade();
			return true;
		} else {
			return false;
		}
	} else if (type == "photos") {
		var confirmMsg=confirm("Are you sure you want to delete all photos from this message?");
		if (confirmMsg) {
			return true;
		} else {
			return false;
		}
	} else if (type == "photo") {
		var confirmMsg=confirm("Are you sure you want to delete this photo from your message?");
		if (confirmMsg) {
			return true;
		} else {
			return false;
		}
	} else if (type == "basketitem") {
		var confirmMsg=confirm("Are you sure you want to delete this item from your shopping basket?");
		if (confirmMsg) {
			return true;
		} else {
			return false;
		}
	} else if (type == "songitem") {
		var confirmMsg=confirm("Are you sure you want to delete this song from your shopping basket? It will not be included on your MyCard if you do!");
		if (confirmMsg) {
			return true;
		} else {
			return false;
		}
	}
}

var holdText;
var disabledBox = false;

function countWords(maxwords) {
	var wordLimit = maxwords;
	var text1 = document.getElementById('message_input').value;
	 var numberOfWords = doCount(text1);

	 if (numberOfWords == wordLimit) {
		  holdText = text1;
	 }

	 document.getElementById('wordcount_input').value = wordLimit - numberOfWords;

	 if (numberOfWords >= wordLimit) {
		  disabledBox = true;
	 } else {
		  disabledBox = false;
	}
}

function doCount(textParam) {
	 //replace all instances of one-or-more spaces with a single space
	 var text2 = textParam.replace(/\s+/g, ' ');
	
	 //trim leading and tailing spaces
	 while(text2.substring(0, 1) == ' ')
		 text2 = text2.substring(1);
		 while(text2.substring(text2.length-2, text2.length-1) == ' ')
			 text2 = text2.substring(0,text2.length-1);
	
		 var text3 = text2.split(' ');
	
		 return text3.length;
}

function resetBox() {
	 if (disabledBox) {
		  var currText = document.getElementById('message_input').value;
		  var newLength = doCount(currText);
		
		  //prevent user from adding words, but not taking them away
		  if (newLength >= wordLimit) {
			   document.getElementById('message_input').value = holdText;
		  }
	 }
}

function initRequestObj(){
	var request_o;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer"){
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		request_o = new XMLHttpRequest();
	}
	return request_o;
}

var http = initRequestObj(); //Holds the XMLHttpRequest object.

function fetchTemplates(eventid,seltplid){
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=fetch_templates&eventid=' + eventid + '&seltplid=' + seltplid);
	http.onreadystatechange = handleFetchTemplates; 
	http.send(null);
}

function handleFetchTemplates(){
	if(http.readyState == 4){
		var response = http.responseText;
		document.getElementById('template_div').innerHTML = response;
		$j('#template_div').fadeIn("slow");
	}
}

function showEmail(recipid){
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=show_email&recipid=' + document.getElementById('recipient_input').value);
	http.onreadystatechange = handleSaveEmail; 
	http.send(null);
}

function displayEmail(recipemail){
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=display_email&recipemail=' + recipemail);
	http.onreadystatechange = handleSaveEmail; 
	http.send(null);
}

function handleSaveEmail(){
	if(http.readyState == 4){
		var response = http.responseText;
		document.getElementById('rec_email_div').innerHTML = response;
		$j('#rec_email_div').fadeIn("slow");
	}
}

//The next two functions  are identical, APART FROM the element IDs. This is so we can maintain XHTML validity.
function saveRecipient(){
	// method (POST/GET), url
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=save_recipient&firstname=' + document.getElementById('recipientfirstname_input').value + '&surname=' + document.getElementById('recipientsurname_input').value + '&email=' + document.getElementById('recipientemail_input').value);
	http.onreadystatechange = handleSaveRecipient; 
	http.send(null); // Send the data.
}

function saveNewMultiRecipient(){
	// method (POST/GET), url
	var cbxValues = readCookie('MultirecipCbxVals');
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=save_new_recipient&firstname=' + document.getElementById('firstname_new_input').value + '&surname=' + document.getElementById('surname_new_input').value + '&email=' + document.getElementById('email_new_input').value + '&cbxValues=' + cbxValues);
	http.onreadystatechange = handleSaveNewMultiRecipient; 
	http.send(null); // Send the data.
}

function handleSaveRecipient(){
	if(http.readyState == 4){ //Finished loading response
		var response = http.responseText;
		document.getElementById('recipient_div').innerHTML = response;
		$j('#newrecipient_fields').fadeOut("slow");
		document.getElementById('recipientfirstname_input').value = "";
		document.getElementById('recipientsurname_input').value = "";
		document.getElementById('recipientemail_input').value = "";
	}
}

function handleSaveNewMultiRecipient(){
	if(http.readyState == 4){ //Finished loading response
		var response = http.responseText;
		document.getElementById('multirecips').innerHTML = response;
		document.getElementById('firstname_new_input').value = "";
		document.getElementById('surname_new_input').value = "";
		document.getElementById('email_new_input').value = "";
	}
}

function saveContributor(){
	// method (POST/GET), url
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=save_contributor&firstname=' + document.getElementById('contribfirstname_input').value + '&surname=' + document.getElementById('contribsurname_input').value + '&email=' + document.getElementById('contribemail_input').value);
	http.onreadystatechange = handleSaveContributor; 
	http.send(null); // Send the data.
}

function handleSaveContributor(){
	if(http.readyState == 4){ //Finished loading response
		var response = http.responseText;
		document.getElementById('contribs').innerHTML = response;
	}
}

function saveNewRecipient(){
	// method (POST/GET), url
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=save_new_recipient&firstname=' + document.getElementById('recipfirstname_input').value + '&surname=' + document.getElementById('recipsurname_input').value + '&email=' + document.getElementById('recipemail_input').value);
	http.onreadystatechange = handleSaveNewRecipient; 
	http.send(null); // Send the data.
}

function handleSaveNewRecipient(){
	if(http.readyState == 4){ //Finished loading response
		var response = http.responseText;
		document.getElementById('contribs2').innerHTML = response;
		document.getElementById('recipfirstname_input').value = "";
		document.getElementById('recipsurname_input').value = "";
		document.getElementById('recipemail_input').value = "";
	}
}

function handleSaveEvent(){
	if(http.readyState == 4){
		var response = http.responseText;
		document.getElementById('event_div').innerHTML = response;
		$j('#newevent_fields').fadeOut("slow");
	}
}

function saveHeading(){
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=save_heading&msgcustomheading=' + document.getElementById('msgcustomheading_input').value);
	http.onreadystatechange = handleSaveHeading; 
	http.send(null);
}


function handleSaveHeading(){
	if(http.readyState == 4){
		var response = http.responseText;
		document.getElementById('msghdg_div').innerHTML = response;
		$j('#newmsgtype_fields').fadeOut("slow");
	}
}

function getPhoto(thisphotoid,msgid){
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_photo&thisphotoid='+thisphotoid+'&msgid='+msgid);
	http.onreadystatechange = handleGetPhoto; 
	http.send(null);
}


function handleGetPhoto(){
	if(http.readyState == 4){
		var response = http.responseText;
		document.getElementById('pictureframe').innerHTML = response;
	}
}

function togglePhoto() {
	 if (document.getElementById('visImg').style.display == "block") {
		 document.getElementById('visImg').style.display = "none";
		 document.getElementById('hideImg').style.display = "block";
	 } else {
		 document.getElementById('visImg').style.display = "block";
		 document.getElementById('hideImg').style.display = "none";
	 }
}

function getNameList(gender,preview){
	if (preview == "preview") {
		http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_name_list&gender='+gender+'&preview='+preview+'&occid='+document.getElementById('songocc_input').value);
	} else {
		http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_name_list&gender='+gender+'&occid='+document.getElementById('songocc_input').value);
	}
	http.onreadystatechange = handleGetNameList; 
	http.send(null);
}

function getNameListHome(gender,preview){
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_name_list_home&gender='+gender+'&occid='+document.getElementById('songocc_input').value);
	http.onreadystatechange = handleGetNameList; 
	http.send(null);
}

function handleGetNameList(){
	if(http.readyState == 4){
		var response = http.responseText;
		document.getElementById('name_list_div').innerHTML = response;
		document.getElementById('songname_input').value = "0";
		document.getElementById('songid_input').value = "0";
		document.getElementById('song_div').innerHTML = "";
	}
}

function getSongList(nameid,preview){
	if (preview == "preview") {
		http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_song_list&nameid='+nameid+'&preview='+preview+'&occid='+document.getElementById('songocc_input').value);
	} else {
		http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_song_list&nameid='+nameid+'&occid='+document.getElementById('songocc_input').value);
	}
	http.onreadystatechange = handleGetSongList; 
	http.send(null);
}

function getSongListHome(nameid,preview){
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_song_list_home&nameid='+nameid+'&occid='+document.getElementById('songocc_input').value);
	http.onreadystatechange = handleGetSongList; 
	http.send(null);
}

function handleGetSongList(){
	if(http.readyState == 4){
		var response = http.responseText;
		document.getElementById('song_list_div').innerHTML = response;
	}
}

function getSong(songid,nameid,preview){
	if (preview == "preview") {
		http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_song_preview&nameid='+nameid+'&songid='+songid+'&occid='+document.getElementById('songocc_input').value);
	} else {
		http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_song&nameid='+nameid+'&songid='+songid+'&occid='+document.getElementById('songocc_input').value);
	}
	http.onreadystatechange = handleGetSong; 
	http.send(null); // Send the data.
}

function getSongHome(songid,nameid,preview){
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_song_home&nameid='+nameid+'&songid='+songid+'&occid='+document.getElementById('songocc_input').value);
	http.onreadystatechange = handleGetSong; 
	http.send(null); // Send the data.
}

function handleGetSong(){
	if(http.readyState == 4){
		var response = http.responseText;
		document.getElementById('song_div').innerHTML = response;
	}
}

function getSongPreview(songid,nameid){
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_song_preview&nameid='+nameid+'&songid='+songid+'&occid='+document.getElementById('songocc_input').value);
	http.onreadystatechange = handleGetSongPreview; 
	http.send(null); // Send the data.
}

function handleGetSongPreview(){
	if(http.readyState == 4){
		var response = http.responseText;
		document.getElementById('song_div').innerHTML = response;
	}
}

function addSongToMsg(songid,nameid){
	document.getElementById('usr_song_id').value=songid;
	document.getElementById('usr_recipname_id').value=nameid;
	http.open('get', 'modules/icards/_backend/icard_functions.php?action=get_song_display&nameid='+nameid+'&songid='+songid+'&occid='+document.getElementById('songocc_input').value);
	http.onreadystatechange = handleAddSong; 
	http.send(null);
}

function handleAddSong(){
	if(http.readyState == 4){
		var response = http.responseText;
		document.getElementById('displaysong').innerHTML = response;	
		document.getElementById('song_div').innerHTML = "";
	}
}

function remSongFromMsg(songid,nameid){
	document.getElementById('songgender_input').value = "0";
	document.getElementById('songname_input').value = "0";
	document.getElementById('songid_input').value = "0";
	document.getElementById('usr_song_id').value="";
	document.getElementById('usr_recipname_id').value="";
	document.getElementById('displaysong').innerHTML = "";
}


function SelectAllCheckboxes() {
	f = document.forms[0];
	for (i = 0 ; i < f.elements.length; i++) {
		if ((f.elements[i].type == "checkbox") && (f.elements[i].name == "contributors[]")) {
			if (!(f.elements[i].value == "DISABLED" || f.elements[i].disabled)) {
				f.elements[i].checked = f.ListSelectAll.checked;
			}
		}
	}
	return true;
}

function SelectAllFriends() {
	f = document.forms[0];
	var cbxValues = new Array();
	var j = 0;
	
	for (i = 0 ; i < f.elements.length; i++) {
		if ((f.elements[i].type == "checkbox") && (f.elements[i].name == "recipients[]")) {
			
			if (!(f.elements[i].value == "DISABLED" || f.elements[i].disabled)) {
				f.elements[i].checked = f.ListSelectAll.checked;
				cbxValues[j] = f.elements[i].value;
			}
			j++;
		}
	}
	if (f.ListSelectAll.checked) {
		createCookie('MultirecipCbxVals',cbxValues,'1');//Fill the cookie with all selected values
	} else {
		eraseCookie('MultirecipCbxVals');//Destroy the cookie
	}
	return true;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

// Extended Tooltip Javascript
// copyright 9th August 2002, 3rd July 2005
// by Stephen Chapman, Felgall Pty Ltd

// permission is granted to use this javascript provided that the below code is not altered
var DH = 0;var an = 0;var al = 0;var ai = 0;if (document.getElementById) {ai = 1; DH = 1;}else {if (document.all) {al = 1; DH = 1;} else { browserVersion = parseInt(navigator.appVersion); if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {an = 1; DH = 1;}}} function fd(oi, wS) {if (ai) return wS ? document.getElementById(oi).style:document.getElementById(oi); if (al) return wS ? document.all[oi].style: document.all[oi]; if (an) return document.layers[oi];}
function pw() {return window.innerWidth != null? window.innerWidth: document.body.clientWidth != null? document.body.clientWidth:null;}
function mouseX(evt) {if (evt.pageX) return evt.pageX; else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return null;}
function mouseY(evt) {if (evt.pageY) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return null;}
function popUp(evt,oi) {if (DH) {var wp = pw(); ds = fd(oi,1); dm = fd(oi,0); st = ds.visibility; if (dm.offsetWidth) ew = dm.offsetWidth; else if (dm.clip.width) ew = dm.clip.width; if (st == "visible" || st == "show") { ds.visibility = "hidden"; } else {tv = mouseY(evt) + 20; lv = mouseX(evt) - (ew/4); if (lv < 2) lv = 2; else if (lv + ew > wp) lv -= ew/2; if (!an) {lv += 'px';tv += 'px';} ds.left = lv; ds.top = tv; ds.visibility = "visible";}}}