fixes in email validation for recurring invoice
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index 4df061e..4563532 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -511,3 +511,17 @@
 	}
 	cur_frm.cscript.notify(doc, args);
 }
+
+cur_frm.cscript.invoice_period_from_date = function(doc, dt, dn) {
+	if(doc.invoice_period_from_date) {
+		var recurring_type_map = { 'Monthly': 1, 'Quarterly': 3, 'Half-yearly': 6, 'Yearly': 12 };
+
+		var months = $(recurring_type_map).attr(doc.recurring_type);
+		if(months) {
+			var to_date = wn.datetime.add_months(doc.invoice_period_from_date,
+				months);
+			doc.invoice_period_to_date = wn.datetime.add_days(to_date, -1);
+			refresh_field('invoice_period_to_date');
+		}
+	}
+}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 2d0a9f2..9139c95 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -681,31 +681,37 @@
 	#-------------------------------------------------------------------------------------
 
 	def set_default_recurring_values(self):
+		from webnotes.utils import cstr
+
 		owner_email = self.doc.owner
 		if owner_email.lower() == 'administrator':
-			owner_email = webnotes.conn.sql("select ifnull(email, '') \
-				from `tabProfile` where name = 'Administrator'")[0][0]
+			owner_email = cstr(webnotes.conn.get_value("Profile", "Administrator", "email"))
+		
 		ret = {
 			'repeat_on_day_of_month' : getdate(self.doc.posting_date).day,
-			'notification_email_address' : ', '.join([cstr(owner_email), self.doc.contact_email])
+			'notification_email_address' : ', '.join([owner_email, cstr(self.doc.contact_email)]),
 		}
 		return ret
 		
 	def validate_notification_email_id(self):
-		from webnotes.utils import validate_email_add
-		email_ids = self.doc.notification_email_address.replace('\n', '').replace(' ', '').split(",")
-		for add in email_ids:
-			if add and not validate_email_add(add):
-				msgprint("%s is not a valid email address" % add, raise_exception=1)
+		if self.doc.notification_email_address:
+			from webnotes.utils import validate_email_add
+			for add in self.doc.notification_email_address.replace('\n', '').replace(' ', '').split(","):
+				if add and not validate_email_add(add):
+					msgprint("%s is not a valid email address" % add, raise_exception=1)
+		else:
+			msgprint("Notification Email Addresses not specified for recurring invoice",
+				raise_exception=1)
 		
 		
 	def on_update_after_submit(self):
-		self.validate_notification_email_id()
 		self.convert_into_recurring()
 		
 		
 	def convert_into_recurring(self):
 		if self.doc.convert_into_recurring_invoice:
+			self.validate_notification_email_id()
+			
 			if not self.doc.recurring_type:
 				msgprint("Please select recurring type", raise_exception=1)
 			elif not self.doc.invoice_period_from_date or not self.doc.invoice_period_to_date: