if (window.location.hostname == "warwick.api.local") {
	serviceURL = "172.31.20.141";
} else if (window.location.hostname == "london.ambassadorsgroup.com") {
	serviceURL = "172.31.20.25";
} else {
	serviceURL = "utility.ambassadorsgroup.com";
}

function showConfirmation(response) {
	
	$("#content-wrapper").hide();
	//$("#confirmation-wrapper").show();
	
	//window.scroll(0,0);
	//alert("Your invitations were sent successfully.");				
	
	
	jQuery.each(response.EmailTargets, function(i,val) {
		var confirmCode = "";
		
		//var emailTitle = val.EmailTargetID.replace(/Sample|MeetingInvite|School/gi,"");
		//var classSuffix = emailTitle.toLowerCase()+"s";
		
		switch(val.EmailTargetID) {
			case "ParentMeetingInvite":
				var emailTitle = "Parent Invitation";
				var classSuffix = "parents";
				var trackingLabel = "Parent_SAP_Teacher";
			break;
			
			case "StudentMeetingInvite":
				var emailTitle = "Student Invitation";
				var classSuffix = "students";
				var trackingLabel = "Student_SAP_Teacher";
			break;
			
			case "StudentSAPAdvocate":
				var emailTitle = "Student Invitation";
				var classSuffix = "students";
				var trackingLabel = "Student_SAP_Advocate";
			break;
			
			case "ParentSAPAdvocate":
				var emailTitle = "Parent Invitation";
				var classSuffix = "parents";
				var trackingLabel = "Parent_SAP_Advocate";
			break;
			
			case "ParentSPT":
				var emailTitle = "Parent Invitation";
				var classSuffix = "parents";
				var trackingLabel = "Parent_SPT_Teacher";
			break;
			
			case "StudentSPT":
				var emailTitle = "Student Invitation";
				var classSuffix = "students";
				var trackingLabel = "Student_SPT_Teacher";
			break;
			
			case "StudentSPTAdvocate":
				var emailTitle = "Student Invitation";
				var classSuffix = "students";
				var trackingLabel = "Student_SPT_Advocate";
			break;
			
			case "ParentSPTAdvocate":
				var emailTitle = "Parent Invitation";
				var classSuffix = "parents";
				var trackingLabel = "Parent_SPT_Advocate";
			break;
				
			case "SchoolAnnouncementMeetingInvite":
				var emailTitle = "Announcement";
				var classSuffix = "announcements";
				var trackingLabel = "Announcement_SAP";
			break;
			
			case "AnnouncementSPT":
				var emailTitle = "Announcement";
				var classSuffix = "announcements";
				var trackingLabel = "Announcement_SPT";
			break;
			
			default:
				var emailTitle = "Student Invitation";
				var classSuffix = "students";
				var trackingLabel = "Unknown_SAP";
		}
		
		confirmCode += '<p><strong style="color:#bf0010;">Your '+emailTitle+" was sent to:</strong><br/>";
		jQuery.each(response.EmailTargets[i].RecipientEmails, function(i2, val2){
			confirmCode+= val2+"<br/>";
		});
		
		//Tracking
		try { var emailCount = parseInt(response.EmailTargets[i].RecipientEmails.length);
		pageTracker._trackEvent('Emails', "TTK-"+trackingLabel+"-"+response.OfferID, response.SenderEmail, emailCount);
		} catch (err) {
			
		}
		
		//console.log(emailCount);
		//pageTracker._trackEvent('Emails', "TTK-"+emailTitle, response.SenderEmail, emailCount);
		//dcsMultiTrack('WT.ti', "TTK-"+emailTitle,'DCSext.sender',response.SenderEmail,'DCSext.emailcount',response.EmailTargets[i].RecipientEmails.length);
		
		$("#confirmationTable").append('<tr><td valign="top" style="padding-top:0px;"><div class="'+classSuffix+'-on" align="center"></div></td><td valign="top" style="padding-top:0px; font-size:10pt; color:#484848;">'+confirmCode+"</td></tr>");
	});
	
	toggleView("#confirmation-wrapper","#content-wrapper");		
	
}

function triggerError(obj, error){
	if(!error) {
		error = "";
	}
	$("div[id='error-"+obj+"']")
		.attr("title", error)
		.removeClass('ttk-validate')
		.addClass("ttk-error")
}

function triggerValid(obj){
	if ($("div[id='error-"+obj+"']").hasClass("ttk-error")) {
		$($("div[id='error-"+obj+"']")).attr("title","").removeClass('ttk-error').addClass("ttk-validate");
	}
}

function triggerClear(obj) {
	$($("div[id='error-"+obj+"']")).attr("title","").removeClass('ttk-error ttk-validate')
}

validateFindMeetings = {
	init:function(){
		$("#ZipCode").attr("maxlength","5").bind("testIt.findmeetings", function(){
				var test=ptpvalidate.zipCode($(this).val());
				if (test) {
						triggerValid(this.name);
				} else {
						triggerError(this.name, "You must enter a valid 5-Digit zip code");
				}
				//console.log("Ziptest = "+test);
				return test;
		})
		.change(function(){
			$(this).trigger('testIt');								 
		});
		
		$("#GradeSelect").bind("testIt.findmeetings", function(){
				var test = ptpvalidate.required($(this).val());
				if (test) {
						triggerValid(this.name);
				} else {
						triggerError(this.name, "You must select a grade level");
				}
				//console.log("Gradetest = "+test);
				return test;
		})
		.change(function(){
			$(this).trigger('testIt');								 
		});
		
	},
	check:function(){
		$(":input").trigger("testIt.findmeetings");
		if ( $("#ZipCode").triggerHandler("testIt.findmeetings") && $("#GradeSelect").triggerHandler("testIt.findmeetings")) {
				// needed stuff is valid. send the ajax request
				$("#findMeeting-loading").css({visibility:"visible"});
				getMeetings($('#ZipCode').val(),$('#GradeSelect').val(),'2012','Student')
		}
	}
	
}

validateSendInvite = {
	init:function(){
		//Prepare First Name Field with validation
		$("#Fname").bind("testIt.sendinvite", function(){
				var test=ptpvalidate.noNumbers($(this).val()) && ptpvalidate.required($(this).val());
				if (test) {
						triggerValid(this.name);
				} else {
						triggerError(this.name, "Required");
				}
				return test;
		})
		.change(function(){
			$(this).trigger('testIt');								 
		});
		
		//Prepare Last Name Field with validation
		$("#Lname").bind("testIt.sendinvite", function(){
				var test = ptpvalidate.noNumbers($(this).val()) && ptpvalidate.required($(this).val());
				if (test) {
						triggerValid(this.name);
				} else {
						triggerError(this.name,"Required");
				}
				return test;
		})
		.change(function(){
			$(this).trigger('testIt');								 
		});
		
		//Prepare Email Fields with validation
		$("#Email").bind("testIt.sendinvite", function(){
				var test = ptpvalidate.email($(this).val());
				if (test) {
						triggerValid(this.name);
				} else {
						triggerError(this.name, "Not a valid email address");
				}
				return test;
		})
		.change(function(){
			$(this).trigger('testIt');								 
		});
		
		$("#Email2").bind("testIt.sendinvite", function(){
				var test = ptpvalidate.email($("#Email").val()) && ($("#Email").val()==$(this).val());
				if (test) {
						triggerValid(this.name);
				} else {
						triggerError(this.name, "Address does not match");
				}
				return test;
		})
		.change(function(){
			$(this).trigger('testIt');								 
		});
		
		//Prepare Get Meeting Button
		$("#MeetingID-test").bind("testIt.sendinvite", function() {
				var test = ($("input[name='MeetingID']:checked").length > 0);
				if (test) {
						triggerValid(this.name);
				} else {
						triggerError(this.name, "Please select a meeting");
				}
				return test;																					
		});
		
	},
	check:function(){
		$("#confirmation-wrapper").hide();
		$(":enabled").trigger("testIt.sendinvite");
		if ( $("#Fname").triggerHandler("testIt.sendinvite") &&
				 $("#Lname").triggerHandler("testIt.sendinvite") &&
				 $("#Email").triggerHandler("testIt.sendinvite") &&
				 $("#Email2").triggerHandler("testIt.sendinvite") &&
				 $("#MeetingID-test").triggerHandler("testIt.sendinvite") &&
				 	( $("#ParentsToggle").is(':checked') || $("#StudentsToggle").is(':checked')) &&
				 	( ( $("#ParentsToggle").is(':checked') )? (($("#ParentsTo").triggerHandler("testIt.sendinvite"))?true:false ):true ) &&
					( ( $("#StudentsToggle").is(':checked') )? (($("#StudentsTo").triggerHandler("testIt.sendinvite"))?true:false ):true )
				) {
				
				// needed stuff is valid. send the ajax request
				$("#sendInvite-loading").css({visibility:"visible"});
				$("#sendingInviteProblem").css({visibility:"hidden"});
				sendEmail();
		} else {
			//stuff isn't valid
			$("#sendingInviteProblem").css({visibility:"visible"});
		}
	}
	
}

validateSendAnnouncement = {
	check:function(){
		$(":enabled").trigger("testIt.sendinvite");
		$(":enabled").trigger("testIt.sendannc");
		if ( $("#Fname").triggerHandler("testIt.sendinvite") &&
				 $("#Lname").triggerHandler("testIt.sendinvite") &&
				 $("#Email").triggerHandler("testIt.sendinvite") &&
				 $("#Email2").triggerHandler("testIt.sendinvite") &&
				 $("#MeetingID-test").triggerHandler("testIt.sendinvite") &&
				 ( $("#AnnouncementToggle").is(':checked') &&  $("#AnnouncementTo").triggerHandler("testIt.sendannc") )
				) {
				
				// needed stuff is valid. send the ajax request
				$("#sendAnnouncement-loading").css({visibility:"visible"});
				$("#sendingAnnouncementProblem").css({visibility:"hidden"});
				sendAnnouncement();
		} else {
			//stuff isn't valid
			$("#sendingAnnouncementProblem").css({visibility:"visible"});
		}

		
	}
	
}

validateToFields = {
	init:function(){
	
		//Work on the Parent's Toggle
		$("#ParentsToggle").bind("testIt.toggle", function(){
				var test=$(this).is(':checked');
				
				if (test) {
						$("#ParentsTo").removeAttr("disabled");
						triggerClear("StudentsTo");
						triggerValid(this.name);
				} else {
						$("#ParentsTo").attr("disabled","disabled");
						triggerClear(this.name);
						triggerClear("ParentsTo");
				}
				
				$("#ttk-email-thumb-parents").toggleClass("parents-on", test);
				$("#parentsToggle-wrapper").toggleClass("ttk-message-off", !test);
				//return test;
		})
		.bind("testIt.sendinvite", function(){
				var test = $(this).is(':checked') || $("#StudentsToggle").is(':checked');
				//console.log(test);
				if (test) {
						triggerValid(this.name);
				} else {
						triggerError(this.name, "You must select at least one message to send");
				}
				return test;
		})
		.click(function(){
			$(this).trigger('testIt.toggle');								 
		})
		.each(function(){
				$("#ParentsTo").attr("disabled","disabled");
				
				if ($(this).is(":checked")) {
					$(this).trigger('testIt.toggle');
				}
				
	  });
		
		
		
		//Work on the Announcements Toggle
		$("#AnnouncementToggle").bind("testIt.toggle2", function(){
				var test=$(this).is(':checked');
				
				if (test) {
						$("#AnnouncementTo").removeAttr("disabled");
						triggerClear("AnnouncementToggle");
						triggerValid(this.name);
				} else {
						$("#AnnouncementTo").attr("disabled","disabled");
						triggerClear("AnnouncementToggle");
				}
				
				$("#ttk-email-thumb-announcements").toggleClass("announcements-on", test);
				$("#announcementToggle-wrapper").toggleClass("ttk-message-off", !test);
				//return test;
		})
		.bind("testIt.sendannc", function(){
				var test = $(this).is(':checked');
				//console.log(test);
				if (test) {
						triggerValid(this.name);
				} else {
						triggerError(this.name, "You must select a message to send");
				}
				return test;
		})
		.click(function(){
			$(this).trigger('testIt.toggle2');								 
		})
		.each(function(){
				$("#AnnouncementTo").attr("disabled","disabled");					 
									 
				if ($(this).is(":checked")) {
					$(this).trigger('testIt.toggle');
				}
				
	  });

		
		//Work on the Student's Toggle
		$("#StudentsToggle").bind("testIt.toggle", function(){
				var test=$(this).is(':checked');
				
				if (test) {
						$("#StudentsTo").removeAttr("disabled");
						triggerClear("ParentsToggle");
						triggerValid(this.name);
				} else {
						$("#StudentsTo").attr("disabled","disabled");
						triggerClear(this.name);
						triggerClear("StudentsTo");
				}
				
				$("#ttk-email-thumb-students").toggleClass("students-on", test);
				$("#studentsToggle-wrapper").toggleClass("ttk-message-off", !test);
				//return test;
		})
		.bind("testIt.sendinvite", function(){
				var test = $(this).is(':checked') || $("#ParentsToggle").is(':checked');
				//console.log(test);
				if (test) {
						triggerValid(this.name);
				} else {
						triggerError(this.name, "You must select at least one message to send");
				}
				return test;
		})
		.click(function(){
			$(this).trigger('testIt.toggle');								 
		})
		.each(function(){
				$("#StudentsTo").attr("disabled","disabled");
				
				if ($(this).is(":checked")) {
					$(this).trigger('testIt.toggle');
				}
				
	  });
		
		//Work on Parent's Addresses
		$("#ParentsTo").bind("testIt.sendinvite", function(){
			var testGroup = $(this).val();
			testGroup = testGroup.replace(/,/gi, ";");
			$(this).val(testGroup);
			testGroup = testGroup.replace(/(\s*)*(\W*$)*/gi,"");
			testGroup = testGroup.split(";");
			//console.dir(testGroup);
			
			var problem = false;
			
			if(jQuery.browser.msie) {
				if(testGroup.length>25) {
					problem=true;
					triggerError("ParentsTo", "You have entered to many email addresses. Please enter a maximum of 25 addresses");
					//console.log('there are too many addresses for IE');
				}
			}
			
			if (!problem) {
				jQuery.each(testGroup,function(i,val){
					//var testString = val;
					var test = ptpvalidate.email(val);
					
					if (test) {
						triggerValid("ParentsTo");
						//console.log("val="+val+" and passed="+test);
						return test;	
					} else {
						triggerError("ParentsTo", "You have entered an invalid address. Problem Address: "+val);
						//console.log("val="+val+" and passed="+test);
						problem=true;
						return test;	
					}
							
				});
			}
			
			return (problem)?false:true
				
		})
		.change(function(){
			$(this).trigger('testIt');								 
		});
		
		//Work on Student's Addresses
		$("#StudentsTo").bind("testIt.sendinvite", function(){
			var testGroup = $(this).val();
			testGroup = testGroup.replace(/,/gi, ";");
			$(this).val(testGroup);
			testGroup = testGroup.replace(/(\s*)*(\W*$)*/gi,"");
			testGroup = testGroup.split(";");
			//console.dir(testGroup);
			
			var problem = false;
			
			if(jQuery.browser.msie) {
				if(testGroup.length>25) {
					problem=true;
					triggerError("StudentsTo","You have entered to many email addresses. Please enter a maximum of 25 addresses");
					//console.log('there are too many addresses for IE');
				}
			}
			
			if (!problem) {
				jQuery.each(testGroup,function(i,val){
					//var testString = val;
					var test = ptpvalidate.email(val);
					
					if (test) {
						triggerValid("StudentsTo");
						//console.log("val="+val+" and passed="+test);
						return test;	
					} else {
						triggerError("StudentsTo","You have entered an invalid address. Problem Address: "+val);
						//console.log("val="+val+" and passed="+test);
						problem=true;
						return test;	
					}
							
				});
			}
			return (problem)?false:true
				
		})
		.change(function(){
			$(this).trigger('testIt');								 
		});
		
		//Work on Announcement's Addresses
		$("#AnnouncementTo").bind("testIt.sendannc", function(){
			var testGroup = $(this).val();
			testGroup = testGroup.replace(/,/gi, ";");
			$(this).val(testGroup);
			testGroup = testGroup.replace(/(\s*)*(\W*$)*/gi,"");
			testGroup = testGroup.split(";");
			//console.dir(testGroup);
			
			var problem = false;

			if(jQuery.browser.msie) {
				if(testGroup.length>25) {
					problem=true;
					triggerError("AnnouncementTo","You have entered to many email addresses. Please enter a maximum of 25 addresses");
					//console.log('there are too many addresses for IE');
				}
			}
			
			if (!problem) {
				jQuery.each(testGroup,function(i,val){
					//var testString = val;
					var test = ptpvalidate.email(val);
					
					if (test) {
						triggerValid("AnnouncementTo");
						//console.log("val="+val+" and passed="+test);
						return test;	
					} else {
						triggerError("AnnouncementTo","You have entered an invalid address. Problem Address: "+val);
						//console.log("val="+val+" and passed="+test);
						problem=true;
						return test;	
					}
							
				});	
			}
			
			return (problem)?false:true
				
		})
		.change(function(){
			$(this).trigger('testIt');								 
		});

	}
	
}


//////////////////////////////////
/////   Validation Functions /////
//////////////////////////////////


ptpvalidate={
	zipCode:function(data){
		var testEx = /^\d{5}$/gi;
		if(data.match(testEx)){
			return true;
		} else {
			return false;
		}
	},
	required:function(data){
		var testEx = /^\w+/gi;
		if(data.match(testEx)){
			return true;
		} else {
			return false;
		}
	},
	noNumbers:function(data){
		var testEx = /\d/gi;
		if(data.match(testEx)){
			return false;
		} else {
			return true;
		}
	},
	email:function(data){
		//not perfect but pretty good. Hole is around sending from an ip address.
		 //^[\w]*[\w\.-][\w]*@[\w]*[\w\.-][\w]*\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$
		 //^[\w]+([\w\.-]{1}[\w]+)*@[\w]*[\w\.-][\w]*\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$ - problem with domain
		var testEx = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,9})$/gi;
		if(data.match(testEx)){
			return true;
		} else {
			return false;
		}
	}
}

