// Wedding class

var LJWedding={

	onAddGroupClick:function()
	{
		window.location.assign("/wedding/guests/admin/group.php");
	},
	
	onAddGuestClick:function(intGroupId)
	{
		window.location.assign("/wedding/guests/admin/guest.php?group_id="+intGroupId.toString());
	},
	
	initializeGuestList:function()
	{
		LJ.addOverlay();
	},
	
	onInviteClick:function(frm,intId,strEmail)
	{
		if(document.getElementById("inviteConfirmDialogue"))
		{
			LJ.setOverlayContents(document.getElementById("inviteConfirmDialogue"));
			document.getElementById("inviteConfirmDialogue").style.display="block";
			LJ.showOverlay();
		}
		
		//load guest data
		document.getElementById("guest_id").value=intId;
		document.getElementById("guest_email").value=strEmail;
		
		return false;
	},
	
	onInviteConfirmSubmit:function(frm)
	{
		blnInvite=true;
		
		if(frm.guest_email.value.length==0)
			blnInvite=confirm("There is no email address for this guest.\n\nWould you like to mark this guest as invited anyway\n(and send them a paper invitation)?\n ");
		
		if(blnInvite)
		{
			//find selected from address
			var intFromEmail=0;
			for(var i=0;i<frm.email_from.length;i++)
			{
				if(frm.email_from[i].checked)
				{
					intFromEmail=frm.email_from[i].value;
					break;
				}
			}
			
			var objInviteRequest=LJ.createRequest();
			objInviteRequest.open("GET","/wedding/guests/admin/action.php?action=inviteGuest&id="+frm.guest_id.value.toString()+"&email="+frm.guest_email.value.toString()+"&email_from="+intFromEmail.toString(),true);
			objInviteRequest.onreadystatechange=function()
			{
				if(objInviteRequest.readyState==4)
				{
					if(objInviteRequest.status==200)
					{
						var blnReturnValue=false;
						var eleDoc=objInviteRequest.responseXML.documentElement;
						
						if(eleDoc.getElementsByTagName("returnValue").length>0 && eleDoc.getElementsByTagName("returnValue")[0].firstChild)
							blnReturnValue=eleDoc.getElementsByTagName("returnValue")[0].firstChild.nodeValue;
						
						if(blnReturnValue==1)
						{
							//set invite status
							var eleInviteStatus=document.getElementById("guestInviteStatus"+frm.guest_id.value.toString());
							eleInviteStatus.innerHTML=eleDoc.getElementsByTagName("guestInviteStatus")[0].firstChild.nodeValue;
							//display message
							var strName=eleDoc.getElementsByTagName("guestName")[0].firstChild.nodeValue;
							alert(strName+" invited.");
						}
						else
						{
							alert("Error inviting guest.");
						}
					}
				}
			};
			objInviteRequest.send(null);
			
			if(document.getElementById("inviteConfirmDialogue"))
				document.getElementById("inviteConfirmDialogue").style.display="none";
			LJ.hideOverlay();
		}
		
		return false;
	},
	
	onInviteConfirmReset:function()
	{
		if(document.getElementById("inviteConfirmDialogue"))
			document.getElementById("inviteConfirmDialogue").style.display="none";
		LJ.hideOverlay();
		return false;
	},
	
	onDeleteGroupClick:function(frm,intId,strName)
	{
		if(confirm("Are you sure you want to delete "+strName+" and all it's guests?"))
			if(confirm("Really sure? You can't undo this."))
			{
				var objRequest=LJ.createRequest();
				objRequest.open("GET","/wedding/guests/admin/action.php?action=deleteGroup&id="+intId.toString(),true);
				objRequest.onreadystatechange=function()
				{
					if(objRequest.readyState==4)
					{
						if(objRequest.status==200)
						{
							var blnReturnValue=false;
							var eleDoc=objRequest.responseXML.documentElement;
							
							if(eleDoc.getElementsByTagName("returnValue").length>0 && eleDoc.getElementsByTagName("returnValue")[0].firstChild)
							{
								blnReturnValue=eleDoc.getElementsByTagName("returnValue")[0].firstChild.nodeValue;
							}
							
							if(blnReturnValue==1)
							{
								var eleGroupContainer;
								eleGroupContainer=document.getElementById("groupContainer"+intId);
								eleGroupContainer.parentNode.removeChild(eleGroupContainer);
								
								alert(strName+" deleted.");
							}
							else
							{
								alert("Error deleting "+strName+".");
							}
						}
					}
				}
				objRequest.send(null);
			}
		
		return false;
	},
	
	onDeleteGuestClick:function(frm,intId,strName)
	{
		if(confirm("Are you sure you want to delete "+strName+"?"))
		{
			var objRequest=LJ.createRequest();
			objRequest.open("GET","/wedding/guests/admin/action.php?action=deleteGuest&id="+intId.toString(),true);
			objRequest.onreadystatechange=function()
			{
				if(objRequest.readyState==4)
				{
					if(objRequest.status==200)
					{
						var blnReturnValue=false;
						var eleDoc=objRequest.responseXML.documentElement;
						
						if(eleDoc.getElementsByTagName("returnValue").length>0 && eleDoc.getElementsByTagName("returnValue")[0].firstChild)
						{
							blnReturnValue=eleDoc.getElementsByTagName("returnValue")[0].firstChild.nodeValue;
						}
						
						if(blnReturnValue==1)
						{
							var eleGuestContainer;
							eleGuestContainer=document.getElementById("guestContainer"+intId);
							eleGuestContainer.parentNode.removeChild(eleGuestContainer);
							
							alert(strName+" deleted.");
						}
						else
						{
							alert("Error deleting "+strName+".");
						}
					}
				}
			}
			objRequest.send(null);
		}
		
		return false;
	},
	
	initializeGroup:function(frm)
	{
		if(frm)
		{
			frm.name.focus();
			frm.name.select();
		}
	},
	
	isValidGroup:function(frm)
	{
		var blnReturnValue=true;
		
		if(frm.name.value.length==0)
		{
			alert("Please enter a group name.");
			frm.name.focus();
			blnReturnValue=false;
		}
		
		if(blnReturnValue)
			frm.submit.disabled=true;
		
		return blnReturnValue;
	},
	
	initializeGuest:function(frm)
	{
		this.onManualClick(frm);
		
		if(frm)
		{
			frm.name.focus();
			frm.name.select();
		}
	},
	
	isValidGuest:function(frm)
	{
		var blnReturnValue=true;
		
		if(frm.name.value.length==0)
		{
			alert("Please enter a name.");
			frm.name.focus();
			blnReturnValue=false;
		}
		else if(frm.email.value.length>0 && !LJ.isValidEmailAddress(frm.email.value))
		{
			alert("Please enter a valid email address");
			frm.email.focus();
			frm.email.select();
			blnReturnValue=false;
		}
		else if(isNaN(frm.count.value))
		{
			alert("Please enter the number of people.");
			frm.count.focus();
			frm.count.select();
			blnReturnValue=false;
		}
		else if(frm.manual.checked && isNaN(frm.replied_count.value))
		{
			alert("Please enter the number of people attending.");
			frm.replied_count.focus();
			frm.replied_count.select();
			blnReturnValue=false;
		}
		
		if(blnReturnValue)
		{
			frm.submit.disabled=true;
			
			if(!frm.manual.checked)
			{
				var eleResponse;
				eleResponse=document.getElementById("response");
				eleResponse.parentNode.removeChild(eleResponse);
			}
		}
		
		return blnReturnValue;
	},
	
	onManualClick:function(frm)
	{
		if(frm)
		{
			frm.invited.disabled=!frm.manual.checked;
			frm.replied.disabled=!frm.manual.checked;
			frm.replied_count.disabled=!frm.manual.checked;
		}
	},
	
	onRSVPSubmit:function(frm)
	{
		var objRSVPRequest=LJ.createRequest();
		objRSVPRequest.open("GET","",true);
		objRSVPRequest.onreadystatechange=function()
		{
			
		};
		objRSVPRequest.send(null);
		return false;
	},
	
	//registry functions
	
	onAddItemClick:function()
	{
		window.location.assign("/wedding/registry/item.php");
	},
	
	initializeItem:function(frm)
	{
		if(frm)
		{
			frm.name.focus();
			frm.name.select();
		}
	},
	
	isValidItem:function(frm)
	{
		var blnReturnValue=true;
		
		if(frm.name.value.length==0)
		{
			alert("Please enter an item name.");
			frm.name.focus();
			blnReturnValue=false;
		}
		
		if(blnReturnValue)
			frm.submit.disabled=true;
		
		return blnReturnValue;
	},
	
	onDeleteItemClick:function(frm,intId,strName)
	{
		if(confirm("Are you sure you want to delete "+strName+"?"))
		{
			var objRequest=LJ.createRequest();
			objRequest.open("GET","/wedding/guests/admin/action.php?action=deleteItem&id="+intId.toString(),true);
			objRequest.onreadystatechange=function()
			{
				if(objRequest.readyState==4)
				{
					if(objRequest.status==200)
					{
						var blnReturnValue=false;
						var eleDoc=objRequest.responseXML.documentElement;
						
						if(eleDoc.getElementsByTagName("returnValue").length>0 && eleDoc.getElementsByTagName("returnValue")[0].firstChild)
						{
							blnReturnValue=eleDoc.getElementsByTagName("returnValue")[0].firstChild.nodeValue;
						}
						
						if(blnReturnValue==1)
						{
							var eleItemContainer;
							eleItemContainer=document.getElementById("itemContainer"+intId);
							eleItemContainer.parentNode.removeChild(eleItemContainer);
							
							alert(strName+" deleted.");
						}
						else
						{
							alert("Error deleting "+strName+".");
						}
					}
				}
			}
			objRequest.send(null);
		}
		
		return false;
	},
	
	onItemClick:function(intId)
	{
		window.location.assign("/wedding/registry/purchased.php?item_id="+intId.toString());
		return false;
	},
	
	onItemCancel:function(intId)
	{
		window.location.assign("/wedding/registry/");
		return false;
	},
	
	initializePurchased:function(frm)
	{
		if(frm)
		{
			frm.count.focus();
			frm.count.select();
		}
	},
	
	isValidPurchased:function(frm)
	{
		var blnReturnValue=true;
		
		if(isNaN(frm.count.value) || frm.count.value<=0)
		{
			alert("Please enter an number greater than 0.");
			frm.count.focus();
			frm.count.select();
			blnReturnValue=false;
		}
		else if(Number(frm.count.value) > Number(frm.remaining_count.value))
		{
			alert("There "+(Number(frm.remaining_count.value)==1 ? "is" : "are")+" only "+frm.remaining_count.value.toString()+" item"+(Number(frm.remaining_count.value)==1 ? "" : "s")+" remaining.");
			frm.count.value=frm.remaining_count.value;
			frm.count.focus();
			frm.count.select();
			blnReturnValue=false;
		}
		else if(frm.code.value.length==0)
		{
			alert("Please enter an undo code.");
			frm.code.focus();
			frm.code.select();
			blnReturnValue=false;
		}
		
		if(blnReturnValue)
			frm.submit.disabled=true;
		
		return blnReturnValue;
	},
	
	onUndoPurchasedSubmit:function(frm)
	{
		var blnReturnValue=true;
		
		if(frm.code_undo.value.length==0)
		{
			alert("Please enter your undo code.");
			frm.code_undo.focus();
			frm.code_undo.select();
			blnReturnValue=false;
		}
		
		if(blnReturnValue)
		{
			var objUndoRequest=LJ.createRequest();
			objUndoRequest.open("GET","/wedding/registry/action.php?action=undoPurchaseItem&id="+frm.item_id.value.toString()+"&code="+frm.code_undo.value.toString(),true);
			objUndoRequest.onreadystatechange=function()
			{
				if(objUndoRequest.readyState==4)
				{
					if(objUndoRequest.status==200)
					{
						var intUndoCount=0;
						var eleDoc=objUndoRequest.responseXML.documentElement;
						
						if(eleDoc.getElementsByTagName("undoCount").length>0 && eleDoc.getElementsByTagName("undoCount")[0].firstChild)
						{
							intUndoCount=Number(eleDoc.getElementsByTagName("undoCount")[0].firstChild.nodeValue);
						}
						
						if(Number(intUndoCount)==0)
						{
							alert("Could not find any items marked using that code.");
						}
						else
						{
							alert(intUndoCount.toString()+" item"+(Number(intUndoCount)==1 ? "" : "s")+" marked as unpurchased.");
							window.location.reload();
						}
					}
				}
			}
			objUndoRequest.send(null);
		}
		
		return false;
	}
}