added docdiff and removed un-necessary files
diff --git a/erpnext/home/doctype/company_control/company_control.txt b/erpnext/home/doctype/company_control/company_control.txt
index b11c7da..a83f4dd 100644
--- a/erpnext/home/doctype/company_control/company_control.txt
+++ b/erpnext/home/doctype/company_control/company_control.txt
@@ -18,7 +18,6 @@
 		'module': 'Home',
 		'name': '__common__',
 		'section_style': 'Simple',
-		'server_code': '\n\n\t# Update roles of given user\n\tdef update_roles(self,arg):\n\t\targ = eval(arg)\n\t\tsql("delete from `tabUserRole` where parenttype=\'Profile\' and parent =\'%s\'" % (cstr(arg[\'usr\'])))\n\t\trole_list = arg[\'role_list\'].split(\',\')\n\t\tmsgprint(sql("select role from tabUserRole where parent = \'%s\'" % cstr(arg[\'usr\'])))\n\t\tmsgprint(role_list)\n\t\tfor r in role_list:\n\t\t\tpr=Document(\'UserRole\')\n\t\t\tpr.parent = arg[\'usr\']\n\t\t\tpr.parenttype = \'Profile\'\n\t\t\tpr.role = r\n\t\t\tpr.parentfield = \'userroles\'\n\t\t\tpr.save(1)\n\t\tmsgprint(sql("select role from tabUserRole where parent = \'%s\'" % cstr(arg[\'usr\'])))\n\n\n  # Create New Profile\n  # ====================\n\tdef create_new_profile(self, arg):\n\t\tp = Document(\'Profile\')\n\t\tp.first_name = arg.get(\'first_name\') or arg.get(\'email_id\')\n\t\tp.last_name = arg.get(\'last_name\')\n\t\tp.email = arg.get(\'email_id\')\n\t\tp.name = arg.get(\'email_id\')\n\t\tp.user_type = arg.get(\'user_type\') or \'System User\'\n\t\tp.enabled = 0\t\n\t\tp.save(new=1)\n\t\tp_obj = get_obj(\'Profile\', p.name)\n\t\tp_obj.on_update()',
 		'server_code_error': ' ',
 		'version': 13
 	},
diff --git a/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt b/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt
index 99890b7..fe1e6e5 100644
--- a/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt
+++ b/erpnext/selling/search_criteria/customer_address_contact/customer_address_contact.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-02-13 11:28:45',
+		'creation': '2012-02-22 15:45:49',
 		'docstatus': 0,
-		'modified': '2012-02-13 11:28:45',
+		'modified': '2012-02-22 15:45:49',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/setup/doctype/contact_control/__init__.py b/erpnext/setup/doctype/contact_control/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/setup/doctype/contact_control/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/doctype/contact_control/contact_control.js b/erpnext/setup/doctype/contact_control/contact_control.js
deleted file mode 100755
index b6825eb..0000000
--- a/erpnext/setup/doctype/contact_control/contact_control.js
+++ /dev/null
@@ -1,562 +0,0 @@
-// common partner functions
-// =========================
-
-/*
-// make shipping list body
-// ------------------------
-cur_frm.cscript.make_sl_body = function(){
-	cur_frm.fields_dict['Shipping HTML'].wrapper.innerHTML = '';
-	cur_frm.shipping_html = $a(cur_frm.fields_dict['Shipping HTML'].wrapper,'div');
-}
-*/
-
-// make history list body
-// -----------------------
-cur_frm.cscript.make_hl_body = function(){
-	cur_frm.fields_dict['History HTML'].wrapper.innerHTML = '';
-	cur_frm.history_html = $a(cur_frm.fields_dict['History HTML'].wrapper,'div');
-}
-
-
-/*
-// set shipping list message
-// --------------------------
-cur_frm.cscript.set_sl_msg = function(doc){
-	cur_frm.shipping_html.innerHTML = 'Shipping Address Details will appear only when you save the ' + doc.doctype.toLowerCase();
-}
-*/
-/*
-// set history list message
-// -------------------------
-cur_frm.cscript.set_hl_msg = function(doc){
-	cur_frm.history_html.innerHTML= 'History Details will appear only when you save the ' + doc.doctype.toLowerCase();
-}
-*/
-
-
-/*
-// make shipping address
-// -------------
-cur_frm.cscript.make_shipping_address = function(doc, dt, dn){
-  	cur_frm.shipping_html.innerHTML = '';
-
-	var dsn = cur_frm.doc.customer_name;
-	var dsa = cur_frm.doc.address;
-	cl = new AddressList(cur_frm.shipping_html,dt,dn,dsn,dsa);
-}
-*/
-
-
-// make history
-// -------------
-cur_frm.cscript.make_history = function(doc,dt,dn){
-	cur_frm.history_html.innerHTML = '';
-	cur_frm.cscript.make_history_list(cur_frm.history_html,doc);
-}
-
-// make history list
-// ------------------
-cur_frm.cscript.make_history_list = function(parent,doc){
-
-	var sel = $a(parent,'select');
-	
-	var ls = ['Select Transaction..'];
-	for(d in cur_frm.history_dict){
-		ls.push(d);
-	}
-	
-	add_sel_options(sel,ls,'Select..');
-	
-	var body = $a(parent,'div');
-	body.innerHTML = '<div class="help_box">Please select a transaction type to see History</div>';
-	
-	sel.body = body;
-	sel.doc = doc;
-	
-	sel.onchange = function(){
-		for(d in cur_frm.history_dict){
-			if(sel_val(this) == d){
-				this.body.innerHTML = '';
-				eval(cur_frm.history_dict[d]);
-				return;
-			}
-			else{
-				// pass
-			}
-		}
-	}
-}
-
-// run list
-// ---------
-cur_frm.cscript.run_list = function(lst,parent,q,q_max,doc,dn,nm){
-	
-	parent.innerHTML = '';
-	$dh(parent);
-	
-	lst.doc = doc;
-	lst.dn = dn;
-	lst.nm = nm;
-	lst.page_len = 10;
-	
-	lst.get_query = function(){
-		this.query = q;
-		this.query_max = q_max;
-	}
-	
-	lst.make(parent);
-	lst.run();
-	
-	lst.onrun = function(){
-		$ds(parent);
-		if(!this.has_data()){
-			parent.innerHTML = '';
-			var dv = $a(parent,'div','help_box');
-			$a(dv,'span').innerHTML = "No " + this.dn + " found. ";
-			
-			var lbl = 'Create the <b>first</b> ' + this.dn + ' for ' + this.doc.name;
-			var sp = $a(dv,'span');
-			sp.nm = this.nm;
-			$(sp).html(lbl).addClass('link_type').click(function(){ newdoc(this.nm); });
-		}
-	}
-}
-
-
-// get sates on country trigger
-// -----------------------------
-cur_frm.cscript.get_states=function(doc,dt,dn){
-   $c('runserverobj', args={'method':'check_state', 'docs':compress_doclist([doc])},
-    function(r,rt){
-      if(r.message) {
-        set_field_options('state', r.message);
-      }
-    }  
-  );
-
-}
-
-cur_frm.cscript.country = function(doc, dt, dn) {
-  cur_frm.cscript.get_states(doc, dt, dn);
-}
-
-// territory help - cutsomer + sales partner
-// -----------------------------------------
-cur_frm.cscript.TerritoryHelp = function(doc,dt,dn){
-  var call_back = function(){
-
-    var sb_obj = new SalesBrowser();        
-    sb_obj.set_val('Territory');
-  }
-  loadpage('Sales Browser',call_back);
-}
-
-// get query select Territory
-// ---------------------------
-if(cur_frm.fields_dict['territory']){
-	cur_frm.fields_dict['territory'].get_query = function(doc,dt,dn) {
-		return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"  ORDER BY  `tabTerritory`.`name` ASC LIMIT 50';
-	}
-}
-
-
-// =======================================================================================================
-
-// contact list
-// --------------
-ContactList = function(parent,dt,dn,dsn){
-	
-	var me = this;
-	
-	this.dt = dt;
-	this.dn = dn;
-	this.dsn = dsn ? dsn : dn;
-
-	this.wrapper = $a(parent,'div');
-	me.get_list();
-}
-
-// add contact
-// ------------
-ContactList.prototype.add_contact = function(){
-	var me = this;
-	
-	// onload - set default values
-	var cont = LocalDB.create('Contact');
-
-	var c = locals['Contact'][cont];
-	
-	if(me.dt == 'Customer')	{
-		c.is_customer = 1;
-		c.customer = me.dn;
-		c.customer_name = me.dsn;
-	}
-	else if(me.dt == 'Supplier'){
-		c.is_supplier = 1;
-		c.supplier = me.dn;
-		c.supplier_name = me.dsn;
-	}
-	else if(me.dt == 'Sales Partner'){
-		c.is_sales_partner = 1;
-		c.sales_partner = me.dn;
-		//c.sales_partner_name = me.dsn;
-	}
-	
-	loaddoc('Contact',c.name);
-}
-
-// get contact list
-// -----------------
-ContactList.prototype.get_list = function(){
-	var me = this;
-	
-	me.make_list();
-	
-	var dt = me.dt.toLowerCase().split(' ').join('_');
-	
-	// build query
-	me.lst.get_query = function(){
-		this.query = repl("select name, first_name, last_name, concat_ws(' ', first_name, last_name), email_id, contact_no, department, designation, is_primary_contact, has_login, disable_login from tabContact where %(dt)s = '%(dn)s' and docstatus != 2",{'dt':dt, 'dn':me.dn});
-
-		this.query_max = repl("select count(name) from tabContact where %(dt)s = '%(dn)s' and docstatus != 2",{'dt':dt, 'dn':me.dn});
-	}
-	
-	// render list ui
-	me.lst.show_cell = function(cell,ri,ci,d){
-		me.render_list(cell,ri,ci,d);
-	}
-	
-	// run query
-	me.lst.run();
-	
-	// onrun
-	me.lst.onrun = function(){
-		if(!this.has_data()){
-			this.rec_label.innerHTML = '';
-			
-			$a(this.rec_label,'span').innerHTML = "You do not have any contact. ";
-			$($a(this.rec_label,'span')).html('Add a new contact').addClass('link_type').click(function(){ me.add_contact(); });
-			
-			$dh(this.results);
-		}
-		else{
-			$ds(this.results);
-		}
-	}	
-}
-
-// make list
-// -----------
-ContactList.prototype.make_list = function(){
-	var me = this;
-	
-	var l = new Listing();
-	l.colwidths = ['5%','30%','30%','20%','20%'];
-	l.colnames = ['Sr.','Contact Name','Email Id','Contact No', 'Action'];
-	l.page_len = 10;
-  
-	me.lst = l;
-	
-	l.make(me.wrapper);
-	
-	// Add contact button
-	me.add_btn = $btn(l.btn_area,'+ Add Contact', function(){ me.add_contact();}, {fontWeight:'bold'});
-}
-
-// make contact cell
-// ------------------
-ContactList.prototype.render_list = function(cell,ri,ci,d){
-	var me = this;
-
-	// name
-	if(ci == 0){
-		var nm = $a($a(cell,'div'),'span','',{cursor:'pointer'});
-		nm.innerHTML = d[ri][3];
-		nm.id = d[ri][0];
-		
-		nm.onclick = function(){
-			loaddoc('Contact', this.id);
-			
-			// on save callback - refresh list
-		}
-
-		// department and designation
-		var des = d[ri][7] ? d[ri][7] : '';
-		var dep = d[ri][6] ? d[ri][6] : '';
-		
-		var sp = $a(cell,'div','comment');
-		sp.innerHTML = des + (dep ? (', ' + dep) : ''); 
-	}
-	
-	// email id, contact no, department, designation
-	// -----------------------------------------------------
-	if(ci == 1) cell.innerHTML = d[ri][4] ? d[ri][4] : '-';
-	if(ci == 2) cell.innerHTML = d[ri][5] ? d[ri][5] : '-';
-	
-	// actions
-	// --------------------------------------
-	if(ci== 3) me.make_actions(cell,ri,ci,d);
-}
-
-// make actions
-// ---------------
-ContactList.prototype.make_actions = function(cell,ri,ci,d){
-	var me = this;
-	
-	var tab = make_table(cell,1,2,'100%',['40%','60%']);
-
-	// Edit and Delete
-	var t = make_table($td(tab,0,0),1,2);
-	
-	var edit = $a($td(t,0,0),'div','wn-icon ic-doc_edit');
-	$(edit).click(function(){ loaddoc('Contact',d[ri][0]); });
-	
-	edit.setAttribute('title','Edit');
-
-// Below code should be uncommented once customer/venodr invitation process is stable
-// ===========================================================================
-/* 
-	var del = $a($td(t,0,1),'div','wn-icon ic-trash');
-	$(del).click(function(){ me.delete_contact(d[ri][0],d[ri][4]) });
-
-	set_custom_tooltip(del, 'Delete');
-	
-	//  Invite, Enable and Disable - Integrate after gateway logic incorporated
-
-	if(d[ri][9] == 'Yes')	{
-		if(d[ri][10] == 'Yes'){
-			var enb = $a($td(tab,0,1),'div','wn-icon ic-checkmark');
-			$(enb).click(function(){ me.enable_login(d[ri][0], d[ri][4]); });
-		}
-		else{
-			var dsb = $a($td(tab,0,1),'div','wn-icon ic-delete');
-			$(dsb).click(function(){ me.disable_login(d[ri][0], d[ri][4]) });
-		}
-	}
-	else{
-		var inv = $a($td(tab,0,1),'div','wn-icon ic-mail');
-		$(inv).click(function(){ me.invite_contact(d[ri][0], d[ri][4], d[ri][1], d[ri][2]) });
-	}*/
-}
-
-// enable login
-// ----------------------------------------------------------
-ContactList.prototype.enable_login = function(id, email_id){
-	var me = this;
-	
-	var callback = function(r,rt){
-		me.get_list();
-		
-		if(!r.exc) msgprint('Login for contact enabled',1);
-		else errprint(r.exc);
-	}
-	
-	var args = {};
-	args.contact = id;
-	args.email = email_id;
-	
-	$c_obj('Contact Control','enable_login',JSON.stringify(args),callback);
-}
-
-// disable login
-// -------------------------------------------------------------
-ContactList.prototype.disable_login = function(id, email_id){
-	var me = this;
-	
-	var callback = function(r,rt){
-		me.get_list();
-		
-		if(!r.exc) msgprint('Login for contact disabled',1);
-		else errprint(r.exc);
-	}
-
-	var args = {};
-	args.contact = id;
-	args.email = email_id;
-		
-	$c_obj('Contact Control','disable_login',JSON.stringify(args),callback);
-}
-
-// delete contact
-// -----------------
-ContactList.prototype.delete_contact = function(id,email_id,has_login){
-	var me = this;
-	
-	var callback = function(r,rt){
-		me.get_list();
-		
-		if(!r.exc) msgprint('Contact deleted successfully');
-		else errprint(r.exc);
-	}
-	
-	var args = {};
-	args.contact = id;
-	args.email = email_id;
-	args.has_login = has_login;
-	
-	$c_obj('Contact Control','delete_contact',JSON.stringify(args),callback);
-}
-
-// invite user
-// --------------------------------------------------------
-ContactList.prototype.invite_contact = function(id,email_id,first_name,last_name){
-	var me = this;
-
-	if(!email_id){
-		msgprint("Please add email id and save the contact first. You can then invite contact to view transactions.")
-	}
-	else{
-		var callback = function(r,rt){
-			if(!r.exc) msgprint('Invitation sent');
-			else errprint(r.exc);
-		}
-	
-		var args = {
-			'contact' : id,
-			'email' : email_id,
-			'first_name' : first_name ? first_name : '',
-			'last_name' : last_name ? last_name : '',
-			'usert_type' : 'Partner'
-		};
-		
-		$c_obj('Contact Control','invite_contact',JSON.stringify(args),callback);	
-	}
-}
-
-
-// address list
-// --------------
-AddressList = function(parent,dt,dn,dsn,dsa){
-	
-	var me = this;
-	
-	this.dt = dt;
-	this.dn = dn;
-	this.dsn = dsn ? dsn : dn;
-        this.dsa = dsa ? dsa : '';
-
-	this.wrapper = $a(parent,'div');
-	me.get_addr_list();
-}
-
-
-// add contact
-// ------------
-AddressList.prototype.add_address = function(){
-	var me = this;
-	
-	// onload - set default values
-	var addr = LocalDB.create('Shipping Address');
-
-	var a = locals['Shipping Address'][addr];
-	
-	a.customer = me.dn;
-	a.customer_name = me.dsn;
-        a.customer_address = me.dsa;	
-	loaddoc('Shipping Address',a.name);
-}
-
-
-// get address list
-// -----------------
-AddressList.prototype.get_addr_list = function(){
-	var me = this;
-	
-	me.make_addr_list();
-	
-	var dt = me.dt.toLowerCase().split(' ').join('_');
-	
-	// build query
-	me.lst.get_query = function(){
-		this.query = repl("select name, ship_to, shipping_address, is_primary_address, shipping_details from `tabShipping Address` where %(dt)s = '%(dn)s' and docstatus != 2",{'dt':dt, 'dn':me.dn});
-
-		this.query_max = repl("select count(name) from `tabShipping Address` where %(dt)s = '%(dn)s'",{'dt':dt, 'dn':me.dn});
-	}
-	
-	// render list ui
-	me.lst.show_cell = function(cell,ri,ci,d){
-		me.render_list(cell,ri,ci,d);
-	}
-	
-	// run query
-	me.lst.run();
-	
-	// onrun
-	me.lst.onrun = function(){
-		if(!this.has_data()){
-			this.rec_label.innerHTML = '';
-			
-			$a(this.rec_label,'span').innerHTML = "You do not have any shipping address.";
-			$($a(this.rec_label,'span')).html('Add a new address').addClass('link_type').click(function(){ me.add_address(); });
-			
-			$dh(this.results);
-		}
-		else{
-			$ds(this.results);
-		}
-	}	
-}
-
-
-// make list
-// -----------
-AddressList.prototype.make_addr_list = function(){
-	var me = this;
-	
-	var l = new Listing();
-	l.colwidths = ['5%', '15%', '25%','10%','35%','10%'];
-	l.colnames = ['Sr.', 'Ship To', 'Shipping Address','Primary Address', 'Shipping Details', 'Action'];
-    l.page_len = 10;
-  
-	me.lst = l;
-	
-	l.make(me.wrapper);
-	
-	// Add address button
-	me.add_btn = $btn(l.btn_area,'+ Add Address', function(){ me.add_address();}, {fontWeight:'bold'});
-}
-
-
-
-// make address cell
-// ------------------
-AddressList.prototype.render_list = function(cell,ri,ci,d){
-	var me = this;
-
-	// name
-	if(ci == 0){
-		var nm = $a($a(cell,'div'),'span','',{cursor:'pointer'});
-		nm.innerHTML = d[ri][1];
-		nm.id = d[ri][0];
-		
-		nm.onclick = function(){
-			loaddoc('Shipping Address', this.id);
-		}
-	}
-	
-	// shipping address, primary address, shipping details
-	// ----------------------------------------------------
-	if(ci == 1) cell.innerHTML = d[ri][2] ? d[ri][2] : '-';
-	if(ci == 2) cell.innerHTML = d[ri][3] ? d[ri][3] : '-';
-	if(ci == 3) cell.innerHTML = d[ri][4] ? d[ri][4] : '-';
-	
-	// actions
-	// --------------------------------------
-	if(ci== 4) me.make_actions(cell,ri,ci,d);
-}
-
-// make actions
-// ---------------
-AddressList.prototype.make_actions = function(cell,ri,ci,d){
-	var me = this;
-	
-	var tab = make_table(cell,1,2,'100%',['40%','60%']);
-
-	// Edit and Delete
-	var t = make_table($td(tab,0,0),1,2);
-	
-	var edit = $a($td(t,0,0),'div','wn-icon ic-doc_edit');
-	$(edit).click(function(){ loaddoc('Shipping Address',d[ri][0]); });
-	
-	edit.setAttribute('title','Edit');
-}
diff --git a/erpnext/setup/doctype/contact_control/contact_control.py b/erpnext/setup/doctype/contact_control/contact_control.py
deleted file mode 100644
index 3c25d7f..0000000
--- a/erpnext/setup/doctype/contact_control/contact_control.py
+++ /dev/null
@@ -1,103 +0,0 @@
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self,doc,doclist=[]):
-    self.doc = doc
-    self.doclist = doclist
-    
-  def enable_login(self,arg):
-    arg = eval(arg)
-    sql("update tabContact set disable_login = 'No' where name=%s",arg['contact'])
-    sql("update tabProfile set enabled=1 where name=%s",arg['email'])
-    
-  def disable_login(self,arg):
-    arg = eval(arg)
-    sql("update tabContact set disable_login = 'Yes' where name=%s",arg['contact'])
-    sql("update tabProfile set enabled=0 where name=%s",arg['email'])
-    
-  def create_login(self,arg):
-    arg = eval(arg)
-    cont_det = sql("select * from tabContact where name=%s",(arg['contact']),as_dict=1)
-    if cont_det[0]['docstatus'] !=0:
-      msgprint('Please save the corresponding contact first')
-      raise Exception
-      
-    if sql("select name from tabProfile where name=%s",cont_det[0]['email_id']):
-      msgprint('Profile with same name already exist.')
-      raise Exception
-    else:
-      p = Document('Profile')
-      p.name = cont_det[0]['email_id']
-      p.first_name = cont_det[0]['first_name']
-      p.last_name = cont_det[0]['last_name']
-      p.email = cont_det[0]['email_id']
-      p.cell_no = cont_det[0]['contact_no']
-      p.password = 'password'
-      p.enabled = 1
-      p.user_type = 'Partner';
-      p.save(1)
-      
-      get_obj(doc=p).on_update()
-      
-      role = []
-      if cont_det[0]['contact_type'] == 'Individual':
-        role = ['Customer']
-      else:
-        if cont_det[0]['is_customer']:
-          role.append('Customer')
-        if cont_det[0]['is_supplier']:
-          role.append('Supplier')
-        if cont_det[0]['is_sales_partner']:
-          role.append('Partner')
-
-      if role:
-        prof_nm = p.name
-        for i in role:
-          r = Document('UserRole')
-          r.parent = p.name
-          r.role = i
-          r.parenttype = 'Profile'
-          r.parentfield = 'userroles'
-          r.save(1)
-        
-          if i == 'Customer':
-            def_keys = ['from_company','customer_name','customer']
-            def_val = cont_det[0]['customer_name']
-            self.set_default_val(def_keys,def_val,prof_nm)
-
-          if i == 'Supplier':
-            def_keys = ['supplier_name','supplier']
-            def_val = cont_det[0]['supplier_name']
-            self.set_default_val(def_keys,def_val,prof_nm)
-
-      sql("update tabContact set has_login = 'Yes' where name=%s",cont_det[0]['name'])
-      sql("update tabContact set disable_login = 'No' where name=%s",cont_det[0]['name'])
-      msgprint('User login is created.')
-      
- #------set default values---------
-  def set_default_val(self,def_keys,def_val,prof_nm):
-    for d in def_keys:
-      kv = Document('DefaultValue')
-      kv.defkey = d
-      kv.defvalue = def_val
-      kv.parent = prof_nm
-      kv.parenttype = 'Profile'
-      kv.parentfield = 'defaults'
-      kv.save(1)
\ No newline at end of file
diff --git a/erpnext/setup/doctype/contact_control/contact_control.txt b/erpnext/setup/doctype/contact_control/contact_control.txt
deleted file mode 100644
index b9e84ad..0000000
--- a/erpnext/setup/doctype/contact_control/contact_control.txt
+++ /dev/null
@@ -1,88 +0,0 @@
-# DocType, Contact Control
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:56',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'yogesh@webnotestech.com',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'in_create': 1,
-		'issingle': 1,
-		'module': 'Setup',
-		'name': '__common__',
-		'read_only': 1,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 25
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Text',
-		'name': '__common__',
-		'parent': 'Contact Control',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Contact Control',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocType, Contact Control
-	{
-		'doctype': 'DocType',
-		'name': 'Contact Control'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'header',
-		'idx': 1,
-		'label': 'Header'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'customer_intro',
-		'idx': 2,
-		'label': 'Customer Intro'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'supplier_intro',
-		'idx': 3,
-		'label': 'Supplier Intro'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/role/__init__.py b/erpnext/setup/doctype/role/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/setup/doctype/role/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/doctype/role/role.js b/erpnext/setup/doctype/role/role.js
deleted file mode 100644
index 672f4ac..0000000
--- a/erpnext/setup/doctype/role/role.js
+++ /dev/null
@@ -1,6 +0,0 @@
-class DocType:
-  def __init__(self, d, dl):
-    self.doc, self.doclist = d, dl
-
-  def t1(self):
-    msgprint('role')
\ No newline at end of file
diff --git a/erpnext/setup/doctype/role/role.py b/erpnext/setup/doctype/role/role.py
deleted file mode 100644
index 4c9d7f5..0000000
--- a/erpnext/setup/doctype/role/role.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# Please edit this list and import only required elements
-import webnotes
-
-from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
-from webnotes.model import db_exists
-from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
-from webnotes.model.doclist import getlist, copy_doclist
-from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
-from webnotes import session, form, is_testing, msgprint, errprint
-
-set = webnotes.conn.set
-sql = webnotes.conn.sql
-get_value = webnotes.conn.get_value
-in_transaction = webnotes.conn.in_transaction
-convert_to_lists = webnotes.conn.convert_to_lists
-	
-# -----------------------------------------------------------------------------------------
-
-
-class DocType:
-  def __init__(self, d, dl):
-    self.doc, self.doclist = d, dl
-
-  def t1(self):
-    msgprint('role')
\ No newline at end of file
diff --git a/erpnext/setup/doctype/role/role.txt b/erpnext/setup/doctype/role/role.txt
deleted file mode 100644
index afebb31..0000000
--- a/erpnext/setup/doctype/role/role.txt
+++ /dev/null
@@ -1,114 +0,0 @@
-# DocType, Role
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2009-05-12 11:19:11',
-		'docstatus': 0,
-		'modified': '2010-12-28 17:02:39',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1307624201',
-		'allow_copy': 0,
-		'allow_email': 0,
-		'allow_print': 0,
-		'autoname': 'field:role_name',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'hide_heading': 0,
-		'hide_toolbar': 0,
-		'idx': 0,
-		'issingle': 0,
-		'istable': 0,
-		'module': 'Setup',
-		'name': '__common__',
-		'read_only': 0,
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'version': 1
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Role',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'cancel': 0,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'execute': 0,
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'Role',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'Administrator',
-		'submit': 0,
-		'write': 1
-	},
-
-	# DocType, Role
-	{
-		'doctype': 'DocType',
-		'name': 'Role'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'module',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'Module',
-		'oldfieldname': 'module',
-		'oldfieldtype': 'Select',
-		'options': 'link:Module Def',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'role_name',
-		'fieldtype': 'Data',
-		'idx': 2,
-		'label': 'Role Name',
-		'oldfieldname': 'role_name',
-		'oldfieldtype': 'Data',
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'defaults',
-		'fieldtype': 'Table',
-		'hidden': 0,
-		'idx': 3,
-		'label': 'Defaults',
-		'oldfieldname': 'defaults',
-		'oldfieldtype': 'Table',
-		'options': 'DefaultValue',
-		'reqd': 0,
-		'search_index': 0
-	}
-]
\ No newline at end of file
diff --git a/erpnext/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt b/erpnext/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt
index f59ab73..7cc2350 100644
--- a/erpnext/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt
+++ b/erpnext/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		'creation': '2012-02-02 11:50:33',
+		'creation': '2012-02-22 15:45:56',
 		'docstatus': 0,
-		'modified': '2012-02-21 16:11:29',
+		'modified': '2012-02-22 15:45:56',
 		'modified_by': u'Administrator',
 		'owner': u'Administrator'
 	},
diff --git a/erpnext/utilities/doctype/doctype_label/__init__.py b/erpnext/utilities/doctype/doctype_label/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/doctype/doctype_label/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/doctype/doctype_label/doctype_label.txt b/erpnext/utilities/doctype/doctype_label/doctype_label.txt
deleted file mode 100644
index 12f0cf8..0000000
--- a/erpnext/utilities/doctype/doctype_label/doctype_label.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'section_style': 'Simple', 'is_transaction_doc': None, 'creation': '2010-06-10 10:41:58', 'search_fields': None, 'module': 'Application Internal', 'doctype': 'DocType', 'change_log': None, 'print_outline': '', 'owner': 'Administrator', 'in_dialog': None, 'in_create': None, 'read_only': None, 'allow_email': None, 'dt_template': None, 'hide_heading': None, 'issingle': None, 'allow_rename': None, 'smallicon': None, 'allow_attach': None, 'show_in_menu': None, 'max_attachments': None, 'version': 2, 'menu_index': None, 'docstatus': 0, 'allow_copy': None, 'istable': None, 'description': None, 'parent': None, 'server_code': None, 'allow_trash': None, 'allow_print': None, 'autoname': 'field:dt', 'client_script_core': None, 'client_string': None, 'use_template': None, 'modified_by': 'Administrator', 'document_type': None, 'name': 'DocType Label', 'idx': None, 'hide_toolbar': None, 'colour': 'White:FFF', 'client_script': None, 'modified': '2010-09-20 14:06:57', 'server_code_error': ' ', 'name_case': '', 'parenttype': None, 'read_only_onload': None, 'server_code_core': None, 'server_code_compiled': None, 'parent_node': None, 'parentfield': None}, {'cancel': None, 'amend': None, 'execute': None, 'modified_by': 'Administrator', 'name': 'PERM01036', 'parent': 'DocType Label', 'read': 1, 'create': 1, 'creation': '2010-06-10 10:41:58', 'modified': '2010-06-10 10:44:09', 'submit': None, 'doctype': 'DocPerm', 'write': 1, 'idx': 1, 'parenttype': 'DocType', 'role': 'Administrator', 'owner': 'Administrator', 'docstatus': 0, 'permlevel': 0, 'match': None, 'parentfield': 'permissions'}, {'no_copy': None, 'oldfieldtype': 'Select', 'creation': '2010-06-10 10:41:58', 'doctype': 'DocField', 'oldfieldname': 'dt', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'Administrator', 'label': 'Select DocType', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'DocType Label', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL05322', 'idx': 1, 'default': None, 'colour': None, 'modified': '2010-06-10 10:44:09', 'parenttype': 'DocType', 'fieldname': 'dt', 'fieldtype': 'Select', 'options': 'link:DocType', 'report_hide': None, 'parentfield': 'fields'}, {'no_copy': None, 'oldfieldtype': 'Data', 'creation': '2010-06-10 10:41:58', 'doctype': 'DocField', 'oldfieldname': 'dt_label', 'owner': 'Administrator', 'reqd': 1, 'in_filter': None, 'print_hide': None, 'modified_by': 'Administrator', 'label': 'DocType Label', 'width': None, 'trigger': None, 'depends_on': None, 'docstatus': 0, 'hidden': None, 'permlevel': 0, 'description': None, 'parent': 'DocType Label', 'search_index': None, 'allow_on_submit': None, 'icon': None, 'name': 'FL05323', 'idx': 2, 'default': None, 'colour': None, 'modified': '2010-06-10 10:44:09', 'parenttype': 'DocType', 'fieldname': 'dt_label', 'fieldtype': 'Data', 'options': None, 'report_hide': None, 'parentfield': 'fields'}]
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/doctype_property_setter/__init__.py b/erpnext/utilities/doctype/doctype_property_setter/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/doctype/doctype_property_setter/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.py b/erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.py
deleted file mode 100644
index 28eccd4..0000000
--- a/erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.py
+++ /dev/null
@@ -1,15 +0,0 @@
-class DocType:
-  def __init__(self,d,dl):
-    self.doc, self.doclist = d, dl
-    
-  def update_dt(self):
-    sql("update tabDocType set module=%s, autoname=%s, read_only_onload=%s, section_style=%s, description=%s where name=%s limit 1", (self.doc.module, self.doc.autoname, self.doc.show_print_format_first, self.doc.page_style, self.doc.description, self.doc.select_doctype))
-    
-  def get_details(self):
-    ret = sql("select module, autoname, read_only_onload, section_style, description from tabDocType where name=%s", (self.doc.select_doctype))    
-    self.doc.module = ret[0][0] or ''
-    self.doc.autoname = ret[0][1] or ''
-    self.doc.show_print_format_first = ret[0][2] or 0
-    self.doc.page_style = ret[0][3] or 'Simple'
-    self.doc.description = ret[0][4] or ''
-    
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.txt b/erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.txt
deleted file mode 100644
index f0d17d8..0000000
--- a/erpnext/utilities/doctype/doctype_property_setter/doctype_property_setter.txt
+++ /dev/null
@@ -1,138 +0,0 @@
-# DocType, DocType Property Setter
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:08:59',
-		'docstatus': 0,
-		'modified': '2010-09-20 14:06:57',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'issingle': 1,
-		'module': 'Utilities',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'version': 4
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'DocType Property Setter',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
-		'permlevel': 0
-	},
-
-	# These values are common for all DocPerm
-	{
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'name': '__common__',
-		'parent': 'DocType Property Setter',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'permlevel': 0,
-		'read': 1,
-		'role': 'System Manager',
-		'write': 1
-	},
-
-	# DocType, DocType Property Setter
-	{
-		'doctype': 'DocType',
-		'name': 'DocType Property Setter'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'select_doctype',
-		'fieldtype': 'Select',
-		'idx': 1,
-		'label': 'Select DocType',
-		'options': 'link:DocType'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 2,
-		'label': 'Get Details',
-		'options': 'get_details',
-		'trigger': 'Server'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'module',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'label': 'Module',
-		'options': 'Module Def'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'autoname',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'label': 'Autoname'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'page_style',
-		'fieldtype': 'Select',
-		'idx': 5,
-		'label': 'Page Style',
-		'options': 'Simple\nTabbed\nTray'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'show_print_format_first',
-		'fieldtype': 'Check',
-		'idx': 6,
-		'label': 'Show Print Format First'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'description',
-		'fieldtype': 'Text Editor',
-		'idx': 7,
-		'label': 'Description',
-		'width': '300px'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 8,
-		'label': 'Update',
-		'options': 'update_dt',
-		'trigger': 'Server'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/utilities/page/file_browser/__init__.py b/erpnext/utilities/page/file_browser/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/page/file_browser/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/page/file_browser/file_browser.html b/erpnext/utilities/page/file_browser/file_browser.html
deleted file mode 100644
index d30409e..0000000
--- a/erpnext/utilities/page/file_browser/file_browser.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<div style="margin: 0px;">
-<div id="fb_header">&nbsp;</div>
-<!--
-<table style="border: 1px solid #cccccc; width: 100%; background-color: #dfe1fd; vertical-align: middle; border-collapse: collapse;" border="0">
-<tbody>
-<tr>
-<td style="width: 70%; padding-left: 8px;">
-<h2>File Browser</h2>
-</td>
-<td style="width: 30%; text-align: right; padding-right: 8px; vertical-align: middle;"><span class="link_type" title="Close"> <img style="cursor:pointer" mce_style="cursor:pointer" onclick="nav_obj.show_last_open()" src="images/icons/close.gif" mce_src="images/icons/close.gif" alt="" /> </span></td>
-</tr>
-</tbody>
-</table>
--->
-<div style="width: 100%;">
-<table style="border: 1px solid #cccccc; width: 100%; border-collapse: collapse;" border="0">
-<tbody>
-<tr>
-<td style="border: 1px solid #cccccc; padding: 8px; width: 40%; border-collapse: collapse;">
-<table style="width: 100%;" border="0">
-<tbody>
-<tr>
-<td id="fb_gen_action" style="width: 100%; vertical-align: middle;">&nbsp;</td>
-</tr>
-<tr>
-<td id="fb_tree_div" style="width: 100%; padding-top: 20px;">&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</td>
-<td style="border: 1px solid #cccccc; padding: 8px; width: 60%; border-collapse: collapse;">
-<table style="width: 100%;" border="0">
-<tbody>
-<tr>
-<td id="fb_file_action" style="width: 100%; vertical-align: middle;">&nbsp;</td>
-</tr>
-<tr>
-<td id="fb_grp_action" style="width: 100%; vertical-align: middle;">&nbsp;</td>
-</tr>
-<tr>
-<td id="fb_display_div" style="width: 100%; vertical-align: middle;">&nbsp;</td>
-</tr>
-<tr>
-<td id="unselect">
-<h2 style="color:#AAA">You have not selected anything.</h2>
-</td>
-</tr>
-</tbody>
-</table>
-</td>
-</tr>
-</tbody>
-</table>
-</div>
-</div>
\ No newline at end of file
diff --git a/erpnext/utilities/page/file_browser/file_browser.js b/erpnext/utilities/page/file_browser/file_browser.js
deleted file mode 100644
index 279bbed..0000000
--- a/erpnext/utilities/page/file_browser/file_browser.js
+++ /dev/null
@@ -1,992 +0,0 @@
-pscript['onload_File Browser'] = function(){
-	
-	// header and toolbar
-	var h = new PageHeader('fb_header','File Management','Upload and share your file across users');
-	//$dh(h.toolbar); $y(h.toolbar,{width:'0px', height:'0px'})
-	
-	if(!pscript.fb_tree)
-		pscript.create_browser_tree();
-	pscript.get_root_file_grps();
-	
-	pscript.create_action_widget();
-	pscript.create_display_div();
-
-	pscript.create_n_file_grp_obj();
-	pscript.create_n_file_obj();
-	pscript.create_attach_obj();
-	
-	pscript.get_all_roles();
-	
-	$ds(pscript.gen_div);
-	$dh(pscript.grp_div);
-	$dh(pscript.file_div);
-	
-	$ds($i('unselect'));
-}
-
-// Get all roles
-pscript.get_all_roles = function(){
-	if(!pscript.fg_all_roles){
-		var callback = function(r,rt){
-			pscript.fg_all_roles = r.message ? r.message : '';
-			pscript.create_share_obj();
-			pscript.fg_share.make(r.message);
-		}
-		$c_obj('File Browser Control','get_all_roles','',callback);
-	}
-}
-
-
-// Creating File Browser tree.
-pscript.create_browser_tree = function() {
-
-	$i('fb_tree_div').innerHTML = '';
-	var tree = new Tree($i('fb_tree_div'), '100%');
-	pscript.fb_tree = tree;
-	
-	pscript.fb_tree.std_onclick = function(node) { /*pass*/ }		   // on click
-	pscript.fb_tree.std_onexp = function(node) { /*PASS*/ }			 // on expand
-	
-	$ds(pscript.gen_div);
-	$dh(pscript.grp_div);
-	$dh(pscript.file_div);
-	
-	$dh(pscript.f_file_display);
-}
-
-// Creating a Share Privilege object.
-pscript.create_share_obj = function(){
-	
-	var d = new Dialog(400,400,'Assign Privilege');
-	var me = d;
-	d.inputs = {};
-	
-	d.make_body([
-		['HTML','Privilege','<div id="fg_share_div" style="overflow-y:auto; height:300px"></div>'],
-		['Button','Update']
-	]);
-	
-	
-	d.make = function(all_roles){
-		optn_header = make_table('fg_share_div',1,2,'100%',['60%','40%'],{padding:'4px'});
-
-		for(var c=0;c<2;c++){
-			if(c==1)
-				$td(optn_header,0,c).innerHTML = '<b>Privilege</b>';
-			else
-				$td(optn_header,0,c).innerHTML = '<b>Role</b>';
-		}
-		
-		optn_tbl = make_table('fg_share_div',all_roles.length,2,'100%',['60%','40%'],{padding:'4px'});
-		
-		for(var i=0;i<all_roles.length;i++){
-
-			var v=$a($td(optn_tbl, i,0),'div');
-			v.innerHTML=all_roles[i];
-
-			// make select
-			var sel = $a($td(optn_tbl, i,1),'select');
-			add_sel_options(sel,['None','Edit','View'],'None');
-			
-			sel.r_nm = all_roles[i];
-			d.inputs[sel.r_nm] = sel;
-			
-			sel.onchange = function(){}
-		}
-	}
-
-	// Assigning roles in Share Privilege object.
-	d.assign = function(all_roles,edit_roles,view_roles){
-
-		if(all_roles == undefined) all_roles = '';		
-		if(edit_roles == undefined) edit_roles = '';
-		if(view_roles == undefined) view_roles = '';
-		
-		for(var i=0;i<all_roles.length;i++){
-			var ele = all_roles[i];
-			var sel = me.inputs[ele];
-			
-			if(in_list(edit_roles,ele))
-				sel.value = 'Edit';
-			else if(in_list(view_roles,ele))
-				sel.value = 'View';
-			else
-				sel.value = 'None';
-		}
-	}
-	
-	//on update
-	d.widgets['Update'].onclick = function(){
-		var edit_roles = []; var view_roles = [];
-		
-		for(var i=0;i<pscript.fg_all_roles.length;i++){
-			var ele = pscript.fg_all_roles[i]; var sel = me.inputs[ele];
-
-			if(sel_val(sel) == 'Edit')
-				edit_roles.push(ele)
-			else if(sel_val(sel) == 'View')
-				view_roles.push(ele)
-		}
-
-		var args = {}; args.name = pscript.f_cur_node_name; args.type = pscript.f_cur_node_type;
-		args.edit_roles = edit_roles.join(','); args.view_roles = view_roles.join(',');
-		
-		$c_obj('File Browser Control','update_privileges',docstring(args),function(r,rt){me.hide();});
-	}
-	
-	d.onshow = function(){}	
-	d.onhide = function(){}
-	pscript.fg_share = d;
-}
-
-// Action Widget
-pscript.create_action_widget = function(){
-
-	// General Actions.
-	// new action widget
-	pscript.gen_div = $i('fb_gen_action');
-	
-	//refresh tree
-	f_refresh = $a(pscript.gen_div,'span','',{marginRight:'15px'});
-	f_refresh.innerHTML = '<img src="images/icons/page_refresh.gif" style="margin-right:5px; vertical-align:middle"/><span class="link_type" style="vertical-align:middle">Refresh</span>';
-	f_refresh.onclick = function(){
-		pscript.fb_refresh(); 
-		$dh(pscript.f_file_display);
-	}
-
-	// new group
-	f_new_grp = $a(pscript.gen_div,'span','',{marginRight:'15px'});
-	f_new_grp.innerHTML = '<img src="images/icons/folder.gif" style="margin-right: 5px; vertical-align:middle"><span class="link_type" style="vertical-align:middle">New</span>';
-	f_new_grp.onclick = function(){ pscript.fb_show_grp(''); $ds(pscript.f_file_display); $dh($i('unselect')); }
-
-	// Group actions.	
-	pscript.grp_div = $i('fb_grp_action');
-	
-	// share group
-	f_share_grp = $a(pscript.grp_div,'span','',{marginRight:'15px'});
-	f_share_grp.innerHTML = '<img src="images/icons/user.png" style="margin-right: 5px; vertical-align:middle"><span class="link_type" style="vertical-align:middle">Share</span>';
-	f_share_grp.onclick = function(){ pscript.fb_share(); }
-	
-	//Delete group.
-	f_del_grp = $a(pscript.grp_div,'span','',{marginRight:'15px'});
-	f_del_grp.innerHTML = '<img src="images/icons/cancel.gif" style="margin-right: 5px; vertical-align:middle"><span class="link_type" style="vertical-align:middle">Delete</span>';
-	f_del_grp.onclick = function(){ pscript.fb_delete(); }
-	
-	// Add file to group.
-	f_new_file = $a(pscript.grp_div,'span','',{marginRight:'15px'});
-	f_new_file.innerHTML = '<img src="images/icons/page_add.gif" style="margin-right: 5px; vertical-align:middle"><span class="link_type" style="vertical-align:middle">Upload</span>';
-	f_new_file.onclick = function(){ pscript.fb_create_new_file(); }
-   // $dh(f_new_file);
-	
-	// file actions
-	pscript.file_div = $i('fb_file_action');
-
-
-	//share file
-	f_share_file = $a(pscript.file_div,'span','',{marginRight:'15px'});
-	f_share_file.innerHTML = '<img src="images/icons/user.png" style="margin-right: 5px; vertical-align:middle"><span class="link_type" style="vertical-align:middle">Share</span>';
-	f_share_file.onclick = function(){ pscript.fb_share(); };
-	
-	// delete file
-	f_del_file = $a(pscript.file_div,'span','',{marginRight:'15px'});
-	f_del_file.innerHTML = '<img src="images/icons/cancel.gif" style="margin-right: 5px; vertical-align:middle"><span class="link_type" style="vertical-align:middle">Delete</span>';
-	f_del_file.onclick = function(){ pscript.fb_delete(); };
-	
-		
-	//edit file
-	f_edit_file = $a(pscript.file_div,'span','',{marginRight:'15px'});
-	f_edit_file.innerHTML = '<img src="images/icons/table_edit.png" style="margin-right: 5px; vertical-align:middle"><span class="link_type" style="vertical-align:middle">Edit</span>';
-	f_edit_file.onclick = function(){ pscript.fb_edit_file(); };
-}
-
-
-// Refresh tree
-pscript.fb_refresh = function(){
-	pscript.create_browser_tree();
-	pscript.get_root_file_grps();
-	
-	$ds(pscript.gen_div);
-	$dh(pscript.grp_div);
-	$dh(pscript.file_div);
-	
-	if(!pscript.f_cur_node_name){ $dh($i('unselect')); } else{ $ds($i('unselect')); }
-}
-
-// Show selected / create a new file group.
-pscript.fb_show_grp = function(grp){
-	var parent = pscript.f_file_display;
-
-	if(!grp || grp == undefined){
-		parent.f_file_title.innerHTML = 'New File Group';
-		pscript.n_file_grp.show('');
-	}
-	else{
-		var callback = function(r,rt){
-
-			var grp_det = r.message ? r.message : '';
-
-			parent.f_file_title.innerHTML = grp_det['Group Name']; 
-			if(has_common(grp_det['Can Edit'].split(','),user_roles) || user==grp_det['Owner']){ $ds(pscript.grp_div); }
-			else{ $dh(pscript.grp_div); }
-			
-			pscript.n_file_grp.show(grp_det);
-		}
-		$c_obj('File Browser Control','get_fg_details',grp,callback);
-	}
-	$ds(parent); $ds(parent.f_file_content);
-}
-
-//share privileges.
-pscript.fb_share = function(){
-	var callback = function(r,rt){
-		pscript.fg_edit_roles = r.message[0][0] ? r.message[0][0].split(',') : '';
-		pscript.fg_view_roles = r.message[0][1] ? r.message[0][1].split(',') : '';
-		
-		pscript.fg_share.assign(pscript.fg_all_roles,pscript.fg_edit_roles,pscript.fg_view_roles);
-		pscript.fg_share.show();
-	}
-	var args = {};
-	args.dt = pscript.f_cur_node_type;
-	args.dn = pscript.f_cur_node_name;
-	$c_obj('File Browser Control','get_privileges',docstring(args),callback);
-}
-
-// delete group
-pscript.fb_delete = function(){
-	pscript.delete_node('File Browser Control',pscript.f_cur_node_type,pscript.f_cur_node_name,'');
-	$dh(pscript.f_file_display);
-}
-
-// Create a new file.
-pscript.fb_create_new_file = function(){
-	var parent = pscript.f_file_display;
-	
-	pscript.f_cur_parent = pscript.f_cur_node;
-	
-	parent.f_file_title.innerHTML = 'New File';
-	pscript.n_file.show(0,'frm_node');
-}
-
-// If file other than image then download file.
-pscript.fb_show_txt_file = function(){
-	$i('file_link').href = repl('cgi-bin/getfile.cgi?ac=%(acc)s&name=%(f_nm)s',{acc:session.account_name, f_nm:pscript.f_cur_node_file});
-	$i('file_link').target = "_blank";
-}
-
-// Area to display content.
-pscript.create_display_div = function(){
-
-	var d = $a($i('fb_display_div'),'div');
-	
-	d.f_file_title = $a(d,'div','',{fontSize:'14px',fontWeight:'bold'});
-	$y($a(d,'div'),{margin:'5px 0px 5px 0px',borderBottom:'1px solid #333'});
-
-	d.f_file_content = $a(d,'div','',{marginTop:'20px'});
-	pscript.f_file_display = d;
-	$dh(d);
-}
-
-// function to create a new File Group object.
-pscript.create_n_file_grp_obj = function(){
-	var n_file_grp = new pscript.n_file_grp_Obj();
-	pscript.n_file_grp = n_file_grp;
-}
-
-// Create a new File object.
-pscript.create_n_file_obj = function(){
-	var n_file = new pscript.n_file_Obj();
-	pscript.n_file = n_file;
-}
-
-// Create a new Attachement object.
-pscript.create_attach_obj = function(){
-	var attach_obj = new pscript.attach_Obj();
-	pscript.attach_obj = attach_obj;
-}
-
-// File Group object.
-pscript.n_file_grp_Obj = function() {
-  
-	this.inputs = {}; var me = this; this.fg_field_lst = [];
-	
-	this.make_section = function(label, tp, css) {
-
-		var div = $a(this.wrapper,'div','',{marginBottom:'8px'});
-		var t = make_table(div,1,2,'90%',['35%','65%']);
-
-		if(tp=='button'){
-			var element = $a($td(t,0,1), 'button', 'button');
-			element.innerHTML = label;
-		}
-		else if(tp == 'link'){
-			var element = make_field({fieldtype:'link', 'label':label, 'options':'File Group'}, '', $td(t,0,1), this, 0, 1);
-			$y($td(t,0,1),{width:'100%'})
-			element.in_filter = 1; element.refresh();
-			
-			$td(t,0,0).innerHTML = label;
-			element.display_div = $a($td(t,0,1),'div', '', {width:'80%'});
-			me.fg_field_lst.push(label);
-		}
-		else {
-			var element = $a($td(t,0,1),tp, '', {width:'80%'});
-			$td(t,0,0).innerHTML = label;
-			
-			element.display_div = $a($td(t,0,1),'div', '', {width:'80%'});
-			$dh(element.display_div);
-			me.fg_field_lst.push(label);
-		}
-		
-		if(css){
-			$y($td(t,0,0),css);
-		}
-		
-		element.wrapper = div;
-		
-		if(label) me.inputs[label] = element;
-		return element;
-	}
-  
-	this.make = function() {
-
-		this.wrapper = document.createElement('div');
-
-		this.make_section('Group Name','input',{color:'red'});
-		this.make_section('Parent Group','link');
-		this.make_section('Description','textarea');
-		$y(this.inputs['Description'],{height:'140px'});
-		
-		this.make_section('Save','button');
-
-		// cancel
-		this.inputs['Cancel'] = $a(this.inputs['Save'].parentNode, 'button', 'button');
-		this.inputs['Cancel'].innerHTML = 'Cancel';
-		$y(this.inputs['Cancel'], {marginLeft:'8px'});
-	}
-  
-	this.show = function(grp_det){
-		
-		if(! me.wrapper) me.make();
-
-		var field_lst = me.fg_field_lst;
-
-		if(!grp_det || grp_det == undefined){
-			pscript.fg_edit_roles = ''; pscript.fg_view_roles = ''; me.inputs['Save'].disabled = false;
-		
-			for(i in field_lst){
-				var fld_nm = field_lst[i] ? field_lst[i] : '';
-				var fld = me.inputs[fld_nm] ? me.inputs[fld_nm] : '';
-				fld.display_div.innerHTML = '';
-				
-				if(fld_nm == 'Parent Group'){ fld.txt.value = ''; $ds(fld.input_area); }
-				else{ fld.value = ''; $ds(fld); }
-				
-				$dh(fld.display_div); 
-			}
-			me.inputs['Save'].onclick = function(){ me.save(''); }
-		}
-		else{
-			pscript.fg_edit_roles = grp_det['Can Edit'] ? grp_det['Can Edit'].split(',') : '';
-			pscript.fg_view_roles = grp_det['Can View'] ? grp_det['Can View'].split(',') : '';		
-			for(i in field_lst){
-				var fld_nm = field_lst[i] ? field_lst[i] : '';
-				var fld = me.inputs[fld_nm] ? me.inputs[fld_nm] : '';
-				fld.display_div.innerHTML = grp_det[fld_nm] ? grp_det[fld_nm] : '';
-
-				if(fld_nm == 'Parent Group') fld.txt.value = grp_det[fld_nm] ? grp_det[fld_nm] : '';
-				else fld.value = grp_det[fld_nm] ? grp_det[fld_nm] : '';
-									
-				if(has_common(pscript.fg_edit_roles,user_roles) || user == grp_det['Owner']){
-					if(fld_nm == 'Parent Group') $ds(fld.input_area); else $ds(fld); 
-					$dh(fld.display_div); me.inputs['Save'].disabled = false;
-				}
-				else{
-					if(fld_nm == 'Parent Group') $dh(fld.input_area); else $dh(fld);
-					$ds(fld.display_div); me.inputs['Save'].disabled = true;
-				}
-			}
-			me.inputs['Save'].onclick = function(){ me.save(grp_det['Name']); }
-		}
-		me.show_as();
-		me.inputs['Cancel'].onclick = function() { me.cancel(); me.hide();}
-	}
-  
-	this.save = function(name) {
-		var grp_nm = me.inputs['Group Name'].value; grp_nm = strip(grp_nm," ");
-		var parent_grp = me.inputs['Parent Group'].get_value(); parent_grp = strip(parent_grp," ");
-		var desc = me.inputs['Description'].value; desc = strip(desc," ");
-		
-		if(grp_nm == '') msgprint('Please enter group name');
-		else{ var args = {}; args.grp_nm = grp_nm; args.parent_grp = parent_grp; args.desc = desc; }
-		
-		if(!name || name == undefined){
-			args.name = '';
-			var callback = function(r,rt){
-				pscript.f_cur_node_name = r.message ? r.message : '';
-				pscript.fb_show_grp(pscript.f_cur_node_name);
-				pscript.fb_refresh();
-				//if(!pscript.f_cur_parent){ pscript.fb_refresh(); pscript.f_cur_node_name = }
-				//else{ pscript.load_child_nodes(); }
-			}
-			$c_obj('File Browser Control','create_new_grp',docstring(args),callback);
-		}
-		else{
-			args.name = name;
-			var callback = function(r,rt){
-				var grp = r.message ? r.message : '';
-				pscript.fb_show_grp(grp);
-				pscript.fb_refresh();
-			}
-			$c_obj('File Browser Control','update_grp',docstring(args),callback);
-		}
-		
-	}
-  
-	this.cancel = function(){
-		$dh(pscript.f_file_display);this.hide();
-	}
-  
-	this.show_as = function() {
-		if(me.wrapper.parentNode) me.wrapper.parentNode.removeChild(me.wrapper);
-		
-		var parent = pscript.f_file_display;
-		pscript.remove_child_nodes(parent.f_file_content);
-
-		parent.f_file_content.appendChild(me.wrapper);
-		$ds(pscript.f_file_display); $ds(me.wrapper);
-	}
-  
-	this.hide = function() {
-		$dh(me.wrapper); me.display = 0;
-	}
-}
-
-// File Object.
-pscript.n_file_Obj = function() {
-
-	this.inputs = {};
-	var me = this;
-	
-	this.make_section = function(label, tp, css) {
-
-		var div = $a(this.wrapper,'div','',{marginBottom:'8px'});
-		var t = make_table(div,1,2,'90%',['38%','62%']);
-		
-		if(tp=='button'){
-			var element = $a($td(t,0,1), 'button', 'button');
-			element.innerHTML = label;
-		}
-		else if(tp=='Note'){
-			var element = $a($td(t,0,1),'span','',{color:'red'});
-			element.innerHTML = 'Fields in red are mandatory.'
-		}
-		else if(tp=='link'){
-			var element = make_field({fieldtype:'link', 'label':label, 'options':'File Group'}, '', $td(t,0,1), this, 0, 1);
-			$y($td(t,0,1),{width:'100%'})
-			element.in_filter = 1; element.refresh();
-			
-			$td(t,0,0).innerHTML = label;
-			element.display_div = $a($td(t,0,1),'div', '', {width:'80%'});
-			element.txt.onchange = function(){ pscript.set_file_det_value(pscript.attach_obj,pscript.n_file); }
-		}
-		else {
-			var element = $a($td(t,0,1),tp, '', {width:'95%'});
-			$td(t,0,0).innerHTML = label;
-			element.onchange = function(){ pscript.set_file_det_value(pscript.attach_obj,pscript.n_file); }
-		}
-
-		//---css to label---
-		if(css){
-			$y($td(t,0,0),css);
-		}
-	
-		element.wrapper = div;
-		
-		if(label) me.inputs[label] = element;
-		return element;
-	}
-
-	this.make = function() {
-
-		this.wrapper = document.createElement('div');
-		
-		// note
-		this.make_section('','Note');
-		
-		// upload area
-		this.ul_area = $a(this.wrapper,'div','',{marginBottom:'8px'});
-		$dh(this.ul_area);
-		
-		// file group and description
-		this.make_section('File Group','link',{color:'red'});
-		this.make_section('Description','textarea');
-		$y(this.inputs['Description'],{height:'140px'});
-
-		//save
-		this.make_section('Save','button');$dh(this.inputs['Save']);
-
-		// cancel
-		this.inputs['Cancel'] = $a(this.inputs['Save'].parentNode, 'button', 'button');
-		this.inputs['Cancel'].innerHTML = 'Cancel'; $dh(this.inputs['Cancel']);
-		$y(this.inputs['Cancel'], {marginLeft:'8px'});
-	}
-  
-	this.show = function(edit,frm){
-		if(! me.wrapper) me.make();
-		
-		if(edit){
-			var callback1 = function(r,rt){
-				file_det = r.message;
-			
-				me.inputs['Description'].value = file_det['description'] ? file_det['description'] : '';
-				me.inputs['File Group'].txt.value = file_det['file_group'] ? file_det['file_group'] : '';
-
-				pscript.f_cur_node_file = file_det['file_list'] ? file_det['file_list'].split(NEWLINE)[0].split(',')[1] : '';
-
-				me.inputs['Save'].file_id = file_det['name'] ? file_det['name'] : '';
-				me.inputs['Save'].onclick = function(){ me.save(this.file_id);}
-				pscript.attach_obj.show(me, me.ul_area, 1, file_det);
-			}
-			$ds(me.ul_area); $di(me.inputs['Save']); $di(me.inputs['Cancel']);
-			$c_obj('File Browser Control','get_file_details',pscript.f_cur_node_name,callback1);
-		}
-		else{
-			$ds(me.ul_area); $dh(me.inputs['Save']); $dh(me.inputs['Cancel']);
-
-			me.inputs['Description'].value = '';
-			if(frm == 'frm_node') me.inputs['File Group'].txt.value = pscript.f_cur_node_label;
-			var parent = pscript.f_file_display;
-			parent.f_file_title.innerHTML = 'New File';
-			
-			$ds(parent);
-			me.inputs['Save'].onclick = function(){ me.save('');}
-			pscript.attach_obj.show(me,me.ul_area,0,'');
-		}
-		me.inputs['Cancel'].onclick = function() { me.cancel(); me.hide(); }
-	}
-  
-	this.save = function(name) {
-
-		var desc = me.inputs['Description'].value; desc = strip(desc," ");
-		file_grp = me.inputs['File Group'].txt.value; file_grp = strip(file_grp," ");
-		
-		if(file_grp == '') msgprint('Please select file group');
-
-		var args = {}; args.desc = desc; args.file_grp = file_grp;
-		
-		if(name){
-			args.name = name;
-			var callback = function(){
-				//pscript.fb_edit_file();
-				
-				//refreshing parent
-				pscript.load_child_nodes();
-			}
-			$c_obj('File Browser Control','update_file',docstring(args),callback);
-		}
-		else{
-			args.name = ''
-			var callback = function(r,rt){
-				var f = eval('var a='+r.message+';a');
-				
-				//refreshing node
-				pscript.load_child_nodes();
-				
-				//pscript.f_cur_node_name = f.name; pscript.f_cur_node_label = f.label;
-				//pscript.fb_edit_file();
-			}
-			$c_obj('File Browser Control','create_new_file',docstring(args),callback);
-		}
-	}
-  
-	this.cancel = function(){
-		$dh(pscript.f_file_display); this.hide();
-	}
-  
-	this.show_as = function(edit) {
-	    if(me.wrapper.parentNode) me.wrapper.parentNode.removeChild(me.wrapper);
-	
-		var parent = pscript.f_file_display;
-		pscript.remove_child_nodes(parent.f_file_content);
-
-		parent.f_file_content.appendChild(me.wrapper);
-		$ds(pscript.f_file_display); $ds(parent.f_file_content);
-		$ds(me.wrapper);
-	}
-  
-	this.hide = function() {
-		$dh(me.wrapper);
-		me.display = 0;
-	}
-}
-
-// File Attachement object.
-pscript.attach_Obj = function(){
-
-	var me = this;
-		
-	this.show = function(obj,parent,edit,dict){
-		var me = this;
-		if(!me.wrapper) { me.make(); }
-
-		me.show_as(obj,parent,edit,dict);
-		obj.show_as(edit);
-	}
-
-	this.make = function(){
-		var me = this;
-		this.wrapper = document.createElement('div');
-		
-		var div = $a(this.wrapper,'div',{marginBottom:'8px', border:'1px solid #AAA'});
-		
-		var t1 = make_table(div,1,2,'90%',['38%','62%']);
-		
-		lbl_area = $a($td(t1,0,0),'div');
-		lbl_area.innerHTML = '<img src="images/icons/paperclip.gif"><span style="margin-left4px; color:red;">File:</span><br>';
-	
-		main_area = $a($td(t1,0,1),'div');
-		
-		this.upload_div = $a(main_area,'div');
-		this.download_div = $a(main_area,'div');
-			
-		me.make_ul_area();
-		me.make_dl_area();
-	}
-	
-	//image upload area
-	this.make_ul_area = function(){
-		var me = this;
-		
-		this.upload_div.innerHTML = '';
-
-		var div = $a(this.upload_div,'div');
-		div.innerHTML = '<iframe id="fb_iframe" name="fb_iframe" src="blank1.html" style="width:0px; height:0px; border:0px"></iframe>';
-
-		var div = $a(this.upload_div,'div');
-		div.innerHTML = '<form method="POST" enctype="multipart/form-data" action="'+outUrl+'" target="fb_iframe"></form>';
-
-		var ul_form = div.childNodes[0];
-		
-		this.upload_div.ul_form = ul_form;
-		
-		var f_list = [];
-
-		// file data
-		var inp_fdata = $a_input($a(ul_form,'span'),'file',{name:'filedata'});
-
-		var inp_btn = $a_input($a(ul_form,'span'),'hidden',{name:'cmd'}); inp_btn.value = 'upload_many';
-		var inp = $a_input($a(ul_form,'span'),'hidden',{name:'form_name'}); inp.value = 'File Browser';
-		var inp = $a_input($a(ul_form,'span'),'submit'); inp.value = 'Upload';
-		
-		this.inp_file = $a_input($a(ul_form,'span'),'hidden',{name:'file_id'});
-		this.file_det = $a_input($a(ul_form,'span'),'hidden',{name:'file_det'});
-
-		inp_btn.onclick = function(){
-			pscript.set_file_det_value(pscript.attach_obj,pscript.n_file);
-		}
-	}
-	
-	//download link
-	this.make_dl_area = function(){
-		var me = this;
-		var download_tbl = make_table(this.download_div,1,2,'100%',['70%','30%']);
-		
-		var download_link = $a($td(download_tbl,0,0),'a','link_type');
-		
-		this.download_div.download_link = download_link;
-		
-		var remove_link = $a($td(download_tbl,0,1),'span','link_type',{textAlign:'right',marginLeft:'20px'});
-		remove_link.innerHTML = 'Remove';
-		
-		this.download_div.remove_link = remove_link;		
-	}
-	
-	this.show_as = function(obj,parent,edit,dict){
-		var me = this;
-		
-		// add to parent
-		if(me.wrapper.parentNode) me.wrapper.parentNode.removeChild(me.wrapper);
-		parent.appendChild(me.wrapper);
-		$ds(me.wrapper);
-		
-		if(edit){
-			pscript.set_file_det_value(pscript.attach_obj,pscript.n_file);
-			me.inp_file.value = dict.name ? dict.name : '';
-   
-			if(dict.file_list){ $dh(me.upload_div); $ds(me.download_div); }
-			else{ $ds(me.upload_div); $dh(me.download_div); }
-			
-			// download
-			me.download_div.download_link.innerHTML = dict.file_list ? dict.file_list.split(',')[0] : '';
-			me.download_div.download_link.onclick = function(){
-				this.href = repl('cgi-bin/getfile.cgi?ac=%(acc)s&name=%(f_nm)s',{acc:session.account_name, f_nm:pscript.f_cur_node_file});
-				this.target = "_blank";
-			}
-			
-			// remove
-			me.download_div.remove_link.onclick = function(){
-				$c_obj('File Browser Control','remove_file',docstring(dict),function(r,rt){
-					pscript.n_file.show(0,'frm_remove');
-				});
-				$ds(me.upload_div); $dh(me.download_div);
-			}
-		}
-		else{
-			$ds(me.upload_div); $dh(me.download_div);
-			me.inp_file.value = '';
-			pscript.set_file_det_value(pscript.attach_obj,pscript.n_file);
-		}
-	}
-}
-
-// Get all root file groups(where Parent Group is null).
-pscript.get_root_file_grps = function(){
-
-	if (pscript.fb_tree){
-		pscript.fb_tree.body.innerHTML = '';
-	}
-  
-	var callback1 = function(r,rt){
-		var cl = r.message ? r.message : ''; var n = pscript.fb_tree.allnodes[cl]; var has_children = true;
-		
-		for(var i=0; i<cl.length;i++){
-			if(!cl[i][2] || cl[i][2] == undefined) cl[i][2] = ''; if(!cl[i][3] || cl[i][3] == undefined) cl[i][3] = '';
-			if(has_common(cl[i][2].split(','),user_roles) || has_common(cl[i][3].split(','),user_roles) || user == cl[i][4]){
-				var r = pscript.fb_tree.addNode(null, cl[i][0],'', pscript.show_hide_link , has_children ? pscript.fb_get_children : null, null, cl[i][1]);
-				r.rec = cl[i]; r.rec.name = cl[i][0]; r.rec.label = cl[i][1]; r.rec.parent_grp = ''; r.rec.file_list = ''; r.rec.type = 'File Group';
-			}
-		}
-	}
-	$c_obj('File Browser Control','get_root_file_grps','',callback1);
-}
-
-// Onclick of a tree node will show / hide corresponding actions from action widget.
-pscript.show_hide_link = function(node){
-
-	$dh($i('unselect'));
-	$dh(pscript.f_file_display);
-	
-	pscript.f_cur_node = node;
-	
-	if(node.parent){
-		pscript.f_cur_parent = node.parent;
-	}
-	else{ pscript.f_cur_parent = ''; }
-	
-	pscript.f_cur_node_name = node.rec.name;
-
-	if(node.rec.label){ pscript.f_cur_node_label = node.rec.label; }
-	else{ pscript.f_cur_node_label = ''; }
-	
-	if(node.rec.type){ pscript.f_cur_node_type = node.rec.type; }
-	else{ pscript.f_cur_node_type = ''; }
-	
-	if(node.rec.file_list){ pscript.f_cur_node_file = node.rec.file_list.split(NEWLINE)[0].split(',')[1]; }
-	else{ pscript.f_cur_node_file = ''; }
-
-	img_extns = ['jpg','jpeg','gif','png','biff','cgm','dpof','exif','img','mng','pcx','pic','pict','raw','tga','wmf']
-	extn = node.rec.file_list ? node.rec.file_list.split(NEWLINE)[0].split(',')[0].split('.')[1] : '';
-
-	var dsp_div = pscript.f_file_display;
-	dsp_div.f_file_title.innerHTML = pscript.f_cur_node_label;
-
-	if(node.rec.type == 'File Group'){
-		$dh(pscript.file_div);
-		$ds(pscript.grp_div);
-		pscript.fb_show_grp(pscript.f_cur_node_name);
-	}
-	else if(node.rec.type == 'File'){
-		$dh(pscript.grp_div);
-		$ds(pscript.file_div);
-		if(pscript.f_cur_node_file){
-			if(inList(img_extns,extn)){
-				pscript.fb_show_img();
-			}
-			else{
-				// IE FIX
-				pscript.remove_child_nodes(dsp_div.f_file_content);
-				
-				var div = document.createElement('div');
-				div.innerHTML = '<a class="link_type" onclick="pscript.fb_show_txt_file()" id="file_link">Click to Open/ Download file.</span>';				
-				dsp_div.f_file_content.appendChild(div);
-				$ds(dsp_div);
-			}
-		}
-		else{
-			dsp_div.f_file_content.innerHTML = 'No attachement found.';
-			$ds(pscript.f_file_display);
-			
-			$ds(pscript.file_div);
-			$dh(pscript.grp_div);			
-		}
-		pscript.show_edit_file_link(node.rec.name);
-	}
-	else{
-		$dh(pscript.grp_div);
-		$dh(pscript.file_div);
-	}
-}
-
-// Onexpand of a tree node get all childrens(Files / File Groups).
-pscript.fb_get_children = function(node){
-	if(node.expanded_once) return;
-	$ds(node.loading_div);
-	
-	var callback = function(r,rt){
-		var p = pscript.fb_tree.allnodes[r.message.parent_grp];
-		$dh(node.loading_div);
-
-		var fl = r.message.fl ? r.message.fl : '';
-		if(fl){
-			for(var i=0; i<fl.length; i++){
-				if(fl[i][3] == undefined) fl[i][3] = '';
-				if(fl[i][4] == undefined) fl[i][4] = '';
-				
-				if(has_common(fl[i][3].split(','),user_roles) || has_common(fl[i][4].split(','),user_roles) || (user == fl[i][5])){
-					var imgsrc = 'images/icons/page.gif'; var has_children = false; 
-					if(fl[i][1]) var label = fl[i][1]; else var label = fl[i][0];
-
-					var n = pscript.fb_tree.addNode(p,fl[i][0],imgsrc,pscript.show_hide_link,has_children ? pscript.fb_get_children:null,null,label);
-					n.rec = fl[i]; n.rec.name = fl[i][0]; n.rec.parent_grp = r.message.parent_grp;
-					n.rec.label = fl[i][1]; n.rec.file_list = fl[i][2]; n.rec.type = 'File';
-				}
-			}
-		}
-		
-		var fl_grp = r.message.fl_grp ? r.message.fl_grp : '';
-		if(fl_grp){
-			for(var i=0;i<fl_grp.length;i++){
-				if(fl_grp[i][2] == undefined) fl_grp[i][2] = '';
-				if(fl_grp[i][3] == undefined) fl_grp[i][3] = '';
-
-				if(has_common(fl_grp[i][2].split(','),user_roles) || has_common(fl_grp[i][3].split(','),user_roles) || (user == fl_grp[i][4])){
-					var imgsrc = 'images/icons/folder.gif'; var has_children = true;
-					var label = fl_grp[i][1] ? fl_grp[i][1] : fl_grp[i][0];
-
-					var n = pscript.fb_tree.addNode(p,fl_grp[i][0],imgsrc,pscript.show_hide_link,has_children ? pscript.fb_get_children:null,null,label);
-					n.rec = fl_grp[i]; n.rec.name = fl_grp[i][0]; n.rec.parent_grp = r.message.parent_grp;
-					n.rec.label = fl_grp[i][1]; n.rec.file_list = ''; n.rec.type='File Group';
-				}
-			}
-		}
-	}
-	$c_obj('File Browser Control','get_children',node.rec.name,callback);
-}
-
-// If image file then display image.
-pscript.fb_show_img = function(){
-
-	var parent = pscript.f_file_display;
-
-	parent.f_file_title.innerHTML = pscript.f_cur_node_label;
-	pscript.remove_child_nodes(parent.f_file_content);
-
-	var a = $a(parent.f_file_content,'a');
-	
-	var img = $a(a,'img','',{textAlign:'center',cursor:'pointer'}); 
-	img.src = repl('cgi-bin/getfile.cgi?ac=%(acc)s&name=%(f_nm)s&thumbnail=300',{acc:session.account_name, f_nm:pscript.f_cur_node_file});
-	$ds(pscript.f_file_display);
-
-	a.onclick = function(){
-		this.href = repl('cgi-bin/getfile.cgi?ac=%(acc)s&name=%(f_nm)s',{acc:session.account_name, f_nm:pscript.f_cur_node_file});
-		this.target = "_blank";
-	}
-}
-
-// Enable/ disable Edit File action.
-pscript.show_edit_file_link = function(){
-	
-	var callback = function(r,rt){
-			pscript.f_edit_roles = r.message[0][0] ? r.message[0][0].split(',') : '';
-			pscript.f_view_roles = r.message[0][1] ? r.message[0][1].split(',') : '';
-			
-			if(has_common(pscript.f_edit_roles,user_roles) || user == r.message[0][2]){
-				$ds(pscript.file_div);
-			}
-			else{ $dh(pscript.file_div); }
-	}
-	
-	var args = {};
-	args.dt = pscript.f_cur_node_type;
-	args.dn = pscript.f_cur_node_name;
-	$c_obj('File Browser Control','get_privileges',docstring(args),callback);
-}
-
-// Set file detail in attachement object.
-pscript.set_file_det_value = function(att,file){
-	if(file.inputs['Description'].value) file_desc = file.inputs['Description'].value; else file_desc = 'NIL';
-	if(file.inputs['File Group'].txt.value) file_grp = file.inputs['File Group'].txt.value; else file_grp = 'NIL';
-	att.file_det.value = file_desc + '~~' + file_grp;
-}
-
-// Edit selected file.
-pscript.fb_edit_file = function(){
-	var parent = pscript.f_file_display;
-	parent.f_file_title.innerHTML = pscript.f_cur_node_label;
-	pscript.n_file.show(1,'frm_node');
-}
-
-//delete dialog structure
-
-pscript.delete_node = function(sdt,dt,dn,callback){
-	if(!pscript.delete_dialog){
-		var delete_dialog = new Dialog(400,200);
-
-		delete_dialog.make_body([
-			['HTML','Message',''],
-			['HTML','Response',''],
-			['HTML','Delete Record','<div id="delete_record" style="height:25px"></div>']
-		]);
-		
-		delete_dialog.y_btn = $a($i('delete_record'),'button','button');
-		delete_dialog.y_btn.innerHTML = 'Ok';
-		delete_dialog.y_btn.onclick = function(){
-			delete_dialog.widgets['Response'].innerHTML = 'Deleting...';
-			var args = {};
-			args.dt = delete_dialog.dt; args.dn = delete_dialog.dn;
-			
-			var callback1 = function(r,rt){
-				delete_dialog.onhide = delete_dialog.callback;
-				delete_dialog.hide();
-				
-				//refreshing node
-				pscript.load_child_nodes();
-			}
-			$c_obj(sdt,'delete',docstring(args),callback1);
-		}
-		
-		delete_dialog.n_btn = $a($i('delete_record'),'button','button');
-		delete_dialog.n_btn.innerHTML = 'Cancel';
-		
-		delete_dialog.n_btn.onclick = function(){
-			delete_dialog.widgets['Response'].innerHTML = '';
-			delete_dialog.onhide = '';
-			delete_dialog.hide();
-		}
-
-		delete_dialog.widgets['Message'].innerHTML = 'Note: All data will be deleted permanantly. Do you want to continue?';
-		pscript.delete_dialog = delete_dialog;
-	}
-	//if(!delete_dialog.display) delete_dialog.show();
-	pscript.delete_dialog.show();
-	pscript.delete_dialog.widgets['Response'].innerHTML = '';
-	pscript.delete_dialog.sdt = sdt; pscript.delete_dialog.dt=dt; pscript.delete_dialog.dn=dn; pscript.delete_dialog.callback = callback;
-}
-
-pscript.remove_child_nodes = function(parent){
-	var len = parent.childNodes.length;
-	if(len){
-		for(l=0; l<len; l++){
-			var c = parent.childNodes[0];
-			parent.removeChild(c);
-		}
-	}
-}
-
-pscript.load_child_nodes = function(){
-	if(pscript.f_cur_parent){
-		pscript.f_cur_parent.clear_child_nodes();
-		pscript.f_cur_parent.expand();
-		pscript.f_cur_parent.select();
-	}
-	else{ pscript.fb_refresh(); }
-}
\ No newline at end of file
diff --git a/erpnext/utilities/page/file_browser/file_browser.txt b/erpnext/utilities/page/file_browser/file_browser.txt
deleted file mode 100644
index b4496f9..0000000
--- a/erpnext/utilities/page/file_browser/file_browser.txt
+++ /dev/null
@@ -1,121 +0,0 @@
-# Page, File Browser
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-10-12 15:19:31',
-		'docstatus': 0,
-		'modified': '2010-12-27 11:09:52',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all Page
-	{
-		'doctype': 'Page',
-		'module': 'Utilities',
-		'name': '__common__',
-		'page_name': 'File Browser',
-		'show_in_menu': 1,
-		'standard': 'Yes'
-	},
-
-	# These values are common for all Page Role
-	{
-		'doctype': 'Page Role',
-		'name': '__common__',
-		'parent': 'File Browser',
-		'parentfield': 'roles',
-		'parenttype': 'Page'
-	},
-
-	# Page, File Browser
-	{
-		'doctype': 'Page',
-		'name': 'File Browser'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 1,
-		'role': 'Administrator'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 2,
-		'role': 'Sales User'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 3,
-		'role': 'Sales Manager'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 4,
-		'role': 'System Manager'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 5,
-		'role': 'Purchase User'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 6,
-		'role': 'Purchase Manager'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 7,
-		'role': 'Accounts User'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 8,
-		'role': 'Accounts Manager'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 9,
-		'role': 'Production User'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 10,
-		'role': 'Production Manager'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 11,
-		'role': 'Material User'
-	},
-
-	# Page Role
-	{
-		'doctype': 'Page Role',
-		'idx': 12,
-		'role': 'Customer'
-	}
-]
\ No newline at end of file
diff --git a/erpnext/utilities/page/messages/__init__.py b/erpnext/utilities/page/messages/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/page/messages/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/page/messages/messages.html b/erpnext/utilities/page/messages/messages.html
deleted file mode 100644
index ded3393..0000000
--- a/erpnext/utilities/page/messages/messages.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<div id="message_header" style="margin-bottom: 8px"></div>
-<div id="inbox_tabs"></div>
\ No newline at end of file
diff --git a/erpnext/utilities/page/messages/messages.js b/erpnext/utilities/page/messages/messages.js
deleted file mode 100644
index 43b4bd7..0000000
--- a/erpnext/utilities/page/messages/messages.js
+++ /dev/null
@@ -1,931 +0,0 @@
-pscript.onload_Messages = function() {
-  var p = new PageHeader($i('message_header'),'Messages');
-  pscript.msg_struct = new Message();
-}
-
-pscript.onshow_Messages = function() {
-  pscript.msg_struct.show_inbox();
-}
-
-function Message(){
-  if(!this.mytabs) this.make_body();
-}
-
-Message.prototype.make_body = function() {
-  var me = this;
-  this.mytabs = new TabbedPage($i('inbox_tabs'));
-  $y(this.mytabs.body_area, {padding:'16px'})
-
-  me.make_inbox();
-  me.make_compose();
-  me.make_sent();
-  
-  this.mytabs.tabs['Inbox'].show();
-}
-
-Message.prototype.make_inbox = function() {
-  var me = this;
-  
-  //inbox tab
-  me.mytabs.add_tab('Inbox', function() { 
-    me.inbox_lst.generate_unread_lst();
-    me.inbox_lst.msg_li.run(); 
-    me.cur_inbox_list = me.inbox_lst.msg_li; // for refresh
-  });
-  
-  if(!this.inbox_lst) this.inbox_lst = new MessageList(me.mytabs.tabs['Inbox'].tab_body, 'inbox msg');
-  this.inbox_lst.msg_li.get_query = function() {
-    //me.checked_msg_lst = [];
-    me.all_msg = {};
-    this.query = repl("select distinct t1.name, t1.last_updated_on, t1.last_updated_by, t1.subject, t3.first_name, t3.file_list, t1.message_date, t1.owner, t1.message, t1.previous_updated_by from `tabMail` t1, `tabMail Participant Details` t2, `tabProfile` t3 where t1.is_main_thread='Yes' and t2.participant_name='%(user)s' and (t2.delete_status is NULL or t2.delete_status = 'No') and t1.name = t2.parent and ((t1.last_updated_by = t3.name and t1.last_updated_by!='%(user)s') or (t1.previous_updated_by = t3.name and t1.previous_updated_by!='%(user)s')) order by t1.modified desc", {'user':user});
-    
-    this.query_max = repl("select distinct count(t1.name) from `tabMail` t1, `tabMail Participant Details` t2, `tabProfile` t3 where t1.is_main_thread='Yes' and t2.participant_name='%(user)s' and (t2.delete_status is NULL or t2.delete_status = 'No') and t1.name = t2.parent and ((t1.last_updated_by = t3.name and t1.last_updated_by!='%(user)s') or (t1.previous_updated_by = t3.name and t1.previous_updated_by!='%(user)s')) order by t1.modified desc", {'user':user});
-  }
-  
-  this.inbox_lst.generate_unread_lst();  
-  this.inbox_lst.msg_li.run();
-  this.inbox_lst.msg_li.onrun = function(){ me.inbox_lst.show_if_no_msg(me.inbox_lst.msg_li); }
-}
-
-Message.prototype.make_compose = function() {
-  var me = this;
-  
-  me.mytabs.add_tab('Compose', function() { 
-    if(!pscript.compose_msg_obj){
-      pscript.compose_msg_obj = new MessageThread(me.mytabs.tabs['Compose'].tab_body, me.mytabs.tabs['Inbox'], me.inbox_lst.lst_wrapper, 'My Inbox'); 
-      //pscript.compose_msg_obj.show_msg(0, me.mytabs.tabs['Compose'].tab_body, me.mytabs.tabs['Inbox'], me.inbox_lst.lst_wrapper, 'My Inbox', me.mytabs.tabs['Sent'], me.sent_lst.lst_wrapper);
-    }
-    pscript.compose_msg_obj.show_msg(0, me.mytabs.tabs['Compose'].tab_body, me.mytabs.tabs['Inbox'], me.inbox_lst.lst_wrapper, 'My Inbox', me.mytabs.tabs['Sent'], me.sent_lst.lst_wrapper);
-    
-    this.cur_inbox_list = null;
-  });
-}
-
-Message.prototype.make_sent = function() {
-  var me = this;
-  
-  // sent msg tab
-  me.mytabs.add_tab('Sent', function() { 
-    me.sent_lst.msg_li.run(); 
-    me.cur_inbox_list = me.sent_lst.msg_li; // for refresh
-  });
-  
-  if(!this.sent_lst) this.sent_lst = new MessageList(me.mytabs.tabs['Sent'].tab_body, 'sent msg');
-  this.sent_lst.msg_li.get_query = function() {
-    //me.checked_msg_lst = [];
-    me.all_msg = {};
-    
-    this.query = repl("select distinct t1.name, t1.last_updated_on, t1.last_updated_by, t1.subject, t3.first_name, t3.file_list, t1.message_date, t1.owner, t1.message from `tabMail` t1, `tabProfile` t3, `tabMail Participant Details` t2 where t1.is_main_thread='Yes' and t1.last_updated_by='%(user)s' and t1.last_updated_by = t3.name and t2.participant_name = '%(user)s' and (t2.delete_status is NULL or t2.delete_status = 'No') and t2.parent = t1.name order by t1.modified desc", {'user':user});
-    this.query_max = repl("select distinct count(t1.name) from `tabMail` t1, `tabProfile` t3, `tabMail Participant Details` t2 where t1.is_main_thread='Yes' and t1.last_updated_by='%(user)s' and t1.last_updated_by = t3.name and t2.participant_name = '%(user)s' and (t2.delete_status is NULL or t2.delete_status = 'No') and t2.parent = t1.name order by t1.modified desc", {'user':user});
-  }
-  this.sent_lst.msg_li.run();
-  this.sent_lst.msg_li.onrun = function(){ me.sent_lst.show_if_no_msg(me.sent_lst.msg_li); }
-}
-
-Message.prototype.show_inbox = function(){
-  var me = this;
-  if(me.inbox_lst){
-    me.inbox_lst.msg_li.run();
-  }
-  me.mytabs.tabs['Inbox'].show();
-}
-
-MessageList = function(parent_tab, req_frm) {
-  this.checked_msg_lst = [];
-  this.unread_msg_lst = [];
-  this.all_msg = {};
-  this.parent_tab = parent_tab;
-  this.req_frm = req_frm;
-  this.make();
-}
-
-MessageList.prototype.make = function(){
-  var me = this;
-  
-  this.lst_wrapper = $a(me.parent_tab, 'div');
-  
-  //toolbar
-  this.toolbar_area = $a(this.lst_wrapper, 'div', '', {paddingTop:'12px'});
-  this.create_toolbar();
-  
-  //no inbox msg div
-  this.no_lst_wrapper = $a(me.parent_tab, 'div', '', {padding:'8px',backgroundColor:'#FFE4AA'});
-  $dh(this.no_lst_wrapper);
-  
-  //view inbox msg div
-  this.view_msg_wrapper = $a(me.parent_tab, 'div');
-  
-  this.msg_li = new Listing("Recent Messages",1);
-  this.msg_li.colwidths = ['90%'];
-  this.msg_li.opts.no_border = 1;
-  this.msg_li.opts.show_empty_tab = 0;
-  this.msg_li.opts.no_border = 1;
-  
-  this.msg_li.show_cell = function(cell,ri,ci,d) {
-    if(ri % 2)$y(cell,{backgroundColor:'#E1E3DE'});
-    if(ci ==0){
-      this.msg_lst = new MessagePreview(cell, me.req_frm, d[ri][0], d[ri][1], d[ri][2], d[ri][3], d[ri][4], d[ri][5], d[ri][6], d[ri][7], d[ri][8], d[ri][9], me.lst_wrapper, me.view_msg_wrapper, me.unread_msg_lst, me.all_msg);
-    }
-  }
-  this.msg_li.make(this.lst_wrapper);
-  $dh(this.msg_li.btn_area);
-}
-
-MessageList.prototype.create_toolbar = function(){
-  var me = this;
-  
-  this.toolbar_tbl = make_table(me.toolbar_area, 1, 2, '100%', ['85%', '15%']);
-  
-  this.select_all_lnk = $a($td(this.toolbar_tbl, 0, 0), 'span', 'link_type');
-  this.select_all_lnk.innerHTML = 'Select All';
-  $dh(this.select_all_lnk);
-  
-  this.unselect_all_lnk = $a($td(this.toolbar_tbl, 0, 0), 'span', 'link_type');
-  this.unselect_all_lnk.innerHTML = 'Unselect All';
-  $dh(this.unselect_all_lnk);
-  
-  this.select_all_lnk.onclick = function(){
-    $ds(me.unselect_all_lnk);
-    $dh(me.select_all_lnk);
-    for(m in me.all_msg){
-      me.all_msg[m].checked = true;
-    }
-  }
-  
-  this.unselect_all_lnk.onclick = function(){
-    $ds(me.select_all_lnk);
-    $dh(me.unselect_all_lnk);
-    for(m in me.all_msg){
-      me.all_msg[m].checked = false;
-    }
-  }
-  
-  this.delete_selected_btn = $a($td(this.toolbar_tbl, 0, 1), 'button', 'button', {align:'right'});
-  this.delete_selected_btn.innerHTML = 'Delete Selected';
-  $dh(this.delete_selected_btn);
-  this.delete_selected_btn.onclick = function(){
-    me.checked_msg_lst = [];    
-    for(m in me.all_msg){
-      if(me.all_msg[m].checked == true)
-        me.checked_msg_lst.push(m);
-    }
-    me.delete_selected();
-  }
-}
-
-MessageList.prototype.show_if_no_msg = function(lst_data){
-  var me = this;
-  $dh(me.view_msg_wrapper);
-  
-  if(!lst_data.has_data()){  
-    $ds(me.no_lst_wrapper);
-    $dh(me.lst_wrapper);
-    if(me.req_frm == 'inbox msg'){
-      me.no_lst_wrapper.innerHTML = "You have no messages in your Inbox.";      
-    }
-    else if(me.req_frm == 'sent msg'){
-      me.no_lst_wrapper.innerHTML = "You have no messages in your Sent messages list.";
-    }
-  } else {    
-    $dh(me.no_lst_wrapper); 
-    $ds(me.lst_wrapper);
-    $dh(me.no_lst_wrapper); 
-    $ds(me.lst_wrapper);
-    $dh(this.unselect_all_lnk);
-    $ds(this.select_all_lnk);
-    $ds(this.delete_selected_btn);
-  }
-}
-
-MessageList.prototype.generate_unread_lst = function(){
-  var me = this;
-  
-  var msg_callback = function(r, rt){
-    if(r.message.ur_lst){
-      me.unread_msg_lst = r.message.ur_lst;
-    }
-  }
-  $c('runserverobj', {doctype:'Message Control',method:'get_unread_msg_lst',arg:user}, msg_callback);
-}
-
-MessageList.prototype.delete_selected = function(){
-  var me = this;
-  
-  if(me.checked_msg_lst.length >= 1) me.msg_li.msg_lst.delete_msg(me.checked_msg_lst);
-  else  msgprint("error:Please select the message to delete");
-}
-
-function MessagePreview(parent, req_frm, msg_id, last_updated_on, last_updated_by, subject, first_name, profile_pic, msg_date, msg_owner, message, previous_updated_by, lst_wrapper, view_msg_wrapper, unread_msg_lst, all_msg_dict) { 
-  this.create_structure(parent);
-  
-  if(req_frm) this.req_frm = req_frm;
-  this.msg_id = msg_id;
-  this.subject = subject;
-  this.message = message;
-  this.msg_date = msg_date;
-  this.msg_owner = msg_owner;
-  this.first_name = first_name;
-  this.lst_wrapper = lst_wrapper;
-  this.view_msg_wrapper = view_msg_wrapper;
-  if(profile_pic) this.profile_pic = profile_pic;
-  if(last_updated_on) this.last_updated_on = last_updated_on;
-  if(last_updated_by) this.last_updated_by = last_updated_by;
-  if(previous_updated_by) this.previous_updated_by = previous_updated_by;
-	this.unread_msg_lst = unread_msg_lst;
-  this.all_msg = all_msg_dict;
-  
-  this.show_msg_sender();
-  this.show_msg_subject();
-  this.show_delete_lnk();
-}
-
-MessagePreview.prototype.create_structure = function(parent){
-  this.wrapper = $a(parent,'div');
-  this.t = make_table(this.wrapper, 1, 4, '100%', ['5%','10%','80%','5%']);
-}
-
-MessagePreview.prototype.show_msg_sender = function(){
-  var me = this;
-  
-  // checkbox
-  var chk_box = $a($td(this.t, 0, 0),'div');
-  if(isIE) {
-    chk_box.innerHTML = '<input type="checkbox" style="border: 0px">'; // IE fix
-    this.inp = chk_box.childNodes[0];
-  } else {
-    this.inp = $a(chk_box, 'input');
-    this.inp.type = 'checkbox';
-  }
-  
-  this.inp.onclick = function() { 
-    for(m in me.all_msg){
-      if(m == me.msg_id)
-        me.all_msg[m].checked = me.inp.checked;
-    }
-  }
-  
-  me.all_msg[me.msg_id] = this.inp;
-  
-  //sender or receiver
-  // photo
-  if(this.profile_pic) {
-    var img = $a($td(this.t, 0, 1),'img');
-    var img_src = this.profile_pic.split(NEWLINE)[0].split(',')[0]
-    img.src = repl('cgi-bin/getfile.cgi?name=%(fn)s&thumbnail=32',{fn:img_src})
-  }
-  //name
-  var div = $a($td(this.t, 0, 1),'div');
-  div.innerHTML = this.first_name;
-}
-
-MessagePreview.prototype.show_msg_subject = function() {
-  var me = this;
-  // message
-  var div1 = $a($td(this.t, 0, 2),'div', '', {paddingBottom:'4px'});
-  var sp = $a(div1,'span','link_type', {fontSize:'12px'});
-  sp.innerHTML = 'Sub : ' +me.subject;
-  
-  var div = $a($td(this.t, 0, 2),'div', 'comment',{paddingBottom:'8px'});
-  div.innerHTML = 'created by: ' + me.msg_owner +' | created on: ' + dateutil.str_to_user(me.msg_date)+ ' | last updated on: ' + dateutil.str_to_user(me.last_updated_on);
-  
-  if (me.req_frm == 'inbox msg' && inList(me.unread_msg_lst, me.msg_id)) {
-    $y(sp,{fontWeight:'bold',color:'Black'});
-    $y(div,{fontWeight:'bold',color:'Black'});
-  }
-  
-  sp.style.cursor = 'pointer';
-  sp.msg_id = me.msg_id; sp.req_frm = me.req_frm;
-  
-  sp.onclick = function() {
-    $dh(me.lst_wrapper);
-    if(this.req_frm == 'inbox msg'){
-      if(!pscript.inbox_msg_obj){
-        pscript.inbox_msg_obj = new MessageThread(me.view_msg_wrapper, pscript.msg_struct.mytabs.tabs['Inbox'], me.lst_wrapper, 'My Inbox'); 
-      }
-      pscript.inbox_msg_obj.show_msg(this.msg_id, me.view_msg_wrapper, pscript.msg_struct.mytabs.tabs['Inbox'], me.lst_wrapper, 'My Inbox', pscript.msg_struct.mytabs.tabs['Sent'], me.lst_wrapper);
-      
-      //mark for already read
-      if (this.req_frm == 'inbox msg' && inList(me.unread_msg_lst,this.msg_id)) {
-        me.mark_as_read(this.msg_id);
-      }
-    }
-    else if(this.req_frm == 'sent msg'){
-      if(!pscript.sent_msg_obj){
-        pscript.sent_msg_obj = new MessageThread(me.view_msg_wrapper, pscript.msg_struct.mytabs.tabs['Sent'], me.lst_wrapper, 'My Inbox'); 
-      }
-      pscript.sent_msg_obj.show_msg(this.msg_id, me.view_msg_wrapper, pscript.msg_struct.mytabs.tabs['Sent'], me.lst_wrapper, 'My Inbox', pscript.msg_struct.mytabs.tabs['Sent'], me.lst_wrapper); 
-    }
-  }
-}
-
-MessagePreview.prototype.mark_as_read = function(msg_id){
-  this.msg_id = msg_id;
-  var me = this;
-  
-  args = {'user' : user, 'msg':this.msg_id,'read':'Yes'}
-  $c_obj('Message Control','read_unread_message',docstring(args),function(r,rt){
-    me.remove_element(me.unread_msg_lst, me.msg_id);
-  });
-}
-
-MessagePreview.prototype.delete_msg = function(msg_nm_lst){
-  this.msg_nm_lst = msg_nm_lst;
-  var me = this; 
-  var delete_msg_dialog;
-  
-  set_delete_msg_dialog = function() {
-    delete_msg_dialog = new Dialog(400, 200, 'Delete Message');
-    delete_msg_dialog.make_body([
-      ['HTML', 'Message', '<div class = "comment">Are you sure, you want to delete message(s) ?</div>'],
-      ['HTML', 'Response', '<div class = "comment" id="delete_msg_dialog_response"></div>'],
-      ['HTML', 'Delete Msg', '<div></div>']
-    ]);
-    
-    var delete_msg_btn1 = $a($i(delete_msg_dialog.widgets['Delete Msg']), 'button', 'button');
-    delete_msg_btn1.innerHTML = 'Yes';
-    delete_msg_btn1.onclick = function(){ delete_msg_dialog.add(); }
-    
-    var delete_msg_btn2 = $a($i(delete_msg_dialog.widgets['Delete Msg']), 'button', 'button');
-    delete_msg_btn2.innerHTML = 'No';
-    $y(delete_msg_btn2,{marginLeft:'4px'});
-    delete_msg_btn2.onclick = function(){ delete_msg_dialog.hide();}
-    
-    delete_msg_dialog.onshow = function() {
-      $i('delete_msg_dialog_response').innerHTML = '';
-    }
-    
-    delete_msg_dialog.add = function() {
-      // sending...
-      $i('delete_msg_dialog_response').innerHTML = 'Processing...';
-      var m_arg = user+ '~~' + this.msg_nm_lst;
-      
-      var call_back = function(r,rt) { 
-        if(r.message == 'true'){
-          $i('delete_msg_dialog_response').innerHTML = 'Message Deleted';
-          delete_msg_dialog.hide();
-          
-          for(m=0; m<me.msg_nm_lst.length; m++){
-            if(inList(me.unread_msg_lst, me.msg_nm_lst[m]))
-              me.remove_element(me.unread_msg_lst, me.msg_nm_lst[m]);
-          }
-          pscript.msg_struct.inbox_lst.msg_li.run();
-          pscript.msg_struct.sent_lst.msg_li.run();
-        }
-      }
-      $c('runserverobj', {doctype:'Message Control',method:'delete_message',arg:m_arg}, call_back); 
-    }
-  }  
-  
-  if(!delete_msg_dialog){
-    set_delete_msg_dialog();
-  }  
-  delete_msg_dialog.msg_nm_lst = this.msg_nm_lst;
-  delete_msg_dialog.show();
-}
-
-MessagePreview.prototype.remove_element = function(arrayName, arrayElement){
-  for(var i=0; i<arrayName.length;i++ )
-  { 
-    if(arrayName[i]==arrayElement)
-    arrayName.splice(i,1); 
-  }
-}
-
-MessagePreview.prototype.show_delete_lnk = function() {
-  var me = this;
-  var div = $a($td(this.t, 0, 3), 'span', 'link_type');
-  div.innerHTML = 'Delete';
-  div.msg_id = me.msg_id;
-  
-  div.onclick = function() {
-    me.delete_msg(me.msg_id);
-  }
-}
-
-MessagePart = function(parent){
-  var me = this;
-  
-  this.parent = parent;
-  this.inputs = {};
-  
-  me.make_header();
-  me.make_reply();
-  me.make_post();
-}
-
-MessagePart.prototype.make = function(label, ele, comment){
-  var me = this;
-  
-  var div = $a(this.parent,'div','',{marginBottom:'12px'});
-  var t = make_table(div,2,1,'70%',['100%']);
-  
-  if( ele == 'button'){
-    var element = $a($td(t,0,0), 'button');
-    element.innerHTML = label;
-  }
-  else {
-    var element = $a($td(t,1,0),ele);
-
-    // large fonts for inputs
-    if(in_list(['input','textarea'],ele.toLowerCase())) {
-      $y(element,{fontSize:'14px', width:'100%'})
-    }
-    $td(t,0,0).innerHTML = label;
-  }
-
-  if(comment) {
-    var div2 = $a(div,'div','',{fontSize:'11px', color:'#888', marginTop:'2px'});
-    div2.innerHTML = comment;
-  }
-  
-  element.wrapper = div;
-  if(label) me.inputs[label] = element;
-  return element;
-}
-
-MessagePart.prototype.make_header = function(){
-  var me = this;
-  
-  this.back_link_div = $a(me.make('','div'),'span', 'link_type', {paddingTop:'12px'});
-  this.back_link_div.innerHTML = 'Back to List';
-  
-  me.make('To','textarea','Enter Email Ids separated by commas (,)');
-  $y(me.inputs['To'],{overflow :'auto', height : '50px'});
-  me.make('Subject','input');
-}
-
-MessagePart.prototype.make_reply = function(){
-  var me = this;
-  this.inputs.Thread = $a(this.parent, 'div', '', {margin:'16px 0px'})
-}
-
-MessagePart.prototype.make_post = function(){
-  var me = this;
-  
-  me.make('Message','textarea');
-  $y(me.inputs['Message'],{height:'240px'});
-
-  // send + cancel
-  var d = $a(this.parent, 'div');
-  me.inputs.Send = $btn(d, 'Send');
-  me.inputs.Reply = $a(d, 'Reply')
-}
-
-MessagePart.prototype.add_header_values = function(to_list, subject){
-  var me = this;
-  
-  //thread_participants
-  me.inputs['To'].value = to_list.join(',');
-  me.inputs['To'].disabled = true;
-  
-  // subject
-  me.inputs['Subject'].value = subject;
-  me.inputs['Subject'].disabled = true;
-}
-
-MessagePart.prototype.add_reply_thread = function(thread){
-  var me = this;
-  // prev messages
-  var t = me.inputs['Thread'];
-  t.innerHTML = ''; // clear previous threads
-  
-  var w = $a(t,'div','',{width:'70%'});
-  var tab = make_table(w,thread.length,2,'100%',['20%','80%'], {padding:'8px 0px', borderBottom:'1px solid #AAA'});
-  
-  for(i=0;i<thread.length;i++) {
-    // ---- photo ---- 
-    if(thread[i][6]) {
-      var img = $a($td(tab,i,0),'img');
-      var img_src = thread[i][6].split(NEWLINE)[0].split(',')[0];
-      img.src = repl('cgi-bin/getfile.cgi?name=%(fn)s&thumbnail=32',{fn:img_src});
-    }
-    
-    // ---- sender name ---- 
-    var d = $a($td(tab,i,0),'div','',{fontSize:'11px'});
-    d.innerHTML = thread[i][5];
-    
-    //----- date ----
-    var d = $a($td(tab,i,1),'div', 'comment', {marginLeft:'8px', color:'#888', fontSize:'11px'}); 
-    d.innerHTML = dateutil.str_to_user(thread[i][3]);
-    
-    //------ message ------
-    var d = $a($td(tab,i,1),'div', 'comment', {fontSize:'14px', marginLeft:'8px'}); 
-    d.innerHTML = replace_newlines(thread[i][1]);
-    $y($td(tab,i,1), {paddingBottom: '8px'});
-  }
-}
-
-//++++++++++++++++++++++++ Message  ++++++++++++++++++++++++
-
-MessageThread = function(parent, view_list_tab, view_list_div, req_frm) {
-  var me = this;
-  this.wrapper = $a(parent,'div');
-  if(!this.msg_parts) this.make(view_list_tab, view_list_div, req_frm);
-}
-
- 
-MessageThread.prototype.add_autosuggest = function() {
-  var me = this;
-  
-  // ---- add auto suggest ---- 
-  var opts = { script: '', json: true, maxresults: 10, timeout: 10000, delay:250, maxentries:500, cache:false};
-
-  wn.require('lib/js/legacy/widgets/autosuggest.js');
-  
-  var as = new AutoSuggest(me.msg_parts.inputs['To'], opts);
-  as.custom_select = function(txt, sel) {
-    // ---- add to the last comma ---- 
-    
-    var r = '';
-    var tl = txt.split(',');
-    for(var i=0;i<tl.length-1;i++) r=r+tl[i]+',';
-    r = r+(r?' ':'')+sel+',';
-    if(r[r.length-1]==NEWLINE) { r=substr(0,r.length-1);}
-    return r;
-  }
-  
-  // ---- override server call ---- 
-  as.doAjaxRequest = function(txt) {
-    var pointer = as; var q = '';
-    
-    // ---- get last few letters typed ---- 
-    var last_txt = txt.split(',');
-    last_txt = last_txt[last_txt.length-1];
-    
-    // ---- show options ---- 
-    var call_back = function(r,rt) {
-      as.aSug = [];
-      var jsondata = r.message;  
-      for (var i=0;i<jsondata.results.length;i++) {
-        as.aSug.push({'id':jsondata.results[i].id, 'value':jsondata.results[i].value, 'info':jsondata.results[i].info});
-      }
-      as.idAs = "as_for_to_message";
-      
-      //old create list
-      as.createList(as.aSug);        
-    }
-    
-    $c_obj('Message Control', 'get_to_list', (last_txt ? last_txt : '%'), call_back);
-    return;
-  }  
-}
-  
-MessageThread.prototype.make = function(view_list_tab, view_list_div, req_frm) {
-  var me = this;
-  
-  me.view_list_tab = view_list_tab;
-  me.view_list_div = view_list_div;
-  me.req_frm = req_frm;
-  
-  this.msg_parts = new MessagePart(me.wrapper);
-
-  this.msg_parts.back_link_div.onclick = function() { 
-    me.hide(); 
-    
-    if(me.in_compose) {
-      if(me.req_frm == 'My Inbox') { me.view_list_tab.show(); $ds(me.view_list_div); }
-    }
-  }
-  
-  // autosuggest
-  me.add_autosuggest();
-}
-
-MessageThread.prototype.set_inbox_editor = function(editor) { 
-  pscript.inbox_text_editor_set = 1;
-}
-
-MessageThread.prototype.view_existing_msg = function(args){
-  var me = this;
-  
-  $c_obj('Message Control', 'get_thread_details', docstring(args), 
-    function(r, rt){
-      var tl = r.message.tl;
-      var to_list = r.message.to_list;
-      
-      //to and subject
-      me.msg_parts.add_header_values(to_list, tl[0][0]);
-      
-      //reply thread
-      me.msg_parts.add_reply_thread(tl);
-      
-      //post area
-      if(me.inbox_editor && pscript.inbox_text_editor_set == 1){
-        me.inbox_editor.editor.setContent('');
-      }
-      else{
-        me.msg_parts.inputs['Message'].value = '';
-      }
-      me.show_as(true);
-    }
-  );
-}
-
-MessageThread.prototype.view_blank_form = function(){
-  var me = this;
-  
-  $ds(me.msg_parts.inputs['To'].wrapper);
-  
-  me.msg_parts.inputs['To'].disabled = false;
-  me.msg_parts.inputs['To'].value = '';    
-  
-  me.msg_parts.inputs['Subject'].disabled = false;    
-  me.msg_parts.inputs['Subject'].value = '';
-  
-  me.msg_parts.inputs['Thread'].innerHTML = '';
-  
-  if(me.inbox_editor && pscript.inbox_text_editor_set == 1){
-    me.inbox_editor.editor.setContent('');
-  }
-  else{
-    me.msg_parts.inputs['Message'].value = '';
-  }    
-  me.show_as(false);
-}
-  
-//  msg_id = mesage id, 
-//  parent = div/tab from where msg will be shown, 
-//  view_list_tab = name of tab in which list will be viewed, 
-//  view_list_div = name of div in which list will be viewed, 
-//  req_frm = my inbox / group / event, 
-//  show_on_send_tab = tab to be viewed on sending/replying to msg, 
-//  show_on_send_div = div to be viewed on sending/replying to msg, 
-//  receiver_lst = list of msg receiver
-
-MessageThread.prototype.show_msg = function(msg_id, parent, view_list_tab, view_list_div, req_frm, show_on_send_tab, show_on_send_div, receiver_lst) {
-  var me = this;
-  
-  // set tinymce editor
-  if(!me.inbox_editor) {
-    pscript.inbox_text_editor_set = 0;
-    var theme_adv_btn1 ="fontselect,fontsizeselect,formatselect,indicime,indicimehelp,emotions";
-    var theme_adv_btn2 ="bold,italic,underline,|,undo,redo,|,code,forecolor,backcolor,link,unlink,hr,|,sub,sup,|,charmap";
-    var theme_adv_btn3 = "";
-    
-    me.inbox_editor = new TextAreaEditor(me.msg_parts.inputs["Message"], null, me.set_inbox_editor, theme_adv_btn1, theme_adv_btn2, theme_adv_btn3, '300px');
-  }
-  
-  me.req_frm = req_frm;
-  me.receiver_lst = receiver_lst;
-  me.parent = parent;
-  me.view_list_tab = view_list_tab;
-  me.view_list_div = view_list_div;
-  me.show_on_send_tab = show_on_send_tab;
-  me.show_on_send_div = show_on_send_div;
-  me.msg_parts.inputs['Send'].btn_click = 0;
-  me.msg_parts.inputs['Reply'].btn_click = 0;
-  
-  if(msg_id) {
-    this.cur_message_id = msg_id;
-    var args = {'user_name':user, 'cur_msg_id': this.cur_message_id};
-    me.view_existing_msg(args);      
-  } 
-  else {
-    this.cur_message_id = null;
-    me.view_blank_form();
-  }  
-  $ds(me.parent);
-  
-  // reply or send btn
-  me.msg_parts.inputs['Send'].onclick = function(){ 
-    if(!this.btn_click){
-      this.btn_click = 1;
-      me.send(me.req_frm, me.receiver_lst, me.show_on_send_tab, me.show_on_send_div); 
-    }
-  }
-  me.msg_parts.inputs['Reply'].onclick = me.msg_parts.inputs['Send'].onclick;
-}
-
-MessageThread.prototype.hide = function() {
-  var me = this;
-  
-  $dh(me.wrapper);
-  $ds(me.view_list_div);
-  me.display = 0;
-}
-
-MessageThread.prototype.show_as = function(reply) {
-  var me = this;
-  
-  if(!reply) {
-    $dh(me.msg_parts.inputs['Thread'].wrapper);
-    $dh(me.msg_parts.inputs['Reply']);
-    $ds(me.msg_parts.inputs['Send']);
-    me.in_compose = 1;
-  }
-  else {
-    $ds(me.msg_parts.inputs['Thread'].wrapper);
-    $ds(me.msg_parts.inputs['Reply']);
-    $dh(me.msg_parts.inputs['Send']);
-    $dh(me.view_list_div);
-    me.in_compose = 1;
-  } 
-  $ds(me.wrapper);
-  me.display = 1;
-}
-
-MessageThread.prototype.send_msg = function(arg){
-  var me = this;
-  var args = arg;
-  
-  var send_call_back = function(r, rt){
-    //var me = this;
-    if(r.message == 'true'){
-      me.msg_parts.inputs['To'].value = '';
-      me.msg_parts.inputs['Subject'].value = '';
-      me.msg_parts.inputs['Thread'].innerHTML = '';
-      
-      if(me.inbox_editor && pscript.inbox_text_editor_set == 1){
-        me.inbox_editor.editor.setContent('');
-      }
-      else{
-        me.msg_parts.inputs['Message'].value = '';
-      }
-      
-      if(me.req_frm == 'My Inbox'){
-        pscript.msg_struct.sent_lst.msg_li.run();
-        me.show_on_send_tab.show();
-        $ds(me.show_on_send_div);
-        $dh(me.parent);
-      }
-    }
-  }
-  
-  if(me.cur_message_id==null){
-    $c_obj('Message Control','send_message',docstring(args), send_call_back);
-  }
-  else{  
-    $c_obj('Message Control','send_reply',docstring(args), send_call_back);
-  }
-}
-
-MessageThread.prototype.send = function(req_frm, receiver_lst, show_on_send_tab, show_on_send_div) {
-  var me = this;
-  me.req_frm = req_frm;
-  me.show_on_send_tab = show_on_send_tab;
-  me.show_on_send_div = show_on_send_div;
-  var args = {'user_name':user};
-  
-  if(me.inbox_editor && pscript.inbox_text_editor_set == 1){
-    args.message = me.inbox_editor.editor.getContent();
-  }
-  else{
-    args.message = me.msg_parts.inputs['Message'].value;
-  }
-  
-  if(me.cur_message_id==null){
-    args.subject = me.msg_parts.inputs['Subject'].value;
-    args.to_list = me.msg_parts.inputs['To'].value;
-    if(!args.to_list) {msgprint('error:Must enter "To:"'); }
-    else if(!args.subject) {msgprint('error:Must enter "Subject"'); }
-    else me.send_msg(args);
-  }
-  else{
-    var subj = me.msg_parts.inputs['Subject'].value;
-    if(!subj.substr(0,3).toLowerCase()=='re:')
-      subj = 'Re: ' + subj;
-    args.subject = subj;
-    args.message_id = me.cur_message_id;
-    
-    me.send_msg(args);
-  }
-}
-
-MessageThread.prototype.delete_msg = function(req_frm, parent, view_list_tab, view_list_div) {
-  var me = this;
-  
-  var msg_lst = [];
-  var delete_message_dialog;
-  me.parent = parent;
-  
-  if(me.cur_message_id)
-    msg_lst.push(me.cur_message_id);
-  
-  if(msg_lst.length >= 1){
-    function set_delete_message_dialog() {
-      delete_message_dialog = new Dialog(400, 400, 'Delete Message');
-      delete_message_dialog.make_body([
-        ['HTML', 'Message', '<div class = "comment">Are you sure, you want to delete this message ?</div>'],
-        ['HTML', 'Response', '<div class = "comment" id="delete_message_dialog_response"></div>'],
-        ['HTML', 'Delete Message', '<div id="delete_message_btn" style ="height:25px;"></div>']
-      ]);
-      
-      var delete_message_btn1 = $a($i('delete_message_btn'), 'button', 'button');
-      delete_message_btn1.innerHTML = 'Yes';
-      delete_message_btn1.onclick = function(){ delete_message_dialog.add();}
-      
-      var delete_message_btn2 = $a($i('delete_message_btn'), 'button', 'button');
-      delete_message_btn2.innerHTML = 'No';
-      $y(delete_message_btn2,{marginLeft:'4px'});
-      
-      delete_message_btn2.onclick = function(){ delete_message_dialog.hide();}
-      
-      delete_message_dialog.onshow = function() {
-        $i('delete_message_dialog_response').innerHTML = '';
-      }
-      
-      delete_message_dialog.add = function() {
-        if(this.req_frm == 'My Inbox'){
-          var args = user + '~~' + this.msg_lst;
-          $c_obj('Message Control', 'delete_message', args, function(r, rt){
-            if(r.message == 'true'){
-              me.hide();
-              me.view_list_tab.show(); 
-              $ds(me.view_list_div);
-              delete_message_dialog.hide();
-            }
-          });  
-        }
-      }
-    }  
-    
-    if(!delete_message_dialog)
-      set_delete_message_dialog();
-    delete_message_dialog.req_frm = req_frm;
-    delete_message_dialog.msg_lst = msg_lst;
-    delete_message_dialog.view_list_tab = view_list_tab;
-    delete_message_dialog.view_list_div = view_list_div;
-    delete_message_dialog.show();
-  }
-}
-
-// ---------------- editor---------------------
-
-var editor_count = 0;
-
-function TextAreaEditor(txt, parent, callback, theme_advanced_btn1, theme_advanced_btn2, theme_advanced_btn3, editor_ht) {
-
-  this.txt = txt;
-  this.parent = parent;
-  this.callback = callback;
-  if(theme_advanced_btn1) this.theme_advanced_btn1 = theme_advanced_btn1;
-  if(theme_advanced_btn2) this.theme_advanced_btn2 = theme_advanced_btn2;
-  if(theme_advanced_btn3) this.theme_advanced_btn3 = theme_advanced_btn3;
-  if(editor_ht) this.editor_ht = editor_ht;
-
-  // load tinyMCE library
-  this.load_tiny_mce_library();
-}
-
-TextAreaEditor.prototype.load_tiny_mce_library = function() {
-
-  var me = this;
-  
-  if(!tinymce_loaded) {
-    tinymce_loaded = 1;
-    tinyMCE_GZ.init(
-      {
-        themes : "advanced",
-        plugins : "style,table,inlinepopups,indicime,emotions",
-        languages : "en",
-        disk_cache : true
-      }, function(){ me.setup_text_area() });
-  }
-  else {
-    me.setup_text_area();
-  }
-}
-
-TextAreaEditor.prototype.setup_text_area = function() {
-
-  var me = this;
-  if(!me.txt) {
-    me.txt = $a(me.parent, 'textarea');
-  }
-  
-  editor_count++;
-  me.id = 'editor_text_' + editor_count;
-  me.txt.setAttribute('id', me.id);
-  
-  tinyMCE.init({
-    theme : "advanced",
-    mode : "exact",
-    elements: me.id,
-    plugins:"table,style,inlinepopups,indicime,emotions",
-    theme_advanced_toolbar_location : "top",
-    theme_advanced_statusbar_location : "bottom",
-    extended_valid_elements: "div[id|dir|class|align|style]",
-    
-    // w/h
-    width: '100%',
-    height: me.editor_ht?me.editor_ht:'50px',
-    
-    // buttons
-    //theme_advanced_buttons1 :"bold,italic,underline,strikethrough,blockquote,forecolor,backcolor,bullist,numlist,|,undo,redo,|,image,code,indicime,indicimehelp,emotions",
-    theme_advanced_buttons1 : me.theme_advanced_btn1?me.theme_advanced_btn1:"bold,italic,underline,forecolor,backcolor,|,undo,redo,|,link,unlink,indicime,indicimehelp,emotions",
-    theme_advanced_buttons2 : me.theme_advanced_btn2?me.theme_advanced_btn2:"",
-    theme_advanced_buttons3 : me.theme_advanced_btn3?me.theme_advanced_btn3:"",
-    
-    // callback function with editor instance.
-    init_instance_callback : "editor_init_callback"
-  });  
-
-  editor_init_callback = function(inst) {
-    me.editor = tinyMCE.get(me.id);
-    me.editor.focus();
-    
-    if(me.callback){
-      me.callback(me.editor);
-    }
-  }  
-}
\ No newline at end of file
diff --git a/erpnext/utilities/page/messages/messages.txt b/erpnext/utilities/page/messages/messages.txt
deleted file mode 100644
index 8369afe..0000000
--- a/erpnext/utilities/page/messages/messages.txt
+++ /dev/null
@@ -1 +0,0 @@
-[{'creation': '2010-06-07 10:34:37', 'module': 'Tools', 'doctype': 'Page', 'owner': 'Administrator', 'style': None, 'modified_by': 'nabin@webnotestech.com', 'script': None, 'show_in_menu': 1, 'content': None, 'page_name': 'Messages', 'menu_index': None, 'docstatus': 0, 'parent': None, 'standard': 'Yes', 'icon': None, 'name': 'Messages', 'idx': None, 'static_content': None, 'modified': '2010-09-25 00:00:00', 'parenttype': None, 'parent_node': None, 'parentfield': None}, {'modified_by': 'nabin@webnotestech.com', 'name': 'PR000137', 'parent': 'Messages', 'creation': '2010-06-07 10:34:37', 'modified': '2010-09-01 14:56:20', 'doctype': 'Page Role', 'idx': 1, 'parenttype': 'Page', 'role': 'Administrator', 'owner': 'Administrator', 'docstatus': 0, 'parentfield': 'roles'}, {'modified_by': 'nabin@webnotestech.com', 'name': 'PR000138', 'parent': 'Messages', 'creation': '2010-06-07 13:35:43', 'modified': '2010-09-01 14:56:20', 'doctype': 'Page Role', 'idx': 2, 'parenttype': 'Page', 'role': 'All', 'owner': 'Administrator', 'docstatus': 0, 'parentfield': 'roles'}]
\ No newline at end of file
diff --git a/erpnext/utilities/page/messages/messages_static.html b/erpnext/utilities/page/messages/messages_static.html
deleted file mode 100644
index 094418b..0000000
--- a/erpnext/utilities/page/messages/messages_static.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<div>
-</div>
\ No newline at end of file
diff --git a/version.num b/version.num
index 70e3603..4aeea8c 100644
--- a/version.num
+++ b/version.num
@@ -1 +1 @@
-648
\ No newline at end of file
+650
\ No newline at end of file
diff --git a/wnf.py b/wnf.py
index 4f18187..fc28232 100755
--- a/wnf.py
+++ b/wnf.py
@@ -56,7 +56,10 @@
 						help="export doc")
 	parser.add_option('--install', nargs=3, metavar = "rootpassword dbname source",
 						help="install fresh db")
-	parser.add_option('--sync_with_gateway', nargs=1, metavar = "1/0", help="Set or Unset Sync with Gateway")
+	parser.add_option('--sync_with_gateway', nargs=1, metavar = "1/0", \
+						help="Set or Unset Sync with Gateway")
+	parser.add_option('--docdiff', nargs=0, \
+						help="Get diff between .txt files and database records")
 
 	return parser.parse_args()
 	
@@ -152,6 +155,10 @@
 		else:
 			webnotes.message_log.append("ERROR: sync_with_gateway can be either 0 or 1")
 	
+	elif options.docdiff is not None:
+		import webnotes.modules.diff
+		webnotes.modules.diff.diff()
+	
 	# print messages
 	if webnotes.message_log:
 		print '\n'.join(webnotes.message_log)