Registration = function(){
   var adminNS = "http://www.mariaabercrombie.com/schemas/webpage/2010/01/maria";
   
   this.getRegisterForm = function(eventClass, eventDate, eventPrice){
      $(function(){

			var registrationform = '<center><span class="dataHeading">Class Registration Form</span></center><br><br>';
		  
			registrationform += '<table class="tableBorder">';
			registrationform += '<tr class="events"><td>Class:</td><td>'+eventClass+'</td></tr>';
			registrationform += '<tr class="events"><td>Date:</td><td>'+eventDate+'</td></tr>';
			registrationform += '<tr class="events"><td>Price per Person:</td><td>$'+eventPrice+'</td></tr>';
			registrationform += '<tr class="events"><td>Total Price:</td><td>$<span id="totalPrice">'+eventPrice+'</span></td></tr>';
			registrationform += '<tr><td><input type="hidden" id="totalPriceHidden" name="hidden" value="'+eventPrice+'" /></td></tr>';
			registrationform += '</table><br><br>';
			
			registrationform += '<form name="formType">';
			registrationform += '<table>';
			registrationform += '<tr class="eventReg"><td><input type="radio" class="eventReg" name="individual" value="individual" checked> Individual Regsitration</td><td>|</td>';
			registrationform += '<td><input type="radio" class="eventReg" name="group" value="group"> Group Regsitration</td></tr>';
			registrationform += '</table>';      
			registrationform += '</form>';
			
			registrationform += '<Div class="individualDiv">';
			registrationform += '<table class="tableBorder">';
			registrationform += '<tr class="eventReg"><td>First Name:</td><td><input id="firstName" type="text"/></td><td><span id="firstNmErr" class="Error">*Add First Name</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>Last Name:</td><td><input id="lastName" type="text"/></td><td><span id="lastNmErr" class="Error">*Add Last Name</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>Street Address:</td><td><input id="streetAddrI" type="text"/></td><td><span id="stAddrErrI" class="Error">*Add Street Addr</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>City:</td><td><input id="cityI" type="text"/></td><td><span id="cityErrI" class="Error">*Add City</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>State:</td><td><input id="stateI" type="text"/></td><td><span id="stErrI" class="Error">*Add State</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>Zip:</td><td><input id="zipI" type="text"/></td><td><span id="zipErrI" class="Error">*Add Zip</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>email:</td><td><input id="emailI" type="text"/></td><td><span id="emailErrI" class="Error">*Add Valid email</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>Phone:</td><td><input id="phoneI" type="text"/></td><td><span id="phoneErrI" class="Error">*Add Phone Number</span></td></tr>';
			registrationform += '</table>';
			registrationform += '</div>';
			
			
			registrationform += '<Div class="groupDiv">';
			registrationform += '<table class="tableBorder">';
			registrationform += '<tr class="eventReg"><td>Center Name:</td><td><input id="centerName" type="text"/></td><td><span id="cntNmErr" class="Error">*Add Center Name</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>Contact Name:</td><td><input id="contactName" type="text"/></td><td><span id="ctNmErr" class="Error">*Add Contact Name</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>Street Address:</td><td><input id="streetAddrG" type="text"/></td><td><span id="stAddrErrG" class="Error">*Add Street Addr</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>City:</td><td><input id="cityG" type="text"/></td><td><span id="cityErrG" class="Error">*Add City</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>State:</td><td><input id="stateG" type="text"/></td><td><span id="stErrG" class="Error">*Add State</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>Zip:</td><td><input id="zipG" type="text"/></td><td><span id="zipErrG" class="Error">*Add Zip</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>email:</td><td><input id="emailG" type="text"/></td><td><span id="emailErrG" class="Error">*Add Valid email</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>Phone:</td><td><input id="phoneG" type="text"/></td><td><span id="phoneErrG" class="Error">*Add Phone Number</span></td></tr>';
			registrationform += '<tr class="eventReg"><td>Number of People:</td><td><input id="numOfPeople" type="text"/></td><td><span id="nopErrG" class="Error">*Add At Least 1 person</span></td></tr>';
			registrationform += '</table>';
			registrationform += '</div>';
			
			registrationform += '<br><table class="tableBorder">';
			registrationform += '<tr><td><input class="button" type="button" value="Submit & Pay" onClick="register.clearErrors(), register.submit(\''+eventClass+'\', \''+eventDate+'\')";></td></tr>';
			registrationform += '</table>';
		  
			$('#target').html(registrationform);
			
			$("input[name='individual']").click(function(){
			  $("input[name='group']").attr('checked', false), 
			  $(".individualDiv").css('display', 'block'), 
			  $(".groupDiv").css('display', 'none');
			  
			  var tPrice = eventPrice * 1;
			  $('#totalPrice').html(tPrice);
			  $('#totalPriceHidden').val(tPrice);
			});
			
			$("input[name='group']").click(function(){
			  $("input[name='individual']").attr('checked', false), 
			  $(".individualDiv").css('display', 'none'), 
			  $(".groupDiv").css('display', 'block');
			  
			  var numPeople = $('#numOfPeople').val();
			  var tPrice = eventPrice * numPeople;
			  $('#totalPrice').html(tPrice);
			  $('#totalPriceHidden').val(tPrice);
			});
			
			$('#numOfPeople').change(function(){
			  var numPeople = $('#numOfPeople').val();
			  var tPrice = eventPrice * parseInt(numPeople);
			  $('#totalPriceHidden').val(tPrice);
			  $('#totalPrice').html(tPrice);			
			});
      });
   }
   
	this.clearErrors = function(){
		$("#firstNmErr").css('display', 'none');
		$("#lastNmErr").css('display', 'none');
		$("#cntNmErr").css('display', 'none');
		$("#ctNmErr").css('display', 'none');
		$("#nopErrG").css('display', 'none');
		$("#stAddrErrI").css('display', 'none');
		$("#stAddrErrG").css('display', 'none');
		$("#cityErrI").css('display', 'none');
		$("#cityErrG").css('display', 'none');
		$("#stErrI").css('display', 'none');
		$("#stErrG").css('display', 'none');
		$("#zipErrI").css('display', 'none');
		$("#zipErrG").css('display', 'none');
		$("#emailErrI").css('display', 'none');
		$("#emailErrG").css('display', 'none');
		$("#phoneErrI").css('display', 'none');
		$("#phoneErrG").css('display', 'none');		
	}
	
   this.submit = function(eventClass, eventDate){
		var forIsClean = true;
      $(function(){
         var mariaWS = dwutils.XML("<r:MariaWS xmlns:r='"+adminNS+"'/>");
         var doc = mariaWS.ownerDocument;
   
         var clientRQ = doc.createElement('ClientRQ');
         mariaWS.appendChild(clientRQ);
         
         var cmdRQ = doc.createElement('CmdRQ');
         var data = doc.createTextNode("Submit");
         cmdRQ.appendChild(data);
         clientRQ.appendChild(cmdRQ);
         
         var submitRQ = doc.createElement('SubmitRQ');
         clientRQ.appendChild(submitRQ);
			
			var className = doc.createElement('ClassName');
			var classData = doc.createTextNode(eventClass);
			className.appendChild(classData);
			submitRQ.appendChild(className);
			
			var date = doc.createElement('Date');
			var dateData = doc.createTextNode(eventDate);
			date.appendChild(dateData);
			submitRQ.appendChild(date);
         
			/* First Name Or Center Name*/
			if($("input[name='individual']").attr('checked')){
				var m_FirstName = document.getElementById('firstName').value;
				if(m_FirstName.length > 0){
					var firstName = doc.createElement('FirstName');
					var fnData = doc.createTextNode(m_FirstName);
					firstName.appendChild(fnData);
					submitRQ.appendChild(firstName);
				}
				else{
					$("#firstNmErr").css('display', 'block');
					forIsClean = false;
				}
			}
			else{
				var m_CenterName = document.getElementById('centerName').value;
				if(m_CenterName.length > 0){
					var centerName = doc.createElement('CenterName');
					var centerData = doc.createTextNode(m_CenterName);
					centerName.appendChild(centerData);
					submitRQ.appendChild(centerName);
				}
				else{
					$("#cntNmErr").css('display', 'block');
					forIsClean = false;
				}
			}
         
			/* Last Name OR Contact Name*/
			if($("input[name='individual']").attr('checked')){
				var m_LastName = document.getElementById('lastName').value;
				if(m_LastName.length > 0){
					var lastName = doc.createElement('LastName');
					var lnData = doc.createTextNode(m_LastName);
					lastName.appendChild(lnData);
					submitRQ.appendChild(lastName);
				}
				else{
					$("#lastNmErr").css('display', 'block');
					forIsClean = false;
				}
			}
			else{
				var m_ContactName = document.getElementById('contactName').value;
				if(m_ContactName.length > 0){
					var contactName = doc.createElement('ContactName');
					var contactData = doc.createTextNode(m_ContactName);
					contactName.appendChild(contactData);
					submitRQ.appendChild(contactName);
				}
				else{
					$("#ctNmErr").css('display', 'block');
					forIsClean = false;
				}
			}         
         
			/* Street Addr */
			if($("input[name='individual']").attr('checked')){				
				var streetAddrI = document.getElementById('streetAddrI').value;
				if(streetAddrI.length > 0){
					var streetAddr = doc.createElement('StreetAddr');
					var saDataI = doc.createTextNode(document.getElementById('streetAddrI').value);
					streetAddr.appendChild(saDataI);
					submitRQ.appendChild(streetAddr);
				}				
				else{
					$("#stAddrErrI").css('display', 'block');
					forIsClean = false;
				}				
			}
         else{
				var streetAddrG = document.getElementById('streetAddrG').value;
				if(streetAddrG.length > 0){
					var streetAddr = doc.createElement('StreetAddr');
					var saDataG = doc.createTextNode(document.getElementById('streetAddrG').value);
					streetAddr.appendChild(saDataG);
					submitRQ.appendChild(streetAddr);
				}
				else{
					$("#stAddrErrG").css('display', 'block');
					forIsClean = false;
				}
			}
       
			/* City */
			if($("input[name='individual']").attr('checked')){				
				var cityI = document.getElementById('cityI').value;
				if(cityI.length > 0){
					var city = doc.createElement('City'); 
					var cDataI = doc.createTextNode(document.getElementById('cityI').value);
               city.appendChild(cDataI);
					submitRQ.appendChild(city);
				}				
				else{
					$("#cityErrI").css('display', 'block');
					forIsClean = false;
				}				
			}
         else{
				var cityG = document.getElementById('cityG').value;
				if(cityG.length > 0){
					var city = doc.createElement('City'); 
					var cDataG = doc.createTextNode(document.getElementById('cityG').value);
               city.appendChild(cDataG);
					submitRQ.appendChild(city);
				}
				else{
					$("#cityErrG").css('display', 'block');
					forIsClean = false;
				}
			}
			
			/* State */
			if($("input[name='individual']").attr('checked')){				
				var stateI = document.getElementById('stateI').value;
				if(stateI.length > 0){
					var state = doc.createElement('State');  
					var sDataI = doc.createTextNode(document.getElementById('stateI').value);
               state.appendChild(sDataI);
					submitRQ.appendChild(state);
				}				
				else{
					$("#stErrI").css('display', 'block');
					forIsClean = false;
				}				
			}
         else{
				var stateG = document.getElementById('stateG').value;
				if(stateG.length > 0){
					var state = doc.createElement('State'); 
					var sDataG = doc.createTextNode(document.getElementById('stateG').value);
               state.appendChild(sDataG);
					submitRQ.appendChild(state);
				}
				else{
					$("#stErrG").css('display', 'block');
					forIsClean = false;
				}
			}

         /* Zip */
			if($("input[name='individual']").attr('checked')){				
				var zipI = document.getElementById('zipI').value;
				if(zipI.length > 0){
					var zip = doc.createElement('Zip');  
					var zDataI = doc.createTextNode(document.getElementById('zipI').value);
               zip.appendChild(zDataI);
					submitRQ.appendChild(zip);
				}				
				else{
					$("#zipErrI").css('display', 'block');
					forIsClean = false;
				}				
			}
         else{
				var zipG = document.getElementById('zipG').value;
				if(zipG.length > 0){
					var zip = doc.createElement('Zip');  
					var zDataG = doc.createTextNode(document.getElementById('zipG').value);
               zip.appendChild(zDataG);
					submitRQ.appendChild(zip);
				}
				else{
					$("#zipErrG").css('display', 'block');
					forIsClean = false;
				}
			}
        
			/* Email */
			var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
			if($("input[name='individual']").attr('checked')){				
				var emailI = document.getElementById('emailI').value;
				if(emailI.length > 0){
					if(document.getElementById('emailI').value.search(emailRegEx) != -1){
						var email = doc.createElement('Email');    
						var eDataI = doc.createTextNode(document.getElementById('emailI').value);
						email.appendChild(eDataI);
						submitRQ.appendChild(email);
					}
					else{
						$("#emailErrI").css('display', 'block');
						forIsClean = false;
					}					
				}				
				else{
					$("#emailErrI").css('display', 'block');
					forIsClean = false;
				}				
			}
         else{
				var emailG = document.getElementById('emailG').value;
				if(emailG.length > 0){
					if(document.getElementById('emailG').value.search(emailRegEx) != -1){
						var email = doc.createElement('Email');   
						var eDataG = doc.createTextNode(document.getElementById('emailG').value);
						email.appendChild(eDataG);
						submitRQ.appendChild(email);
					}
					else{
						$("#emailErrG").css('display', 'block');
						forIsClean = false;
					}
				}
				else{
					$("#emailErrG").css('display', 'block');
					forIsClean = false;
				}
			}        
         
			/* Email */
			if($("input[name='individual']").attr('checked')){				
				var phoneI = document.getElementById('phoneI').value;
				if(phoneI.length > 0){
					var phone = doc.createElement('Phone');     
					var pDataI = doc.createTextNode(document.getElementById('phoneI').value);
               phone.appendChild(pDataI);
					submitRQ.appendChild(phone);
				}				
				else{
					$("#phoneErrI").css('display', 'block');
					forIsClean = false;
				}				
			}
         else{
				var phoneG = document.getElementById('phoneG').value;
				if(phoneG.length > 0){
					var phone = doc.createElement('Phone');     
					var pDataG = doc.createTextNode(document.getElementById('phoneG').value);
               phone.appendChild(pDataG);
					submitRQ.appendChild(phone);
				}
				else{
					$("#phoneErrG").css('display', 'block');
					forIsClean = false;
				}
			}
       
         /* Number of People */
			if($("input[name='group']").attr('checked')){				
				var m_NumOPeo = document.getElementById('numOfPeople').value;
				if(m_NumOPeo.length > 0 && parseInt(m_NumOPeo) > 0){					
					var nop = doc.createElement('NOP');
					var nData = doc.createTextNode(m_NumOPeo);
					nop.appendChild(nData);
				   submitRQ.appendChild(nop);
				}
				else{
					$("#nopErrG").css('display', 'block');
					forIsClean = false;
				}				
			}
         else{
				var nop = doc.createElement('NOP');
				var nData = doc.createTextNode(m_NumOPeo);
				var nData = doc.createTextNode(1);
				submitRQ.appendChild(nop);
			}		
			
         var XMLDATA = dwutils.xmlToString(mariaWS);
		
			if(forIsClean){
				var price = $('#totalPriceHidden').val();
				
				register.payPal(eventClass, price);
				$.ajax({
					type: "POST",
					url: util.getURL(),
					data: XMLDATA,
					dataType: "xml",
					success: function(data, textStatus){
						schedule.get();
					},
					error: function(XMLHttpRequest, textStatus, errorThrown){postError(XMLHttpRequest, textStatus, errorThrown);}
				});
			}         
      });      
   }
   
   this.payPal = function(descName, totalPrice){		
      var button = '<form name="PPT" action="https://www.paypal.com/cgi-bin/webscr" method="post">';
      button += '<input type="hidden" name="cmd" value="_xclick">';
      button += '<input type="hidden" name="business" value="maria@mariaabercrombie.com">';
      button += '<input type="hidden" name="item_name" value="'+descName+'">';
      //button += '<input type="hidden" name="amount" value="'+totalPrice+'">';      
      button += '<input type="image" src="" alt="Redirecting to Paypal" border="0" name="submit" >';
      button += '</form>';
      button += '<script type="text/javascript">document.PPT.submit();</script>';
      OpenWindow = window.open("", "newwin");
      OpenWindow.document.write(button);
      OpenWindow.document.close();      
   }
   

   
   //Error Method used by $.ajax callback
	var postError = function(XMLHttpRequest, textStatus, errorThrown){
		alert('Error - textStatus ' + textStatus);
		alert('Error - errorThrown ' + errorThrown);		
	}//End postError()
}

var register = new Registration();
