diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js
index 3e50ad7..1edacd6 100644
--- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js
+++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js
@@ -1,9 +1,8 @@
 // Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-
 cur_frm.add_fetch("bank_account", "company", "company");
 cur_frm.cscript.onload = function(doc, cdt, cdn){
 	cur_frm.set_intro('<i class="icon-question" /> ' + 
 		wn._("Update clearance date of Journal Entries marked as 'Bank Vouchers'"))
-}
+}
\ No newline at end of file
diff --git a/erpnext/selling/doctype/sms_center/sms_center.js b/erpnext/selling/doctype/sms_center/sms_center.js
new file mode 100644
index 0000000..1c5b92b
--- /dev/null
+++ b/erpnext/selling/doctype/sms_center/sms_center.js
@@ -0,0 +1,17 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+// License: GNU General Public License v3. See license.txt
+
+$.extend(cur_frm.cscript, {
+	message: function () {
+		var total_words = this.frm.doc.message.length;
+		var total_msg = 1;
+
+		if (total_words > 160) {
+			total_msg = cint(total_words / 160);
+			total_msg = (total_words % 160 == 0 ? total_msg : total_msg + 1);
+		}
+
+		this.frm.set_value("total_words", total_words);
+		this.frm.set_value("total_messages", this.frm.doc.message ? total_msg : 0);
+	}
+});
\ No newline at end of file
diff --git a/erpnext/selling/doctype/sms_center/sms_center.py b/erpnext/selling/doctype/sms_center/sms_center.py
index 6eaab48..8681b9c 100644
--- a/erpnext/selling/doctype/sms_center/sms_center.py
+++ b/erpnext/selling/doctype/sms_center/sms_center.py
@@ -8,7 +8,7 @@
 from webnotes.model import db_exists
 from webnotes.model.bean import copy_doclist
 from webnotes.model.code import get_obj
-from webnotes import msgprint
+from webnotes import msgprint, _
 
 class DocType:
 	def __init__(self, doc, doclist=[]):
@@ -25,33 +25,47 @@
 			where_clause = self.doc.sales_partner and " and ifnull(is_sales_partner, 0) = 1 and sales_partner = '%s'" % self.doc.sales_partner or " and ifnull(sales_partner, '') != ''"
 
 		if self.doc.send_to in ['All Contact', 'All Customer Contact', 'All Supplier Contact', 'All Sales Partner Contact']:
-			rec = webnotes.conn.sql("select CONCAT(ifnull(first_name,''),'',ifnull(last_name,'')), mobile_no from `tabContact` where ifnull(mobile_no,'')!='' and docstatus != 2 %s" % where_clause)
+			rec = webnotes.conn.sql("""select CONCAT(ifnull(first_name,''), '', ifnull(last_name,'')), 
+				mobile_no from `tabContact` where ifnull(mobile_no,'')!='' and 
+				docstatus != 2 %s""", where_clause)
+		
 		elif self.doc.send_to == 'All Lead (Open)':
-			rec = webnotes.conn.sql("select lead_name, mobile_no from tabLead where ifnull(mobile_no,'')!='' and docstatus != 2 and status = 'Open'")
+			rec = webnotes.conn.sql("""select lead_name, mobile_no from `tabLead` where 
+				ifnull(mobile_no,'')!='' and docstatus != 2 and status='Open'""")
+		
 		elif self.doc.send_to == 'All Employee (Active)':
 			where_clause = self.doc.department and " and department = '%s'" % self.doc.department or ""
 			where_clause += self.doc.branch and " and branch = '%s'" % self.doc.branch or ""
-			rec = webnotes.conn.sql("select employee_name, cell_number from `tabEmployee` where status = 'Active' and docstatus < 2 and ifnull(cell_number,'')!='' %s" % where_clause)
+			rec = webnotes.conn.sql("""select employee_name, cell_number from 
+				`tabEmployee` where status = 'Active' and docstatus < 2 and 
+				ifnull(cell_number,'')!='' %s""", where_clause)
+		
 		elif self.doc.send_to == 'All Sales Person':
-			rec = webnotes.conn.sql("select sales_person_name, mobile_no from `tabSales Person` where docstatus != 2 and ifnull(mobile_no,'')!=''")
+			rec = webnotes.conn.sql("""select sales_person_name, mobile_no from 
+				`tabSales Person` where docstatus!=2 and ifnull(mobile_no,'')!=''""")
 			rec_list = ''
+		
 		for d in rec:
 			rec_list += d[0] + ' - ' + d[1] + '\n'
 			self.doc.receiver_list = rec_list
 
 	def get_receiver_nos(self):
 		receiver_nos = []
-		for d in self.doc.receiver_list.split('\n'):
-			receiver_no = d
-			if '-' in d:
-				receiver_no = receiver_no.split('-')[1]
-			if receiver_no.strip():
-				receiver_nos.append(cstr(receiver_no).strip())
+		if self.doc.receiver_list:
+			for d in self.doc.receiver_list.split('\n'):
+				receiver_no = d
+				if '-' in d:
+					receiver_no = receiver_no.split('-')[1]
+				if receiver_no.strip():
+					receiver_nos.append(cstr(receiver_no).strip())
+		else:
+			msgprint(_("Receiver List is empty. Please create Receiver List"))
+		
 		return receiver_nos
 
 	def send_sms(self):
 		if not self.doc.message:
-			msgprint("Please enter message before sending")
+			msgprint(_("Please enter message before sending"))
 		else:
 			receiver_list = self.get_receiver_nos()
 		if receiver_list:
diff --git a/erpnext/selling/doctype/sms_center/sms_center.txt b/erpnext/selling/doctype/sms_center/sms_center.txt
index 364704c..efa7a45 100644
--- a/erpnext/selling/doctype/sms_center/sms_center.txt
+++ b/erpnext/selling/doctype/sms_center/sms_center.txt
@@ -2,15 +2,13 @@
  {
   "creation": "2013-01-10 16:34:22", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:55:36", 
+  "modified": "2014-01-30 15:29:04", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "allow_attach": 0, 
   "allow_copy": 1, 
-  "allow_email": 1, 
-  "allow_print": 1, 
   "doctype": "DocType", 
   "hide_heading": 0, 
   "hide_toolbar": 0, 
@@ -30,15 +28,19 @@
   "permlevel": 0
  }, 
  {
+  "cancel": 0, 
   "create": 1, 
+  "delete": 0, 
   "doctype": "DocPerm", 
+  "export": 0, 
+  "import": 0, 
   "name": "__common__", 
   "parent": "SMS Center", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
   "permlevel": 0, 
   "read": 1, 
-  "report": 1, 
+  "report": 0, 
   "role": "System Manager", 
   "submit": 0, 
   "write": 1
@@ -121,6 +123,20 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "total_words", 
+  "fieldtype": "Int", 
+  "label": "Total Words", 
+  "read_only": 1
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "total_messages", 
+  "fieldtype": "Int", 
+  "label": "Total Message(s)", 
+  "read_only": 1
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "send_sms", 
   "fieldtype": "Button", 
   "label": "Send SMS", 
@@ -129,4 +145,4 @@
  {
   "doctype": "DocPerm"
  }
-]
+]
\ No newline at end of file
