Index: /trunk/globals/vars.php
===================================================================
--- /trunk/globals/vars.php (revision 187)
+++ /trunk/globals/vars.php (revision 1)
@@ -23,6 +23,5 @@
 	
 	'info' => array(
-		'version' => 0,
-		'min_template_version' => 0
+		'version' => '(snapshot)'
 		)
 
Index: /trunk/globals/language/greek.php
===================================================================
--- /trunk/globals/language/greek.php (revision 159)
+++ /trunk/globals/language/greek.php (revision 1)
@@ -20,438 +20,244 @@
  */
 
-/* el_GR for GNU/Linux - ell for Windows */
-setlocale(LC_ALL, 'el_GR', 'ell');
+setlocale(LC_ALL, 'ell');
 
 $lang = array(
 
-	'charset' => 'utf-8',
-	'iso639' => 'el',
-	'mysql_charset' => 'utf8',
+	'charset' => 'iso-8859-7',
 	
 	'site_title' => "WiND - Wireless Nodes Database",
-	'title_small' => "WiND",
-	
-	'forward_text' => "ÎÎœ ÎŽÎµÎœ ÎµÏÎ¹ÎžÏ
-ÎŒÎµÎ¯ÏÎµ ÎœÎ± ÏÎµÏÎ¹ÎŒÎ­ÎœÎµÏÎµ ÏÎ±ÏÎ®ÏÏÎµ ÎµÎŽÏ...",
-	
-	'delete_request' => "ÎÎ¯ÏÎ·ÏÎ· ÎŽÎ¹Î±Î³ÏÎ±ÏÎ®Ï",
-	
-	'delete' => "ÎÎ¹Î±Î³ÏÎ±ÏÎ®",
-	'home' => "ÎÏÏÎ¹ÎºÎ® ÏÎµÎ»Î¯ÎŽÎ±",
-	'edit_profile' => "Î ÏÎ¿ÏÎ¯Î» ÏÏÎ®ÏÏÎ·",
-	'edit_node' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± ÎºÏÎŒÎ²Î¿Ï
-",
-	'log_out' => "ÎÏÎ¿ÏÏÎœÎŽÎµÏÎ·",
-	'login' => "Î£ÏÎœÎŽÎµÏÎ·",
-	'register' => "ÎÎ³Î³ÏÎ±ÏÎ®",
-	'password_recover' => "ÎÎœÎ¬ÎºÏÎ·ÏÎ· ÎºÏÎŽÎ¹ÎºÎ¿Ï",
-	'password_change' => "ÎÎ»Î»Î±Î³Î® ÎºÏÎŽÎ¹ÎºÎ¿Ï",
-	'all_nodes' => "ÎÏÎŒÎ²Î¿Î¹ ÎŽÎ¹ÎºÏÏÎ¿Ï
-",
-	'all_zones' => "ÎÏÎœÎµÏ DNS",
-	'all_ranges' => "ÎÎ¹ÎµÏ
-ÎžÏ
-ÎœÏÎ¹Î¿ÎŽÏÏÎ·ÏÎ·",
-	'user_info' => "Î£ÏÎ¿Î¹ÏÎµÎ¯Î± ÏÏÎ®ÏÏÎ·",
-	'users_info' => "Î£ÏÎ¿Î¹ÏÎµÎ¯Î± ÏÏÎ·ÏÏÏÎœ",
-	'username' => "ÎÎœÎ¿ÎŒÎ± ÏÏÎ®ÏÏÎ·",
-	'registered_since' => "ÎÎ³Î³ÏÎ±ÏÎ®",
-	'name' => "ÎÎœÎ¿ÎŒÎ±",
-	'surname' => "ÎÏÏÎœÏ
-ÎŒÎ¿",
-	'last_visit' => "Î€ÎµÎ». ÎµÏÎ¯ÏÎºÎµÏÎ·",
-	'mynodes' => "ÎÎ¹ ÎºÏÎŒÎ²Î¿Î¹ ÎŒÎ¿Ï
-",
-	'node_add' => "Î ÏÎ¿ÏÎžÎ®ÎºÎ· ÎºÏÎŒÎ²Î¿Ï
-",
-	'admin_panel' => "ÎÎ¹Î±ÏÎµÎ¯ÏÎ¹ÏÎ·",
-	'nodes' => "ÎÏÎŒÎ²Î¿Î¹",
-	'users' => "Î§ÏÎ®ÏÏÎµÏ",
+	
+	'forward_text' => "Áí äåí åðéèõìåßôå íá ðåñéìÝíåôå ðáôÞóôå åäþ...",
+	
+	'delete_request' => "Áßôçóç äéáãñáöÞò",
+	
+	'delete' => "ÄéáãñáöÞ",
+	'home' => "Áñ÷éêÞ óåëßäá",
+	'edit_profile' => "Ðñïößë ÷ñÞóôç",
+	'log_out' => "Áðïóýíäåóç",
+	'login' => "Óýíäåóç",
+	'register' => "ÅããñáöÞ",
+	'password_recover' => "ÁíÜêôçóç êùäéêïý",
+	'password_change' => "ÁëëáãÞ êùäéêïý",
+	'all_nodes' => "Êüìâïé äéêôýïõ",
+	'all_zones' => "DNS Zones",
+	'all_ranges' => "Äéåõèõíóéïäüôçóç",
+	'user_info' => "Óôïé÷åßá ÷ñÞóôç",
+	'username' => "Œíïìá ÷ñÞóôç",
+	'registered_since' => "ÅããñáöÞ",
+	'name' => "Œíïìá",
+	'surname' => "Åðþíõìï",
+	'last_visit' => "Ôåë. åðßóêåøç",
+	'mynodes' => "Ïé êüìâïé ìïõ",
+	'node_add' => "ÐñïóèÞêç êüìâïõ",
+	'admin_panel' => "Äéá÷åßñéóç",
+	'nodes' => "Êüìâïé",
+	'users' => "×ñÞóôåò",
 	'hostmaster_panel' => "Hostmaster",
 	'ip_ranges' => "IP C-Classes",
-	'dns_zones' => "ÎÏÎœÎµÏ DNS",
-	'dns_nameservers' => "Nameservers (NS)",
-	'waiting' => "ÏÏÎ¿Ï Î­Î»ÎµÎ³ÏÎ¿",
-	'for_deletion' => "Î³Î¹Î± ÎŽÎ¹Î±Î³ÏÎ±ÏÎ®",
-	'welcome' => "ÎÎ±Î»ÏÏ Î®ÏÎžÎ±ÏÎµ",
-	'gearth_download' => "Google Earth file download",
-	'google_earth' => "Google Earth",
-	'nodes_search' => "ÎÎœÎ±Î¶Î®ÏÎ·ÏÎ· ÎºÏÎŒÎ²ÏÎœ",
-	'nodes_found' => "ÎÏÎŒÎ²Î¿Î¹ ÏÎ¿Ï
- Î²ÏÎ­ÎžÎ·ÎºÎ±Îœ",
-	'users_search' => "ÎÎœÎ±Î¶Î®ÏÎ·ÏÎ· ÏÏÎ·ÏÏÏÎœ",
-	'users_found' => "Î§ÏÎ®ÏÏÎµÏ ÏÎ¿Ï
- Î²ÏÎ­ÎžÎ·ÎºÎ±Îœ",
-	'dns_zones_search' => "ÎÎœÎ±Î¶Î®ÏÎ·ÏÎ· Î¶ÏÎœÎ·Ï DNS",
-	'dns_zones_found' => "ÎÏÎœÎµÏ DNS ÏÎ¿Ï
- Î²ÏÎ­ÎžÎ·ÎºÎ±Îœ",
-	'not_found' => "ÎÎµÎœ Î²ÏÎ­ÎžÎ·ÎºÎ±Îœ Î±ÏÎ¿ÏÎµÎ»Î­ÏÎŒÎ±ÏÎ±",
-	'all_services' => "Î¥ÏÎ·ÏÎµÏÎ¯ÎµÏ ÎŽÎ¹ÎºÏÏÎ¿Ï
-",
-	'active_services' => "ÎÎœÎµÏÎ³Î­Ï Ï
-ÏÎ·ÏÎµÏÎ¯ÎµÏ",
-	'services_search' => "ÎÎœÎ±Î¶Î®ÏÎ·ÏÎ· Ï
-ÏÎ·ÏÎµÏÎ¹ÏÎœ",
-	'services_found' => "Î¥ÏÎ·ÏÎµÏÎ¯ÎµÏ ÏÎ¿Ï
- Î²ÏÎ­ÎžÎ·ÎºÎ±Îœ",
-	'services_edit' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± Ï
-ÏÎ·ÏÎµÏÎ¯Î±Ï",
-	'services_add' => "Î ÏÎ¿ÏÎžÎ®ÎºÎ· Ï
-ÏÎ·ÏÎµÏÎ¯Î±Ï",
-	'services' => "Î¥ÏÎ·ÏÎµÏÎ¯ÎµÏ",
-	'services_categories' => "ÎÎ±ÏÎ·Î³Î¿ÏÎ¯ÎµÏ Ï
-ÏÎ·ÏÎµÏÎ¯ÏÎœ",
-	'services_categories_add' => "Î ÏÎ¿ÏÎžÎ®ÎºÎ· ÎºÎ±ÏÎ·Î³Î¿ÏÎ¯Î±Ï Ï
-ÏÎ·ÏÎµÏÎ¯ÏÎœ",
-	'services_categories_edit' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± ÎºÎ±ÏÎ·Î³Î¿ÏÎ¯Î±Ï Ï
-ÏÎ·ÏÎµÏÎ¯ÏÎœ",
-
-	'user_add' => "ÎÎ³Î³ÏÎ±ÏÎ® ÎœÎ­Î¿Ï
- ÏÏÎ®ÏÏÎ·",
-	'user_edit' => "Î ÏÎ¿ÏÎ¯Î» ÏÏÎ®ÏÏÎ·",
-	'node' => "ÎÏÎŒÎ²Î¿Ï",
-	'node_info' => "Î£ÏÎ¿Î¹ÏÎµÎ¯Î± ÎºÏÎŒÎ²Î¿Ï
-",
-	'node_view' => "Î ÏÎ¿Î²Î¿Î»Î® ÎºÏÎŒÎ²Î¿Ï
-",
-	'node_delete' => "ÎÎ¹Î±Î³ÏÎ±ÏÎ® ÎºÏÎŒÎ²Î¿Ï
-",
-	'ip_range_request' => "ÎÎ¯ÏÎ·ÏÎ· Î±ÏÏÎŽÎ¿ÏÎ·Ï IP C-Class",
-	'ip_range_request_for_node' => "ÎÎ¯ÏÎ·ÏÎ· Î±ÏÏÎŽÎ¿ÏÎ·Ï IP C-Class Î³Î¹Î± ÏÎ¿Îœ ÎºÏÎŒÎ²Î¿",
-	'dnszone_request_forward' => "ÎÎ¯ÏÎ·ÏÎ· Î±ÏÏÎŽÎ¿ÏÎ·Ï Î¶ÏÎœÎ·Ï DNS (forward)",
-	'dnszone_request_reverse' => "ÎÎ¯ÏÎ·ÏÎ· Î±ÏÏÎŽÎ¿ÏÎ·Ï Î¶ÏÎœÎ·Ï DNS (reverse)",
-	'dnszone_edit' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± Î¶ÏÎœÎ·Ï DNS",
-	'nameserver_add' => "Î ÏÎ¿ÏÎžÎ®ÎºÎ· nameserver (NS)",
-	'nameserver_edit' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± nameserver (NS)",
-	'link_edit' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± ÎŽÎ¹Î±ÏÏÎœÎŽÎµÏÎ·Ï",
-	'link_add' => "Î ÏÎ¿ÏÎžÎ®ÎºÎ· ÎŽÎ¹Î±ÏÏÎœÎŽÎµÏÎ·Ï",
-	'links' => "ÎÎ¹Î±ÏÏ
-ÎœÎŽÎ­ÏÎµÎ¹Ï",
+	'dns_zones' => "DNS zones",
+	'dns_nameservers' => "DNS nameservers",
+	'pending' => "óå áíáìïíÞ",
+	'for_deletion' => "ãéá äéáãñáöÞ",
+	'welcome' => "Êáëþò Þñèáôå",
+	'nodes_search' => "ÁíáæÞôçóç êüìâùí",
+	'nodes_found' => "Êüìâïé ðïõ âñÝèçêáí",
+	'users_search' => "ÁíáæÞôçóç ÷ñçóôþí",
+	'users_found' => "×ñÞóôåò ðïõ âñÝèçêáí",
+	'dns_zones_search' => "ÁíáæÞôçóç DNS zone",
+	'dns_zones_found' => "DNS zones ðïõ âñÝèçêáí",
+	'user_add' => "ÅããñáöÞ íÝïõ ÷ñÞóôç",
+	'user_edit' => "Ðñïößë ÷ñÞóôç",
+	'node' => "Êüìâïò",
+	'node_info' => "Óôïé÷åßá êüìâïõ",
+	'node_delete' => "ÄéáãñáöÞ êüìâïõ",
+	'ip_range_request' => "Áßôçóç áðüäïóçò IP C-Class",
+	'ip_range_request_for_node' => "Áßôçóç áðüäïóçò IP C-Class ãéá ôïí êüìâï",
+	'dnszone_request_forward' => "Áßôçóç áðüäïóçò DNS zone (forward)",
+	'dnszone_request_reverse' => "Áßôçóç áðüäïóçò DNS zone (reverse)",
+	'dnszone_edit' => "Åðåîåñãáóßá DNS zone",
+	'nameserver_add' => "ÐñïóèÞêç nameserver (NS)",
+	'nameserver_edit' => "Åðåîåñãáóßá nameserver (NS)",
+	'link_edit' => "Åðåîåñãáóßá äéáóýíäåóçò",
+	'link_add' => "ÐñïóèÞêç äéáóýíäåóçò",
+	'links' => "ÄéáóõíäÝóåéò",
 	'ap' => "Access Point",
-	'aps' => "Access Points",
-	'aps_search' => "ÎÎœÎ±Î¶Î®ÏÎ·ÏÎ· Access Points",
-	'aps_found' => "Access Points ÏÎ¿Ï
- Î²ÏÎ­ÎžÎ·ÎºÎ±Îœ",
-	'subnet_edit' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± Ï
-ÏÎ¿ÎŽÎ¹ÎºÏÏÎ¿Ï
-",
-	'subnet_add' => "Î ÏÎ¿ÏÎžÎ®ÎºÎ· Ï
-ÏÎ¿ÎŽÎ¹ÎºÏÏÎ¿Ï
-",
-	'subnets' => "Î¥ÏÎ¿ÎŽÎ¯ÎºÏÏ
-Î±",
-	'ip_address_edit' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ·Ï IP",
-	'ip_address_add' => "Î ÏÎ¿ÏÎžÎ®ÎºÎ· ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ·Ï IP",
-	'ip_addresses' => "ÎÎ¹ÎµÏ
-ÎžÏÎœÏÎµÎ¹Ï IP",
-	'myview' => "Î Î¿ÏÏÎ¹ÎºÎ® ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
-",
-	'ip_ranges_search' => "ÎÎœÎ±Î¶Î®ÏÎ·ÏÎ· IP C-Classes",
-	'ip_ranges_found' => "IP C-Classes ÏÎ¿Ï
- Î²ÏÎ­ÎžÎ·ÎºÎ±Îœ",
-	'dns_nameservers_search' => "ÎÎœÎ±Î¶Î®ÏÎ·ÏÎ· DNS nameservers",
-	'dns_nameservers_found' => "DNS nameservers ÏÎ¿Ï
- Î²ÏÎ­ÎžÎ·ÎºÎ±Îœ",
-	'ip_range_edit' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± IP C-Class",
-	'send_mail' => "ÎÏÎ¿ÏÏÎ¿Î»Î® ÎµÎœÎ·ÎŒÎµÏÏÏÎ¹ÎºÎ¿Ï E-mail",
-	'to' => "Î ÏÎ¿Ï",
-	'subject' => "ÎÎ­ÎŒÎ±",
-	'body' => "ÎÎ®ÎœÏ
-ÎŒÎ±",
-	'mailto_all' => "ÎÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ® & Î£Ï
-ÎœÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ­Ï",
-	'mailto_owner' => "ÎÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ®",
-	'mailto_custom' => "ÎÎ»Î»Î¿Ï
-Ï",
-	'ip_ranges_allocation' => "ÎÎ±ÏÎ±ÎœÎ¿ÎŒÎ® ÎŽÎ¹ÎµÏ
-ÎžÏÎœÏÎµÏÎœ IP",
-	'ip_ranges_search' => "ÎÎœÎ±Î¶Î®ÏÎ·ÏÎ· IP C-Classes",
-	'change' => "ÎÎ»Î»Î±Î³Î®",
-	'submit' => "OK",
-	'add' => "Î ÏÎ¿ÏÎžÎ®ÎºÎ·",
-	'remove' => "ÎÏÎ±Î¯ÏÎµÏÎ·",
-	'update' => "ÎÎœÎ±ÎœÎ­ÏÏÎ·",
-	'search' => "ÎÎœÎ±Î¶Î®ÏÎ·ÏÎ·",
-	'plot' => "ÎÏÏÎ¹ÎºÎ® ÎµÏÎ±ÏÎ®",
-	'mynetwork' => "Î€Î¿ ÎŽÎ¯ÎºÏÏ
-Î¿ ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
-",
-	'new_window' => "ÎÎ­Î¿ ÏÎ±ÏÎ¬ÎžÏ
-ÏÎ¿",
-	'node_plot_link' => "ÎÏÏÎ¹ÎºÎ® ÎµÏÎ±ÏÎ® ÎŒÎµ Î¬Î»Î»Î¿Ï
-Ï ÎºÏÎŒÎ²Î¿Ï
-Ï",
-	'nodes_plot_link' => "ÎÏÏÎ¹ÎºÎ® ÎµÏÎ±ÏÎ® ÎºÏÎŒÎ²ÏÎœ",
-	'nodes_plot_link_info' => "ÎÏÎ¹Î»Î­ÎŸÏÎµ ÏÎ±ÏÎ±ÏÎ¬ÎœÏ ÏÎ¿Ï
-Ï ÎºÏÎŒÎ²Î¿Ï
-Ï Î³Î¹Î± ÏÎ¿Ï
-Ï Î¿ÏÎ¿Î¯Î¿Ï
-Ï ÎµÏÎ¹ÎžÏ
-ÎŒÎµÎ¯ÏÎµ ÎœÎ± ÎµÎ»Î­Î³ÎŸÎµÏÎµ ÏÎ·Îœ Î¿ÏÏÎ¹ÎºÎ® ÎµÏÎ±ÏÎ®.",
-	'distance' => "ÎÏÏÏÏÎ±ÏÎ·",
-	'azimuth' => "ÎÎ¶Î¹ÎŒÎ¿ÏÎžÎ¹Î¿",
-	'elevation' => "Î¥ÏÏÎŒÎµÏÏÎ¿",
-	'fsl' => "Free space loss",
-	'tilt' => "ÎÎ»Î¯ÏÎ·",
-	'clients' => "Î ÎµÎ»Î¬ÏÎµÏ",
-	'compare_equal' => "ÎÏÎ¿ ÎŒÎµ",
-	'compare_greater' => "ÎÎµÎ³Î±Î»ÏÏÎµÏÎ¿ Î±ÏÏ",
-	'compare_less' => "ÎÎ¹ÎºÏÏÏÎµÏÎ¿ Î±ÏÏ",
-	'compare_greater_equal' => "ÎÎµÎ³Î±Î»ÏÏÎµÏÎ¿ Î® Î¯ÏÎ¿ ÎŒÎµ",
-	'compare_less_equal' => "ÎÎ¹ÎºÏÏÏÎµÏÎ¿ Î® Î¯ÏÎ¿ ÎŒÎµ",
-	'compare_starts_with' => "ÎÎµÎºÎ¹ÎœÎ¬ÎµÎ¹ Î±ÏÏ",
-	'compare_ends_with' => "Î€ÎµÎ»ÎµÎ¹ÏÎœÎµÎ¹ ÏÎµ",
-	'compare_contains' => "Î ÎµÏÎ¹Î­ÏÎµÎ¹",
-	'zone_forward' => "Forward Î¶ÏÎœÎ· DNS",
-	'zone_reverse' => "Reverse Î¶ÏÎœÎ· DNS",
-	'contact' => "ÎÏÎ¿ÏÏÎ¿Î»Î® ÎŒÎ·ÎœÏÎŒÎ±ÏÎ¿Ï",
-	'contact_node' => "ÎÏÎ¹ÎºÎ¿Î¹ÎœÏÎœÎ¯Î± ÎŒÎµ ÏÎ¿Îœ ÎºÏÎŒÎ²Î¿",
-	'from' => "ÎÏÏ",
-	'send' => "ÎÏÎ¿ÏÏÎ¿Î»Î®",
-	'node_page' => "Î£ÎµÎ»Î¯ÎŽÎ± ÎºÏÎŒÎ²Î¿Ï
-",
-	'yes' => "ÎÎ±Î¹",
-	'no' => "ÎÏÎ¹",
-	'backbone' => "Backbone",
-	'unlinked' => "ÎÏÏÎœÎŽÎµÏÎ¿Î¹",
-	'find_coordinates' => "ÎÏÎµÎ¯ÏÎµ ÏÎ¹Ï ÏÏ
-ÎœÏÎµÏÎ±Î³ÎŒÎ­ÎœÎµÏ ÏÎ±Ï",
-	'select_the_coordinates' => "ÎÏÎ¹Î»Î¿Î³Î® ÏÏÎœ ÏÏ
-ÎœÏÎµÏÎ±Î³ÎŒÎ­ÎœÏÎœ",
-	'quick_search' => "ÎÏÎ®Î³Î¿ÏÎ· ÎµÏÏÎµÏÎ·",
-	'statistics' => "Î£ÏÎ±ÏÎ¹ÏÏÎ¹ÎºÎ¬",
-	'active_nodes' => "ÎÎœÎµÏÎ³Î¿Î¯ ÎºÏÎŒÎ²Î¿Î¹",
-	'backbone_nodes' => "Backbone ÎºÏÎŒÎ²Î¿Î¹",
-	'null' => "(ÎÎµÎœÏ)",
-	'default' => "Î ÏÎ¿ÎµÏÎ¹Î»ÎµÎ³ÎŒÎ­ÎœÎ·",
-	'logged' => "Î£ÏÎœÎŽÎµÏÎ· ÏÏ",
-	'regions' => "ÎÎ¿ÎŒÎ±ÏÏÎ¯ÎµÏ",
-	'region_add' => "Î ÏÎ¿ÏÎžÎ®ÎºÎ· ÎœÎ¿ÎŒÎ±ÏÏÎ¯Î±Ï",
-	'region_edit' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± ÎœÎ¿ÎŒÎ±ÏÏÎ¯Î±Ï",
-	'areas' => "ÎÎ®ÎŒÎ¿Î¹ / ÎÎ¿Î¹ÎœÏÏÎ·ÏÎµÏ",
-	'area_add' => "Î ÏÎ¿ÏÎžÎ®ÎºÎ· ÎŽÎ®ÎŒÎ¿Ï
- / ÎºÎ¿Î¹ÎœÏÏÎ·ÏÎ±Ï",
-	'area_edit' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± ÎŽÎ®ÎŒÎ¿Ï
- / ÎºÎ¿Î¹ÎœÏÏÎ·ÏÎ±Ï",
+	'subnet_edit' => "Åðåîåñãáóßá õðïäéêôýïõ",
+	'subnet_add' => "ÐñïóèÞêç õðïäéêôýïõ",
+	'subnets' => "Õðïäßêôõá",
+	'ip_address_edit' => "Åðåîåñãáóßá äéåýèõíóçò IP",
+	'ip_address_add' => "ÐñïóèÞêç äéåýèõíóçò IP",
+	'ip_addresses' => "Äéåõèýíóåéò IP",
+	'myview' => "Ç ïðôéêÞ ôïõ êüìâïõ",
+	'ip_ranges_search' => "ÁíáæÞôçóç IP C-Classes",
+	'ip_ranges_found' => "IP C-Classes ðïõ âñÝèçêáí",
+	'dns_nameservers_search' => "ÁíáæÞôçóç DNS nameservers",
+	'dns_nameservers_found' => "DNS nameservers ðïõ âñÝèçêáí",
+	'ip_range_edit' => "Åðåîåñãáóßá IP C-Class",
+	'send_mail' => "ÁðïóôïëÞ åíçìåñùôéêïý E-mail",
+	'to' => "Ðñüò",
+	'subject' => "ÈÝìá",
+	'body' => "ÌÞíõìá",
+	'mailto_all' => "Äéá÷åéñéóôÞ & Óõíäéá÷åéñéóôÝò",
+	'mailto_owner' => "Äéá÷åéñéóôÞ",
+	'mailto_custom' => "¶ëëïõò",
+	'ip_ranges_allocation' => "ÊáôáíïìÞ äéåõèýíóåùí IP",
+	'ip_ranges_search' => "ÁíáæÞôçóç IP C-Classes",
+	'change' => "ÁëëáãÞ",
+	'add' => "ÐñïóèÞêç",
+	'remove' => "Áöáßñåóç",
+	'update' => "ÁíáíÝùóç",
+	'search' => "ÁíáæÞôçóç",
+	'plot' => "ÏðôéêÞ åðáöÞ",
+	'mynetwork' => "Ôï äßêôõï ôïõ êüìâïõ",
+	'new_window' => "ÍÝï ðáñÜèõñï",
+	'' => "",
+	
 
 	'db' => array(
-		'users__username' => 'ÎÎœÎ¿ÎŒÎ± ÏÏÎ®ÏÏÎ·',
-		'users__password' => 'ÎÏÎŽÎ¹ÎºÏÏ ÏÏÏÏÎ²Î±ÏÎ·Ï',
-		'users__password_c' => 'ÎÏÎ¹Î²ÎµÎ²Î±Î¯ÏÏÎ· ÎºÏÎŽÎ¹ÎºÎ¿Ï',
-		'users__surname' => 'ÎÏÏÎœÏ
-ÎŒÎ¿',
-		'users__name' => 'ÎÎœÎ¿ÎŒÎ±',
+		'users__username' => 'Œíïìá ÷ñÞóôç',
+		'users__password' => 'Êùäéêüò ðñüóâáóçò',
+		'users__password_c' => 'Åðéâåâáßùóç êùäéêïý',
+		'users__surname' => 'Åðþíõìï',
+		'users__name' => 'Œíïìá',
 		'users__email' => 'E-mail',
-		'users__phone' => 'Î€Î·Î»Î­ÏÏÎœÎ¿',
-		'users__info' => 'Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ',
-		'users__status' => 'ÎÎ³Î³ÏÎ±ÏÎ®',
-		'users__status-pending' => 'Î£Îµ Î±ÎœÎ±ÎŒÎ¿ÎœÎ®',
-		'users__status-activated' => 'ÎÎœÎµÏÎ³Î¿ÏÎ¿Î¹Î·ÎŒÎ­ÎœÎ·',
-		'users__language' => 'ÎÎ»ÏÏÏÎ±',
-		'fullname' => 'ÎÎœÎ¿ÎŒÎ±ÏÎµÏÏÎœÏ
-ÎŒÎ¿',
+		'users__phone' => 'ÔçëÝöùíï',
+		'users__info' => 'Ðëçñïöïñßåò',
+		'users__status' => 'ÅããñáöÞ',
+		'users__status-pending' => 'Óå áíáìïíÞ',
+		'users__status-activated' => 'ÅíåñãïðïéçìÝíç',
+		'fullname' => 'Ïíïìáôåðþíõìï',
 		
-		'nodes__id' => 'ÎÏÎ¹ÎžÎŒÏÏ ÎºÏÎŒÎ²Î¿Ï
-',
-		'nodes__name' => 'ÎÎœÎ¿ÎŒÎ± ÎºÏÎŒÎ²Î¿Ï
-',
-		'nodes__date_in' => 'ÎÎ·ÎŒÎ¹Î¿Ï
-ÏÎ³Î®ÎžÎ·ÎºÎµ',
-		'nodes__area_id' => 'ÎÎ®ÎŒÎ¿Ï / ÎÎ¿Î¹ÎœÏÏÎ·ÏÎ±',
-		'nodes__latitude' => 'ÎÎµÏÎ³ÏÎ±ÏÎ¹ÎºÏ ÏÎ»Î¬ÏÎ¿Ï (lat)',
-		'nodes__longitude' => 'ÎÎµÏÎ³ÏÎ±ÏÎ¹ÎºÏ ÎŒÎ®ÎºÎ¿Ï (lon)',
-		'nodes__elevation' => 'ÎÏÎ¿Ï ÎºÏÎ¹ÏÎ¯Î¿Ï
- (ÎŒ)',
-		'nodes__info' => 'Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ',
-		'nodes__name_ns' => 'Î ÏÏÎžÎµÎŒÎ± nameserver',
-		
-		'users_nodes__owner' => 'ÎÎ¹ÎºÎ±Î¯ÏÎŒÎ±',
-		'users_nodes__owner-Y' => 'ÎÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ®Ï',
-		'users_nodes__owner-N' => 'Î£Ï
-ÎœÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ®Ï',
-		'users_nodes__user_id' => 'Î£Ï
-ÎœÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ­Ï',
-		'users_nodes__node_id' => 'Î£Ï
-ÎœÎŽÎ¹Î±ÏÎµÎ¯ÏÎ¹ÏÎ· ÎºÏÎŒÎ²ÏÎœ',
-		'user_id_owner' => 'ÎÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ®Ï',
-		'node_id_owner' => 'ÎÎ¹Î±ÏÎµÎ¯ÏÎ¹ÏÎ· ÎºÏÎŒÎ²ÏÎœ',
-
-		'areas__id' => 'ÎÎ®ÎŒÎ¿Ï / ÎÎ¿Î¹ÎœÏÏÎ·ÏÎ±',
-		'areas__region_id' => 'ÎÎ¿ÎŒÎ±ÏÏÎ¯Î±',
-		'areas__name' => 'ÎÎ®ÎŒÎ¿Ï / ÎÎ¿Î¹ÎœÏÏÎ·ÏÎ±',
-		'areas__ip_start' => 'IP Î±ÏÏ',
-		'areas__ip_end' => 'IP ÎŒÎ­ÏÏÎ¹',
-		'areas__info' => 'Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ',
-
-		'regions__id' => 'ÎÎ¿ÎŒÎ±ÏÏÎ¯Î±',
-		'regions__name' => 'ÎÎ¿ÎŒÎ±ÏÏÎ¯Î±',
-		'regions__ip_start' => 'IP Î±ÏÏ',
-		'regions__ip_end' => 'IP ÎŒÎ­ÏÏÎ¹',
-		'regions__info' => 'Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ',
-
-		'ip_ranges__date_in' => 'ÎÎŒÎµÏÎ¿ÎŒÎ·ÎœÎ¯Î±',
-		'ip_ranges__ip_start' => 'ÎÏÏ',
-		'ip_ranges__ip_end' => 'ÎÎ­ÏÏÎ¹',
-		'ip_ranges__status' => 'ÎÎ±ÏÎ¬ÏÏÎ±ÏÎ·',
-		'ip_ranges__status-waiting' => 'Î ÏÎ¿Ï Î­Î»ÎµÎ³ÏÎ¿',
-		'ip_ranges__status-pending' => 'Î£Îµ Î±ÎœÎ±ÎŒÎ¿ÎœÎ®',
-		'ip_ranges__status-active' => 'ÎÎœÎµÏÎ³Ï',
-		'ip_ranges__status-rejected' => 'ÎÏÎ¿ÏÏÎ¹ÏÎžÎ­Îœ',
-		'ip_ranges__status-invalid' => 'ÎÎºÏ
-ÏÎ¿',
-		'ip_ranges__info' => 'Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ',
-		'ip_ranges__delete_req' => 'ÎÎ¯ÏÎ·ÏÎ· ÎŽÎ¹Î±Î³ÏÎ±ÏÎ®Ï',
-		'ip_ranges__delete_req-Y' => 'ÎÎÎ',
-		'ip_ranges__delete_req-N' => 'ÎÎ§Î',
+		'nodes__id' => 'Áñéèìüò êüìâïõ',
+		'nodes__name' => 'Œíïìá êüìâïõ',
+		'nodes__date_in' => 'ÄçìéïõñãÞèçêå',
+		'nodes__area_id' => 'ÄÞìïò / Êïéíüôçôá',
+		'nodes__latitude' => 'Ãåùãñáöéêü ðëÜôïò (lat)',
+		'nodes__longitude' => 'Ãåùãñáöéêü ìÞêïò (log)',
+		'nodes__elevation' => 'Õøüìåôñï',
+		'nodes__info' => 'Ðëçñïöïñßåò',
+		'nodes__name_ns' => 'Ðñüèåìá nameserver',
+
+		'users_nodes__user_id' => 'Óõíäéá÷åéñéóôÝò',
+		'user_id_owner' => 'Äéá÷åéñéóôÞò',
+
+		'areas__id' => 'ÄÞìïò / Êïéíüôçôá',
+		'areas__name' => 'ÄÞìïò / Êïéíüôçôá',
+
+		'regions__id' => 'Íïìáñ÷ßá',
+		'regions__name' => 'Íïìáñ÷ßá',
+
+		'ip_ranges__date_in' => 'Çìåñïìçíßá',
+		'ip_ranges__ip_start' => 'Áðü',
+		'ip_ranges__ip_end' => 'ÌÝ÷ñé',
+		'ip_ranges__status' => 'ÊáôÜóôáóç',
+		'ip_ranges__status-pending' => 'Óå áíáìïíÞ',
+		'ip_ranges__status-active' => 'Åíåñãü',
+		'ip_ranges__status-rejected' => 'ÁðïññéöèÝí',
+		'ip_ranges__status-invalid' => '¶êõñï',
+		'ip_ranges__info' => 'Ðëçñïöïñßåò',
+		'ip_ranges__delete_req' => 'Áßôçóç äéáãñáöÞò',
+		'ip_ranges__delete_req-Y' => 'ÍÁÉ',
+		'ip_ranges__delete_req-N' => 'Ï×É',
 		'ip_range' => 'C Class',
-		'ip' => 'ÎÎ¹ÎµÏÎžÏ
-ÎœÏÎ· IP',
-
-		'dns_zones__date_in' => 'ÎÎŒÎµÏÎ¿ÎŒÎ·ÎœÎ¯Î±',
-		'dns_zones__name' => 'ÎÎœÎ¿ÎŒÎ± Î¶ÏÎœÎ·Ï',
-		'dns_zones__type' => 'Î€ÏÏÎ¿Ï Î¶ÏÎœÎ·Ï',
+		'ip' => 'Äéåýèõíóç IP',
+
+		'dns_zones__date_in' => 'Çìåñïìçíßá',
+		'dns_zones__name' => 'Œíïìá æþíçò',
+		'dns_zones__type' => 'Ôýðïò æþíçò',
 		'dns_zones__type-forward' => 'Forward',
 		'dns_zones__type-reverse' => 'Reverse',
-		'dns_zones__status' => 'ÎÎ±ÏÎ¬ÏÏÎ±ÏÎ·',
-		'dns_zones__status-waiting' => 'Î ÏÎ¿Ï Î­Î»ÎµÎ³ÏÎ¿',
-		'dns_zones__status-pending' => 'Î£Îµ Î±ÎœÎ±ÎŒÎ¿ÎœÎ®',
-		'dns_zones__status-active' => 'ÎÎœÎµÏÎ³Ï',
-		'dns_zones__status-rejected' => 'ÎÏÎ¿ÏÏÎ¹ÏÎžÎ­Îœ',
-		'dns_zones__status-invalid' => 'ÎÎºÏ
-ÏÎ¿',
-		'dns_zones__info' => 'Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ',
-		'dns_zones__delete_req' => 'ÎÎ¯ÏÎ·ÏÎ· ÎŽÎ¹Î±Î³ÏÎ±ÏÎ®Ï',
-		'dns_zones__delete_req-Y' => 'ÎÎÎ',
-		'dns_zones__delete_req-N' => 'ÎÎ§Î',
-
-		'schema' => "Schema",
-
-		'dns_zones_nameservers__nameserver_id' => 'Î¥ÏÎµÏÎžÏ
-ÎœÎ¿Î¹ Nameservers (NS)',
-
-		'dns_nameservers__date_in' => 'ÎÎŒÎµÏÎ¿ÎŒÎ·ÎœÎ¯Î±',
-		'dns_nameservers__name' => 'ÎÎœÎ¿ÎŒÎ± Nameserver',
-		'dns_nameservers__delete_req' => 'ÎÎ¯ÏÎ·ÏÎ· ÎŽÎ¹Î±Î³ÏÎ±ÏÎ®Ï',
-		'dns_nameservers__delete_req-Y' => 'ÎÎÎ',
-		'dns_nameservers__delete_req-N' => 'ÎÎ§Î',
-		'dns_nameservers__ip' => 'ÎÎ¹ÎµÏÎžÏ
-ÎœÏÎ· IP',
-		'dns_nameservers__status' => 'ÎÎ±ÏÎ¬ÏÏÎ±ÏÎ·',
-		'dns_nameservers__status-waiting' => 'Î ÏÎ¿Ï Î­Î»ÎµÎ³ÏÎ¿',
-		'dns_nameservers__status-pending' => 'Î£Îµ Î±ÎœÎ±ÎŒÎ¿ÎœÎ®',
-		'dns_nameservers__status-active' => 'ÎÎœÎµÏÎ³Ï',
-		'dns_nameservers__status-rejected' => 'ÎÏÎ¿ÏÏÎ¹ÏÎžÎ­Îœ',
-		'dns_nameservers__status-invalid' => 'ÎÎºÏ
-ÏÎ¿',
-
-		'links__date_in' => 'ÎÎ·ÎŒÎ¹Î¿Ï
-ÏÎ³Î®ÎžÎ·ÎºÎµ',
-		'links__peer_node_id' => 'ÎÏÎŒÎ²Î¿Ï ÎŽÎ¹Î±ÏÏÎœÎŽÎµÏÎ·Ï',
+		'dns_zones__status' => 'ÊáôÜóôáóç',
+		'dns_zones__status-pending' => 'Óå áíáìïíÞ',
+		'dns_zones__status-active' => 'Åíåñãü',
+		'dns_zones__status-rejected' => 'ÁðïññéöèÝí',
+		'dns_zones__status-invalid' => '¶êõñï',
+		'dns_zones__info' => 'Ðëçñïöïñßåò',
+		'dns_zones__delete_req' => 'Áßôçóç äéáãñáöÞò',
+		'dns_zones__delete_req-Y' => 'ÍÁÉ',
+		'dns_zones__delete_req-N' => 'Ï×É',
+
+		'dns_zones_nameservers__nameserver_id' => 'Õðåýèõíïé Nameservers (NS)',
+
+		'dns_nameservers__date_in' => 'Çìåñïìçíßá',
+		'dns_nameservers__name' => 'Œíïìá Nameserver',
+		'dns_nameservers__delete_req' => 'Áßôçóç äéáãñáöÞò',
+		'dns_nameservers__delete_req-Y' => 'ÍÁÉ',
+		'dns_nameservers__delete_req-N' => 'Ï×É',
+		'dns_nameservers__ip' => 'Äéåýèõíóç IP',
+		'dns_nameservers__status' => 'ÊáôÜóôáóç',
+		'dns_nameservers__status-pending' => 'Óå áíáìïíÞ',
+		'dns_nameservers__status-active' => 'Åíåñãü',
+		'dns_nameservers__status-rejected' => 'ÁðïññéöèÝí',
+		'dns_nameservers__status-invalid' => '¶êõñï',
+
+		'links__date_in' => 'ÄçìéïõñãÞèçêå',
+		'links__peer_node_id' => 'Êüìâïò äéáóýíäåóçò',
 		'links__peer_ap_id' => 'Access point',
-		'links__type' => 'Î€ÏÏÎ¿Ï ÎŽÎ¹Î±ÏÏÎœÎŽÎµÏÎ·Ï',
+		'links__type' => 'Ôýðïò äéáóýíäåóçò',
 		'links__type-p2p' => 'Backbone',
 		'links__type-ap' => 'Access Point',
-		'links__type-client' => 'Î ÎµÎ»Î¬ÏÎ·Ï',
+		'links__type-client' => 'ÐåëÜôçò',
 		'links__ssid' => 'SSID',
-		'links__protocol' => 'Î ÏÏÏÏÎºÎ¿Î»Î»Î¿',
-		'links__protocol-other' => 'ÎÎ»Î»Î¿',
-		'links__channel' => 'ÎÎ±ÎœÎ¬Î»Î¹ ÎµÏÎ¹ÎºÎ¿Î¹ÎœÏÎœÎ¯Î±Ï',
-		'links__status' => 'ÎÎ±ÏÎ¬ÏÏÎ±ÏÎ·',
-		'links__status-active' => 'ÎÎœÎµÏÎ³Ï',
-		'links__status-inactive' => 'ÎÎœÎµÎœÎµÏÎ³Ï',
-		'links__equipment' => 'ÎÎŸÎ¿ÏÎ»Î¹ÏÎŒÏÏ',
-		'links__info' => 'Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ',
-		'peer' => 'ÎÎ¹Î±ÏÏÎœÎŽÎµÏÎ·',
-		'total_active_peers' => 'ÎÎœÎµÏÎ³Î­Ï ÎŽÎ¹Î±ÏÏ
-ÎœÎŽÎ­ÏÎµÎ¹Ï',
-		'total_active_clients' => 'ÎÎœÎµÏÎ³Î¿Î¯ ÏÎµÎ»Î¬ÏÎµÏ',
-		'has_ap' => 'ÎÎ¹Î±ÎžÎ­ÏÎµÎ¹ Access Point',
-
-		'subnets__ip_start' => 'ÎÏÏ',
-		'subnets__ip_end' => 'ÎÎ­ÏÏÎ¹',
-		'subnets__type' => 'Î§ÏÎ®ÏÎ· Ï
-ÏÎ¿ÎŽÎ¹ÎºÏÏÎ¿Ï
-',
-		'subnets__type-local' => 'Î€Î¿ÏÎ¹ÎºÏ ÎŽÎ¯ÎºÏÏ
-Î¿',
-		'subnets__type-link' => 'ÎÎ¹Î±ÏÏÎœÎŽÎµÏÎ·',
-		'subnets__type-client' => 'Î ÎµÎ»Î¬ÏÎ· Access Point',
-		'subnets__link_id' => 'ÎÎ¹Î±ÏÏÎœÎŽÎµÏÎ·',
-		'subnets__client_node_id' => 'Î ÎµÎ»Î¬ÏÎ·Ï',
-		'subnet' => 'Î¥ÏÎ¿ÎŽÎ¯ÎºÏÏ
-Î¿',
-
-		'ip_addresses__date_in' => 'Î ÏÎ¿ÏÏÎ­ÎžÎ·ÎºÎµ',
+		'links__protocol' => 'Ðñùôüêïëëï',
+		'links__protocol-other' => '¶ëëï',
+		'links__channel' => 'ÊáíÜëé åðéêïéíùíßáò',
+		'links__status' => 'ÊáôÜóôáóç',
+		'links__status-active' => 'Åíåñãü',
+		'links__status-inactive' => 'Áíåíåñãü',
+		'links__equipment' => 'Åîïðëéóìüò',
+		'links__info' => 'Ðëçñïöïñßåò',
+		'peer' => 'Äéáóýíäåóç',
+
+		'subnets__ip_start' => 'Áðü',
+		'subnets__ip_end' => 'ÌÝ÷ñé',
+		'subnets__type' => '×ñÞóç õðïäéêôýïõ',
+		'subnets__type-local' => 'Ôïðéêü äßêôõï',
+		'subnets__type-link' => 'Äéáóýíäåóç',
+		'subnets__type-client' => 'ÐåëÜôç Access Point',
+		'subnets__link_id' => 'Äéáóýíäåóç',
+		'subnets__client_node_id' => 'ÐåëÜôçò',
+		'subnet' => 'Õðïäßêôõï',
+
+		'ip_addresses__date_in' => 'ÐñïóôÝèçêå',
 		'ip_addresses__hostname' => 'Hostname',
-		'ip_addresses__ip' => 'ÎÎ¹ÎµÏÎžÏ
-ÎœÏÎ· IP',
-		'ip_addresses__mac' => 'ÎÎ¹ÎµÏÎžÏ
-ÎœÏÎ· MAC',
-		'ip_addresses__type' => 'Î€ÏÏÎ¿Ï ÎŒÎ·ÏÎ±ÎœÎ®ÎŒÎ±ÏÎ¿Ï',
-		'ip_addresses__type-router' => 'ÎÏÎ¿ÎŒÎ¿Î»Î¿Î³Î·ÏÎ®Ï',
-		'ip_addresses__type-server' => 'ÎÎ¹Î±ÎºÎ¿ÎŒÎ¹ÏÏÎ®Ï',
-		'ip_addresses__type-pc' => 'Î / Î¥',
-		'ip_addresses__type-wireless-bridge' => 'ÎÏÏÏÎŒÎ±ÏÎ· ÏÏ
-ÏÎºÎµÏ
-Î®',
-		'ip_addresses__type-voip' => 'Î£Ï
-ÏÎºÎµÏ
-Î® VoIP',
-		'ip_addresses__type-camera' => 'ÎÎ¬ÎŒÎµÏÎ±',
-		'ip_addresses__type-other' => 'ÎÎ»Î»Î¿',
-		'ip_addresses__always_on' => 'Î£Ï
-ÎœÎµÏÎ® Î»ÎµÎ¹ÏÎ¿Ï
-ÏÎ³Î¯Î± (24/7)',
-		'ip_addresses__always_on-Y' => 'ÎÎÎ',
-		'ip_addresses__always_on-N' => 'ÎÎ§Î',
-		'ip_addresses__info' => 'Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ',
-	
-		'services__title' => 'ÎÎ±ÏÎ·Î³Î¿ÏÎ¯Î±',
-		'services__protocol' => 'Î ÏÏÏÏÎºÎ¿Î»Î»Î¿',
-		'services__protocol-tcp' => 'TCP',
-		'services__protocol-udp' => 'UDP',
-		'services__port' => 'Î ÏÏÏÎ±',
-
-		'nodes_services__node_id' => 'ÎÏÎŒÎ²Î¿Ï',
-		'nodes_services__service_id' => 'ÎÎ±ÏÎ·Î³Î¿ÏÎ¯Î±',
-		'nodes_services__date_in' => 'Î ÏÎ¿ÏÏÎ­ÎžÎ·ÎºÎµ',
-		'nodes_services__ip_id' => 'ÎÎ¹ÎµÏÎžÏ
-ÎœÏÎ· IP',
-		'nodes_services__url' => 'URL',
-		'nodes_services__status' => 'ÎÎ±ÏÎ¬ÏÏÎ±ÏÎ·',
-		'nodes_services__status-active' => 'ÎÎœÎµÏÎ³Î®',
-		'nodes_services__status-inactive' => 'ÎÎœÎµÎœÎµÏÎ³Î®',
-		'nodes_services__info' => 'Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ',
-		'nodes_services__protocol' => 'Î ÏÏÏÏÎºÎ¿Î»Î»Î¿',
-		'nodes_services__protocol-tcp' => 'TCP',
-		'nodes_services__protocol-udp' => 'UDP',
-		'nodes_services__port' => 'Î ÏÏÏÎ±',
+		'ip_addresses__ip' => 'Äéåýèõíóç IP',
+		'ip_addresses__mac' => 'Äéåýèõíóç MAC',
+		'ip_addresses__type' => 'Ôýðïò ìç÷áíÞìáôïò',
+		'ip_addresses__type-router' => 'ÄñïìïëïãçôÞò',
+		'ip_addresses__type-server' => 'ÄéáêïìéóôÞò',
+		'ip_addresses__type-pc' => 'Ç / Õ',
+		'ip_addresses__type-wireless-bridge' => 'Áóýñìáôç óõóêåõÞ',
+		'ip_addresses__type-voip' => 'ÓõóêåõÞ VoIP',
+		'ip_addresses__type-camera' => 'ÊÜìåñá',
+		'ip_addresses__type-other' => '¶ëëï',
+		'ip_addresses__always_on' => 'Óõíå÷Þ ëåéôïõñãßá (24/7)',
+		'ip_addresses__always_on-Y' => 'ÍÁÉ',
+		'ip_addresses__always_on-N' => 'Ï×É',
+		'ip_addresses__info' => 'Ðëçñïöïñßåò',
+
+		'photos__date_in' => 'Çìåñïìçíßá',
+		'photos__view_point' => 'Êáôåýèõíóç',
+		'photos__view_point-N' => 'Âüñåéá',
+		'photos__view_point-NE' => 'ÂïñåéïáíáôïëéêÜ',
+		'photos__view_point-E' => 'ÁíáôïëéêÜ',
+		'photos__view_point-SE' => 'ÍïôéïáíáôïëéêÜ',
+		'photos__view_point-S' => 'Íüôéá',
+		'photos__view_point-SW' => 'ÍïôéïäõôéêÜ',
+		'photos__view_point-W' => 'ÄõôéêÜ',
+		'photos__view_point-NW' => 'ÂïñåéïäõôéêÜ',
+		'photos__view_point-PANORAMIC' => 'ÐáíïñáìéêÞ',
+		'photos__info' => 'Ðëçñïöïñßåò',
+		'photo' => 'Öùôïãñáößá',
+
+		'rights__type' => 'Äéêáéþìáôá',
+		'rights__type-blocked' => 'ÌðëïêáñéóìÝíïò',
+		'rights__type-admin' => 'Äéá÷åéñéóôÞò',
+		'rights__type-hostmaster' => 'Hostmaster',
 		
-		'photos__date_in' => 'ÎÎŒÎµÏÎ¿ÎŒÎ·ÎœÎ¯Î±',
-		'photos__view_point' => 'ÎÎ±ÏÎµÏÎžÏ
-ÎœÏÎ·',
-		'photos__view_point-N' => 'ÎÏÏÎµÎ¹Î±',
-		'photos__view_point-NE' => 'ÎÎ¿ÏÎµÎ¹Î¿Î±ÎœÎ±ÏÎ¿Î»Î¹ÎºÎ¬',
-		'photos__view_point-E' => 'ÎÎœÎ±ÏÎ¿Î»Î¹ÎºÎ¬',
-		'photos__view_point-SE' => 'ÎÎ¿ÏÎ¹Î¿Î±ÎœÎ±ÏÎ¿Î»Î¹ÎºÎ¬',
-		'photos__view_point-S' => 'ÎÏÏÎ¹Î±',
-		'photos__view_point-SW' => 'ÎÎ¿ÏÎ¹Î¿ÎŽÏ
-ÏÎ¹ÎºÎ¬',
-		'photos__view_point-W' => 'ÎÏ
-ÏÎ¹ÎºÎ¬',
-		'photos__view_point-NW' => 'ÎÎ¿ÏÎµÎ¹Î¿ÎŽÏ
-ÏÎ¹ÎºÎ¬',
-		'photos__view_point-PANORAMIC' => 'Î Î±ÎœÎ¿ÏÎ±ÎŒÎ¹ÎºÎ®',
-		'photos__info' => 'Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ',
-		'photo' => 'ÎŠÏÏÎ¿Î³ÏÎ±ÏÎ¯Î±',
-
-		'rights__type' => 'ÎÎ¹ÎºÎ±Î¹ÏÎŒÎ±ÏÎ±',
-		'rights__type-blocked' => 'ÎÏÎ»Î¿ÎºÎ±ÏÎ¹ÏÎŒÎ­ÎœÎ¿Ï',
-		'rights__type-admin' => 'ÎÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ®Ï',
-		'rights__type-hostmaster' => 'Hostmaster'
+		'' => '',
+		'' => '',
+		'' => '',
+		'' => ''
 	),
 	
@@ -459,236 +265,92 @@
 		'info' => array(
 			'insert_success' => array(
-				'title' => "ÎÎ¹ÏÎ±Î³ÏÎ³Î®",
-				'body' => "Î ÎµÎ¹ÏÎ±Î³ÏÎ³Î® Î¿Î»Î¿ÎºÎ»Î·ÏÏÎžÎ·ÎºÎµ ÎµÏÎ¹ÏÏ
-ÏÏÏ."
+				'title' => "ÅéóáãùãÞ",
+				'body' => "Ç åéóáãùãÞ ïëïêëçñþèçêå åðéôõ÷þò."
 			),
 			'edit_success' => array(
-				'title' => "ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î±",
-				'body' => "Î ÎµÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± Î¿Î»Î¿ÎºÎ»Î·ÏÏÎžÎ·ÎºÎµ ÎµÏÎ¹ÏÏ
-ÏÏÏ."
+				'title' => "Åðåîåñãáóßá",
+				'body' => "Ç åðåîåñãáóßá ïëïêëçñþèçêå åðéôõ÷þò."
 			),
 			'delete_success' => array(
-				'title' => "ÎÎ¹Î±Î³ÏÎ±ÏÎ®",
-				'body' => "Î ÎŽÎ¹Î±Î³ÏÎ±ÏÎ® Î¿Î»Î¿ÎºÎ»Î·ÏÏÎžÎ·ÎºÎµ ÎµÏÎ¹ÏÏ
-ÏÏÏ."
+				'title' => "ÄéáãñáöÞ",
+				'body' => "Ç äéáãñáöÞ ïëïêëçñþèçêå åðéôõ÷þò."
 			),
 			'update_success' => array(
-				'title' => "ÎÎœÎ·ÎŒÎ­ÏÏÏÎ· ÏÏÎ¿Î¹ÏÎµÎ¯ÏÎœ",
-				'body' => "Î ÎµÎœÎ·ÎŒÎ­ÏÏÏÎ· ÏÏÎœ ÏÏÎ¿Î¹ÏÎµÎ¯ÏÎœ Î¿Î»Î¿ÎºÎ»Î·ÏÏÎžÎ·ÎºÎµ ÎµÏÎ¹ÏÏ
-ÏÏÏ."
+				'title' => "ÅíçìÝñùóç óôïé÷åßùí",
+				'body' => "Ç åíçìÝñùóç ôùí óôïé÷åßùí ïëïêëçñþèçêå åðéôõ÷þò."
 			),
 			'request_range_success' => array(
-				'title' => "ÎÎ¯ÏÎ·ÏÎ· IP C-Class",
-				'body' => "Î Î±Î¯ÏÎ·ÏÎ· ÏÎ±Ï Î³Î¹Î± IP C-Class Î­Î³Î¹ÎœÎµ ÎŽÎµÎºÏÎ®. Î£ÏÎœÏÎ¿ÎŒÎ±, Î· Î¿ÎŒÎ¬ÎŽÎ± Hostmaster ÎžÎ± Î±ÏÎ±ÎœÏÎ®ÏÎµÎ¹ ÏÏÎ·Îœ Î±Î¯ÏÎ·ÏÎ® ÏÎ±Ï ÏÏÎ¿ e-mail ÏÎ¿Ï
- Î­ÏÎµÏÎµ ÎŽÎ·Î»ÏÏÎµÎ¹. ÎÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŽÎµÎ¯ÏÎµ ÏÎ¿ IP C-Class ÎºÎ±ÎžÏÏ ÎºÎ±Î¹ ÏÎ·Îœ ÎºÎ±ÏÎ¬ÏÏÎ±ÏÎ® ÏÎ¿Ï
- ÏÏÎ· ÏÎµÎ»Î¯ÎŽÎ± ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï."
+				'title' => "Áßôçóç IP C-Class",
+				'body' => "Ç áßôçóç óáò ãéá IP C-Class Ýãéíå äåêôÞ. Óýíôïìá ç ïìÜäá hostmaster èá áðáíôÞóåé óôçí áßôçóÞ óáò óôï e-mail ðïõ Ý÷åôå äçëþóåé. Ìðïñåßôáé íá äåßôå ôï IP C-Class êáèþò êáé ôçí êáôÜóôáóÞ ôïõ óôç óåëßäá ôïõ êüìâïõ óáò."
 			),
 			'request_dnszone_success' => array(
-				'title' => "ÎÎ¯ÏÎ·ÏÎ· Î¶ÏÎœÎ·Ï DNS",
-				'body' => "Î Î±Î¯ÏÎ·ÏÎ· ÏÎ±Ï Î³Î¹Î± Î¶ÏÎœÎ· DNS Î­Î³Î¹ÎœÎµ ÎŽÎµÎºÏÎ®. Î£ÏÎœÏÎ¿ÎŒÎ±, Î· Î¿ÎŒÎ¬ÎŽÎ± Hostmaster ÎžÎ± Î±ÏÎ±ÎœÏÎ®ÏÎµÎ¹ ÏÏÎ·Îœ Î±Î¯ÏÎ·ÏÎ® ÏÎ±Ï ÏÏÎ¿ e-mail ÏÎ¿Ï
- Î­ÏÎµÏÎµ ÎŽÎ·Î»ÏÏÎµÎ¹. ÎÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŽÎµÎ¯ÏÎµ ÏÎ·Îœ ÎºÎ±ÏÎ¬ÏÏÎ±ÏÎ· ÏÎ·Ï Î¶ÏÎœÎ·Ï DNS ÏÏÎ· ÏÎµÎ»Î¯ÎŽÎ± ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï."
+				'title' => "Áßôçóç DNS zone",
+				'body' => "Ç áßôçóç óáò ãéá DNS zone Ýãéíå äåêôÞ. Óýíôïìá ç ïìÜäá hostmaster èá áðáíôÞóåé óôçí áßôçóÞ óáò óôï e-mail ðïõ Ý÷åôå äçëþóåé. Ìðïñåßôáé íá äåßôå ôçí êáôÜóôáóÞ ôïõ DNS zone óôç óåëßäá ôïõ êüìâïõ óáò."
 			),
 			'request_dnsnameserver_success' => array(
-				'title' => "ÎÎ¯ÏÎ·ÏÎ· DNS nameserver",
-				'body' => "Î Î±Î¯ÏÎ·ÏÎ· ÏÎ±Ï Î³Î¹Î± DNS nameserver Î­Î³Î¹ÎœÎµ ÎŽÎµÎºÏÎ®. Î£ÏÎœÏÎ¿ÎŒÎ±, Î· Î¿ÎŒÎ¬ÎŽÎ± Hostmaster ÎžÎ± ÎµÎ»Î­Î³ÎŸÎµÎ¹ ÏÎ·Îœ Î±Î¯ÏÎ·ÏÎ® ÏÎ±Ï. ÎÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŽÎµÎ¯ÏÎµ ÏÎ·Îœ ÎºÎ±ÏÎ¬ÏÏÎ±ÏÎ· ÏÎ¿Ï
- DNS nameserver ÏÏÎ· ÏÎµÎ»Î¯ÎŽÎ± ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï."
+				'title' => "Áßôçóç DNS nameserver",
+				'body' => "Ç áßôçóç óáò ãéá DNS nameserver Ýãéíå äåêôÞ. Óýíôïìá ç ïìÜäá hostmaster èá åëÝãîåé ôçí áßôçóÞ óáò. Ìðïñåßôáé íá äåßôå ôçí êáôÜóôáóÞ ôïõ DNS nameserver óôç óåëßäá ôïõ êüìâïõ óáò."
 			),
 			'signup_success' => array(
-				'title' => "Î ÎµÎ³Î³ÏÎ±ÏÎ® ÏÎ±Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏÎžÎ·ÎºÎµ",
-				'body' => "Î ÎµÎ³Î³ÏÎ±ÏÎ® ÏÎ±Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏÎžÎ·ÎºÎµ ÎŒÎµ ÎµÏÎ¹ÏÏ
-ÏÎ¯Î±. ÎÎœÎ±ÏÏÎ­ÎŸÏÎµ ÏÏÎ¿ e-mail ÏÎ±Ï, Î³Î¹Î± ÏÎ¿ URL ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ·Ï ÏÎ¿Ï
- Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï ÏÎ±Ï."
+				'title' => "Ç åããñáöÞ óáò ïëïêëþèçêå",
+				'body' => "Ç åããñáöÞ óáò ïëïêëþèçêå ìå åðéôõ÷ßá. ÁíáôñÝîôå óôï e-mail óáò ãéá ôï URL åíåñãïðïßçóåéò ôïõ ëïãáñéáóìïý óáò."
 			),
 			'login_success' => array(
-				'title' => "ÎÏÎ¹ÏÏ
-ÏÎ®Ï ÏÏÎœÎŽÎµÏÎ·",
-				'body' => "Î€Î± ÏÏÎ¿Î¹ÏÎµÎ¯Î± ÏÎ¿Ï
- ÎŽÏÏÎ±ÏÎµ ÎµÏÎ¹Î²ÎµÎ²Î±Î¹ÏÎžÎ·ÎºÎ±Îœ."
-			),
-			'restore_success' => array(
-				'title' => "Î Î±ÎœÎ¬ÎºÏÎ·ÏÎ· ÎºÏÎŽÎ¹ÎºÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏÎžÎ·ÎºÎµ",
-				'body' => "Î Î±ÎœÎ¬ÎºÏÎ·ÏÎ· ÏÎ¿Ï
- ÎºÏÎŽÎ¹ÎºÎ¿Ï ÏÎ±Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏÎžÎ·ÎºÎµ ÎŒÎµ ÎµÏÎ¹ÏÏ
-ÏÎ¯Î±. ÎÎœÎ±ÏÏÎ­ÎŸÏÎµ ÏÏÎ¿ e-mail ÏÎ±Ï, Î³Î¹Î± ÏÎ¿ URL Î±ÎœÎ¬ÎºÏÎ·ÏÎ·Ï ÎºÏÎŽÎ¹ÎºÎ¿Ï ÏÎ¿Ï
- Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï ÏÎ±Ï."
-			),
-			'password_restored' => array(
-				'title' => "ÎÎ»Î»Î±Î³Î® ÎºÏÎŽÎ¹ÎºÎ¿Ï",
-				'body' => "Î ÎºÏÎŽÎ¹ÎºÏÏ ÏÏÏÏÎ²Î±ÏÎ·Ï Î±Î»Î»Î¬ÏÏÎ·ÎºÎµ ÎŒÎµ ÎµÏÎ¹ÏÏ
-ÏÎ¯Î±. ÎÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÏÏÎ¿ÏÏÏÎ®ÏÎµÏÎµ ÏÎµ ÏÏÎœÎŽÎµÏÎ· ÎŒÎµ ÏÎ¿ ÎœÎ­Î¿ ÏÎ±Ï ÎºÏÎŽÎ¹ÎºÏ ÏÏÏÏÎ²Î±ÏÎ·Ï."
-			),	
+				'title' => "Åðéôõ÷Þò óýíäåóç",
+				'body' => "Ôá óôïé÷åßá ðïõ äþóáôå åðéâåâáéþèçêáí."
+			),
 			'logout_success' => array(
-				'title' => "ÎÏÎ¿ÏÏÎœÎŽÎµÏÎ·",
-				'body' => "ÎÎ³Î¹ÎœÎµ Î±ÏÎ¿ÏÏÎœÎŽÎµÏÎ· Î±ÏÏ ÏÎ¿ ÏÏÏÏÎ·ÎŒÎ±."
+				'title' => "Áðïóýíäåóç",
+				'body' => "žãéíå áðïóýíäåóç áðü ôï óýóôçìá."
 			),
 			'no_privilege' => array(
-				'title' => "Î§ÏÏÎ¯Ï ÎŽÎ¹ÎºÎ±Î¯ÏÎŒÎ± ÏÏÏÏÎ²Î±ÏÎ·Ï",
-				'body' => "ÎÎµÎœ Î­ÏÎµÏÎµ ÎŽÎ¹ÎºÎ±Î¯ÏÎŒÎ± ÏÏÏÏÎ²Î±ÏÎ·Ï ÏÎµ Î±Ï
-ÏÎ® ÏÎ· ÏÎµÎ»Î¯ÎŽÎ±."
+				'title' => "×ùñßò äéêáßùìá ðñüóâáóçò",
+				'body' => "Äåí Ý÷åôå äéêáßùìá ðñüóâáóçò óå áõôÞ ôç óåëßäá."
 			),
 			'activation_required' => array(
-				'title' => "ÎÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï",
-				'body' => "ÎÎµÎœ Î­ÏÎµÎ¹ Î³Î¯ÎœÎµÎ¹ ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· ÏÎ¿Ï
- Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï ÏÎ±Ï. ÎÎœÎ±ÏÏÎ­ÎŸÏÎµ ÏÏÎ¿ e-mail ÏÎ¿Ï
- ÎŽÎ·Î»ÏÏÎ±ÏÎµ ÎºÎ±ÏÎ¬ ÏÎ·Îœ ÎµÎ³Î³ÏÎ±ÏÎ® ÏÎ±Ï, Î³Î¹Î± ÏÎ¿ URL ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ·Ï."
+				'title' => "Åíåñãïðïßçóç ëïãáñéáóìïý",
+				'body' => "Äåí Ý÷åé ãßíåé åíåñãïðïßçóç ôïõ ëïãáñéáóìïý óáò. ÁíáôñÝîôå óôï e-mail ðïõ äçëþóáôå êáôÜ ôçí åããñáöÞ óáò ãéá ôï URL åíåñãïðïßçóçò."
 			),
 			'activation_success' => array(
-				'title' => "ÎÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï",
-				'body' => "Î ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· ÏÎ¿Ï
- Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï ÏÎ±Ï Î­Î³Î¹ÎœÎµ ÎŒÎµ ÎµÏÎ¹ÏÏ
-ÏÎ¯Î±. ÎÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÏÏÎ¿ÏÏÏÎ®ÏÎµÏÎµ ÏÎµ ÏÏÎœÎŽÎµÏÎ· ÎŒÎµ ÏÎ¿ ÏÏÏÏÎ·ÎŒÎ±."
+				'title' => "Åíåñãïðïßçóç ëïãáñéáóìïý",
+				'body' => "Ç åíåñãïðïßçóç ôïõ ëïãáñéáóìïý óáò Ýãéíå ìå åðéôõ÷ßá. Ìðïñåßôå íá ðñï÷ùñÞóåôå óå óýíäåóç ìå ôï óýóôçìá."
 			),
 			'activation_failed' => array(
-				'title' => "ÎÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï",
-				'body' => "Î¥ÏÎ®ÏÎŸÎµ ÏÏÏÎ²Î»Î·ÎŒÎ± ÏÏÎ·Îœ ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· ÏÎ¿Ï
- Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï."
-			),
-			'message_sent' => array(
-				'title' => "Î€Î¿ ÎŒÎ®ÎœÏ
-ÎŒÎ± ÎµÏÏÎ¬Î»Î·",
-				'body' => "Î€Î¿ ÎŒÎ®ÎœÏ
-ÎŒÎ± ÎµÏÏÎ¬Î»Î· ÎŒÎµ ÎµÏÎ¹ÏÏ
-ÏÎ¯Î±. Î Î¹ÎžÎ±ÎœÎ® Î±ÏÎ¬ÎœÏÎ·ÏÎ· ÏÏÎ¿ ÎŒÎ®ÎœÏ
-ÎŒÎ¬ ÏÎ±Ï ÎžÎ± Î±ÏÎ¿ÏÏÎ±Î»Î»ÎµÎ¯ Î±ÏÏ ÏÎ¿Ï
-Ï ÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ­Ï ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
-, ÏÏÎ¿Îœ Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÏ e-mail ÏÎ¿Ï
- Î­ÏÎµÏÎµ ÎŽÎ·Î»ÏÏÎµÎ¹ ÏÏÎ¿ ÏÏÎ¿ÏÎ¯Î» ÏÎ±Ï."
-			),
+				'title' => "Åíåñãïðïßçóç ëïãáñéáóìïý",
+				'body' => "ÕðÞñîå ðñüâëçìá óôçí åíåñãïðïßçóç ôïõ ëïãáñéáóìïý."
+			)
 		),
 		'error' => array(
-			'database_error' => array(
-				'title' => "Î£ÏÎ¬Î»ÎŒÎ± ÏÏÎ· Î²Î¬ÏÎ· ÎŽÎµÎŽÎ¿ÎŒÎ­ÎœÏÎœ",
-				'body' => "Î¥ÏÎ®ÏÎŸÎµ ÏÏÎ¬Î»ÎŒÎ± ÏÏÎ·Îœ Î²Î¬ÏÎ· ÎŽÎµÎŽÎ¿ÎŒÎ­ÎœÏÎœ ÎºÎ±ÏÎ¬ ÏÎ·Îœ ÎµÎºÏÎ­Î»ÎµÏÎ· ÏÎ·Ï ÎµÎœÎ­ÏÎ³ÎµÎ¹Î¬Ï ÏÎ±Ï. ÎÏÎ¹ÎºÎ¿Î¹ÎœÏÎœÎ®ÏÏÎµ ÎŒÎµ ÏÎ¿Îœ ÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ® ÏÎ¿Ï
- ÏÏ
-ÏÏÎ®ÎŒÎ±ÏÎ¿Ï Î³Î¹Î± ÏÎ·Îœ Î±ÎœÏÎ¹ÎŒÎµÏÏÏÎ¹ÏÎ· ÏÎ¿Ï
- ÏÏÎ¿Î²Î»Î®ÎŒÎ±ÏÎ¿Ï."
-			),
-			'not_logged_in' => array(
-				'title' => "ÎÏÎ±Î¹ÏÎµÎ¯ÏÎ±Î¹ ÏÏÎœÎŽÎµÏÎ·",
-				'body' => "ÎÎ¹Î± ÎœÎ± ÏÏÎ±Î³ÎŒÎ±ÏÎ¿ÏÎ¿Î¯Î·ÏÎµ Î±Ï
-ÏÎ® ÏÎ· Î»ÎµÎ¹ÏÎ¿Ï
-ÏÎ³Î¯Î± ÏÏÎ­ÏÎµÎ¹ ÎœÎ± ÎµÎ¯ÏÏÎµ ÏÏ
-ÎœÎŽÎµÎŽÎµÎŒÎ­ÎœÎ¿Ï ÏÏÎ¿ ÏÏÏÏÎ·ÎŒÎ±. ÎÎœ ÎŽÎµÎœ Î­ÏÎµÏÎµ ÎºÎ¬ÏÎ¿Î¹Î¿ Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÏ, ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŽÎ·ÎŒÎ¹Î¿Ï
-ÏÎ³Î®ÏÎµÏÎµ Î­ÎœÎ±Îœ ÏÏÎ·Îœ ÎµÎœÏÏÎ·ÏÎ± ÎµÎ³Î³ÏÎ±ÏÎ®."
-			),
 			'login_failed' => array(
-				'title' => "ÎÎœÎµÏÎ¹ÏÏ
-ÏÎ®Ï ÏÏÎœÎŽÎµÏÎ·",
-				'body' => "Î€Î± ÏÏÎ¿Î¹ÏÎµÎ¯Î± ÏÎ¿Ï
- ÎŽÏÏÎ±ÏÎµ ÎŽÎµÎœ ÎµÏÎ¹Î²ÎµÎ²Î±Î¹ÏÎžÎ·ÎºÎ±Îœ."
+				'title' => "Áíåðéôõ÷Þò óýíäåóç",
+				'body' => "Ôá óôïé÷åßá ðïõ äþóáôå äåí åðéâåâáéþèçêáí."
 			),
 			'password_not_match' => array(
-				'title' => "Î£ÏÎ¬Î»ÎŒÎ± ÎºÏÎŽÎ¹ÎºÎ¿Ï",
-				'body' => "Î ÎºÏÎŽÎ¹ÎºÏÏ ÏÎ¿Ï
- ÎµÏÎ¹Î»Î­ÎŸÎ±ÏÎµ ÎŽÎµÎœ ÎµÎ¯ÎœÎ±Î¹ Î¯ÎŽÎ¹Î¿Ï ÎºÎ±Î¹ ÏÏÎ± ÎŽÏÎ¿ ÏÎµÎŽÎ¯Î±."
+				'title' => "ÓöÜëìá êùäéêïý",
+				'body' => "Ï êùäéêüò ðïõ åðéëÝîáôå äåí åßíáé ßäéïò óôá äýï ðåäßá."
 			),
 			'password_not_valid' => array(
-				'title' => "Î£ÏÎ¬Î»ÎŒÎ± ÎºÏÎŽÎ¹ÎºÎ¿Ï",
-				'body' => "Î ÎºÏÎŽÎ¹ÎºÏÏ ÏÏÏÏÎ²Î±ÏÎ·Ï ÎŽÎµÎœ ÎŒÏÎ¿ÏÎµÎ¯ ÎœÎ± ÎµÎ¯ÎœÎ±Î¹ ÎºÎµÎœÏÏ."
+				'title' => "ÓöÜëìá êùäéêïý",
+				'body' => "Ï êùäéêüò ðïõ åðéëÝîáôå äåí ðëçñÞ "
 			),
 			'fields_required' => array(
-				'title' => "Î¥ÏÎ¿ÏÏÎµÏÏÎ¹ÎºÎ¬ ÏÎµÎŽÎ¯Î±",
-				'body' => "ÎÎµÎœ ÎŽÏÏÎ±ÏÎµ ÏÎ± Î±ÎºÏÎ»Î¿Ï
-ÎžÎ± ÏÎµÎŽÎ¯Î± ÏÎ¿Ï
- ÎµÎ¯ÎœÎ±Î¹ Ï
-ÏÎ¿ÏÏÎµÏÏÎ¹ÎºÎ¬:\n##fields_required##"
-			),
-			'duplicate_entry' => array(
-				'title' => "Î ÎºÎ±ÏÎ±ÏÏÏÎ·ÏÎ· Ï
-ÏÎ¬ÏÏÎµÎ¹ Î®ÎŽÎ·",
-				'body' => "Î€Î¿ Î±ÎºÏÎ»Î¿Ï
-ÎžÎ± ÏÏÎ¿Î¹ÏÎµÎ¯Î± ÏÎ·Ï ÎºÎ±ÏÎ±ÏÏÏÎ·ÏÎ®Ï ÏÎ±Ï Ï
-ÏÎ¬ÏÏÎ¿Ï
-Îœ Î®ÎŽÎ·:\n##duplicate_entries##"
+				'title' => "Õðï÷ñåùôéêÜ ðåäßá",
+				'body' => "Äåí äþóáôå ôá áêüëïõèá ðåäßá ðïõ åßíáé õðï÷ñåùôéêÜ: ##fields_required##"
 			),
 			'upload_file_failed' => array(
-				'title' => "ÎÎ¹ÏÎ±Î³ÏÎ³Î® Î±ÏÏÎµÎ¯Î¿Ï
-",
-				'body' => "Î¥ÏÎ®ÏÎŸÎµ ÏÏÏÎ²Î»Î·ÎŒÎ± ÎºÎ±ÏÎ¬ ÏÎ·Îœ ÎµÎ¹ÏÎ±Î³ÏÎ³Î® ÏÎ¿Ï
- Î±ÏÏÎµÎ¯Î¿Ï
-. ÎÎ¹Î± ÏÎµÏÎ¹ÏÏÏÏÎµÏÎµÏ Î»ÎµÏÏÎ¿ÎŒÎ­ÏÎµÎ¹ÎµÏ, ÎµÏÎ¹ÎºÎ¿Î¹ÎœÏÎœÎ®ÏÏÎµ ÎŒÎµ ÏÎ¿Ï
-Ï ÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ­Ï ÏÎ¿Ï
- ÏÏ
-ÏÏÎ®ÎŒÎ±ÏÎ¿Ï."
+				'title' => "ÅéóáãùãÞ áñ÷åßïõ",
+				'body' => "ÕðÞñîå ðñüâëçìá êáôÜ ôçí åéóáãùãÞ ôïõ áñ÷åßïõ. ÅðéêïéíùíÞóôå ìå ôïí äéá÷åéñéóôÞ ôïõ óõóôÞìáôïò."
 			),
 			'nodes_field_name' => array(
-				'title' => 'ÎÎ»Î»Î±Î³Î® Î¿ÎœÏÎŒÎ±ÏÎ¿Ï ÎºÏÎŒÎ²Î¿Ï
-',
-				'body' => 'ÎÎµÎœ ÎµÏÎ¹ÏÏÎ­ÏÎµÏÎ±Î¹ Î· Î±Î»Î»Î±Î³Î® Î¿ÎœÏÎŒÎ±ÏÎ¿Ï ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
-.'
+				'title' => 'ÁëëáãÞ ïíüìáôïò êüìâïõ',
+				'body' => 'Äåí åðéôñÝðåôáé ç áëëáãÞ ôïõ ïíüìáôïò ôïõ êüìâïõ.'
 			),
 			'nodes_field_area_id' => array(
-				'title' => 'ÎÎ»Î»Î±Î³Î® ÎŽÎ®ÎŒÎ¿Ï
-/ÎºÎ¿Î¹ÎœÏÏÎ·ÏÎ±Ï ÎºÏÎŒÎ²Î¿Ï
-',
-				'body' => 'ÎÎµÎœ ÎµÏÎ¹ÏÏÎ­ÏÎµÏÎ±Î¹ Î· Î±Î»Î»Î±Î³Î® ÏÎµÏÎ¹Î¿ÏÎ®Ï ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
-. Î£Î±Ï Î­ÏÎ¿Ï
-Îœ Î±ÏÎ¿ÎŽÎ¿ÎžÎµÎ¯ IP C-Classes, ÎŒÎµ Î²Î¬ÏÎ· ÏÎ·Îœ ÏÎµÏÎ¹Î¿ÏÎ® ÏÎ¿Ï
- Î­ÏÎµÏÎµ Î®ÎŽÎ· ÎŽÎ·Î»ÏÏÎµÎ¹. ÎÎ¹Î± ÏÎµÏÎ¹ÏÏÏÏÎµÏÎµÏ Î»ÎµÏÏÎ¿ÎŒÎ­ÏÎµÎ¹ÎµÏ, ÎµÏÎ¹ÎºÎ¿Î¹ÎœÏÎœÎ®ÏÏÎµ ÎŒÎµ ÏÎ·Îœ Î¿ÎŒÎ¬ÎŽÎ± hostmaster.'
-			),
-			'nodes_no_area_id' => array(
-				'title' => 'Î£ÏÎ¬Î»ÎŒÎ± ÎŽÎ®ÎŒÎ¿Ï
-/ÎºÎ¿Î¹ÎœÏÏÎ·ÏÎ±Ï ÎºÏÎŒÎ²Î¿Ï
-',
-				'body' => 'ÎÎµÎœ Î­ÏÎµÏÎµ ÎŽÎ·Î»ÏÏÎµÎ¹ ÏÎ¿Îœ ÎŽÎ®ÎŒÎ¿/ÎºÎ¿Î¹ÎœÏÏÎ·ÏÎ± ÏÎ¿Ï
- Î±ÎœÎ®ÎºÎµÎ¹ Î¿ ÎºÏÎŒÎ²Î¿Ï. ÎÎ¹Î± ÏÎ·Îœ Î±ÏÏÎŽÎ¿ÏÎ· IP C-Classes Î±ÏÎ±Î¹ÏÎµÎ¯ÏÎ±Î¹ Î· ÎŽÎ®Î»ÏÏÎ· ÎŽÎ®ÎŒÎ¿Ï
-/ÎºÎ¿Î¹ÎœÏÏÎ·ÏÎ±Ï. ÎÎœÎ±ÏÏÎ­ÎŸÏÎµ ÏÏÎ± ÏÏÎ¿Î¹ÏÎµÎ¯Î± ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï.'
-			),
-			'subnet_backbone_no_ip_range' => array(
-				'title' => 'Î ÏÎ¿ÏÎžÎ®ÎºÎ· Ï
-ÏÎ¿ÎŽÎ¹ÎºÏÏÎ¿Ï
- ÏÎµ ÎŽÎ¹Î±ÏÏÎœÎŽÎµÏÎ·',
-				'body' => 'Î€Î¿ Ï
-ÏÎ¿ÎŽÎ¯ÎºÏÏ
-Î¿ ÏÎ¿Ï
- ÎŽÎ·Î»ÏÏÎ±ÏÎµ, ÎŽÎµÎœ Î±ÎœÎ®ÎºÎµÎ¹ ÏÎµ ÎºÎ¬ÏÎ¿Î¹Î¿ IP C-Class ÏÎ¿Ï
- ÏÎ±Ï Î­ÏÎµÎ¹ Î±ÏÎ¿ÎŽÎ¿ÎžÎµÎ¯. ÎÎœ ÏÎ¿ Ï
-ÏÎ¿ÎŽÎ¯ÎºÏÏ
-Î¿ Î±ÎœÎ®ÎºÎµÎ¹ ÏÏÎ¿Îœ ÎºÏÎŒÎ²Î¿ ÏÎ¿Ï
- Î¬Î»Î»Î¿Ï
- Î¬ÎºÏÎ¿Ï
- ÏÎ·Ï ÎŽÎ¹Î±ÏÏÎœÎŽÎµÏÎ·Ï, ÎžÎ± ÏÏÎ­ÏÎµÎ¹ ÎœÎ± ÏÎ¿ ÎŽÎ·Î»ÏÏÎµÎ¹ Î¿ ÎºÎ¬ÏÎ¿ÏÎ¿Ï ÏÎ¿Ï
- IP C-Class.'
-			),
-			'schema_files_missing' => array(
-				'title' => 'Î€Î± Î±ÏÏÎµÎ¯Î± schema ÎŽÎµÎœ Î²ÏÎ­ÎžÎ·ÎºÎ±Îœ',
-				'body' => 'Î Î±ÏÎ±ÎºÎ±Î»Ï, ÎµÏÎ¹ÎºÎ¿Î¹ÎœÏÎœÎ®ÏÏÎµ ÎŒÎµ ÏÎ¿Îœ ÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ® ÏÎ¿Ï
- ÏÏ
-ÏÏÎ®ÎŒÎ±ÏÎ¿Ï Î³Î¹Î± ÏÎ· ÎŽÎ¹ÏÏÎžÏÏÎ· ÏÎ¿Ï
- ÏÏÎ¬Î»ÎŒÎ±ÏÎ¿Ï.'
-			),
-			'gmap_key_failed' => array(
-				'title' => 'Î€Î¿ ÎºÎ»ÎµÎ¹ÎŽÎ¯ ÎŽÎµÎœ Î²ÏÎ­ÎžÎ·ÎºÎµ',
-				'body' => 'ÎÎµÎœ Î²ÏÎ­ÎžÎ·ÎºÎµ ÏÎ¿ ÎºÎ»ÎµÎ¹ÎŽÎ¯ ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ·Ï ÏÎ¿Ï
- Google Maps. ÎÏÎ¹ÎºÎ¿Î¹ÎœÏÎœÎ®ÏÏÎµ ÎŒÎµ ÏÎ¿Îœ ÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ® ÏÎ¿Ï
- ÏÏ
-ÏÏÎ®ÎŒÎ±ÏÎ¿Ï Î³Î¹Î± ÏÎ·Îœ ÎµÏÎ¯Î»Ï
-ÏÎ· ÏÎ¿Ï
- ÏÏÎ¿Î²Î»Î®ÎŒÎ±ÏÎ¿Ï.'
-			),
-			'node_not_found' => array(
-				'title' => 'Î ÎºÏÎŒÎ²Î¿Ï ÎŽÎµÎœ Î²ÏÎ­ÎžÎ·ÎºÎµ',
-				'body' => 'Î ÎºÏÎŒÎ²Î¿Ï ÏÎ¿Ï
- Î¶Î·ÏÎ®ÏÎ±ÏÎµ ÎŽÎµÎœ Ï
-ÏÎ¬ÏÏÎµÎ¹. ÎÎ»Î­Î³ÎŸÏÎµ ÏÎ± ÏÏÎ¿Î¹ÏÎµÎ¯Î± ÎºÎ±Î¹ ÏÏÎ¿ÏÏÎ±ÎžÎ®ÏÏÎµ ÎŸÎ±ÎœÎ¬. ÎÎœ ÏÎ± ÏÏÎ¿Î¹ÏÎµÎ¯Î± ÎµÎ¯ÎœÎ±Î¹ ÏÏÏÏÎ¬, ÎµÎ¯ÎœÎ±Î¹ ÏÎ¹ÎžÎ±ÎœÏ Î¿ ÎºÏÎŒÎ²Î¿Ï ÎœÎ± Î­ÏÎµÎ¹ ÎŽÎ¹Î±Î³ÏÎ±ÏÎµÎ¯ Î® Î¿ ÏÏÎ®ÏÏÎ·Ï ÎœÎ± ÎŒÎ·Îœ Î­ÏÎµÎ¹ ÏÏÎ±Î³ÎŒÎ±ÏÎ¿ÏÎ¿Î¹Î®ÏÎµÎ¹ ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· ÏÎ¿Ï
- Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï.'
+				'title' => 'ÁëëáãÞ äÞìïõ/êïéíüôçôáò êüìâïõ',
+				'body' => 'Äåí åðéôñÝðåôáé ç áëëáãÞ ôçò ðåñéï÷Þò ôïõ êüìâïõ. Óáò Ý÷ïõí áðïäïèåß IP C-Classes. ÅðéêïéíùíÞóôå ìå ôçí ïìÜäá hostmaster.'
 			),
 			'generic' => array(
-				'title' => "ÎÎµÎœÎ¹ÎºÏ ÏÏÎ¬Î»ÎŒÎ±",
-				'body' => "Î¥ÏÎ®ÏÎŸÎµ Î³ÎµÎœÎ¹ÎºÏ ÏÏÎ¬Î»ÎŒÎ±. Î Î±ÏÎ±ÎºÎ±Î»Ï ÎµÎœÎ·ÎŒÎµÏÏÏÏÎµ ÏÎ¿Ï
-Ï ÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ­Ï ÏÎ¿Ï
- ÏÏ
-ÏÏÎ®ÎŒÎ±ÏÎ¿Ï."
+				'title' => "Ãåíéêü óöÜëìá",
+				'body' => "ÕðÞñîå ãåíéêü. ÁíáöÝñåôáé ôï ðñüâëçìá óôç äéá÷åßñéóç ôïõ óõóôÞìáôïò."
 			)
 		)
@@ -697,53 +359,34 @@
 	'email' => array(
 		'user_activation' => array(
-			'subject' => "ÎÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï: ##username##",
-			'body' => "WiND - Wireless Nodes Database\n------------------------------------------\nÎÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï ##username##\n\nÎ Î±ÏÎ®ÏÏÎµ ÎµÎŽÏ: ##act_link##"
+			'subject' => "Åíåñãïðïßçóç ëïãáñéáóìïý: ##username##",
+			'body' => "WiND - Wireless Nodes Database\n------------------------------------------\nÅíåñãïðïßçóç ëïãáñéáóìïý ##username##\n\nÐáôÞóôå åäþ: ##act_link##"
 		),
 
 		'user_restore' => array(
-			'subject' => "ÎÎœÎ¬ÎºÏÎ·ÏÎ· ÎºÏÎŽÎ¹ÎºÎ¿Ï: ##username##",
-			'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nÎÎœÎ¬ÎºÏÎ·ÏÎ· ÎºÏÎŽÎ¹ÎºÎ¿Ï Î³Î¹Î± ÏÎ¿ Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÏ ##username##\n\nÎ Î±ÏÎ®ÏÏÎµ ÎµÎŽÏ: ##act_link##"
+			'subject' => "ÁíÜêôçóç êùäéêïý: ##username##",
+			'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nÁíÜêôçóç êùäéêïý ãéá ôï ëïãáñéáóìü ##username##\n\nÐáôÞóôå åäþ: ##act_link##"
 		),
 
-		'user_change_email' => array(
-			'subject' => "ÎÎ»Î»Î±Î³Î® e-mail Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï: ##username##",
-			'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nÎÎ»Î»Î±Î³Î® e-mail Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï ##username##\n\nÎ Î±ÏÎ®ÏÏÎµ ÎµÎŽÏ: ##act_link##"
-		),
-
-		'node_contact' => array(
-			'subject_prefix' => "WiND: ",
-			'subject_suffix' => "",
-			'body_prefix' => "ÎÏÎ¹ÎºÎ¿Î¹ÎœÏÎœÎ¯Î± ÎŒÎµ ÏÎ¿Ï
-Ï ÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ­Ï ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ##node_name## (###node_id##).\nÎ ÏÏÎ®ÏÏÎ·Ï ##username## ÏÎ±Ï Î­ÏÏÎµÎ¹Î»Îµ ÏÎ¿ ÏÎ±ÏÎ±ÎºÎ¬ÏÏ ÎŒÎ®ÎœÏ
-ÎŒÎ±\nÎŒÎ­ÏÏ ÏÎ·Ï ÎµÏÎ±ÏÎŒÎ¿Î³Î®Ï WiND - Wireless Nodes Database:\n-------------------------------------------------------------------\n\n",
-			'body_suffix' => "\n\n-------------------------------------------------------------------\nÎÏÎ±ÎœÏÎ®ÏÏÎµ ÏÎµ Î±Ï
-ÏÏ ÏÎ¿ ÎŒÎ®ÎœÏ
-ÎŒÎ± Î³Î¹Î± ÎœÎ± ÎµÏÎ¹ÎºÎ¿Î¹ÎœÏÎœÎ®ÏÎµÏÎµ ÎŒÎµ ÏÎ¿Îœ Î±ÏÎ¿ÏÏÎ¿Î»Î­Î±.\nWiND - Wireless Nodes Database\n-------------------------------------------------------------------"
+		'user_change_mail' => array(
+			'subject' => "ÁëëáãÞ e-mail ëïãáñéáóìïý: ##username##",
+			'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nÁëëáãÞ e-mail ëïãáñéáóìïý ##username##\n\nÐáôÞóôå åäþ: ##act_link##"
 		),
 
 		'range' => array(
 			'pending' => array(
-				'subject' => "##range##: Î£Îµ Î±ÎœÎ±ÎŒÎ¿ÎœÎ®",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nÎÏÎŒÎ²Î¿Ï: ##node_name## (###node_id##)\n\nÎ€Î¿ ÏÎ±ÏÎ±ÏÎ¬ÎœÏ IP C-Class ÎŒÏÎ®ÎºÎµ ÏÎµ ÎºÎ±ÏÎ¬ÏÏÎ±ÏÎ· Î±ÎœÎ±ÎŒÎ¿ÎœÎ®Ï.\n\nÎÎº ÎŒÎ­ÏÎ¿Ï
-Ï ÏÎ·Ï Î¿ÎŒÎ¬ÎŽÎ±Ï WiND Hostmaster,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
+				'subject' => "##range##: Óå áíáìïíÞ",
+				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nÊüìâïò: ##node_name## (###node_id##)\n\nÔï ðáñáðÜíù IP C-Class ìðÞêå óå êáôÜóôáóç áíáìïíÞò.\n\nÇ ïìÜäá WiND Hostmaster"
 			),
 			'active' => array(
-				'subject' => "##range##: ÎÎœÎµÏÎ³Î¿ÏÎ¿Î¹Î®ÎžÎ·ÎºÎµ",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nÎÏÎŒÎ²Î¿Ï: ##node_name## (###node_id##)\n\nÎ€Î¿ ÏÎ±ÏÎ±ÏÎ¬ÎœÏ IP C-Class ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¹Î®ÎžÎ·ÎºÎµ.\n\nÎÎº ÎŒÎ­ÏÎ¿Ï
-Ï ÏÎ·Ï Î¿ÎŒÎ¬ÎŽÎ±Ï WiND Hostmaster,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
+				'subject' => "##range##: ÅíåñãïðïéÞèçêå",
+				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nÊüìâïò: ##node_name## (###node_id##)\n\nÔï ðáñáðÜíù IP C-Class åíåñãïðïéÞèçêå.\n\nÇ ïìÜäá WiND Hostmaster"
 			),
 			'rejected' => array(
-				'subject' => "##range##: ÎÏÎ¿ÏÏÎ¯ÏÎžÎ·ÎºÎµ",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nÎÏÎŒÎ²Î¿Ï: ##node_name## (###node_id##)\n\nÎ€Î¿ ÏÎ±ÏÎ±ÏÎ¬ÎœÏ IP C-Class Î±ÏÎ¿ÏÏÎ¯ÏÎžÎ·ÎºÎµ.\n\nÎÎº ÎŒÎ­ÏÎ¿Ï
-Ï ÏÎ·Ï Î¿ÎŒÎ¬ÎŽÎ±Ï WiND Hostmaster,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
+				'subject' => "##range##: Áðïññßöèçêå",
+				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nÊüìâïò: ##node_name## (###node_id##)\n\nÔï ðáñáðÜíù IP C-Class áðïññßöèçêå.\n\nÇ ïìÜäá WiND Hostmaster"
 			),
 			'invalid' => array(
-				'subject' => "##range##: ÎÎºÏ
-ÏÏÎžÎ·ÎºÎµ",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nÎÏÎŒÎ²Î¿Ï: ##node_name## (###node_id##)\n\nÎ€Î¿ ÏÎ±ÏÎ±ÏÎ¬ÎœÏ IP C-Class Î±ÎºÏ
-ÏÏÎžÎ·ÎºÎµ.\n\nÎÎº ÎŒÎ­ÏÎ¿Ï
-Ï ÏÎ·Ï Î¿ÎŒÎ¬ÎŽÎ±Ï WiND Hostmaster,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
+				'subject' => "##range##: Áêõñþèçêå",
+				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nÊüìâïò: ##node_name## (###node_id##)\n\nÔï ðáñáðÜíù IP C-Class áêõñþèçêå.\n\nÇ ïìÜäá WiND Hostmaster"
 			)
 		),
@@ -751,24 +394,18 @@
 		'zone' => array(
 			'pending' => array(
-				'subject' => "##zone##: Î£Îµ Î±ÎœÎ±ÎŒÎ¿ÎœÎ®",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nÎÏÎœÎ· DNS: ##zone##\nÎÏÎŒÎ²Î¿Ï: ##node_name## (###node_id##)\n\nÎ€Î¿ ÏÎ±ÏÎ±ÏÎ¬ÎœÏ DNS zone ÎŒÏÎ®ÎºÎµ ÏÎµ ÎºÎ±ÏÎ¬ÏÏÎ±ÏÎ· Î±ÎœÎ±ÎŒÎ¿ÎœÎ®Ï.\n\nÎÎº ÎŒÎ­ÏÎ¿Ï
-Ï ÏÎ·Ï Î¿ÎŒÎ¬ÎŽÎ±Ï WiND Hostmaster,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
+				'subject' => "##zone##: Óå áíáìïíÞ",
+				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nDNS zone: ##zone##\nÊüìâïò: ##node_name## (###node_id##)\n\nÔï ðáñáðÜíù DNS zone ìðÞêå óå êáôÜóôáóç áíáìïíÞò.\n\nÇ ïìÜäá WiND Hostmaster"
 			),
 			'active' => array(
-				'subject' => "##zone##: ÎÎœÎµÏÎ³Î¿ÏÎ¿Î¹Î®ÎžÎ·ÎºÎµ",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nÎÏÎœÎ· DNS: ##zone##\nÎÏÎŒÎ²Î¿Ï: ##node_name## (###node_id##)\n\nÎ€Î¿ ÏÎ±ÏÎ±ÏÎ¬ÎœÏ DNS zone ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¹Î®ÎžÎ·ÎºÎµ.\n\nÎÎº ÎŒÎ­ÏÎ¿Ï
-Ï ÏÎ·Ï Î¿ÎŒÎ¬ÎŽÎ±Ï WiND Hostmaster,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
+				'subject' => "##zone##: ÅíåñãïðïéÞèçêå",
+				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nDNS zone: ##zone##\nÊüìâïò: ##node_name## (###node_id##)\n\nÔï ðáñáðÜíù DNS zone åíåñãïðïéÞèçêå.\n\nÇ ïìÜäá WiND Hostmaster"
 			),
 			'rejected' => array(
-				'subject' => "##zone##: ÎÏÎ¿ÏÏÎ¯ÏÎžÎ·ÎºÎµ",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nÎÏÎœÎ· DNS: ##zone##\nÎÏÎŒÎ²Î¿Ï: ##node_name## (###node_id##)\n\nÎ€Î¿ ÏÎ±ÏÎ±ÏÎ¬ÎœÏ DNS zone Î±ÏÎ¿ÏÏÎ¯ÏÎžÎ·ÎºÎµ.\n\nÎÎº ÎŒÎ­ÏÎ¿Ï
-Ï ÏÎ·Ï Î¿ÎŒÎ¬ÎŽÎ±Ï WiND Hostmaster,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
+				'subject' => "##zone##: Áðïññßöèçêå",
+				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nDNS zone: ##zone##\nÊüìâïò: ##node_name## (###node_id##)\n\nÔï ðáñáðÜíù DNS zone áðïññßöèçêå.\n\nÇ ïìÜäá WiND Hostmaster"
 			),
 			'invalid' => array(
-				'subject' => "##zone##: ÎÎºÏ
-ÏÏÎžÎ·ÎºÎµ",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nÎÏÎœÎ· DNS: ##zone##\nÎÏÎŒÎ²Î¿Ï: ##node_name## (###node_id##)\n\nÎ€Î¿ ÏÎ±ÏÎ±ÏÎ¬ÎœÏ DNS zone Î±ÎºÏ
-ÏÏÎžÎ·ÎºÎµ.\n\nÎÎº ÎŒÎ­ÏÎ¿Ï
-Ï ÏÎ·Ï Î¿ÎŒÎ¬ÎŽÎ±Ï WiND Hostmaster,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
+				'subject' => "##zone##: Áêõñþèçêå",
+				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nDNS zone: ##zone##\nÊüìâïò: ##node_name## (###node_id##)\n\nÔï ðáñáðÜíù DNS zone áêõñþèçêå.\n\nÇ ïìÜäá WiND Hostmaster"
 			)
 		)
@@ -776,297 +413,8 @@
 	
 	'help' => array(
-		'dnszones' => array(
-			'title' => 'ÎÏÎœÎµÏ DNS',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± Î±ÎœÎ±Î¶Î·ÏÎ®ÏÎµÏÎµ Î¶ÏÎœÎµÏ DNS ÏÎ¿Ï
- ÎŽÎ¹ÎºÏÏÎ¿Ï
-, ÎŒÎµ Î²Î¬ÏÎ· ÏÎ± ÏÎµÎŽÎ¯Î± ÏÎ¿Ï
- ÏÏÎ¿ÏÏÎ­ÏÎ¿ÎœÏÎ±Î¹. Î€Î± Î±ÏÎ¿ÏÎµÎ»Î­ÏÎŒÎ±ÏÎ± ÎµÎŒÏÎ±ÎœÎ¯Î¶Î¿ÎœÏÎ±Î¹ ÏÏÎ¿Îœ ÏÎ±ÏÎ±ÎºÎ¬ÏÏ ÏÎ¯ÎœÎ±ÎºÎ±. ÎÏÎ¯ÏÎ·Ï, ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŽÎ¹Î±Î»Î­ÎŸÎµÏÎµ ÎºÎ¬ÏÎ¿Î¹Î¿Îœ ÎºÏÎŒÎ²Î¿ Î³Î¹Î± ÏÏÎ¿Î²Î¿Î»Î® ÏÏÎœ ÏÏÎ¿Î¹ÏÎµÎ¯ÏÎœ ÏÎ¿Ï
-.'
-		),
-		
-		'services' => array(
-			'title' => 'Î¥ÏÎ·ÏÎµÏÎ¯ÎµÏ',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± Î±ÎœÎ±Î¶Î·ÏÎ®ÏÎµÏÎµ Ï
-ÏÎ·ÏÎµÏÎ¯ÎµÏ ÏÎ¿Ï
- ÎŽÎ¹ÎºÏÏÎ¿Ï
-, ÎŒÎµ Î²Î¬ÏÎ· ÏÎ± ÏÎµÎŽÎ¯Î± ÏÎ¿Ï
- ÏÏÎ¿ÏÏÎ­ÏÎ¿ÎœÏÎ±Î¹. Î€Î± Î±ÏÎ¿ÏÎµÎ»Î­ÏÎŒÎ±ÏÎ± ÎµÎŒÏÎ±ÎœÎ¯Î¶Î¿ÎœÏÎ±Î¹ ÏÏÎ¿Îœ ÏÎ±ÏÎ±ÎºÎ¬ÏÏ ÏÎ¯ÎœÎ±ÎºÎ±. ÎÏÎ¯ÏÎ·Ï, ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŒÎµÏÎ±ÏÎµÏÎžÎµÎ¯ÏÎµ ÏÎµ ÎºÎ¬ÏÎ¿Î¹Î± Ï
-ÏÎ·ÏÎµÏÎ¯Î± (Î±Îœ ÏÏÎ¿ÏÏÎ­ÏÎµÏÎ±Î¹ URL) Î® ÎœÎ± ÎµÏÎ¹Î»Î­ÎŸÎµÏÎµ ÎºÎ¬ÏÎ¿Î¹Î¿Îœ ÎºÏÎŒÎ²Î¿ Î³Î¹Î± ÏÏÎ¿Î²Î¿Î»Î® ÏÏÎœ ÏÏÎ¿Î¹ÏÎµÎ¯ÏÎœ ÏÎ¿Ï
-.'
-		),
-		
-		'mynodes_add' => array(
-			'title' => 'Î ÏÎ¿ÏÎžÎ®ÎºÎ· ÎºÏÎŒÎ²Î¿Ï
-',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÏÏÎ¿ÏÎžÎ­ÏÎµÏÎµ Î­ÎœÎ±Îœ ÎºÏÎŒÎ²Î¿. ÎŠÏÎ¿ÎœÏÎ¯ÏÏÎµ ÏÎ± ÏÏÎ¿Î¹ÏÎµÎ¯Î± ÎœÎ± ÎºÎ±ÏÎ±ÏÏÏÎ·ÎžÎ¿ÏÎœ ÎŒÎµ ÏÏÎ¿ ÏÎ¿ ÎŽÏ
-ÎœÎ±ÏÏÎœ ÎŒÎµÎ³Î±Î»ÏÏÎµÏÎ· Î±ÎºÏÎ¯Î²ÎµÎ¹Î±.'
-		),
-		'mynodes' => array(
-			'title' => 'ÎÎ¹Î±ÏÎµÎ¯ÏÎ¹ÏÎ· ÎºÏÎŒÎ²Î¿Ï
-',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎµÎ¯ÏÎµ ÏÎ»Î®ÏÏÏ ÏÎ¿Îœ ÎºÏÎŒÎ²Î¿ ÏÎ±Ï. ÎŠÏÎ¿ÎœÏÎ¯ÏÏÎµ ÏÎ± ÏÏÎ¿Î¹ÏÎµÎ¯Î± ÎœÎ± ÎºÎ±ÏÎ±ÏÏÏÎ·ÎžÎ¿ÏÎœ ÎŒÎµ ÏÏÎ¿ ÏÎ¿ ÎŽÏ
-ÎœÎ±ÏÏÎœ ÎŒÎµÎ³Î±Î»ÏÏÎµÏÎ· Î±ÎºÏÎ¯Î²ÎµÎ¹Î±. Î£ÏÎ¹Ï ÎµÏÎ¹ÎŒÎ­ÏÎ¿Ï
-Ï ÎºÎ±ÏÎ·Î³Î¿ÏÎ¯ÎµÏ, Î±ÎœÎ±ÏÏÎ­ÎŸÏÎµ ÏÏÎ· Î²Î¿Î®ÎžÎµÎ¹Î± ÏÎ·Ï ÎºÎ¬ÎžÎµ ÏÎµÎ»Î¯ÎŽÎ±Ï.'
-		),
-		'mynodes_range' => array(
-			'title' => 'ÎÎ¯ÏÎ·ÏÎ· Î±ÏÏÎŽÎ¿ÏÎ·Ï IP C-Class',
-			'body' => 'Î ÎµÏÎ¹Î³ÏÎ¬ÏÏÎµ ÎŒÎµ ÏÎ±ÏÎ®ÎœÎµÎ¹Î±, ÏÏÎ¿ ÏÎµÎŽÎ¯Î¿ Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ ÏÎ¿Îœ Î»ÏÎ³Î¿ ÏÎ·Ï Î±Î¯ÏÎ·ÏÎ®Ï ÏÎ±Ï.'
-		),
-		'mynodes_dnszone_request_reverse' => array(
-			'title' => 'ÎÎ¯ÏÎ·ÏÎ· Î±ÏÏÎŽÎ¿ÏÎ·Ï Î¶ÏÎœÎ·Ï DNS',
-			'body' => 'Î ÎµÏÎ¹Î³ÏÎ¬ÏÏÎµ ÎŒÎµ ÏÎ±ÏÎ®ÎœÎµÎ¹Î± ÏÏÎ¿ ÏÎµÎŽÎ¯Î¿ Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ ÏÎ¿Îœ Î»ÏÎ³Î¿ ÏÎ·Ï Î±Î¯ÏÎ·ÏÎ®Ï ÏÎ±Ï.'
-		),
-		'mynodes_dnszone_request_forward' => array(
-			'title' => 'ÎÎ¯ÏÎ·ÏÎ· Î±ÏÏÎŽÎ¿ÏÎ·Ï Î¶ÏÎœÎ·Ï DNS',
-			'body' => 'Î ÎµÏÎ¹Î³ÏÎ¬ÏÏÎµ ÎŒÎµ ÏÎ±ÏÎ®ÎœÎµÎ¹Î± ÏÏÎ¿ ÏÎµÎŽÎ¯Î¿ Î Î»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ ÏÎ¿Îœ Î»ÏÎ³Î¿ ÏÎ·Ï Î±Î¯ÏÎ·ÏÎ®Ï ÏÎ±Ï.'
-		),
-		'mynodes_dnszone_edit' => array(
-			'title' => 'ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± Î¶ÏÎœÎ·Ï DNS',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± Î¿ÏÎ¯ÏÎµÏÎµ ÏÎ¿Ï
-Ï Ï
-ÏÎµÏÎžÏ
-ÎœÎ¿Ï
-Ï nameservers (NS) ÏÎ¿Ï
- ÎžÎ± ÎŽÎ¹Î±ÏÎ·ÏÎ¿ÏÎœ ÏÎ¹Ï ÏÎ»Î·ÏÎ¿ÏÎ¿ÏÎ¯ÎµÏ ÏÎ·Ï Î¶ÏÎœÎ·Ï.'
-		),
-		'mynodes_dnsnameserver_add' => array(
-			'title' => 'Î ÏÎ¿ÏÎžÎ®ÎºÎ· nameserver (NS)',
-			'body' => 'ÎÏÏÏÎµ ÏÎ¿ ÏÎœÎ¿ÎŒÎ± ÎºÎ±Î¹ ÏÎ· ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ· ÏÎ¿Ï
- nameserver.'
-		),
-		'mynodes_dnsnameserver_edit' => array(
-			'title' => 'ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± nameserver (NS)',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎµÏÎµÎŸÎµÏÎ³Î±ÏÏÎµÎ¯ÏÎµ ÏÎ¿ ÏÎœÎ¿ÎŒÎ± ÏÎ¿Ï
- nameserver (NS) ÏÎ¿Ï
- ÎŽÎ¹Î±ÏÎ·ÏÎµÎ¯ÏÎµ. ÎÎ»Î»Î±Î³Î® ÏÎ·Ï ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ·Ï IP ÎŽÎµÎœ ÎµÎ¯ÎœÎ±Î¹ ÎµÏÎ¹ÎºÏÎ®, ÎžÎ± ÏÏÎ­ÏÎµÎ¹ ÎœÎ± ÎºÎ¬ÎœÎµÏÎµ Î±Î¯ÏÎ·ÏÎ· ÎŽÎ¹Î±Î³ÏÎ±ÏÎ®Ï ÏÎ¿Ï
- Ï
-ÏÎ¬ÏÏÎ¿ÎœÏÎ¿Ï nameserver ÎºÎ±Î¹ Î±Î¯ÏÎ·ÏÎ· ÎºÎ±ÏÎ±ÏÏÏÎ·ÏÎ·Ï ÎœÎ­Î¿Ï
-.'
-		),
-		'mynodes_link_add' => array(
-			'title' => 'Î ÏÎ¿ÏÎžÎ®ÎºÎ· ÎŽÎ¹Î±ÏÏÎœÎŽÎµÏÎ·Ï',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÏÏÎ¿ÏÎžÎ­ÏÎµÏÎµ ÎŒÎ¹Î± ÎŽÎ¹Î±ÏÏÎœÎŽÎµÏÎ· ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï ÎŒÎµ ÎºÎ¬ÏÎ¿Î¹Î¿Îœ Î¬Î»Î»Î¿ ÎºÏÎŒÎ²Î¿. Î£Ï
-ÎŒÏÎ»Î·ÏÏÏÏÎµ ÎŒÎµ ÏÎ±ÏÎ®ÎœÎµÎ¹Î± ÏÏÎ¿ ÏÎ¿ ÎŽÏ
-ÎœÎ±ÏÏÎœ ÏÎµÏÎ¹ÏÏÏÏÎµÏÎ± Î±ÏÏ ÏÎ± ÏÎµÎŽÎ¯Î±.'
-		),
-		'mynodes_link_edit' => array(
-			'title' => 'ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± ÎŽÎ¹Î±ÏÏÎœÎŽÎµÏÎ·Ï',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎµÏÎµÎŸÎµÏÎ³Î±ÏÏÎµÎ¯ÏÎµ ÎŒÎ¹Î± ÎŽÎ¹Î±ÏÏÎœÎŽÎµÏÎ· ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï ÎŒÎµ ÎºÎ¬ÏÎ¿Î¹Î¿Îœ Î¬Î»Î»Î¿ ÎºÏÎŒÎ²Î¿. Î£Ï
-ÎŒÏÎ»Î·ÏÏÏÏÎµ ÎŒÎµ ÏÎ±ÏÎ®ÎœÎµÎ¹Î± ÏÏÎ¿ ÏÎ¿ ÎŽÏ
-ÎœÎ±ÏÏÎœ ÏÎµÏÎ¹ÏÏÏÏÎµÏÎ± Î±ÏÏ ÏÎ± ÏÎµÎŽÎ¯Î±.'
-		),
-		'mynodes_subnet_add' => array(
-			'title' => 'Î ÏÎ¿ÏÎžÎ®ÎºÎ· Ï
-ÏÎ¿ÎŽÎ¹ÎºÏÏÎ¿Ï
-',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÏÏÎ¿ÏÎžÎ­ÏÎµÏÎµ Î­ÎœÎ± Ï
-ÏÎ¿ÎŽÎ¯ÎºÏÏ
-Î¿ ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï. ÎÎ¹Î± ÏÎ¿ ÏÎ¿ÏÎ¹ÎºÏ ÏÎ±Ï ÎŽÎ¯ÎºÏÏ
-Î¿ ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŽÎ·Î»ÏÏÎµÏÎµ ÎºÎ±Î¹ ÎŽÎ¹ÎµÏ
-ÎžÏÎœÏÎµÎ¹Ï ÏÎ¿Ï
- ÎŽÎµÎœ ÏÎµÏÎ¹Î­ÏÎ¿ÎœÏÎ±Î¹ ÏÎµ IP C-Class ÏÎ¿Ï
- ÏÎ±Ï Î­ÏÎµÎ¹ Î±ÏÎ¿ÎŽÎ¿ÎžÎµÎ¯. Î£Îµ ÏÎµÏÎ¯ÏÏÏÏÎ· ÎŽÎ¹Î±ÏÏ
-ÎœÎŽÎ­ÏÎµÏÎœ ÎºÏÎŒÎ²ÏÎœ, ÎŽÎ®Î»ÏÏÎ· ÎµÎœÏÏ Ï
-ÏÎ¿ÎŽÎ¹ÎºÏÏÎ¿Ï
- ÎŒÏÎ¿ÏÎµÎ¯ ÎœÎ± Î³Î¯ÎœÎµÎ¹ ÎŒÏÎœÎ¿ Î±ÏÏ ÏÎ¿Îœ ÎºÎ¬ÏÎ¿ÏÎ¿ ÏÎ¿Ï
- IP C-Class ÏÎ¿Ï
- Ï
-ÏÎ¿ÎŽÎ¹ÎºÏÏÎ¿Ï
- ÏÎ¿Ï
- ÏÏÎ·ÏÎ¹ÎŒÎ¿ÏÎ¿Î¹ÎµÎ¯ÏÎ±Î¹.'
-		),
-		'mynodes_subnet_edit' => array(
-			'title' => 'ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± Ï
-ÏÎ¿ÎŽÎ¹ÎºÏÏÎ¿Ï
-',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎµÏÎµÎŸÎµÏÎ³Î±ÏÏÎµÎ¯ÏÎµ Î­ÎœÎ± Ï
-ÏÎ¿ÎŽÎ¯ÎºÏÏ
-Î¿ ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï.'
-		),
-		'mynodes_ipaddr_add' => array(
-			'title' => 'Î ÏÎ¿ÏÎžÎ®ÎºÎ· ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ·Ï IP',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÏÏÎ¿ÏÎžÎ­ÏÎµÏÎµ ÎŒÎ¯Î± ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ· IP ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï. Î€Î¿ ÏÎµÎŽÎ¯Î¿ Hostname, ÏÏÎ­ÏÎµÎ¹ ÎœÎ± ÎºÎ±ÎžÎ¿ÏÎ¯Î¶ÎµÎ¹ ÏÎ¿Î¹Î¿ ÎŒÎ·ÏÎ¬ÎœÎ·ÎŒÎ± ÏÎ­ÏÎµÎ¹ ÏÎ· ÏÏ
-Î³ÎºÎµÎºÏÎ¹ÎŒÎ­ÎœÎ· ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ· IP ÎºÎ±Î¹ ÏÏÎ­ÏÎµÎ¹ ÎœÎ± ÎµÎ¯ÎœÎ±Î¹ ÎºÎ¿Î¹ÎœÏ ÏÎµ ÏÎ»ÎµÏ ÏÎ¹Ï ÎŽÎ¹ÎµÏ
-ÎžÏÎœÏÎµÎ¹Ï IP ÏÎ¿Ï
- ÏÏ
-Î³ÎºÎµÎºÏÎ¹ÎŒÎ­ÎœÎ¿Ï
- ÎŒÎ·ÏÎ±ÎœÎ®ÎŒÎ±ÏÎ¿Ï.'
-		),
-		'mynodes_ipaddr_edit' => array(
-			'title' => 'ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± ÎŽÎ¹Î±ÏÏÎœÎŽÎµÏÎ·Ï',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎµÏÎµÎŸÎµÏÎ³Î±ÏÏÎµÎ¯ÏÎµ ÎŒÎ¯Î± ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ· IP ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï. Î€Î¿ ÏÎµÎŽÎ¯Î¿ Hostname, ÏÏÎ­ÏÎµÎ¹ ÎœÎ± ÎºÎ±ÎžÎ¿ÏÎ¯Î¶ÎµÎ¹ ÏÎ¿Î¹Î¿ ÎŒÎ·ÏÎ¬ÎœÎ·ÎŒÎ± ÏÎ­ÏÎµÎ¹ ÏÎ· ÏÏ
-Î³ÎºÎµÎºÏÎ¹ÎŒÎ­ÎœÎ· ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ· IP ÎºÎ±Î¹ ÏÏÎ­ÏÎµÎ¹ ÎœÎ± ÎµÎ¯ÎœÎ±Î¹ ÎºÎ¿Î¹ÎœÏ ÏÎµ ÏÎ»ÎµÏ ÏÎ¹Ï ÎŽÎ¹ÎµÏ
-ÎžÏÎœÏÎµÎ¹Ï IP ÏÎ¿Ï
- ÏÏ
-Î³ÎºÎµÎºÏÎ¹ÎŒÎ­ÎœÎ¿Ï
- ÎŒÎ·ÏÎ±ÎœÎ®ÎŒÎ±ÏÎ¿Ï.'
-		),
-		
-		'mynodes_services_add' => array(
-			'title' => 'Î ÏÎ¿ÏÎžÎ®ÎºÎ· Ï
-ÏÎ·ÏÎµÏÎ¯Î±Ï',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÏÏÎ¿ÏÎžÎ­ÏÎµÏÎµ ÎŒÎ¯Î± Ï
-ÏÎ·ÏÎµÏÎ¯Î± ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï. Î€Î¿ ÏÎµÎŽÎ¯Î¿ ÎÎ¹ÎµÏÎžÏ
-ÎœÏÎ· IP ÏÎµÏÎ¹Î­ÏÎµÎ¹ ÏÎ»ÎµÏ ÏÎ¹Ï ÎŽÎ¹ÎµÏ
-ÎžÏÎœÏÎµÎ¹Ï ÏÎ¿Ï
- Î­ÏÎµÏÎµ ÎŽÎ·Î»ÏÏÎµÎ¹ ÎºÎ±Î¹ ÏÏÎ­ÏÎµÎ¹ ÎœÎ± ÎºÎ±ÎžÎ¿ÏÎ¯Î¶ÎµÎ¹ ÏÎ·Îœ IP ÏÏÎ·Îœ Î¿ÏÎ¿Î¯Î± ÏÏÎ­ÏÎµÎ¹ (Î±ÎºÎ¿ÏÎµÎ¹) Î· Ï
-ÏÎ·ÏÎµÏÎ¯Î±. Î€Î¿ ÏÎµÎŽÎ¯Î¿ URL, ÏÏÎ­ÏÎµÎ¹ ÎœÎ± ÏÎµÏÎ¹Î­ÏÎµÎ¹ ÏÎ¿ link Î³Î¹Î± ÏÎ·Îœ Ï
-ÏÎ·ÏÎµÏÎ¯Î± Î® ÏÎ¿ link Î³Î¹Î± ÎºÎ¬ÏÎ¿Î¹Î± ÏÎµÎ»Î¯ÎŽÎ± ÏÎ¿Ï
- Î±ÎœÎ±ÏÎ­ÏÎµÏÎ±Î¹ ÏÏÎ·Îœ Ï
-ÏÎ·ÏÎµÏÎ¯Î±. Î€Î­Î»Î¿Ï ÏÎ± ÏÎµÎŽÎ¯Î± Î ÏÏÏÏÎºÎ¿Î»Î»Î¿ ÎºÎ±Î¹ Î ÏÏÏÎ±, ÏÏÎ­ÏÎµÎ¹ ÎœÎ± Î±ÎœÎ±ÏÎ­ÏÎ¿ÎœÏÎ±Î¹ ÏÏÎ¿ ÏÏÏÏÏÎºÎ¿Î»Î»Î¿ ÏÎ¿Ï
- ÏÏÎ·ÏÎ¹ÎŒÎ¿ÏÎ¿Î¹ÎµÎ¯ Î· Ï
-ÏÎ·ÏÎµÏÎ¯Î± (Ï.Ï. tcp, udp) ÎºÎ±Î¹ ÏÏÎ·Îœ ÏÏÏÏÎ± ÏÎ¿Ï
- Î±ÎºÎ¿ÏÎµÎ¹.'
-		),
-		'mynodes_services_edit' => array(
-			'title' => 'ÎÏÎµÎŸÎµÏÎ³Î±ÏÎ¯Î± Ï
-ÏÎ·ÏÎµÏÎ¯Î±Ï',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎµÏÎµÎŸÎµÏÎ³Î±ÏÏÎµÎ¯ÏÎµ ÎŒÎ¯Î± Ï
-ÏÎ·ÏÎµÏÎ¯Î± ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
- ÏÎ±Ï. Î€Î¿ ÏÎµÎŽÎ¯Î¿ ÎÎ¹ÎµÏÎžÏ
-ÎœÏÎ· IP ÏÎµÏÎ¹Î­ÏÎµÎ¹ ÏÎ»ÎµÏ ÏÎ¹Ï ÎŽÎ¹ÎµÏ
-ÎžÏÎœÏÎµÎ¹Ï ÏÎ¿Ï
- Î­ÏÎµÏÎµ ÎŽÎ·Î»ÏÏÎµÎ¹ ÎºÎ±Î¹ ÏÏÎ­ÏÎµÎ¹ ÎœÎ± ÎºÎ±ÎžÎ¿ÏÎ¯Î¶ÎµÎ¹ ÏÎ·Îœ IP ÏÏÎ·Îœ Î¿ÏÎ¿Î¯Î± ÏÏÎ­ÏÎµÎ¹ (Î±ÎºÎ¿ÏÎµÎ¹) Î· Ï
-ÏÎ·ÏÎµÏÎ¯Î±. Î€Î¿ ÏÎµÎŽÎ¯Î¿ URL, ÏÏÎ­ÏÎµÎ¹ ÎœÎ± ÏÎµÏÎ¹Î­ÏÎµÎ¹ ÏÎ¿ link Î³Î¹Î± ÏÎ·Îœ Ï
-ÏÎ·ÏÎµÏÎ¯Î± Î® ÏÎ¿ link Î³Î¹Î± ÎºÎ¬ÏÎ¿Î¹Î± ÏÎµÎ»Î¯ÎŽÎ± ÏÎ¿Ï
- Î±ÎœÎ±ÏÎ­ÏÎµÏÎ±Î¹ ÏÏÎ·Îœ Ï
-ÏÎ·ÏÎµÏÎ¯Î±. Î€Î­Î»Î¿Ï ÏÎ± ÏÎµÎŽÎ¯Î± Î ÏÏÏÏÎºÎ¿Î»Î»Î¿ ÎºÎ±Î¹ Î ÏÏÏÎ±, ÏÏÎ­ÏÎµÎ¹ ÎœÎ± Î±ÎœÎ±ÏÎ­ÏÎ¿ÎœÏÎ±Î¹ ÏÏÎ¿ ÏÏÏÏÏÎºÎ¿Î»Î»Î¿ ÏÎ¿Ï
- ÏÏÎ·ÏÎ¹ÎŒÎ¿ÏÎ¿Î¹ÎµÎ¯ Î· Ï
-ÏÎ·ÏÎµÏÎ¯Î± (Ï.Ï. tcp, udp) ÎºÎ±Î¹ ÏÏÎ·Îœ ÏÏÏÏÎ± ÏÎ¿Ï
- Î±ÎºÎ¿ÏÎµÎ¹.'
-		),
-		
 		'nodes_search' => array(
-			'title' => 'ÎÏÎŒÎ²Î¿Î¹ ÎŽÎ¹ÎºÏÏÎ¿Ï
-',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± Î±ÎœÎ±Î¶Î·ÏÎ®ÏÎµÏÎµ ÎºÏÎŒÎ²Î¿Ï
-Ï ÏÎ¿Ï
- ÎŽÎ¹ÎºÏÏÎ¿Ï
- ÎŒÎµ Î²Î¬ÏÎ· ÏÎ± ÏÎµÎŽÎ¯Î± ÏÎ¿Ï
- ÏÏÎ¿ÏÏÎ­ÏÎ¿ÎœÏÎ±Î¹. Î€Î± Î±ÏÎ¿ÏÎµÎ»Î­ÏÎŒÎ±ÏÎ± ÎµÎŒÏÎ±ÎœÎ¯Î¶Î¿ÎœÏÎ±Î¹ ÏÏÎ¿Îœ ÏÎ±ÏÎ±ÎºÎ¬ÏÏ ÏÎ¯ÎœÎ±ÎºÎ±. ÎÏÎ¯ÏÎ·Ï, ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŽÎ¹Î±Î»Î­ÎŸÎµÏÎµ ÎºÎ¬ÏÎ¿Î¹Î¿Îœ ÎºÏÎŒÎ²Î¿ Î³Î¹Î± ÏÏÎ¿Î²Î¿Î»Î® ÏÏÎœ ÏÏÎ¿Î¹ÏÎµÎ¯ÏÎœ ÏÎ¿Ï
-.'
-		),
-		'ranges_allocation' => array(
-			'title' => 'ÎÎ±ÏÎ±ÎœÎ¿ÎŒÎ® ÎŽÎ¹ÎµÏ
-ÎžÏÎœÏÎµÏÎœ IP',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŽÎµÎ¯ÏÎµ Î±ÎœÎ±Î»Ï
-ÏÎ¹ÎºÎ¬ ÏÎ¿ ÏÏÎœÎ¿Î»Î¿ ÏÏÎœ ÎŽÎ¹ÎµÏ
-ÎžÏÎœÏÎµÏÎœ ÏÎ¿Ï
- Î­ÏÎ¿Ï
-Îœ ÎŽÎµÏÎŒÎµÏ
-ÏÎµÎ¯ Î³Î¹Î± ÎºÎ¬ÎžÎµ ÎŽÎ®ÎŒÎ¿.'
-		),
-		'ranges_search' => array(
-			'title' => 'ÎÎœÎ±Î¶Î®ÏÎ·ÏÎ· IP C-Classes',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± Î±ÎœÎ±Î¶Î·ÏÎ®ÏÎµÏÎµ ÏÎ± IP C-Classes ÏÎ¿Ï
- ÎŽÎ¹ÎºÏÏÎ¿Ï
- ÏÎ¿Ï
- Î­ÏÎ¿Ï
-Îœ ÎŽÎµÏÎŒÎµÏ
-ÏÎµÎ¯ Î±ÏÏ ÎºÏÎŒÎ²Î¿Ï
-Ï. Î€Î± Î±ÏÎ¿ÏÎµÎ»Î­ÏÎŒÎ±ÏÎ± ÎµÎŒÏÎ±ÎœÎ¯Î¶Î¿ÎœÏÎ±Î¹ ÏÏÎ¿Îœ ÏÎ±ÏÎ±ÎºÎ¬ÏÏ ÏÎ¯ÎœÎ±ÎºÎ±. ÎÏÎ¯ÏÎ·Ï, ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎŽÎ¹Î±Î»Î­ÎŸÎµÏÎµ ÎºÎ¬ÏÎ¿Î¹Î¿Îœ ÎºÏÎŒÎ²Î¿ Î³Î¹Î± ÏÏÎ¿Î²Î¿Î»Î® ÏÏÎœ ÏÏÎ¿Î¹ÏÎµÎ¯ÏÎœ ÏÎ¿Ï
-.'
-		),
-		'users_restore_password_recover' => array(
-			'title' => 'ÎÎœÎ¬ÎºÏÎ·ÏÎ· ÎºÏÎŽÎ¹ÎºÎ¿Ï',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± Î±ÎœÎ±ÎºÏÎ®ÏÎµÏÎµ ÏÎ¿Îœ ÏÎ±ÎŒÎ­ÎœÎ¿ ÎºÏÎŽÎ¹ÎºÏ ÏÏÏÏÎ²Î±ÏÎ·Ï Î³Î¹Î± ÏÎ¿Îœ Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÏ ÏÎ±Ï. ÎÎ¹ÏÎ¬Î³ÎµÏÎµ ÏÎ± Î±ÎºÏÎ»Î¿Ï
-ÎžÎ± ÏÎµÎŽÎ¯Î± ÏÏÎ· ÏÏÏÎŒÎ± ÎºÎ±Î¹ ÎžÎ± Î»Î¬Î²ÎµÏÎµ e-mail ÎŒÎµ Î±ÎœÎ±Î»Ï
-ÏÎ¹ÎºÎ­Ï Î¿ÎŽÎ·Î³Î¯ÎµÏ.'
-		),
-		'users_restore_password_change' => array(
-			'title' => 'ÎÎ»Î»Î±Î³Î® ÎºÏÎŽÎ¹ÎºÎ¿Ï ÏÏÏÏÎ²Î±ÏÎ·Ï',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± Î±Î»Î»Î¬ÎŸÎµÏÎµ ÏÎ¿Îœ ÏÎ±ÎŒÎ­ÎœÎ¿ ÎºÏÎŽÎ¹ÎºÏ ÏÏÏÏÎ²Î±ÏÎ·Ï ÏÎ¿Ï
- Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï ÏÎ±Ï. ÎÏÏÏÎµ Î­ÎœÎ±Îœ ÎœÎ­Î¿ ÎºÏÎŽÎ¹ÎºÏ ÏÏÏÏÎ²Î±ÏÎ·Ï ÏÏÎ· ÏÏÏÎŒÎ± ÏÎ¿Ï
- Î±ÎºÎ¿Î»Î¿Ï
-ÎžÎµÎ¯ ÎºÎ±Î¹ ÎžÎ± ÎŒÏÎ¿ÏÎ­ÏÎµÏÎµ Î¬ÎŒÎµÏÎ± ÎœÎ± ÏÏÎ±Î³ÎŒÎ±ÏÎ¿ÏÎ¿Î¹Î®ÏÎµÏÎµ ÏÏÎœÎŽÎµÏÎ· ÏÏÎ¿Îœ Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÏ ÏÎ±Ï ÎŒÎµ ÏÎ¿Îœ ÎœÎ­Î¿ ÎºÏÎŽÎ¹ÎºÏ ÏÏÏÏÎ²Î±ÏÎ·Ï.'
-		),
-		'users_add' => array(
-			'title' => 'ÎÎ³Î³ÏÎ±ÏÎ® ÎœÎ­Î¿Ï
- ÏÏÎ®ÏÏÎ·',
-			'body' => 'ÎÎ·Î»ÏÏÏÎµ ÏÎ± ÏÏÎ¿Î¹ÏÎµÎ¯Î± ÏÎ±Ï ÏÏÎ· ÏÏÏÎŒÎ± ÏÎ¿Ï
- Î±ÎºÎ¿Î»Î¿Ï
-ÎžÎµÎ¯. ÎÎ¹Î± ÏÎ·Îœ ÎµÏÎ¹Î²ÎµÎ²Î±Î¯ÏÏÎ· ÏÎ¿Ï
- e-mail ÏÎ±Ï ÎºÎ±Î¹ ÏÎ·Îœ ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ· ÏÎ¿Ï
- Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÎ¿Ï ÏÎ±Ï, ÎžÎ± ÏÎ±Ï Î±ÏÎ¿ÏÏÎ±Î»ÎµÎ¯  e-mail ÎŒÎµ Î±ÎœÎ±Î»Ï
-ÏÎ¹ÎºÎ­Ï Î¿ÎŽÎ·Î³Î¯ÎµÏ ÏÏÎ· ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ® ÏÎ±Ï. ÎÎ­ÏÏÎ¹ ÏÎ·Îœ ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ® ÏÎ¿Ï
-, Î¿ Î»Î¿Î³Î±ÏÎ¹Î±ÏÎŒÏÏ ÏÎ±Ï ÎžÎ± ÏÎ±ÏÎ±ÎŒÎµÎ¯ÎœÎµÎ¹ Î±ÎœÎµÎœÎµÏÎ³ÏÏ ÏÏÏÎ¯Ï ÎŽÏ
-ÎœÎ±ÏÏÏÎ·ÏÎ± ÏÏÎœÎŽÎµÏÎ·Ï ÏÏÎ¿ ÏÏÏÏÎ·ÎŒÎ±.'
-		),
-		'users_edit' => array(
-			'title' => 'Î ÏÎ¿ÏÎ¯Î» ÏÏÎ®ÏÏÎ·',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± ÎµÏÎµÎŸÎµÏÎ³Î±ÏÏÎµÎ¯ÏÎµ ÏÎ± ÏÏÎ¿Î¹ÏÎµÎ¯Î± ÏÎ±Ï. Î£Îµ ÏÎµÏÎ¯ÏÏÏÏÎ· Î±Î»Î»Î±Î³Î®Ï ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ·Ï e-mail ÎžÎ± ÏÎ±Ï Î±ÏÎ¿ÏÏÎ±Î»ÎµÎ¯ ÎŒÎ®ÎœÏ
-ÎŒÎ± e-mail ÎŒÎµ Î±ÎœÎ±Î»Ï
-ÏÎ¹ÎºÎ­Ï Î¿ÎŽÎ·Î³Î¯ÎµÏ ÎµÎœÎµÏÎ³Î¿ÏÎ¿Î¯Î·ÏÎ·Ï ÏÏÎ· ÎœÎ­Î± ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ· ÏÎ¿Ï
- ÎžÎ± ÎŽÎ·Î»ÏÏÎµÏÎµ.'
-		),
-		'node_contact' => array(
-			'title' => 'ÎÏÎ¿ÏÏÎ¿Î»Î® ÎŒÎ·ÎœÏÎŒÎ±ÏÎ¿Ï',
-			'body' => 'Î£ÏÎ· ÏÎµÎ»Î¯ÎŽÎ± Î±Ï
-ÏÎ® ÎŒÏÎ¿ÏÎµÎ¯ÏÎµ ÎœÎ± Î±ÏÎ¿ÏÏÎµÎ¯Î»ÎµÏÎµ ÎŒÎ®ÎœÏ
-ÎŒÎ± ÏÏÎ¿Ï ÏÎ¿Îœ ÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ® Î® ÎºÎ±Î¹ ÏÎ¿Ï
-Ï ÏÏ
-ÎœÎŽÎ¹Î±ÏÎµÎ¹ÏÎ¹ÏÏÎ­Ï ÏÎ¿Ï
- ÎºÏÎŒÎ²Î¿Ï
-. Î Î·Î»ÎµÎºÏÏÎ¿ÎœÎ¹ÎºÎ® ÏÎ±Ï ÎŽÎ¹ÎµÏÎžÏ
-ÎœÏÎ· ÎžÎ± ÎµÎ¯ÎœÎ±Î¹ ÎŽÎ¹Î±ÎžÎ­ÏÎ¹ÎŒÎ· ÏÏÎ¿ Î±ÏÎµÏÏÎ±Î»ÎŒÎ­ÎœÎ¿ ÎŒÎ®ÎœÏ
-ÎŒÎ± ÏÏÏÎµ ÎœÎ± ÎµÎ¯ÎœÎ±Î¹ ÎµÏÎ¹ÎºÏÎ® Î· ÏÎ¹ÎžÎ±ÎœÎ® Î±ÏÎ¬ÎœÏÎ·ÏÎ· ÏÏÎ¿ ÎŒÎ®ÎœÏ
-ÎŒÎ¬ ÏÎ±Ï Î±ÏÏ ÏÎ¿Ï
-Ï ÏÎ±ÏÎ±Î»Î®ÏÏÎµÏ. ÎÎ¹ Î·Î»ÎµÎºÏÏÎ¿ÎœÎ¹ÎºÎ­Ï ÎŽÎ¹ÎµÏ
-ÎžÏÎœÏÎµÎ¹Ï ÏÏÎœ ÏÎ±ÏÎ±Î»Î·ÏÏÏÎœ ÎžÎ± Î±ÏÎ¿ÎºÎ±Î»Ï
-ÏÎžÎ¿ÏÎœ ÎºÎ±ÏÎ¬ ÏÎ·Îœ Î±ÏÎ¬ÎœÏÎ·ÏÎ· ÏÎ¿Ï
- ÎŒÎ·ÎœÏÎŒÎ±ÏÎ¿Ï. Î ÏÎ¹ÎžÎ±ÎœÎ® Î±ÏÎ¬ÎœÏÎ·ÏÎ· ÏÏÎ¿ ÎŒÎ®ÎœÏ
-ÎŒÎ¬ ÏÎ±Ï ÎžÎ± ÏÎ±Ï Î±ÏÎ¿ÏÏÎ±Î»ÎµÎ¯ ÏÏÎ¿ Î·Î»ÎµÎºÏÏÎ¿ÎœÎ¹ÎºÏ ÏÎ±Ï ÏÎ±ÏÏ
-ÎŽÏÎ¿ÎŒÎµÎ¯Î¿.'
+			'title' => 'Êüìâïé äéêôýïõ',
+			'body' => 'Óôç óåëßäá áõôÞ ìðïñåßôå íá áíáæçôÞóåôå êüìâïõò ôïõ äéêôýïõ ìå âÜóç ôá ðåäßá ðïõ ðñïóöÝñïíôáé. Ôá áðïôåëÝóìáôá åìöáíßæïíôáé óôïí ðáñáêÜôù ðßíáêá. Åðßóçò, ìðïñåßôå íá äéáëÝîåôå êÜðïéïí êüìâï ãéá ðñïâïëÞ ôùí óôïé÷åßùí ôïõ.'
 		)
-	),
-	
-	'languages' => array(
-		'greek' => 'ÎÎ»Î»Î·ÎœÎ¹ÎºÎ¬',
-		'english' => 'ÎÎ³Î³Î»Î¹ÎºÎ¬'
 	)
 
Index: /unk/globals/language/english.php
===================================================================
--- /trunk/globals/language/english.php (revision 168)
+++  (revision )
@@ -1,688 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-setlocale(LC_ALL, 'en', 'english');
-
-$lang = array(
-
-	'charset' => 'utf-8',
-	'iso639' => 'en',
-	'mysql_charset' => 'utf8',
-
-	'site_title' => "WiND - Wireless Nodes Database",
-	'title_small' => "WiND",	
-
-	'forward_text' => "Click here to go directly to the next page...",
-	
-	'delete_request' => "Delete Request",
-	
-	'delete' => "Delete",
-	'home' => "Home",
-	'edit_profile' => "User profile",
-	'edit_node' => "Node edit",
-	'log_out' => "Log out",
-	'login' => "Log in",
-	'register' => "Register",
-	'password_recover' => "Recover Password",
-	'password_change' => "Change Password",
-	'all_nodes' => "Network Nodes",
-	'all_zones' => "DNS Zones",
-	'all_ranges' => "IP Addressing",
-	'user_info' => "User info",
-	'users_info' => "Users info",
-	'username' => "Username",
-	'registered_since' => "Registered",
-	'name' => "First Name",
-	'surname' => "Last Name",
-	'last_visit' => "Last visit",
-	'mynodes' => "My nodes",
-	'node_add' => "Add node",
-	'admin_panel' => "Administration",
-	'nodes' => "Nodes",
-	'users' => "Users",
-	'hostmaster_panel' => "Hostmaster",
-	'ip_ranges' => "IP C-Classes",
-	'dns_zones' => "DNS zones",
-	'dns_nameservers' => "Nameservers (NS)",
-	'waiting' => "waiting",
-	'for_deletion' => "to delete",
-	'welcome' => "Welcome",
-	'gearth_download' => "Google Earth file download",
-	'google_earth' => "Google Earth",
-	'nodes_search' => "Search for nodes",
-	'nodes_found' => "Nodes found",
-	'users_search' => "Search for users",
-	'users_found' => "Users found",
-	'dns_zones_search' => "Search for DNS zones",
-	'dns_zones_found' => "DNS zones found",
-	'not_found' => "No results found",	
-	'all_services' => "Network services",
-	'active_services' => "Active services",
-	'services_search' => "Search services",
-	'services_found' => "Services found",
-	'services_categories' => "Services categories",
-	'services_categories_add' => "Add service category",
-	'services_categories_edit' => "Edit service category",
-	'services_edit' => "Edit service",
-	'services_add' => "Add service",
-	'services' => "Services",
-	
-	'user_add' => "New user",
-	'user_edit' => "User profile",
-	'node' => "Node",
-	'node_info' => "Node info",
-	'node_view' => "Node view",
-	'node_delete' => "Delete node",
-	'ip_range_request' => "IP C-Class request",
-	'ip_range_request_for_node' => "IP C-Class request for node",
-	'dnszone_request_forward' => "DNS zone request (forward)",
-	'dnszone_request_reverse' => "DNS zone requset (reverse)",
-	'dnszone_edit' => "Edit DNS zone",
-	'nameserver_add' => "Add nameserver (NS)",
-	'nameserver_edit' => "Edit nameserver (NS)",
-	'link_edit' => "Edit link",
-	'link_add' => "Add link",
-	'links' => "Links",
-	'ap' => "Access Point",
-	'aps' => "Access Points",
-	'aps_search' => "Search for Access Points",
-	'aps_found' => "Access Points found",
-	'subnet_edit' => "Edit subnet",
-	'subnet_add' => "Add subnet",
-	'subnets' => "Subnets",
-	'ip_address_edit' => "Edit IP address",
-	'ip_address_add' => "Add IP address",
-	'ip_addresses' => "IP addresses",
-	'myview' => "Node's View",
-	'ip_ranges_search' => "Search for IP C-Classes",
-	'ip_ranges_found' => "IP C-Classes found",
-	'dns_nameservers_search' => "Search for DNS nameservers",
-	'dns_nameservers_found' => "DNS nameservers found",
-	'ip_range_edit' => "Edit IP C-Class",
-	'send_mail' => "Send message",
-	'to' => "To",
-	'subject' => "Subject",
-	'body' => "Message",
-	'mailto_all' => "Administrator & Coadministrators",
-	'mailto_owner' => "Administrator",
-	'mailto_custom' => "Other",
-	'ip_ranges_allocation' => "IP ranges allocation",
-	'ip_ranges_search' => "Search for IP C-Classes",
-	'change' => "Change",
-	'submit' => "OK",
-	'add' => "Add",
-	'remove' => "Remove",
-	'update' => "Update",
-	'search' => "Search",
-	'plot' => "Line of sight (LOS)",
-	'mynetwork' => "Node subnetwork",
-	'new_window' => "New Window",
-	'node_plot_link' => "Line of sight (LOS) with other nodes",
-	'nodes_plot_link' => "Line of sight (LOS) of nodes",
-	'nodes_plot_link_info' => "Choose above the nodes for which you want to plot the line of sight (LOS).",
-	'distance' => "Distance",
-	'azimuth' => "Azimuth",
-	'elevation' => "Elevation",
-	'fsl' => "Free space loss",
-	'tilt' => "Tilt",
-	'clients' => "Clients",
-	'compare_equal' => "Equal to",
-	'compare_greater' => "Greater than",
-	'compare_less' => "Less than",
-	'compare_greater_equal' => "Greater than or equal to",
-	'compare_less_equal' => "Less than or equal to",
-	'compare_starts_with' => "Starts from",
-	'compare_ends_with' => "Ends at",
-	'compare_contains' => "Contains",
-	'zone_forward' => "Forward DNS zone",
-	'zone_reverse' => "Reverse DNS zone",
-	'contact' => "Contact",
-	'contact_node' => "Contact node administrator(s)",
-	'from' => "From",
-	'send' => "Send",
-	'node_page' => "Node Page",
-	'yes' => "Yes",
-	'no' => "No",
-	'backbone' => "Backbone",
-	'unlinked' => "Not linked",
-	'find_coordinates' => "Find coordinates",
-	'select_the_coordinates' => "Select coordinates",
-	'quick_search' => "Quick Search",
-	'statistics' => "Statistics",
-	'active_nodes' => "Active nodes",
-	'backbone_nodes' => "Backbone nodes",
-	'null' => "(null)",
-	'default' => 'Default',
-	'logged' => 'Logged in as',
-	'regions' => 'Districts',
-	'region_add' => 'Add district',
-	'region_edit' => 'Edit district',
-	'areas' => 'Areas',
-	'area_add' => 'Add area',
-	'area_edit' => 'Edit area',
-
-	'db' => array(
-		'users__username' => 'User Name',
-		'users__password' => 'Password',
-		'users__password_c' => 'Confirm password',
-		'users__surname' => 'Last Name',
-		'users__name' => 'First Name',
-		'users__email' => 'E-mail',
-		'users__phone' => 'Phone Number',
-		'users__info' => 'Info',
-		'users__status' => 'Registration',
-		'users__status-pending' => 'Pending',
-		'users__status-activated' => 'Activated',
-		'users__language' => 'Language',
-		'fullname' => 'Full Name',
-		
-		'nodes__id' => 'Node ID',
-		'nodes__name' => 'Node name',
-		'nodes__date_in' => 'Created',
-		'nodes__area_id' => 'Area',
-		'nodes__latitude' => 'Geographical latitude',
-		'nodes__longitude' => 'Geographical longitude',
-		'nodes__elevation' => 'Building height (m)',
-		'nodes__info' => 'Info',
-		'nodes__name_ns' => 'Nameserver prefix',
-		
-		'users_nodes__owner' => 'Privilege',
-		'users_nodes__owner-Y' => 'Administrator',
-		'users_nodes__owner-N' => 'Coadministrator',
-		'users_nodes__user_id' => 'Coadministrators',
-		'users_nodes__node_id' => 'Nodes coadministration',
-		'user_id_owner' => 'Administrator',
-		'node_id_owner' => 'Nodes administration',
-
-		'areas__id' => 'Area',
-		'areas__region_id' => 'District',
-		'areas__name' => 'Area',
-		'areas__ip_start' => 'IP from',
-		'areas__ip_end' => 'IP up to',
-		'areas__info' => 'Info',
-
-		'regions__id' => 'District',
-		'regions__name' => 'District',
-		'regions__ip_start' => 'IP from',
-		'regions__ip_end' => 'IP up to',
-		'regions__info' => 'Info',
-
-		'ip_ranges__date_in' => 'Date',
-		'ip_ranges__ip_start' => 'From',
-		'ip_ranges__ip_end' => 'Up to',
-		'ip_ranges__status' => 'Status',
-		'ip_ranges__status-waiting' => 'Waiting check',
-		'ip_ranges__status-pending' => 'Pending',
-		'ip_ranges__status-active' => 'Active',
-		'ip_ranges__status-rejected' => 'Rejected',
-		'ip_ranges__status-invalid' => 'Invalid',
-		'ip_ranges__info' => 'Info',
-		'ip_ranges__delete_req' => 'Delete request',
-		'ip_ranges__delete_req-Y' => 'YES',
-		'ip_ranges__delete_req-N' => 'NO',
-		'ip_range' => 'C Class',
-		'ip' => 'IP address',
-
-		'dns_zones__date_in' => 'Date',
-		'dns_zones__name' => 'Zone name',
-		'dns_zones__type' => 'Zone type',
-		'dns_zones__type-forward' => 'Forward',
-		'dns_zones__type-reverse' => 'Reverse',
-		'dns_zones__status' => 'Status',
-		'dns_zones__status-waiting' => 'Waiting check',
-		'dns_zones__status-pending' => 'Pending',
-		'dns_zones__status-active' => 'Active',
-		'dns_zones__status-rejected' => 'Rejected',
-		'dns_zones__status-invalid' => 'Invalid',
-		'dns_zones__info' => 'Info',
-		'dns_zones__delete_req' => 'Delete Request',
-		'dns_zones__delete_req-Y' => 'YES',
-		'dns_zones__delete_req-N' => 'NO',
-
-		'schema' => "Schema",
-
-		'dns_zones_nameservers__nameserver_id' => 'Responsible Nameservers (NS)',
-
-		'dns_nameservers__date_in' => 'Date',
-		'dns_nameservers__name' => 'Nameserver name',
-		'dns_nameservers__delete_req' => 'Delete request',
-		'dns_nameservers__delete_req-Y' => 'YES',
-		'dns_nameservers__delete_req-N' => 'NO',
-		'dns_nameservers__ip' => 'IP address',
-		'dns_nameservers__status' => 'Status',
-		'dns_nameservers__status-waiting' => 'Waiting check',
-		'dns_nameservers__status-pending' => 'Pending',
-		'dns_nameservers__status-active' => 'Active',
-		'dns_nameservers__status-rejected' => 'Rejected',
-		'dns_nameservers__status-invalid' => 'Invalid',
-
-		'links__date_in' => 'Created',
-		'links__peer_node_id' => 'Peer node',
-		'links__peer_ap_id' => 'Access point',
-		'links__type' => 'Link type',
-		'links__type-p2p' => 'Backbone',
-		'links__type-ap' => 'Access Point',
-		'links__type-client' => 'Client',
-		'links__ssid' => 'SSID',
-		'links__protocol' => 'Protocol',
-		'links__protocol-other' => 'Other',
-		'links__channel' => 'Channel',
-		'links__status' => 'Status',
-		'links__status-active' => 'Active',
-		'links__status-inactive' => 'Inactive',
-		'links__equipment' => 'Equipment',
-		'links__info' => 'Info',
-		'peer' => 'Peer',
-		'total_active_peers' => 'Active peers',
-		'total_active_clients' => 'Active clients',
-		'has_ap' => 'Has Access Point',
-
-		'subnets__ip_start' => 'From',
-		'subnets__ip_end' => 'Up to',
-		'subnets__type' => 'Subnet type',
-		'subnets__type-local' => 'Home LAN',
-		'subnets__type-link' => 'Link',
-		'subnets__type-client' => 'Client of Access Point',
-		'subnets__link_id' => 'Link',
-		'subnets__client_node_id' => 'Client',
-		'subnet' => 'Subnet',
-
-		'ip_addresses__date_in' => 'Added',
-		'ip_addresses__hostname' => 'Hostname',
-		'ip_addresses__ip' => 'IP address',
-		'ip_addresses__mac' => 'MAC address',
-		'ip_addresses__type' => 'Device type',
-		'ip_addresses__type-router' => 'Router',
-		'ip_addresses__type-server' => 'Server',
-		'ip_addresses__type-pc' => 'PC',
-		'ip_addresses__type-wireless-bridge' => 'Wireless Device',
-		'ip_addresses__type-voip' => 'VoIP Device',
-		'ip_addresses__type-camera' => 'Web camera',
-		'ip_addresses__type-other' => 'Other',
-		'ip_addresses__always_on' => 'Always on-line (24/7)',
-		'ip_addresses__always_on-Y' => 'Yes',
-		'ip_addresses__always_on-N' => 'No',
-		'ip_addresses__info' => 'Info',
-
-		'services__title' => 'Category',
-		'services__protocol' => 'Protocol',
-		'services__protocol-tcp' => 'TCP',
-		'services__protocol-udp' => 'UDP',
-		'services__port' => 'Port',
-
-		'nodes_services__node_id' => 'Node',
-		'nodes_services__service_id' => 'Category',
-		'nodes_services__date_in' => 'Added',
-		'nodes_services__ip_id' => 'IP Address',
-		'nodes_services__url' => 'URL',
-		'nodes_services__status' => 'Status',
-		'nodes_services__status-active' => 'Active',
-		'nodes_services__status-inactive' => 'Inactive',
-		'nodes_services__info' => 'Info',
-		'nodes_services__protocol' => 'Protocol',
-		'nodes_services__protocol-tcp' => 'TCP',
-		'nodes_services__protocol-udp' => 'UDP',
-		'nodes_services__port' => 'Port',
-		
-		'photos__date_in' => 'Date',
-		'photos__view_point' => 'Aspect',
-		'photos__view_point-N' => 'North',
-		'photos__view_point-NE' => 'Northeast',
-		'photos__view_point-E' => 'East',
-		'photos__view_point-SE' => 'Southeast',
-		'photos__view_point-S' => 'South',
-		'photos__view_point-SW' => 'Southwest',
-		'photos__view_point-W' => 'West',
-		'photos__view_point-NW' => 'Northwest',
-		'photos__view_point-PANORAMIC' => 'Panoramic',
-		'photos__info' => 'Info',
-		'photo' => 'Photo',
-
-		'rights__type' => 'Privilege',
-		'rights__type-blocked' => 'Blocked',
-		'rights__type-admin' => 'Administrator',
-		'rights__type-hostmaster' => 'Hostmaster'
-	),
-	
-	'message' => array(
-		'info' => array(
-			'insert_success' => array(
-				'title' => "Input",
-				'body' => "Input was successful."
-			),
-			'edit_success' => array(
-				'title' => "Modify",
-				'body' => "Modification was successful."
-			),
-			'delete_success' => array(
-				'title' => "Delete",
-				'body' => "Deletion was successful."
-			),
-			'update_success' => array(
-				'title' => "Data update",
-				'body' => "Data were updated successfully."
-			),
-			'request_range_success' => array(
-				'title' => "IP C-Class request",
-				'body' => "Your request for IP C-Class was successfully queued. Soon, the Hostmaster team will reply to your e-mail address. You can watch the status of your IP C-Class request in your node's page."
-			),
-			'request_dnszone_success' => array(
-				'title' => "DNS zone request",
-				'body' => "Your request for DNS zone was successfully queued. Soon, the Hostmaster team will reply to your e-mail address. You can watch the status of your DNS zone request in your node's page."
-			),
-			'request_dnsnameserver_success' => array(
-				'title' => "DNS nameserver request",
-				'body' => "Your request for DNS nameserver was successfully queued. Soon, the Hostmaster team will check your request. You can watch the status of your DNS nameserver request in your node's page."
-			),
-			'signup_success' => array(
-				'title' => "Registration was completed",
-				'body' => "Your registration was completed successfully. To activate your account, click at the URL that has been sent to your e-mail address."
-			),
-			'login_success' => array(
-				'title' => "Login Successful",
-				'body' => "You were successfully identified."
-			),
-			'restore_success' => array(
-				'title' => "Password recovery was completed",
-				'body' => "The recovery of your password was successful. To restore your password, click at the URL that has been sent to your e-mail address."
-			),
-			'password_restored' => array(
-				'title' => "Password change",
-				'body' => "You password has been changed successfully. You may now login with your new password."
-			),	
-			'logout_success' => array(
-				'title' => "Logout",
-				'body' => "You have logged out the system."
-			),
-			'no_privilege' => array(
-				'title' => "Not authorized",
-				'body' => "You are not authorized to view this page."
-			),
-			'activation_required' => array(
-				'title' => "Account activation",
-				'body' => "You account has not been activated. To activate your account, click at the activation URL that has been sent to your e-mail address."
-			),
-			'activation_success' => array(
-				'title' => "Account activation",
-				'body' => "Your account was activated successfully. You may now login to the system."
-			),
-			'activation_failed' => array(
-				'title' => "Account activation",
-				'body' => "The activation of your account failed."
-			),
-			'message_sent' => array(
-				'title' => "Message was sent",
-				'body' => "Your message was sent successfully. Possible answer will be send by the administrators of the node, at your e-mail account defined at your profile."
-			),
-		),
-		'error' => array(
-			'database_error' => array(
-				'title' => "Database error",
-				'body' => "A database error has occured. Please report the problem to the administrator(s)."
-			),
-			'not_logged_in' => array(
-				'title' => "Not logged in",
-				'body' => "This function requires that you have logged in the system. If you have not signed up to the system, you may do so in the registration section."
-			),
-			'login_failed' => array(
-				'title' => "Login failed",
-				'body' => "Login information is incorrect. Check that your username and/or password are correct."
-			),
-			'password_not_match' => array(
-				'title' => "Password error",
-				'body' => "You have not supplied the same password in both two fields."
-			),
-			'password_not_valid' => array(
-				'title' => "Password error",
-				'body' => "Your password must not be empty."
-			),
-			'fields_required' => array(
-				'title' => "Required",
-				'body' => "It is required that you fill in the following fields:\n##fields_required##"
-			),
-			'duplicate_entry' => array(
-				'title' => "Your record already exists",
-				'body' => "The following entries already exist:\n##duplicate_entries##"
-			),
-			'upload_file_failed' => array(
-				'title' => "Upload file",
-				'body' => "Uploading your file failed. For more info, contact with the system administrator(s)."
-			),
-			'nodes_field_name' => array(
-				'title' => 'Change node name',
-				'body' => 'Changing the node name is not allowed.'
-			),
-			'nodes_field_area_id' => array(
-				'title' => 'Change node area',
-				'body' => 'Changing the node area is not allowed. Your IP C-Class has been assigned to you according to the area of your node. For more info, contact with the hostmaster team.'
-			),
-			'nodes_no_area_id' => array(
-				'title' => 'Area error',
-				'body' => 'You have not filled in the area of your node. In order to have an IP C-Class assigned to your node, the area of your node must be filled in your node\'s data.'
-			),
-			'subnet_backbone_no_ip_range' => array(
-				'title' => 'Add subnet of peer link',
-				'body' => 'This subnet does not belong to any of the IP C-Classes that have been assigned to your node. If this subnet belongs to the IP C-Class of the peer node, it should be submitted by the adminstrator(s) of the peer node.'
-			),
-			'schema_files_missing' => array(
-				'title' => 'Schema files are missing',
-				'body' => 'Please, contact with the system administrator(s) to fix the problem.'
-			),
-			'gmap_key_failed' => array(
-				'title' => 'GMAP key is missing',
-				'body' => 'The activation key for Google Maps is missing. Please, contact with the system administrator(s) to fix the problem.'
-			),
-			'node_not_found' => array(
-				'title' => 'The node was not found',
-				'body' => 'The node you are looking for does not exist. Check that you supplied the correct data and try again. If you are sure that you submit the correct data, it is likely that the node has been deleted or that the user has not activated his/her account yet.'
-			),
-			'generic' => array(
-				'title' => "General error",
-				'body' => "A general error occured. Please, report this to the system administrator(s)."
-			)
-		)
-	),
-		
-	'email' => array(
-		'user_activation' => array(
-			'subject' => "Account activation: ##username##",
-			'body' => "WiND - Wireless Nodes Database\n------------------------------------------\nAccount Activation ##username##\n\nClick here: ##act_link##"
-		),
-
-		'user_restore' => array(
-			'subject' => "Password recovery: ##username##",
-			'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nPassword recovery for the account ##username##\n\nClick here: ##act_link##"
-		),
-
-		'user_change_email' => array(
-			'subject' => "E-mail address change: ##username##",
-			'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nE-mail address change for account ##username##\n\nClick here: ##act_link##"
-		),
-
-		'node_contact' => array(
-			'subject_prefix' => "WiND: ",
-			'subject_suffix' => "",
-			'body_prefix' => "Contacting administrators of node ##node_name## (###node_id##).\nThe user ##username## has sent to you the following message\nthrough the application WiND - Wireless Nodes Database:\n-------------------------------------------------------------------\n\n",
-			'body_suffix' => "\n\n-------------------------------------------------------------------\nReply to this message to contact with the sender.\nWiND - Wireless Nodes Database\n-------------------------------------------------------------------"
-		),
-
-		'range' => array(
-			'pending' => array(
-				'subject' => "##range##: Pending",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nNode: ##node_name## (###node_id##)\n\nThe above IP C-Class has been queued with status 'pending'.\n\nRepresenting the WiND Hostmaster team,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
-			),
-			'active' => array(
-				'subject' => "##range##: Activated",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nNode: ##node_name## (###node_id##)\n\nThe above IP C-Class has been activated.\n\nRepresenting the WiND Hostmaster team,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
-			),
-			'rejected' => array(
-				'subject' => "##range##: Rejected",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nNode: ##node_name## (###node_id##)\n\nThe above IP C-Class has been rejected.\n\nRepresenting the WiND Hostmaster team,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
-			),
-			'invalid' => array(
-				'subject' => "##range##: Invalid",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nIP C-Class: ##range##\nNode: ##node_name## (###node_id##)\n\nThe above IP C-Class was invalid.\n\nRepresenting the WiND Hostmaster team,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
-			)
-		),
-		
-		'zone' => array(
-			'pending' => array(
-				'subject' => "##zone##: Pending",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nDNS zone: ##zone##\nNode: ##node_name## (###node_id##)\n\nThe above DNS zone has been queued with status 'pending'.\n\nRepresenting the WiND Hostmaster team,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
-			),
-			'active' => array(
-				'subject' => "##zone##: Activated",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nDNS zone: ##zone##\nNode: ##node_name## (###node_id##)\n\nThe above DNS zone has been activated.\n\nRepresenting the WiND Hostmaster team,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
-			),
-			'rejected' => array(
-				'subject' => "##zone##: Rejected",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nDNS zone: ##zone##\nNode: ##node_name## (###node_id##)\n\nThe above DNS zone has been rejected.\n\nRepresenting the WiND Hostmaster team,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
-			),
-			'invalid' => array(
-				'subject' => "##zone##: Invalid",
-				'body' => "WiND - Wireless Nodes Database\n------------------------------------------\n\nDNS zone: ##zone##\nNode: ##node_name## (###node_id##)\n\nThe above DNS zone was invalid.\n\nRepresenting the WiND Hostmaster team,\n##hostmaster_surname## ##hostmaster_name## (##hostmaster_username##)"
-			)
-		)
-	),
-	
-	'help' => array(
-		'dnszones' => array(
-			'title' => 'DNS zones',
-			'body' => 'In this page you can search for DNS zones of the network by filling in the corresponding fields. The results are displayed in the follwing table. Furthermore, you cat choose a node for viewing.'
-		),
-		
-		'services' => array(
-			'title' => 'Services',
-			'body' => 'In this page you can search for network services by filling in the corresponding fields. The results are displayed in the follwing table. Furthermore, you cat choose a service or a node for viewing.'
-		),
-		
-		'mynodes_add' => array(
-			'title' => 'Add node',
-			'body' => 'In this page you can add a node. Be sure to submit accurate data.'
-		),
-		'mynodes' => array(
-			'title' => 'Nodes administration',
-			'body' => 'In this page you can fully administrate your node. Be sure to submit accurate data. There is a help section for each page.'
-		),
-		'mynodes_range' => array(
-			'title' => 'IP C-Class request',
-			'body' => 'Describe clearly the reason for your request in the field "Info".'
-		),
-		'mynodes_dnszone_request_reverse' => array(
-			'title' => 'DNS zone request',
-			'body' => 'Describe clearly the reason for your request in the field "Info".'
-		),
-		'mynodes_dnszone_request_forward' => array(
-			'title' => 'DNS zone request',
-			'body' => 'Describe clearly the reason for your request in the field "Info".'
-		),
-		'mynodes_dnszone_edit' => array(
-			'title' => 'Edit DNS zone',
-			'body' => 'In this page you can add the nameservers (NS) that are responsible for the zone.'
-		),
-		'mynodes_dnsnameserver_add' => array(
-			'title' => 'Add nameserver (NS)',
-			'body' => 'Submit the name and the IP address of the nameserver.'
-		),
-		'mynodes_dnsnameserver_edit' => array(
-			'title' => 'Edit Nameserver (NS)',
-			'body' => 'In this page you can edit the name of your nameserver (NS). You cannot change the IP address of the nameserver. Instead, you can request the deletion of the nameserver and request the addition of a new nameserver with the new IP address.'
-		),
-		'mynodes_link_add' => array(
-			'title' => 'Add link',
-			'body' => 'In this page you can add a link of your node with another node. Fill in clearly as many of the fields as possible.'
-		),
-		'mynodes_link_edit' => array(
-			'title' => 'Edit link',
-			'body' => 'In this page you can edit a link of your node with another node. Fill in clearly as many of the fields as possible.'
-		),
-		'mynodes_subnet_add' => array(
-			'title' => 'Add subnet',
-			'body' => 'In this page you can add a subnet for your node. If the subnet is used in a link with another node, it must belong to any of the IP C-Classes that have been assigned to those two nodes and can be added only by the owner of the IP C-Class that the subnet belongs to. For your LAN, you may add subnets that do not belong to any of the IP C-Classes that have been assigned to your node.'
-		),
-		'mynodes_subnet_edit' => array(
-			'title' => 'Edit subnet',
-			'body' => 'In this page you can edit a subnet of your node.'
-		),
-		'mynodes_ipaddr_add' => array(
-			'title' => 'Add IP address',
-			'body' => 'In this page you can add an IP address for your node. The field Hostname describes the device that the corresponding IP address belongs to and must be the same for all the IP addresses of that device.'
-		),
-		'mynodes_ipaddr_edit' => array(
-			'title' => 'Edit IP address',
-			'body' => 'In this page you can add or edit an IP address for your node. The \'Hostname\' field describes the device that the corresponding IP address belongs to and must be the same for all the IP addresses of that device.'
-		),
-		
-		'mynodes_services_add' => array(
-			'title' => 'Add Service',
-			'body' => 'In this page you can add a service of your node. The IP Address field should contain the IP address that the service is listening at. The URL field should contain a link to the service or a link to a page about the service. The Protocol and Port should contain the protocol (ie. tcp,udp) and the port that the service uses.'
-		),
-		'mynodes_services_edit' => array(
-			'title' => 'Edit Service',
-			'body' => 'In this page you can edit a service of your node. The IP Address field contains all the IP addresses that you have commit and should contain the IP address that the service is listening at. The URL field should contain a link to the service or a link to a page about the service. The Protocol and Port should contain the protocol (ie. tcp,udp) and the port that the service uses.'
-		),
-		'admin_services' => array(
-			'title' => 'Services Administration',
-			'body' => 'In this page you can add, edit or delete a Services Category. From the <<Edit Services>> link you can see all network services and edit them.'
-		),
-		
-		'nodes_search' => array(
-			'title' => 'Network nodes',
-			'body' => 'In this page you can search for network nodes by filling the corresponding fields. The results are displayed in the following table. Furthermore, you can choose a node for viewing.'
-		),
-		'ranges_allocation' => array(
-			'title' => 'IP ranges allocation',
-			'body' => 'In this page you can thoroughly see the total of IP ranges that have been allocated for each area.'
-		),
-		'ranges_search' => array(
-			'title' => 'Search for IP C-Classes',
-			'body' => 'In this page you can search for IP C-Classes that have been assigned to nodes. The results are displayed in the following table. Furthermore, you can choose a node for viewing.'
-		),
-		'users_restore_password_recover' => array(
-			'title' => 'Recover password',
-			'body' => 'In this page you can recover your lost password for your account. Submit the fields in the form and you will receive an e-mail with further instructions.'
-		),
-		'users_restore_password_change' => array(
-			'title' => 'Change password',
-			'body' => 'In this page you can change the password of your account. By successfully submitting a new password in the following form, you may directly login to your account with your new password.'
-		),
-		'users_add' => array(
-			'title' => 'New user',
-			'body' => 'Fill in your data in the following form. To confirm your e-mail address and activate your account, an e-mail will be sent to your address with detailed instructions. You can login to your account only after you have activated it.'
-		),
-		'users_edit' => array(
-			'title' => 'User profile',
-			'body' => 'In this page you can edit your data. If you change your e-mail address, an e-mail will be sent to your new address with detailed instructions on how to reactivate your account.'
-		),
-		'node_contact' => array(
-			'title' => 'Send message',
-			'body' => 'In this page you can send a message to the administrator(s) of the node. Your e-mail address will appear to your message, so that you can get a reply from the receiver(s). Each reply to your message will be sent to your e-mail address and will contain the e-mail address of the sender(s), so that you can reply to them back.'
-		)
-	),
-	
-	'languages' => array(
-		'greek' => 'Greek',
-		'english' => 'English'
-	)
-
-);
-
-?>
Index: /trunk/globals/classes/form.php
===================================================================
--- /trunk/globals/classes/form.php (revision 187)
+++ /trunk/globals/classes/form.php (revision 1)
@@ -66,19 +66,4 @@
 		}
 	}
-
-	function db_data_pickup($data_field, $subpage, $values, $multi=FALSE) {
-		for ($i=0;$i<count($this->data);$i++) {
-			if ($data_field == str_replace("__", ".", $this->data[$i]['fullField'])) {
-				$this->data[$i]['Type'] = 'pickup'.($multi==FALSE?'':"_multi");
-				$this->data[$i]['Pickup_url'] = makelink(array("page" => "pickup", "subpage" => $subpage, "object" => $this->info['FORM_NAME'].".elements['".str_replace(".", "__", $data_field).($multi==FALSE?'':"[]")."']"));
-				if ($multi == FALSE) {
-					$this->data[$i]['Type_Pickup'] = (isset($values[0])?$values[0]:'');
-				} else {
-					$this->data[$i]['Type_Pickup'] = $values;
-				}
-				break;
-			}
-		}
-	}
 	
 	// args: [[table], [key], [value] ...]
@@ -91,7 +76,7 @@
 			for($i=0;$i<count($this->data);$i++) {
 				$key = explode("__", $this->data[$i]['fullField']);
-				if (isset($key[1])) {
-					if ($ckey == $key[0]) {
-						$this->data[$i]['value'] = (isset($db_data[0][$key[1]])?$db_data[0][$key[1]]:"");
+				if ($key[1] != '') {
+					if ($ckey == $key[0]) {
+						$this->data[$i]['value'] = $db_data[0][$key[1]];
 					}
 				}
@@ -125,20 +110,5 @@
 		for ($i=0;$i<count($this->data);$i++) {
 			if (isset($this->data[$i])) {
-				if (isset($sc[$this->data[$i]['fullField']])) {
-					$sc_dati_ff = $sc[$this->data[$i]['fullField']];
-				}
-				else { 
-					$sc_dati_ff = ''; 
-				}
-				$this->data[$i]['value'] = (isset($_POST[$this->data[$i]['fullField']]) ? $_POST[$this->data[$i]['fullField']] : $sc_dati_ff);
-				if (isset($this->data[$i]['Compare'])) {
-					if (isset($sc[$this->data[$i]['fullField'].'_compare'])) {
-					    $sc_dati_ff_cmp = $sc[$this->data[$i]['fullField'].'_compare'];
-					}
-					else {
-					    $sc_dati_ff_cmp = '';
-					}
-					$this->data[$i]['Compare_value'] = (isset($_POST[$this->data[$i]['fullField'].'_compare']) ? $_POST[$this->data[$i]['fullField'].'_compare'] : $sc_dati_ff_cmp);
-				}
+				$this->data[$i]['value'] = (isset($_POST[$this->data[$i]['fullField']]) ? $_POST[$this->data[$i]['fullField']] : $sc[$this->data[$i]['fullField']]);
 				$this->data[$i]['Null'] = 'YES';
 			}
@@ -148,29 +118,13 @@
 	// get the where string for SQL. $extra[_fieldname_]: '=' | 'starts_with' | 'ends_with' | 'contains' | 'exclude'
 	function db_data_where($extra="") {
-		$where = "";
+		$sc = unserialize(stripslashes(get($this->info['FORM_NAME'].'_search')));
 		for ($i=0;$i<count($this->data);$i++) {
 			if (isset($this->data[$i])) {
 				$item = $this->data[$i]['fullField'];
-				if (isset($this->data[$i]['Compare']) && !isset($extra[$item])) {
-					$extra[$item] = $this->data[$i]['Compare_value'];
-				}
-				$value = $this->data[$i]['value'];
-				switch (isset($extra[$item])?$extra[$item]:'') {
+				$value = (isset($_POST[$item]) ? $_POST[$item] : $sc[$item]);
+				switch ($extra[$item]) {
 					case '':
 					case '=':
-					case 'equal':
 						$where .= ($value !=''?str_replace("__", ".", $item)." = '".$value."' AND ":"");
-						break;
-					case 'greater':
-						$where .= ($value !=''?str_replace("__", ".", $item)." > '".$value."' AND ":"");
-						break;
-					case 'less':
-						$where .= ($value !=''?str_replace("__", ".", $item)." < '".$value."' AND ":"");
-						break;
-					case 'greater_equal':
-						$where .= ($value !=''?str_replace("__", ".", $item)." >= '".$value."' AND ":"");
-						break;
-					case 'less_equal':
-						$where .= ($value !=''?str_replace("__", ".", $item)." <= '".$value."' AND ":"");
 						break;
 					case 'starts_with':
@@ -199,16 +153,14 @@
 		$args = func_get_args();
 		for ($carg=1;$carg<func_num_args() || $carg==1;$carg=$carg+3) {
-			$ckey = isset($args[$carg])?$args[$carg]:'';
+			$ckey = $args[$carg];
 			unset($data);
 			$cpost = $this->correct_datetime_data($_POST);
 			for($i=0;$i<count($this->data);$i++) {
 				$key = explode("__", $this->data[$i]['fullField']);
-				if (isset($key[1])) {
+				if ($key[1] != '') {
 					if ($ckey == '') $ckey = $key[0];
 					if ($ckey == $key[0]) {
-						if (isset($cpost[$this->data[$i]['fullField']])) {
-						    if (!is_array($cpost[$this->data[$i]['fullField']])) {
-								$data[$key[1]] = $cpost[$this->data[$i]['fullField']];
-						    }
+						if (!is_array($cpost[$this->data[$i]['fullField']])) {
+							$data[$key[1]] = $cpost[$this->data[$i]['fullField']];
 						}
 					}
@@ -218,10 +170,10 @@
 			while (list($key, $value) = each($pdata)) {
 				$key = explode(".", $key);
-				if ($ckey == $key[0] || !isset($key[1])) {
-					$data[(isset($key[1])?$key[1]:$key[0])] = $value;
-				}
-			}
-			$field = isset($args[$carg+1])?$args[$carg+1]:'';
-			$value = isset($args[$carg+2])?$args[$carg+2]:'';
+				if ($ckey == $key[0] || $key[1] == '') {
+					$data[($key[1]==''?$key[0]:$key[1])] = $value;
+				}
+			}
+			$field = $args[$carg+1];
+			$value = $args[$carg+2];
 			if ($field == '' || $value == '' || $value == 'add') {
 				$ret = $ret && $db->add($ckey, $data);
@@ -244,8 +196,8 @@
 			for($i=0;$i<count($this->data);$i++) {
 				$key = explode("__", $this->data[$i]['fullField']);
-				if (isset($key[1])) {
+				if ($key[1] != '') {
 					if ($ckey == '') $ckey = $key[0];
 					if ($ckey == $key[0]) {
-						$data[$key[1]] = (isset($cpost[$this->data[$i]['fullField']]))?$cpost[$this->data[$i]['fullField']]:NULL;
+						$data[$key[1]] = $cpost[$this->data[$i]['fullField']];
 					}
 				}
@@ -254,6 +206,6 @@
 			while (list($key, $value) = each($pdata)) {
 				$key = explode(".", $key);
-				if ($ckey == $key[0] || !isset($key[1])) {
-					$data[(!isset($key[1])?$key[0]:$key[1])] = $value;
+				if ($ckey == $key[0] || $key[1] == '') {
+					$data[($key[1]==''?$key[0]:$key[1])] = $value;
 				}
 			}
@@ -268,9 +220,7 @@
 			}
 			$ret = $ret && $db->del($ckey, $args[$carg+1]." = '".$args[$carg+2]."'");
-			if (isset($data_f)) {
-				for ($i=0;$i<count($data_f);$i++) {
-					$data_f[$i][$args[$carg+1]] = $args[$carg+2];
-					$ret = $ret && $db->add($ckey, $data_f[$i]);
-				}
+			for ($i=0;$i<count($data_f);$i++) {
+				$data_f[$i][$args[$carg+1]] = $args[$carg+2];
+				$ret = $ret && $db->add($ckey, $data_f[$i]);
 			}
 		}
Index: /trunk/globals/classes/construct.php
===================================================================
--- /trunk/globals/classes/construct.php (revision 128)
+++ /trunk/globals/classes/construct.php (revision 1)
@@ -24,4 +24,5 @@
 	function form($form, $template='constructors/form.tpl') {
 		global $smarty;
+		//echo pvar($data);
 		if (substr(strrchr($template, "."), 1) != "tpl") {
 			$path_parts = pathinfo($template);
@@ -47,4 +48,5 @@
 			}
 		}
+		//echo pvar($table->data);
 		return template(array("data" => $table->data, "extra_data" => $table->info, "hidden_qs" => get_qs()), $template);
 	}
Index: /trunk/globals/classes/message.php
===================================================================
--- /trunk/globals/classes/message.php (revision 143)
+++ /trunk/globals/classes/message.php (revision 1)
@@ -35,12 +35,12 @@
 	}
 
-	function set_fromlang($type, $message, $forward="", $image="", $hide_menu="", $override=FALSE) {
+	function set_fromlang($type, $message, $forward="", $image="") {
 		global $lang;
-		$this->set($lang['message'][$type][$message]['title'], $lang['message'][$type][$message]['body'], $forward, $image, $hide_menu, $override);
+		$this->set($lang['message'][$type][$message]['title'], $lang['message'][$type][$message]['body'], $forward, $image);
 	}
 	
-	function set($title, $message, $forward="", $image="", $hide_menu="", $override=FALSE) {
+	function set($title, $message, $forward="", $image="", $hide_menu=FALSE) {
 		global $main;
-		if ($this->show == TRUE && !$override) return FALSE;
+		if ($this->show == TRUE) return FALSE;
 		$this->show = TRUE;
 		$this->title = $title;
@@ -48,9 +48,9 @@
 		if ($forward != '') $this->forward = $forward;
 		if ($image != '') $this->image = $image;
-		if ($hide_menu !== "") $main->menu->hide = $hide_menu;
+		$main->menu->hide = $hide_menu;
 	}
 	
 	function output() {
-		global $vars, $design, $smarty, $lang;
+		global $vars, $design, $root_path, $smarty, $lang;
 		
 		if (isset($this->forward)) {
Index: /trunk/globals/classes/mysql.php
===================================================================
--- /trunk/globals/classes/mysql.php (revision 187)
+++ /trunk/globals/classes/mysql.php (revision 1)
@@ -54,24 +54,16 @@
 		$this->total_queries += 1;
 		$mt = $this->getmicrotime();
+		#echo $query;
 		$q = mysql_query($query, $this->mysql_link);
 		$this->total_time += ($this->getmicrotime() - $mt);
 		$this->error();
-		return $q;
-	}
-	
-	function query_data($query) {
-		$q = $this->query($query);
-		return $this->result_to_data($q);
-	}
-	
-	function result_to_data($result) {
-		if ($result === FALSE) {
+		if ($q === FALSE) {
 			return FALSE;
-		} elseif ($result === TRUE) {
+		} elseif ($q === TRUE) {
+			$this->insert_id = mysql_insert_id($this->mysql_link);
 			return TRUE;
 		}
 		$i = 0;
-		$res = array();
-		while ($ret = mysql_fetch_assoc($result)) {
+		while ($ret = mysql_fetch_assoc($q)) {
 			while (list ($key, $value) = each ($ret)) {
 				$res[$i][$key] = $value;
@@ -79,37 +71,29 @@
 			$i++;
 		}
-		mysql_free_result($result);
+		mysql_free_result($q);
 		return $res;
 	}
 	
 	function get_fields($table) {
-		return $this->query_data("SHOW FIELDS FROM `$table`");
+		return $this->query("SHOW FIELDS FROM `$table`");
 	}
 
 	function get($select="*", $from, $where="", $group_by="", $order_by="", $limit="") {
-		return $this->query_data("SELECT $select FROM $from".($where==""?"":" WHERE $where").($group_by==""?"":" GROUP BY $group_by").($order_by==""?"":" ORDER BY $order_by").($limit==""?"":" LIMIT $limit"));
-	}
-	
-	function add($table, $data, $addlog=TRUE, $try_date_in=TRUE) {
+		return $this->query("SELECT $select FROM $from".($where==""?"":" WHERE $where").($group_by==""?"":" GROUP BY $group_by").($order_by==""?"":" ORDER BY $order_by").($limit==""?"":" LIMIT $limit"));
+	}
+	
+	function add($table, $data, $addlog=TRUE) {
 		$table_start = preg_split("/[\s,]+/", $table);
 		$table_start = $table_start[0];
-		$db_fields = $this->query_data("SHOW FIELDS FROM `$table_start`");
+		$db_fields = $this->query("SHOW FIELDS FROM `$table_start`");
 		for ($i=0;$i<count($db_fields);$i++) {
 			$nulls[$db_fields[$i]['Field']] = $db_fields[$i]['Null'];
 			$nulls['`'.$db_fields[$i]['Field'].'`'] = $db_fields[$i]['Null'];
-			if ($try_date_in && !isset($data['date_in'])) {
-				if ($db_fields[$i]['Field'] == 'date_in') {
-					$data['date_in'] = $this->date_now();
-				}
-			}
-		}
-		$keys = "";
-		$values = "";
+		}
 		while (list ($key, $value) = each ($data)) {
 			$key_t = explode(".", $key);
 			$key_t = $key_t[count($key_t)-1];
 			if ($value === '' && $nulls[$key_t] != 'YES') {
-				if (!isset($not_null_keys)) $not_null_keys = array();
-				array_push($not_null_keys, $table.".".$key);
+				$not_null_keys .= ($not_null_keys==''?'':', ').$key;
 			}
 			$keys .= $key.", ";
@@ -121,11 +105,10 @@
 		$values = substr($values, 0, -2);
 		$query = "INSERT INTO $table ($keys) VALUES ($values)";
-		if (isset($not_null_keys)) {
+		if ($not_null_keys != '') {
 			$this->output_error_fields_required($not_null_keys);
 			if ($addlog) $this->add_log('ADD', $table, $this->insert_id, serialize($data), $query, $this->get_error());
 			return FALSE;
 		}
-		$res = $this->query_data($query);
-		if ($res === TRUE) $this->insert_id = mysql_insert_id($this->mysql_link);
+		$res = $this->query($query);
 		if ($addlog) $this->add_log('ADD', $table, $this->insert_id, serialize($data), $query, (!$res?$this->get_error():''));
 		return $res;
@@ -135,17 +118,15 @@
 		$table_start = preg_split("/[\s,]+/", $table);
 		$table_start = $table_start[0];
-		if ($addlog && $this->log) $aff = $this->query_data("SELECT ".$table_start.".id FROM $table WHERE $where");
-		$db_fields = $this->query_data("SHOW FIELDS FROM `$table_start`");
+		if ($addlog && $this->log) $aff = $this->query("SELECT ".$table_start.".id FROM $table WHERE $where");
+		$db_fields = $this->query("SHOW FIELDS FROM `$table_start`");
 		for ($i=0;$i<count($db_fields);$i++) {
 			$nulls[$db_fields[$i]['Field']] = $db_fields[$i]['Null'];
 			$nulls['`'.$db_fields[$i]['Field'].'`'] = $db_fields[$i]['Null'];
 		}
-		$sets="";
 		while (list ($key, $value) = each ($data)) {
 			$key_t = explode(".", $key);
 			$key_t = $key_t[count($key_t)-1];
 			if ($value === '' && $nulls[$key_t] != 'YES') {
-				if (!isset($not_null_keys)) $not_null_keys = array();
-				array_push($not_null_keys, $table.".".$key);
+				$not_null_keys .= ($not_null_keys==''?'':', ').translate($table.'__'.$key, 'db');
 			}
 			$value = str_replace("'", "\\'", $value);
@@ -155,7 +136,7 @@
 		$sets = substr($sets, 0, -2);
 		$query = "UPDATE $table SET $sets".($where!=''?" WHERE $where":'');
-		if (isset($not_null_keys)) {
+		if ($not_null_keys != '') {
 			$this->output_error_fields_required($not_null_keys);
-			if ($addlog && isset($aff)) {
+			if ($addlog) {
 				for ($i=0;$i<count($aff);$i++) {
 					$this->add_log('EDIT', $table_start, $aff[$i]['id'], serialize($data), $query, $this->get_error());
@@ -164,6 +145,6 @@
 			return FALSE;
 		}
-		$res = $this->query_data($query);
-		if ($addlog && isset($aff)) {
+		$res = $this->query($query);
+		if ($addlog) {
 			for ($i=0;$i<count($aff);$i++) {
 				$this->add_log('EDIT', $table_start, $aff[$i]['id'], serialize($data), $query, (!$res?$this->get_error():''));
@@ -176,8 +157,8 @@
 		$table_start = preg_split("/[\s,]+/", $table);
 		$table_start = $table_start[0];
-		if ($addlog && $this->log) $aff = $this->query_data("SELECT ".$table_start.".id FROM $table".($where==""?"":" WHERE $where"));
+		if ($addlog && $this->log) $aff = $this->query("SELECT ".$table_start.".id FROM $table".($where==""?"":" WHERE $where"));
 		$query = "DELETE FROM $table".($where==""?"":" WHERE $where");
-		$res = $this->query_data($query);
-		if ($addlog && isset($aff)) {
+		$res = $this->query($query);
+		if ($addlog) {
 			for ($i=0;$i<count($aff);$i++) {
 				$this->add_log('DELETE', $table_start, $aff[$i]['id'], '', $query, (!$res?$this->get_error():''));
@@ -187,9 +168,8 @@
 	}
 
-	function cnt($select="*", $table, $where="", $group_by="", $order_by="", $limit="") {
-		if ($select == '') $select = '*';
-		$query = "SELECT $select FROM $table".($where==""?"":" WHERE $where").($group_by==""?"":" GROUP BY $group_by").($order_by==""?"":" ORDER BY $order_by").($limit==""?"":" LIMIT $limit");
-		$q = $this->query($query);
-		return mysql_num_rows($q);
+	function cnt($table, $where="") {
+		$res = $this->query("SELECT COUNT(*) FROM $table".($where==""?"":" WHERE $where"));
+		if ($res[0]['COUNT(*)'] != "") return $res[0]['COUNT(*)'];
+		return $res;
 	}
 	
@@ -197,26 +177,10 @@
 		$this->error = mysql_errno();
 		$this->error_report = mysql_error();
-		if ($this->error == 1062) {
-			$this->output_error_duplicate_entry();
-		} elseif ($this->error > 0) {			
-			$this->output_error();
-		}
-	}
-	
-	function output_error_duplicate_entry() {
-		global $main, $lang;
-		mb_ereg(".*'(.*)'.*", $this->error_report, $ereg);
-		$duplicate_entries = $ereg[1];
-		$main->message->set($lang['message']['error']['duplicate_entry']['title'], str_replace("##duplicate_entries##", $duplicate_entries, $lang['message']['error']['duplicate_entry']['body']));
-	}
-
+		if ($this->error > 0) $this->output_error();
+	}
+	
 	function output_error_fields_required($fields_required) {
 		global $main, $lang;
-		$fields_required_text = '';
-		foreach ($fields_required as $key => $value) {
-			if ($fields_required_text != '') $fields_required_text .= ", "; 
-			$fields_required_text .= $lang['db'][str_replace(".", "__", $value)];
-		}
-		$main->message->set($lang['message']['error']['fields_required']['title'], str_replace("##fields_required##", $fields_required_text, $lang['message']['error']['fields_required']['body']));
+		$main->message->set($lang['message']['error']['fields_required']['title'], str_replace("##fields_required##", $fields_required, $lang['message']['error']['fields_required']['body']));
 	}
 	
@@ -226,9 +190,8 @@
 		if ($num !== '') $this->error_report = $report;
 		if (isset($main)) {
-			if ($main->userdata->privileges['admin'] === TRUE) {
-				$main->message->set('MySQL Error', $this->get_error().'<br /><br />Last MySQL query:<br />'.$this->last_query);
-			} else {
-				$main->message->set_fromlang('error', 'database_error');	
-			}
+			if ($main->userdata->privileges['admin'] === TRUE) $if_admin .= '<br /><br />Last MySQL query:<br />'.$this->last_query;
+			$main->message->set('MySQL Error', $this->get_error().$if_admin);
+		} else {
+			echo $this->get_error();
 		}
 	}
@@ -255,5 +218,5 @@
 		$insert_id_return = $this->insert_id;
 		$last_query_return = $this->last_query;
-		$this->query_data($log_query);
+		$this->query($log_query);
 		$this->log_insert_id = $this->insert_id;
 		$this->log_last_query = $this->last_query;
@@ -268,8 +231,4 @@
 	} 
 
-	function date_now() {
-	      return date("Y-m-d H:i:s");
-	}
-
 }
 
Index: /trunk/globals/classes/table.php
===================================================================
--- /trunk/globals/classes/table.php (revision 187)
+++ /trunk/globals/classes/table.php (revision 1)
@@ -31,17 +31,15 @@
 	function db_data($select, $from, $where="", $group_by="", $order_by="", $limit="") {
 		global $db, $vars;
-		if ($limit == '' && $limit !== FALSE) {
-			if ((!isset($this->info['CURRENT_PAGE']) || $this->info['CURRENT_PAGE'] == '') && $_SERVER['REQUEST_METHOD'] == 'GET') $this->info['CURRENT_PAGE'] = get($this->info['TABLE_NAME']."_showpage");
-			if ( !isset($this->info['CURRENT_PAGE']) || $this->info['CURRENT_PAGE'] == '') $this->info['CURRENT_PAGE'] = 1;
-			$page = $this->info['CURRENT_PAGE'];
-			$limit = (($page-1)*$vars['constructor']['max_rows']).', '.$vars['constructor']['max_rows'];
-			$want_pages = true;
-			}
-		$data = $db->get("SQL_CALC_FOUND_ROWS ".$select, $from, $where, $group_by, $order_by, $limit);
-		if (isset($want_pages)) {
-			$cnt = $db->query_data("SELECT FOUND_ROWS()");
-			$cnt = $cnt[0]['FOUND_ROWS()'];
+		if ($limit == '') {
+			$cnt = $db->cnt($from, $where, $group_by, $limit);
 			if ($vars['constructor']['max_rows'] != '' && $cnt > $vars['constructor']['max_rows']) {
 				$this->info['TOTAL_PAGES'] = ceil($cnt / $vars['constructor']['max_rows']);
+				
+				if ($this->info['CURRENT_PAGE'] == '' && $_SERVER['REQUEST_METHOD'] == 'GET') $this->info['CURRENT_PAGE'] = get($this->info['TABLE_NAME']."_showpage");
+				if ($this->info['CURRENT_PAGE'] == '') $this->info['CURRENT_PAGE'] = 1;
+				
+				$page = $this->info['CURRENT_PAGE'];
+				$limit = (($page-1)*$vars['constructor']['max_rows']).', '.$vars['constructor']['max_rows'];
+
 				for ($i=1;$i<=$this->info['TOTAL_PAGES'];$i++) {
 					$this->info['PAGES'][$i] = makelink(array($this->info['TABLE_NAME']."_showpage" => $i), TRUE);
@@ -49,5 +47,5 @@
 			}
 		}
-		$isset = FALSE;
+		$data = $db->get($select, $from, $where, $group_by, $order_by, $limit);
 		if (isset($data[0])) {
 			$isset = TRUE;
@@ -77,9 +75,4 @@
 			if (isset($data[0][$fkey]) || ($isset !== TRUE && !isset($data[0][$fkey]))) $data[0][$fkey] = $f;
 		}
-		if (!isset($this->data[0])) {
-			$this->data[0] = array();		
-		} 
-		$this->data[0] = array_merge($this->data[0], $data[0]);
-		unset($data[0]);
 		$this->data = array_merge($this->data, $data);
 	}
@@ -89,17 +82,11 @@
 		for ($i=0;$i<count($form->data);$i++) {
 			if (isset($form->data[$i])) {
-				$sf = isset($sc[$form->data[$i]['fullField']])?$sc[$form->data[$i]['fullField']]:'';
+				$sf=$sc[$form->data[$i]['fullField']];
 				$search[$form->data[$i]['fullField']] = (isset($_POST[$form->data[$i]['fullField']])?$_POST[$form->data[$i]['fullField']]:$sf);
-				if (isset($form->data[$i]['Compare'])) {
-					$sf_cmp = isset($sc[$form->data[$i]['fullField'].'_compare'])?$sc[$form->data[$i]['fullField'].'_compare']:'';
-					$search[$form->data[$i]['fullField'].'_compare'] = (isset($_POST[$form->data[$i]['fullField'].'_compare']) ? $_POST[$form->data[$i]['fullField'].'_compare'] : $sf_cmp);
-				}
 			}
 		}
 		$search = serialize($search);
-		if (isset($this->info['TOTAL_PAGES'])) {
-			for ($i=1;$i<=$this->info['TOTAL_PAGES'];$i++) {
-			        $this->info['PAGES'][$i] = makelink(array($form->info['FORM_NAME']."_search" => $search, $this->info['TABLE_NAME']."_showpage" => $i), TRUE);
-			}
+		for ($i=1;$i<=$this->info['TOTAL_PAGES'];$i++) {
+			$this->info['PAGES'][$i] = makelink(array($form->info['FORM_NAME']."_search" => $search, $this->info['TABLE_NAME']."_showpage" => $i), TRUE);
 		}
 	}
Index: /trunk/globals/classes/userdata.php
===================================================================
--- /trunk/globals/classes/userdata.php (revision 145)
+++ /trunk/globals/classes/userdata.php (revision 1)
@@ -32,5 +32,5 @@
 	var $username_key = "username";
 	var $password_key = "password";
-	var $info_keys = "username, name, surname, date_in, last_visit, last_session, status, language";
+	var $info_keys = "username, name, surname, date_in, last_visit, last_session, status";
 	var $last_session_key = "last_session";
 	var $last_visit_key = "last_visit";
@@ -48,5 +48,5 @@
 				if ($this->check_login($uid, $p_md5, TRUE)) {
 					$this->logged = TRUE;
-					$this->user = $uid;
+					$this->user_id = $uid;
 					$_SESSION['userdata'][$this->primary_key] = $uid;
 					$this->reset_visit();
@@ -65,5 +65,5 @@
 		if ($this->logged) {
 			global $db;
-			$get_res = $db->get($this->info_keys, $this->users_table, $this->primary_key." = '$this->user'");		
+			$get_res = $db->get($this->info_keys, $this->users_table, $this->primary_key." = $this->user");		
 			$this->info = $get_res[0];
 			
@@ -125,7 +125,7 @@
 		if ($uid == "") $uid = $this->user;
 		global $db;
-		$ret = $db->get($this->last_session_key, $this->users_table, $this->primary_key." = '$uid'");
+		$ret = $db->get($this->last_session_key, $this->users_table, $this->primary_key." = $uid");
 		$ret = $ret[0];
-		$db->set($this->users_table, array($this->last_visit_key => $ret[$this->last_session_key]), $this->primary_key." = '$uid'", FALSE);
+		$db->set($this->users_table, array($this->last_visit_key => $ret[$this->last_session_key]), $this->primary_key." = $uid", FALSE);
 	}
 	
@@ -133,5 +133,5 @@
 		if ($uid == "") $uid = $this->user;
 		global $db;
-		$db->set($this->users_table, array($this->last_session_key => date_now()), $this->primary_key." = '$uid'", FALSE);
+		$db->set($this->users_table, array($this->last_session_key => date_now()), $this->primary_key." = $uid", FALSE);
 	}
 
Index: /unk/globals/classes/geocalc.php
===================================================================
--- /trunk/globals/classes/geocalc.php (revision 187)
+++  (revision )
@@ -1,229 +1,0 @@
-<?php
-
-// This code was converted to PHP from Visual C++
-// by Steven Brendtro on behalf of imaginerc.com
-
-// The original code and an article can be found
-// on CodeGuru at:
-// http://www.codeguru.com/Cpp/Cpp/algorithms/print.php/c5115/
-
-// Example Usage:
-//   $oGC = new GeoCalc();
-//   print "GCDistance: " . $oGC->GCDistance(38.9333,-94.3253,38.9314,-94.4876) . "<br />\n";
-//   print "GCAzimuth: " . $oGC->GCAzimuth(38.9333,-94.3253,38.9314,-94.4876) . "<br />\n";
-//   print "ApproxDistance: " . $oGC->ApproxDistance(38.9333,-94.3253,38.9314,-94.4876) . "<br />\n";
-//   print "EllipsoidDistance: " . $oGC->EllipsoidDistance(38.80126649,-94.44590241,43.3368,-96.8755) . "<br /><br />\n";
-//   print "EllipsoidDistance In Miles: " . ConvKilometersToMiles($oGC->EllipsoidDistance(38.80126649,-94.44590241,43.3368,-96.8755));
-
-class GeoCalc {
-
-  var $PI = 3.14159265359;
-  var $TWOPI = 6.28318530718;
-  var $DE2RA = 0.01745329252;
-  var $RA2DE = 57.2957795129;
-  var $ERAD = 6378.135;
-  var $ERADM = 6378135.0;
-  var $AVG_ERAD = 6371.0;
-  var $EPS = 0.000000000005;
-  var $KM2MI = 0.621371;
-  var $FLATTENING =  0;
-
-  function GeoCalc() {
-  	$this->FLATTENING = 1.0/298.26;  // Earth flattening
-                                     // (WGS 1972)
-    return;
-  }
-
-  function GCDistance($lat1, $lon1, $lat2, $lon2) {
-    $lat1 *= $this->DE2RA;
-    $lon1 *= $this->DE2RA;
-    $lat2 *= $this->DE2RA;
-    $lon2 *= $this->DE2RA;
-    $d = sin($lat1)*sin($lat2) + cos($lat1)*cos($lat2)*cos($lon1 - $lon2);
-    return ($this->AVG_ERAD * acos($d));
-  }
-
-
-  function GCAzimuth($lat1, $lon1, $lat2, $lon2) {
-    $result = 0.0;
-
-    $ilat1 = intval(0.50 + $lat1 * 360000.0);
-    $ilat2 = intval(0.50 + $lat2 * 360000.0);
-    $ilon1 = intval(0.50 + $lon1 * 360000.0);
-    $ilon2 = intval(0.50 + $lon2 * 360000.0);
-
-    $lat1 *= $this->DE2RA;
-    $lon1 *= $this->DE2RA;
-    $lat2 *= $this->DE2RA;
-    $lon2 *= $this->DE2RA;
-
-    if (($ilat1 == $ilat2) && ($ilon1 == $ilon2)) {
-      return $result;
-    }
-    else if ($ilat1 == $ilat2) {
-      if ($ilon1 > $ilon2)
-        $result = 90.0;
-      else
-        $result = 270.0;
-    }
-    else if ($ilon1 == $ilon2) {
-      if ($ilat1 > $ilat2)
-        $result = 180.0;
-    }
-    else {
-      $c = acos(sin($lat2)*sin($lat1) + cos($lat2)*cos($lat1)*cos(($lon2-$lon1)));
-      $A = asin(cos($lat2)*sin(($lon2-$lon1))/sin($c));
-      $result = ($A * $this->RA2DE);
-
-
-      if (($ilat2 > $ilat1) && ($ilon2 > $ilon1)) {
-        $result = $result;
-      }
-      else if (($ilat2 < $ilat1) && ($ilon2 < $ilon1)) {
-        $result = 180.0 - $result;
-      }
-      else if (($ilat2 < $ilat1) && ($ilon2 > $ilon1)) {
-        $result = 180.0 - $result;
-      }
-      else if (($ilat2 > $ilat1) && ($ilon2 < $ilon1)) {
-        $result += 360.0;
-      }
-    }
-
-    return $result;
-  }
-
-  function ApproxDistance($lat1, $lon1, $lat2, $lon2) {
-    $lat1 = $this->DE2RA * $lat1;
-    $lon1 = -$this->DE2RA * $lon1;
-    $lat2 = $this->DE2RA * $lat2;
-    $lon2 = -$this->DE2RA * $lon2;
-
-    $F = ($lat1 + $lat2) / 2.0;
-    $G = ($lat1 - $lat2) / 2.0;
-    $L = ($lon1 - $lon2) / 2.0;
-
-    $sing = sin($G);
-    $cosl = cos($L);
-    $cosf = cos($F);
-    $sinl = sin($L);
-    $sinf = sin($F);
-    $cosg = cos($G);
-
-    $S = $sing*$sing*$cosl*$cosl + $cosf*$cosf*$sinl*$sinl;
-    $C = $cosg*$cosg*$cosl*$cosl + $sinf*$sinf*$sinl*$sinl;
-    $W = atan2(sqrt($S),sqrt($C));
-    $R = sqrt(($S*$C))/$W;
-    $H1 = (3 * $R - 1.0) / (2.0 * $C);
-    $H2 = (3 * $R + 1.0) / (2.0 * $S);
-    $D = 2 * $W * $this->ERAD;
-    $return = ($D * (1 + $this->FLATTENING * $H1 * $sinf*$sinf*$cosg*$cosg - $this->FLATTENING*$H2*$cosf*$cosf*$sing*$sing));
-    return $return;
-  }
-
-  function EllipsoidDistance($lat1, $lon1, $lat2, $lon2) {
-	$distance = 0.0;
-	$faz = 0.0;
-	$baz = 0.0;
-	$r = 1.0 - $this->FLATTENING;
-	$tu1 = 0.0;
-	$tu2 = 0.0;
-	$cu1 = 0.0;
-	$su1 = 0.0;
-	$cu2 = 0.0;
-	$x = 0.0;
-	$sx = 0.0;
-	$cx = 0.0;
-	$sy = 0.0;
-	$cy = 0.0;
-	$y = 0.0;
-	$sa = 0.0;
-	$c2a = 0.0;
-	$cz = 0.0;
-	$e = 0.0;
-	$c = 0.0;
-	$d = 0.0;
-
-	$cosy1 = 0.0;
-	$cosy2 = 0.0;
-
-	if(($lon1 == $lon2) && ($lat1 == $lat2))
-	  return $distance;
-	$lon1 *= $this->DE2RA;
-	$lon2 *= $this->DE2RA;
-	$lat1 *= $this->DE2RA;
-	$lat2 *= $this->DE2RA;
-
-	$cosy1 = cos($lat1);
-	$cosy2 = cos($lat2);
-
-	if($cosy1 == 0.0) $cosy1 = 0.0000000001;
-	if($cosy2 == 0.0) $cosy2 = 0.0000000001;
-
-	$tu1 = $r * sin($lat1) / $cosy1;
-	$tu2 = $r * sin($lat2) / $cosy2;
-	$cu1 = 1.0 / sqrt($tu1 * $tu1 + 1.0);
-	$su1 = $cu1 * $tu1;
-	$cu2 = 1.0 / sqrt($tu2 * $tu2 + 1.0);
-	$x = $lon2 - $lon1;
-
-	$distance = $cu1 * $cu2;
-	$baz = $distance * $tu2;
-	$faz = $baz * $tu1;
-
-   while(abs($d - $x) > $this->EPS) {
-		$sx = sin($x);
-		$cx = cos($x);
-		$tu1 = $cu2 * $sx;
-		$tu2 = $baz - $su1 * $cu2 * $cx;
-		$sy = sqrt($tu1 * $tu1 + $tu2 * $tu2);
-		$cy = $distance * $cx + $faz;
-		$y = atan2($sy, $cy);
-		$sa = $distance * $sx / $sy;
-		$c2a = - $sa * $sa + 1.0;
-		$cz = $faz + $faz;
-		if($c2a > 0.0) $cz = - $cz / $c2a + $cy;
-		$e = $cz * $cz * 2.0 - 1.0;
-		$c = ((-3.0 * $c2a + 4.0) * $this->FLATTENING + 4.0) * $c2a * $this->FLATTENING / 16.0;
-		$d = $x;
-		$x = (($e * $cy * $c + $cz) * $sy * $c + $y) * $sa;
-		$x = (1.0 - $c) * $x * $this->FLATTENING + $lon2 - $lon1;
-	}
-
-	$x = sqrt((1.0 / $r / $r - 1.0) * $c2a + 1.0) + 1.0;
-	$x = ($x - 2.0) / $x;
-	$c = 1.0 - $x;
-	$c = ($x * $x / 4.0 + 1.0) / $c;
-	$d = (0.375 * $x * $x - 1.0) * $x;
-	$x = $e * $cy;
-	$distance = 1.0 - $e - $e;
-	$distance = (((($sy * $sy * 4.0 - 3.0) * $distance * $cz * $d / 6.0 - $x) * $d / 4.0 + $cz) * $sy * $d + $y) * $c * $this->ERAD * $r;
-
-    return $distance;
-  }
-
-  function getKmPerLonAtLat($dLatitude) {
-    // Thanks to Eric Iverson for this correction!  Must convert degrees to radians...
-    $dLatitude *= $this->DE2RA;
-    return 111.321 * cos($dLatitude);
-  }
-
-  function getLonPerKmAtLat($dLatitude) {
-    return 1 / $this->getKmPerLonAtLat($dLatitude);
-  }
-
-  function getKmPerLat() {
-    return 111.000;
-  }
-
-  function getLatPerKm() {
-    return 1 / $this->getKmPerLat();
-  }
-
-}
-
-function ConvKilometersToMiles($dValue) {
-	return $dValue / 1.609344;
-}
-
-?>
Index: /unk/globals/classes/geoimage.php
===================================================================
--- /trunk/globals/classes/geoimage.php (revision 129)
+++  (revision )
@@ -1,185 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-// THIS CLASS REQUIRES geocalc & srtm CLASSES
-
-class coordinate {
-	var $lat;
-	var $lon;
-
-	function coordinate($lat, $lon) {
-		$this->lat = $lat;
-		$this->lon = $lon;
-	}		
-}
-
-class geoimage {
-
-	function plotlink($width, $height, $point_a, $point_b, $antenna_a=0, $antenna_b=0) {
-		global $geocalc, $srtm;
-		$distance = $geocalc->GCDistance($point_a->lat, $point_a->lon, $point_b->lat, $point_b->lon) * 1000;
-	
-		$image = imagecreate($width, $height);
-		$ground_pad = $height * (1 / 20);
-		$sky_pad = $height * (1 / 20);
-		$left_pad = 0;
-		$right_pad = 0;
-		
-		$width = $width - $left_pad - $right_pad;
-		
-		$color_sky = ImageColorAllocate($image, 99, 200, 248);
-		$color_ground = ImageColorAllocate($image, 177, 125, 86);
-		$color_antenna = ImageColorAllocate($image, 0, 0, 0);
-		$color_sea = ImageColorAllocate($image, 0, 0, 200);
-		$black = ImageColorAllocate($image, 0, 0, 0);
-		$color_link_on = ImageColorAllocate($image, 57, 187, 77);
-		$color_link_off = ImageColorAllocate($image, 211, 97, 97);
-		
-		$step_lat = ($point_b->lat - $point_a->lat) / ($width - 1);
-		$step_log = ($point_b->lon - $point_a->lon) / ($width - 1);
-		for ($i=0;$i<$width;$i++) {
-			$elevations[$i] = $srtm->get_elevation($point_a->lat + $step_lat * $i, $point_a->lon + $step_log * $i, FALSE);
-			if ($point_a->lat == '' || $point_a->lon == '' || $point_b->lat == '' || $point_b->lon == '' || $elevations[$i] === FALSE) {
-				imagestring ($image, 5, 10, 10, "Data error!", $black);
-				return $image;
-			}
-			if ($elevations[$i] < -32000) {
-				$elevations[$i] = $elevations[$i-1];
-			}
-		}
-		$max_el = max($elevations) + max($antenna_a, $antenna_b);
-		$min_el = min($elevations);
-		
-		$step_elevation = ($max_el - $min_el) / ($height - $ground_pad - $sky_pad);
-		
-		//$step_elevation = $distance / $width; //step_elevation for real distances plotting
-		
-		$antenna_a_se = $antenna_a / $step_elevation;
-		$antenna_b_se = $antenna_b / $step_elevation;
-		
-		for ($i=0;$i<$width;$i++) {
-			//GROUND
-			$pixels_el = ($elevations[$i] - $min_el) / $step_elevation;
-			$y1 = $height - 1 - $ground_pad - $pixels_el;
-			$y2 = $height - 1;
-			imagelinethick($image, $left_pad + $i, $y1, $left_pad + $i, $y2, $color_ground);
-			
-			//SEA
-			if ($elevations[$i] < 0) {
-				$pixels_el = (0 - $min_el) / $step_elevation;
-				$y2 = $y1;
-				$y1 = $height - 1 - $ground_pad - $pixels_el;
-				imagelinethick($image, $left_pad + $i, $y1, $left_pad + $i, $y2, $color_sea);
-			}
-			
-			//ANTENNA A
-			if ($i ==0) {
-				$ant_a = $y1 - $antenna_a_se;
-				imagelinethick($image, $left_pad + $i, $y1, $left_pad + $i, $ant_a, $color_antenna, 2);
-			}
-			
-			//ANTENNA B
-			if ($i == $width-2) { 
-				$ant_b = $y1 - $antenna_b_se;
-				imagelinethick($image, $left_pad + $i, $y1, $left_pad + $i, $ant_b, $color_antenna, 2);
-			}
-		}
-		
-		$color_link = $color_link_on;
-		for ($i=0;$i<$width;$i++) {
-			if (imagecolorat($image, $left_pad + $i, $ant_a + $i * ($ant_b - $ant_a) / ($width - 1)) == $color_ground) {
-				$color_link = $color_link_off;
-				break;
-			}
-		}
-		imagelinethick($image, $left_pad + 0, $ant_a, $left_pad + $width - 1, $ant_b, $color_link, 1);
-	
-		//FRESNEL ZONE
-		$freq = (integer)$_GET['frequency'];
-		if ($freq <= 0) $freq = 2450;
-		$ant_a_r = round($ant_a);
-		$ant_b_r = round($ant_b);
-		$p_correction = 0;
-		$p06_correction = 0;
-		for ($i=1;$i<$width-1;$i++) {
-			$a_total = $elevations[0] + $antenna_a;
-			$b_total = $elevations[$width-1] + $antenna_b;
-			$d1 = ($i / $width) * $distance;
-			if ( (integer)($i / 2) % 2 == 0) { // dashed line
-				$fresnel = (17.32 * sqrt(($d1*($distance-$d1)) / ($freq * $distance)));
-				$correction = sqrt((pow($b_total - $a_total, 2) * pow($fresnel, 2)) / (pow($distance, 2) + pow($b_total - $a_total, 2)));
-				$fresnel = sqrt(pow($fresnel, 2) - pow($correction, 2));
-				$correction = round($correction / $step_elevation) * ($b_total>$a_total?-1:1);
-				$fresnel = $fresnel / $step_elevation;
-				imagesetpixel($image, $left_pad + $i - $correction, round($ant_a_r + $i * ($ant_b_r - $ant_a_r) / ($width - 1) + $fresnel), $color_link);
-				imagesetpixel($image, $left_pad + $i + $correction, round($ant_a_r + $i * ($ant_b_r - $ant_a_r) / ($width - 1) - $fresnel), $color_link);
-				if ($p_correction < $correction) {
-					imagesetpixel($image, $left_pad + $i + $correction - 1, round($ant_a_r + $i * ($ant_b_r - $ant_a_r) / ($width - 1) - $fresnel), $color_link);
-				}
-				$p_correction = $correction;
-			}
-			
-			$fresnel06 = (0.6 * 17.32 * sqrt(($d1*($distance-$d1)) / ($freq * $distance)));
-			$correction = sqrt((pow($b_total - $a_total, 2) * pow($fresnel06, 2)) / (pow($distance, 2) + pow($b_total - $a_total, 2)));
-			$fresnel06 = sqrt(pow($fresnel06, 2) - pow($correction, 2));
-			$correction = round($correction / $step_elevation) * ($b_total>$a_total?-1:1);
-			$fresnel06 = $fresnel06 / $step_elevation;
-			//echo $fresnel06."-".$correction."-".$ant_a."-".($ant_a + $i * ($ant_b - $ant_a) / ($width - 1))."<br />";
-			imagesetpixel($image, $left_pad + $i - $correction, round($ant_a_r + $i * ($ant_b_r - $ant_a_r) / ($width - 1) + $fresnel06), $color_link);
-			imagesetpixel($image, $left_pad + $i + $correction, round($ant_a_r + $i * ($ant_b_r - $ant_a_r) / ($width - 1) - $fresnel06), $color_link);
-			if ($p06_correction < $correction) {
-				imagesetpixel($image, $left_pad + $i + $correction - 1, round($ant_a_r + $i * ($ant_b_r - $ant_a_r) / ($width - 1) - $fresnel06), $color_link);
-			}
-			//imagesetpixel($image, $left_pad + $i, round($ant_a) + round($i * (round($ant_b) - round($ant_a)) / ($width-1)), $color_ground);
-			$p06_correction = $correction;
-		}
-		
-		return $image;
-	}
-
-}
-
-function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1) 
-{
-   /* this way it works well only for orthogonal lines
-   imagesetthickness($image, $thick);
-   return imageline($image, $x1, $y1, $x2, $y2, $color);
-   */
-   if ($thick == 1) {
-       return imageline($image, round($x1), round($y1), round($x2), round($y2), $color);
-   }
-   $t = $thick / 2 - 0.5;
-   if ($x1 == $x2 || $y1 == $y2) {
-       return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
-   }
-   $k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
-   $a = $t / sqrt(1 + pow($k, 2));
-   $points = array(
-       round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
-       round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
-       round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
-       round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
-   );    
-   imagefilledpolygon($image, $points, 4, $color);
-   return imagepolygon($image, $points, 4, $color);
-}
-
-?>
Index: /unk/globals/classes/srtm.php
===================================================================
--- /trunk/globals/classes/srtm.php (revision 175)
+++  (revision )
@@ -1,86 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class srtm {
-	
-	var $data_path;
-	
-	function srtm($data_path='') {
-		$this->data_path = $data_path;
-	}
-	
-	function get_elevation($lat, $lon, $round=TRUE) {
-		if ($lat < 0) {
-			$lat_dir = 'S';
-			$lat_adj = 1;
-		} else {
-			$lat_dir = 'N';
-			$lat_adj = 0;
-		}
-		if ($lon < 0) {
-			$lon_dir = 'W';
-			$lon_adj = 1;
-		} else {
-			$lon_dir = 'E';
-			$lon_adj = 0;
-		}
-		$y = $lat;
-		$x = $lon;
-		
-		$filename = $this->data_path.$lat_dir.sprintf("%02.0f", (integer)($lat+$lat_adj)).$lon_dir.sprintf("%03.0f", (integer)($lon+$lon_adj)).'.hgt';
-		if ($lat === '' || $lon === '' || !file_exists($filename)) return FALSE;
-		
-		$file = fopen($filename, 'r');
-		$offset = ( (integer)(($x - (integer)$x + $lon_adj) * 1200) * 2 + (1200 - (integer)(($y - (integer)$y + $lat_adj) * 1200)) * 2402 );
-		fseek($file, $offset);
-		$h1 = bytes2int(strrev(fread($file, 2)));
-		$h2 = bytes2int(strrev(fread($file, 2)));
-		fseek($file, $offset-2402);
-		$h3 = bytes2int(strrev(fread($file, 2)));
-		$h4 = bytes2int(strrev(fread($file, 2)));
-		fclose($file);
-	
-		$m = max($h1, $h2, $h3, $h4);
-		for($i=1;$i<=4;$i++) {
-			$c = 'h'.$i;
-			if ($$c == -32768)
-				$$c = $m;
-		}
-	
-		$fx = ($lon - ((integer)($lon * 1200) / 1200)) * 1200;
-		$fy = ($lat - ((integer)($lat * 1200) / 1200)) * 1200;
-	
-		// normalizing data
-		$elevation = ($h1 * (1 - $fx) + $h2 * $fx) * (1 - $fy) + ($h3 * (1 - $fx) + $h4 * $fx) * $fy;
-		if ($round)
-			$elevation = round($elevation);
-		return $elevation;
-	}
-
-}
-
-function bytes2int($val) {
-	$t = unpack("s", $val);
-	$ret = $t[1];
-	return $ret;
-}
-
-?>
Index: /trunk/globals/common.php
===================================================================
--- /trunk/globals/common.php (revision 145)
+++ /trunk/globals/common.php (revision 1)
@@ -20,50 +20,34 @@
  */
 
-if (!file_exists(ROOT_PATH."config/config.php")) {
-	die("WiND error: Please make config/config.php file ...");
-}
-include_once(ROOT_PATH."globals/vars.php");
-include_once(ROOT_PATH."config/config.php");
-$vars = array_merge($vars, $config);
-include_once($vars['templates']['path'].$vars['templates']['default'].'/config.php');
-$vars = array_merge($vars, $template_config);
-include_once(ROOT_PATH."globals/functions.php");
-
-$php_start = getmicrotime();
-
-include_once(ROOT_PATH."globals/classes/mysql.php");
-include_once(ROOT_PATH."globals/classes/construct.php");
-include_once(ROOT_PATH."globals/classes/form.php");
-include_once(ROOT_PATH."globals/classes/table.php");
-
-if (!file_exists($vars['smarty']['class'])) {
-	die("WiND error: Cannot find Smarty lib. Please check config.php ...");
-}
+include_once($root_path."config.php");
+include_once($root_path."globals/vars.php");
+$vars = array_merge($config, $vars);
+include_once($root_path."globals/functions.php");
+include_once($root_path."globals/classes/mysql.php");
+include_once($root_path."globals/classes/construct.php");
+include_once($root_path."globals/classes/form.php");
+include_once($root_path."globals/classes/table.php");
 include_once($vars['smarty']['class']);
-
-if ($vars['template']['version'] < $vars['info']['min_template_version']
-		|| $vars['template']['version'] > $vars['info']['version']) {
-	die("WiND error: Template version does not match.");
-}
-
-$smarty = new Smarty;
-$smarty->template_dir = $vars['templates']['path'].$vars['templates']['default'].'/';
-$smarty->plugins_dir = array($vars['templates']['path'].$vars['templates']['default'].'/plugins/', 'plugins');
-$smarty->compile_dir = $vars['templates']['compiled_path'].$vars['templates']['default'].'/';
-$smarty->register_modifier('stripslashes', 'stripslashes');
-reset_smarty();
 
 $construct = new construct;
 
-if ($vars['mail']['smtp'] != '') {
-	ini_set('SMTP', $vars['mail']['smtp']);
-	ini_set('smtp_port', $vars['mail']['smtp_port']);
-}
-
 $db = new mysql($vars['db']['server'], $vars['db']['username'], $vars['db']['password'], $vars['db']['database']);
 
-if ($db->error) {
-	die("WiND MySQL database error: $db->error_report");
+if ($db->error) die("Database error: $db->error_report");
+
+$smarty = new Smarty;
+$smarty->template_dir = $root_path.'templates/basic/';
+$smarty->compile_dir = $root_path.'templates/basic_c/';
+reset_smarty();
+
+//INCLUDE LANGUAGE
+if (get('lang') != '') {
+	$tl = get('lang');
+} elseif ($_SESSION['lang'] != '') {
+	$tl = $_SESSION['lang'];
+} else {
+	$tl = $vars['language']['default'];
 }
+include_once($root_path."globals/language/".$tl.".php");
 
 ?>
Index: /trunk/globals/functions.php
===================================================================
--- /trunk/globals/functions.php (revision 190)
+++ /trunk/globals/functions.php (revision 1)
@@ -20,4 +20,115 @@
  */
 
+function pvar($var) {
+	if (is_array($var)) {
+		$ret .= '<ul>';
+		while(list($key) = each($var)) {
+			if (is_array($var[$key])) {
+				$ret .= '<li>'.$key.pvar($var[$key]).'</li>';
+			} else {
+				$ret .= '<li>'.$key.' = '.$var[$key].'</li>';
+			}
+		}
+		$ret .= '</ul>';		
+		return $ret;
+	} else {
+		return $var;
+	}
+}
+
+function valid_username($username) {
+	if ($username == '') return FALSE;
+	if (strlen($username) > 20) return FALSE;
+	$allowchars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-';
+	for ($i=0; $i<strlen($username); $i++) {
+		if (strstr($allowchars, substr($username, $i, 1)) === FALSE) return FALSE;
+	}
+	return TRUE;
+}
+
+function greeklish($greek) {
+	$greek = strtoupper($greek);
+	$replacements = array(
+		"A" => "A",
+		"B" => "B",
+		"C" => "C",
+		"D" => "D",
+		"E" => "E",
+		"F" => "F",
+		"G" => "G",
+		"H" => "H",
+		"I" => "I",
+		"J" => "J",
+		"K" => "K",
+		"L" => "L",
+		"M" => "M",
+		"N" => "N",
+		"O" => "O",
+		"P" => "P",
+		"Q" => "Q",
+		"R" => "R",
+		"S" => "S",
+		"T" => "T",
+		"U" => "U",
+		"V" => "V",
+		"W" => "W",
+		"X" => "X",
+		"Y" => "Y",
+		"Z" => "Z",
+		"0" => "0",
+		"1" => "1",
+		"2" => "2",
+		"3" => "3",
+		"4" => "4",
+		"5" => "5",
+		"6" => "6",
+		"7" => "7",
+		"8" => "8",
+		"9" => "9",
+		"_" => "_",
+		"-" => "-",
+		"." => ".",
+		"¶" => "A",
+		"ž" => "E",
+		"¹" => "H",
+		"º" => "I",
+		"Œ" => "O",
+		"Ÿ" => "Y",
+		"¿" => "W",
+		"Á" => "A",
+		"Â" => "B",
+		"Ã" => "G",
+		"Ä" => "D",
+		"Å" => "E",
+		"Æ" => "Z",
+		"Ç" => "H",
+		"È" => "TH",
+		"É" => "I",
+		"Ê" => "K",
+		"Ë" => "L",
+		"Ì" => "M",
+		"Í" => "N",
+		"Î" => "KS",
+		"Ï" => "O",
+		"Ð" => "P",
+		"Ñ" => "R",
+		"Ó" => "S",
+		"Ô" => "T",
+		"Õ" => "Y",
+		"Ö" => "F",
+		"×" => "X",
+		"Ø" => "PS",
+		"Ù" => "W",
+		" " => "_"
+	);
+	for ($i=0; $i<strlen($greek); $i++) {
+		if ($replacements[strtoupper(substr($greek, $i, 1))] != '') {
+			$english .= $replacements[strtoupper(substr($greek, $i, 1))];
+		}
+	}
+	if ($english == '') $english = rand(100000, 999999);
+	return strtolower($english);
+}
+
 function redirect($url, $sec=0, $exit=TRUE) {
 	global $main;
@@ -27,9 +138,10 @@
 		return;
 	}
-	if (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) || @preg_match('/Safari/', $_SERVER['HTTP_USER_AGENT']) || $sec>0) {
-		header("Refresh: $sec; URL=".html_entity_decode($url));
+	if (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) || $sec>0) {
+		header("Refresh: $sec; URL=$url");
+		global $main;
 		$main->html->head->add_meta("$sec; url=$url", "", "refresh");
 	} else {
-		header("Location: ".html_entity_decode($url));		
+		header("Location: $url");		
 	}
 	if ($exit && !$main->message->show) {
@@ -49,33 +161,14 @@
 	global $page_admin, $main;
 	if ($_SERVER['REQUEST_METHOD'] == 'GET') {
-		$ret = "";
-		if (isset($_GET[$key])) {
-		    $ret = $_GET[$key];
-		}		
+		$ret = $_GET[$key];
 	} else {
 		parse_str($_POST['query_string'], $output);
-		$ret = "";
-		if (isset($output[$key])) {
-		    $ret = $output[$key];
-		}
+		$ret = $output[$key];
 	}
 	switch ($key) {
 		case 'page':
-			$valid_array = getdirlist(ROOT_PATH."includes/pages/");
+			$valid_array = getdirlist($root_path."includes/pages/");
 			array_unshift($valid_array, 'startup');
 			break;
-		case 'subpage':
-			$valid_array = getdirlist(ROOT_PATH."includes/pages/".get('page').'/', FALSE, TRUE);
-			for ($key=0;$key<count($valid_array);$key++) {
-				$valid_array[$key] = basename($valid_array[$key], '.php');
-				if (substr($valid_array[$key], 0, strlen(get('page'))+1) != get('page').'_') {
-					array_splice($valid_array, $key, 1);
-					$key--;
-				} else {
-					$valid_array[$key] = substr($valid_array[$key], strlen(get('page'))+1);
-				}
-			}
-			array_unshift($valid_array, '');
-			break;
 	}
 	if (isset($valid_array) && !in_array($ret, $valid_array)) $ret = $valid_array[0];
@@ -83,5 +176,5 @@
 }
 
-function getdirlist($dirName, $dirs=TRUE, $files=FALSE) { 
+function getdirlist ($dirName, $dirs=TRUE, $files=FALSE) { 
 	$d = dir($dirName);
 	$a = array();
@@ -99,8 +192,7 @@
 } 
 
-function makelink($extra="", $cur_qs=FALSE, $cur_gs_vars=TRUE, $htmlspecialchars=TRUE) {
+function makelink($extra="", $cur_qs=FALSE, $cur_gs_vars=TRUE) {
 	global $qs_vars;
 	$o = array();
-	if(get('show_map') == "no") $o = array_merge($o,array("show_map" => "no"));
 	if ($cur_qs == TRUE) {
 		parse_str(get_qs(), $qs);
@@ -108,11 +200,11 @@
 	}
 	if ($cur_gs_vars == TRUE) {
-		$o = array_merge($o, (array)$qs_vars);
-	}
-	$o = array_merge($o, (array)$extra);
-	return ($htmlspecialchars?htmlspecialchars('?'.query_str($o)):'?'.query_str($o));
-}
-
-function query_str($params) {
+		$o = array_merge($o, $qs_vars);
+	}
+	$o = array_merge($o, $extra);
+	return '?'.query_str($o);
+}
+
+function query_str ($params) {
    $str = '';
    foreach( (array) $params as $key => $value) {
@@ -154,4 +246,8 @@
 }
 
+function valid_email($email) {
+	return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\.)+[a-z]{2}([zmuvtg]|fo|me)?$",$email);
+}
+
 function template($assign_array, $file) {
 	global $smarty;
@@ -169,5 +265,5 @@
 function reset_smarty() {
 	global $smarty, $lang;
-	$smarty->clear_all_assign();
+	$smarty->clear_all_assign;
 	$smarty->assign_by_ref('lang', $lang);
 	$smarty->assign('tpl_dir', $smarty->template_dir);
@@ -208,30 +304,12 @@
 }
 
-function is8bit($str) {
-	for($i=0; $i <= strlen($str); $i++)
-		if(ord($str{$i}) >> 7)   
-			return TRUE;
-	return FALSE;
-}
-
-function sendmail($to, $subject, $body, $from_name='', $from_email='', $cc_to_sender=FALSE) {
-	global $vars, $lang;
-	$subject = mb_encode_mimeheader($subject, $lang['charset'], 'B', "\n");
-	if (empty($from_email)) {
-		$from_name = $vars['mail']['from_name'];
-		$from_email = $vars['mail']['from'];
-	}
-	$from_name = mb_encode_mimeheader($from_name, $lang['charset'], 'B', "\n");
-	if ($from_name == $from_email) {
-		$from = $from_email;
-	} else {
-		$from = $from_name.' <'.$from_email.'>';
-	}
-	$headers = "From: $from\n";
-	if ($cc_to_sender) $headers .= "Cc: $from\n";
-	$headers .= "MIME-Version: 1.0\n";
-	$headers .= 'Content-Type: text/plain; charset='.$lang['charset']."\n";
-	$headers .= 'Content-Transfer-Encoding: '.(is8bit($body) ? '8bit' : '7bit');
-	return @mail($to, $subject, $body, $headers);
+function sendmail($to, $subject, $body) {
+	global $vars;
+	return mail($to, $subject, $body, "From: ".$vars['mail']['from_name']." <".$vars['mail']['from'].">");
+}
+
+function sendmail_fromlang($to, $message) {
+	global $lang;
+	return sendmail($to, $lang['email'][$message]['subject'], $lang['email'][$message]['body']);
 }
 
@@ -245,55 +323,5 @@
 }
 
-function correct_ip_min($ip, $ret_null=TRUE, $pad=3) {
-	if ($ip == '' && $ret_null === TRUE) return '';
-	$t = explode(".", $ip, 4);
-	for ($i=0;$i<4;$i++) {
-		if(!isset($t[$i+1]) && $t[$i] != null) {
-			switch (substr($t[$i], 0, 1)) {
-			case '0':
-				break;
-			case '1':
-			case '2':
-				$t[$i] = intval(str_pad($t[$i], (substr($t[$i], 1, 1) >= 6?2:$pad), "0"));
-				break;
-			default:
-				$t[$i] = intval(str_pad($t[$i], ($pad==3?2:$pad), "0"));
-			}
-		}elseif($t[$i] == null) {
-			$t[$i] = 0;
-		}else{
-			$t[$i] = (integer)($t[$i]);
-		}
-	}
-	return implode(".", $t);
-}
-
-function correct_ip_max($ip, $ret_null=TRUE, $pad=3) {
-	if ($ip == '' && $ret_null === TRUE) return '';
-	$t = explode(".", $ip, 4);
-	for ($i=0;$i<4;$i++) {
-		if(!isset($t[$i+1]) && $t[$i] != null) {
-			switch (substr($t[$i], 0, 1)) {
-			case '0':
-				break;
-			case '1':
-			case '2':
-				$t[$i] = intval(str_pad($t[$i], (substr($t[$i], 1, 1) >= 6?2:$pad), "9"));
-				break;
-			default:
-				$t[$i] = intval(str_pad($t[$i], ($pad==3?2:$pad), "9"));
-			}
-			if ($t[$i] > 255) $t[$i] = 255;
-		}elseif($t[$i] == null) {
-			$t[$i] = 255;
-		}else{
-			$t[$i] = (integer)($t[$i]);
-		}
-	}
-	return implode(".", $t);
-}
-
 function generate_account_code() {
-	$ret = '';
 	for ($i=1;$i<=20;$i++) {
 		$ret .= rand(0, 9);
@@ -317,14 +345,11 @@
 	$name = strtolower($name);
 	$allowchars = 'abcdefghijklmnopqrstuvwxyz0123456789-';
-	$ret = '';
 	for ($i=0; $i<strlen($name); $i++) {
 		$char = substr($name, $i, 1);
 		if (strstr($allowchars, $char) !== FALSE) $ret .= $char;
 	}
-	if ($ret == '') $ret = 'noname';
 	$i=2;
-	$extension = '';
 	do {
-		$cnt = $db->cnt('', 'nodes', "name_ns = '".$ret.$extension."' AND id != '".$node."'");
+		$cnt = $db->cnt('nodes', "name_ns = '".$ret.$extension."' AND id != '".$node."'");
 		if ($cnt > 0) {
 			$extension = "-".$i;
@@ -335,129 +360,3 @@
 }
 
-function is_ip($ip, $full_ip=TRUE) {
-	$ip_ex = explode(".", $ip, 4);
-	if ($ip == '') return FALSE;
-	for ($i=0;$i<count($ip_ex);$i++) {
-		if ($i == count($ip_ex)-1 && $ip_ex[$i] == '') continue;
-		if (!is_numeric($ip_ex[$i]) || $ip_ex[$i] < 0 || $ip_ex[$i] > 255) return FALSE; 
-	}
-	return ($full_ip?(count($ip_ex)==4):TRUE);
-}
-
-function include_gmap($javascript) {
-	global $main, $vars, $lang;
-	$dirname = dirname($_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']);
-	$gmap_key = '' ;
-	if (isset($vars['gmap']['keys'][$dirname])) {
-		$gmap_key = $vars['gmap']['keys'][$dirname];
-	}
-	if (isset($vars['gmap']['keys'][$dirname."/"]) && $gmap_key == '') {
-		$gmap_key = $vars['gmap']['keys'][$dirname."/"];
-	}
-	if (isset($vars['gmap']['keys']["http://".$dirname]) && $gmap_key == '') {
-		$gmap_key = $vars['gmap']['keys']["http://".$dirname];
-	}
-	if (isset($vars['gmap']['keys']["http://".$dirname."/"]) && $gmap_key == '') {
-		$gmap_key = $vars['gmap']['keys']["http://".$dirname."/"];
-	}
-	if ($gmap_key == '') return FALSE;
-	
-	$main->html->head->add_script("text/javascript", "http://".$vars['gmap']['server']."/maps?file=api&v=".$vars['gmap']['api']."&key=".$gmap_key."&hl=".$lang["iso639"]);
-	$main->html->head->add_script("text/javascript", $javascript);
-	$main->html->head->add_extra(
-		'<style type="text/css">
-			v\:* {
-  			behavior:url(#default#VML);
-			}
-		</style>');
-	
-	if(!$main->html->body->tags['onload']) {
-		$main->html->body->tags['onload']="gmap_onload();";
-	} else {
-		$main->html->body->tags['onload'].="gmap_onload();";
-	}
-	$main->html->body->tags['onunload'] = "GUnload()"; //added to reduce IE memory leaks
-	return TRUE;
-}
-
-function getmicrotime(){ 
-	list($usec, $sec) = explode(" ",microtime()); 
-	return ((float)$usec + (float)$sec); 
-} 
-
-function array_multimerge($array1, $array2) {
-	if (is_array($array2) && count($array2)) {
-		foreach ($array2 as $k => $v) {
-			if (is_array($v) && count($v)) {
-				$array1[$k] = array_multimerge($array1[$k], $v);
-			} else {
-				$array1[$k] = $v;
-			}
-		}
-	} else {
-		$array1 = $array2;
-	}
-	
-	return $array1;
-}
-
-function language_set($language='', $force=FALSE) {
-	global $vars, $db, $lang;
-	if ($force) {
-		$tl = $language;
-	} elseif (get('lang') != '') {
-		$tl = get('lang');
-	} elseif (isset($_SESSION['lang']) && $_SESSION['lang'] != '') {
-		$tl = $_SESSION['lang'];
-	} elseif ($language != '') {
-		$tl = $language;
-	} else {
-		$tl = $vars['language']['default'];
-	}
-	
-	if ($vars['language']['enabled'][$tl] === TRUE && 
-			file_exists(ROOT_PATH."globals/language/".$tl.".php")) {
-
-		include_once(ROOT_PATH."globals/language/".$tl.".php");
-		if (file_exists(ROOT_PATH."config/language/".$tl."_overwrite.php")) {
-			include_once(ROOT_PATH."config/language/".$tl."_overwrite.php");
-			$lang = array_multimerge($lang, $lang_overwrite);
-		}
-		// Set-up mbstring's internal encoding (mainly for supporting UTF-8)
-		mb_internal_encoding($lang['charset']);
-		
-		// Set-up NAMES on database system
-		if($vars['db']['version']>=4.1)
-			$db->query("SET NAMES '".$lang['mysql_charset']."'");
-
-	} else {
-
-		if ($tl == $_SESSION['lang']) unset($_SESSION['lang']);
-		die("WiND error: Selected language not found.");
-
-	}
-}
-
-function url_fix ($url, $default_prefix="http://") {
-	if($url == "") {
-		return;
-	}
-	// Windows shares (samba) check
-	if (substr(stripslashes($url), 0, 2) == '\\\\') {
-		return 'file://'.str_replace('\\', '/', substr(stripslashes($url), 2));
-	}
-	// Insert default prefix
-	if (strpos($url, '://') === FALSE) {
-		return $default_prefix.$url;
-	}
-	return $url;
-	
-}
-
-function replace_sql_wildcards($str) {
-	$str = str_replace("*", "%", $str);
-	$str = str_replace("?", "_", $str);
-	return $str;
-}
-
 ?>
Index: /trunk/includes/pages/ranges/ranges.php
===================================================================
--- /trunk/includes/pages/ranges/ranges.php (revision 143)
+++ /trunk/includes/pages/ranges/ranges.php (revision 1)
@@ -20,5 +20,5 @@
  */
 
-if (get('subpage') != '') include_once(ROOT_PATH."includes/pages/ranges/ranges_".get('subpage').".php");
+if (get('subpage') != '') include_once($root_path."includes/pages/ranges/ranges_".get('subpage').".php");
 
 class ranges {
Index: /trunk/includes/pages/ranges/ranges_search.php
===================================================================
--- /trunk/includes/pages/ranges/ranges_search.php (revision 154)
+++ /trunk/includes/pages/ranges/ranges_search.php (revision 1)
@@ -32,5 +32,5 @@
 		$form_search_ranges = new form(array('FORM_NAME' => 'form_search_ranges'));
 		$form_search_ranges->data = array("0" => array("Field" => "ip", "fullField" => "ip"));
-		$form_search_ranges->db_data('ip_ranges.status');
+		//$form_search_ranges->db_data('ip_ranges.status, ip_ranges.delete_req');
 		$form_search_ranges->db_data_search();
 		return $form_search_ranges;
@@ -42,19 +42,13 @@
 		$where = $form_search_ranges->db_data_where(array('ip' => 'exclude'));
 		$table_ip_ranges = new table(array('TABLE_NAME' => 'table_ip_ranges', 'FORM_NAME' => 'table_ip_ranges'));
-		$s_ip = $form_search_ranges->data[0]['value'];
-		$where = ($where !=''?"(".$where.") AND ":"");
-		if ($s_ip !='') $where .= '(ip_ranges.ip_start >= '.ip2long(correct_ip_min($s_ip, TRUE, 1)).' AND ip_ranges.ip_start <= '.ip2long(correct_ip_max($s_ip, TRUE, 1)).") OR ".
-						'(ip_ranges.ip_start >= '.ip2long(correct_ip_min($s_ip, TRUE, 2)).' AND ip_ranges.ip_start <= '.ip2long(correct_ip_max($s_ip, TRUE, 2)).") OR ".
-						'(ip_ranges.ip_start >= '.ip2long(correct_ip_min($s_ip, TRUE, 3)).' AND ip_ranges.ip_start <= '.ip2long(correct_ip_max($s_ip, TRUE, 3)).") AND ";
-		//$where = 
-		//		($s_ip !=''?"ip_ranges.ip_start <= ".ip2long($s_ip)." AND ip_ranges.ip_end >= ".ip2long($s_ip)." AND ":"");
+		$s_ip = correct_ip($form_search_ranges->data[0]['value']);
+		$where = ($where !=''?"(".$where.") AND ":"").
+				($s_ip !=''?"ip_ranges.ip_start <= ".ip2long($s_ip)." AND ip_ranges.ip_end >= ".ip2long($s_ip)." AND ":"");
 		if ($where!='') $where = substr($where, 0, -5);
 		$table_ip_ranges->db_data(
-			'"" AS ip_range, ip_ranges.ip_start, ip_ranges.ip_end, ip_ranges.date_in, ip_ranges.status, nodes.name AS nodes__name, nodes.id AS nodes__id',
+			'"" AS ip_range, ip_ranges.ip_start, ip_ranges.ip_end, ip_ranges.date_in, nodes.name AS nodes__name, nodes.id AS nodes__id',
 			'ip_ranges
 			LEFT JOIN nodes ON ip_ranges.node_id = nodes.id',
-			($where !=''?"(".$where.")":""),
-			"",
-			"ip_ranges.status ASC, ip_ranges.ip_start ASC");
+			($where !=''?"(".$where.") AND ":"")."ip_ranges.status = 'active'");
 		foreach( (array) $table_ip_ranges->data as $key => $value) {
 			if ($key != 0) {
@@ -68,5 +62,4 @@
 		$table_ip_ranges->info['EDIT_COLUMN'] = 'nodes__name';
 		$table_ip_ranges->db_data_remove('ip_start', 'ip_end', 'nodes__id');
-		$table_ip_ranges->db_data_translate('ip_ranges__status');
 		return $table_ip_ranges;
 	}
@@ -77,9 +70,20 @@
 		$this->tpl['link_ranges_search'] = makelink(array("page" => "ranges", "subpage" => "search"));
 		$this->tpl['link_ranges_allocation'] = makelink(array("page" => "ranges", "subpage" => "allocation"));
-		$form_search_ranges = $this->form_search_ranges();
-		//if ($form_search_ranges->data[0]['value'] != '') $form_search_ranges->data[0]['value'] = correct_ip($form_search_ranges->data[0]['value']);
-		$this->tpl['form_search_ranges'] = $construct->form($form_search_ranges, __FILE__);
+		$this->tpl['form_search_ranges'] = $construct->form($this->form_search_ranges(), __FILE__);
 		$this->tpl['table_ranges'] = $construct->table($this->table_ip_ranges(), __FILE__);
 		return template($this->tpl, __FILE__);
+	}
+
+	function output_onpost_table_ip_ranges() {
+		global $db, $main;
+		$ret = TRUE;
+		foreach( (array) $_POST['id'] as $key => $value) {
+			$ret = $ret && $db->del("ip_ranges", "id = '".$value."'");
+		}
+		if ($ret) {
+			$main->message->set_fromlang('info', 'delete_success', makelink("",TRUE));
+		} else {
+			$main->message->set_fromlang('error', 'generic');		
+		}
 	}
 
Index: /trunk/includes/pages/users/users.php
===================================================================
--- /trunk/includes/pages/users/users.php (revision 187)
+++ /trunk/includes/pages/users/users.php (revision 1)
@@ -20,5 +20,5 @@
  */
 
-if (get('action') == 'restore') include_once(ROOT_PATH."includes/pages/users/users_restore.php");
+if (get('action') == 'restore') include_once($root_path."includes/pages/users/users_restore.php");
 
 class users {
@@ -34,35 +34,16 @@
 	
 	function form_user() {
-		global $main, $db, $vars, $lang;
+		global $main;
 		$form_user = new form(array('FORM_NAME' => 'form_user'));
-		$form_user->db_data('users.username, users.password, users.surname, users.name, users.email, users.phone, users.info, users.language');
-		// Hide password...
+		$form_user->db_data('users.username, users.password, users.surname, users.name, users.email, users.phone, users.info'.($main->userdata->privileges['admin'] === TRUE?', rights.type, users.status':''));
+		$form_user->db_data_values("users", "id", get('user'));
 		$form_user->data[1]['value'] = '';
-		// ...and show it as required
-		if (get('user') == 'add') $form_user->data[1]['Null'] = '';
 		array_splice($form_user->data, 2, 0, array($form_user->data[1]));
 		$form_user->data[2]['Field'] .= '_c';
 		$form_user->data[2]['fullField'] .= '_c';
-		$form_user->data[8]['Type'] = 'enum';
-		$form_user->data[8]['Null'] = '';
-		$form_user->data[8]['Type_Enums'][0] = array("value" => "", "output" => $lang['default']);
-		foreach($vars['language']['enabled'] as $key => $value) {
-			if ($value) array_push($form_user->data[8]['Type_Enums'], array("value" => $key, "output" => ($lang['languages'][$key]==''?$key:$lang['languages'][$key])));
+		if ($main->userdata->privileges['admin'] === TRUE) {
+			$form_user->data[8]['Type'] = 'enum_multi';
+			$form_user->db_data_values_multi("rights", "user_id", get('user'), 'type');			
 		}
-		
-		if (isset($main->userdata->privileges['admin']) && $main->userdata->privileges['admin'] === TRUE) {
-			$form_user->db_data('rights.type, users.status');
-			$form_user->data[9]['Type'] = 'enum_multi';
-			$form_user->db_data_values_multi("rights", "user_id", get('user'), 'type');	
-			
-			$form_user->db_data('users_nodes.node_id, users_nodes.node_id');
-			$form_user->data[11]['Field'] = 'node_id_owner';
-			$form_user->data[11]['fullField'] = 'node_id_owner';
-			$form_user->db_data_pickup("node_id_owner", "nodes", $db->get("nodes.id AS value, CONCAT(nodes.name, ' (#', nodes.id, ')') AS output", "users_nodes, nodes", "nodes.id = users_nodes.node_id AND users_nodes.user_id = '".get('user')."' AND users_nodes.owner = 'Y'"), TRUE);
-			$form_user->db_data_pickup("users_nodes.node_id", "nodes", $db->get("nodes.id AS value, CONCAT(nodes.name, ' (#', nodes.id, ')') AS output", "users_nodes, nodes", "nodes.id = users_nodes.node_id AND users_nodes.user_id = '".get('user')."' AND users_nodes.owner != 'Y'"), TRUE);		
-		}
-		
-		$form_user->db_data_values("users", "id", get('user'));
-		$form_user->data[1]['value'] = '';
 		return $form_user;
 	}
@@ -70,17 +51,7 @@
 	function output() {
 		global $main, $construct, $db;
-		if(get('action') === "delete" && $main->userdata->privileges['admin'] === TRUE)
-		{
-			$ret = $db->del("users", "id = '".get('user')."'");
-			if ($ret) {
-				$main->message->set_fromlang('info', 'delete_success', makelink(array("page" => "admin", "subpage" => "users")));
-			} else {
-				$main->message->set_fromlang('error', 'generic');		
-			}
-			return ;
-		}
 		if (get('action') == 'activate') {
 			$t = $db->get('account_code', 'users', "id = '".get('user')."'");
-			if ($t[0]['account_code'] != '' && $t[0]['account_code'] == get('account_code')) {
+			if ($t[0]['account_code'] == get('account_code')) {
 				$db->set('users', array('status' => 'activated'), "id = '".get('user')."'");
 				$main->message->set_fromlang('info', 'activation_success');
@@ -103,6 +74,4 @@
 		if (get('user') != '') {
 			$this->tpl['user_method'] = (get('user') == 'add' ? 'add' : 'edit');
-			if(get('user') != 'add' && $main->userdata->privileges['admin'] === TRUE)
-				$this->tpl['link_user_delete'] = makelink(array("action" => "delete"),TRUE);
 			$this->tpl['form_user'] = $construct->form($this->form_user(), __FILE__);
 		}
@@ -130,10 +99,11 @@
 		$form_user = $this->form_user();
 		array_splice($form_user->data, 2, 1);
-		if (!isset($_POST['users__password'])) array_splice($form_user->data, 1, 1);
+		if ($_POST['users__password'] == '') array_splice($form_user->data, 1, 1);
+		$a = array('date_in' => date_now());
 		if (get('user') == 'add') {
 			$a['status'] = 'pending';	
 			$a['account_code'] = generate_account_code();
 		}
-		$ret = $form_user->db_set((isset($a)?$a:""), "users", "id", get('user'));
+		$ret = $form_user->db_set($a, "users", "id", get('user'));
 		if (get('user') == 'add') {
 			$ins_id = $db->insert_id;
@@ -144,12 +114,4 @@
 		if ($ret && $main->userdata->privileges['admin'] === TRUE) {
 			$ret = $form_user->db_set_multi(array(), "rights", "user_id", get('user'));
-			$ret = $ret && $form_user->db_set_multi(array('owner' => 'N'), "users_nodes", "user_id", $ins_id);
-			$ret = $ret && $db->del('users_nodes', "user_id = '".$ins_id."' AND owner = 'Y'");
-			if (isset($_POST['node_id_owner'])) {
-				foreach((array)$_POST['node_id_owner'] as $value) {
-					$ret = $ret && $db->del('users_nodes', "node_id = '".$value."' AND owner = 'Y'");
-					$ret = $ret && $db->add('users_nodes', array("user_id" => $ins_id, "node_id" => $value, 'owner' => 'Y'));
-				}
-			}
 		}
 		if ($ret && (get('user') == 'add' || $v_old[0]['email'] != $_POST['users__email'])) {
Index: /trunk/includes/pages/users/users_restore.php
===================================================================
--- /trunk/includes/pages/users/users_restore.php (revision 76)
+++ /trunk/includes/pages/users/users_restore.php (revision 1)
@@ -60,9 +60,4 @@
 		$t = $db->get('id, account_code', 'users', "username = '".$_POST['users__username']."' AND email = '".$_POST['users__email']."'");
 		if ($t[0]['id'] != '') {
-			if ($t[0]['account_code'] == '') {
-				$t[0]['account_code'] = generate_account_code();
-				$data['account_code'] = $t[0]['account_code'];
-				$db->set('users', $data, "id = '".$t[0]['id']."'");
-			}
 			$subject = $lang['email']['user_restore']['subject'];
 			$subject = str_replace('##username##', $_POST['users__username'], $subject);
@@ -72,10 +67,10 @@
 			$ret = sendmail($_POST['users__email'], $subject, $body);
 			if ($ret) {
-				$main->message->set_fromlang('info', 'restore_success');
+				$main->message->set_fromlang('info', 'insert_success', makelink());
 			} else {
 				$main->message->set_fromlang('error', 'generic');		
 			}
 		} else {
-			$main->message->set_fromlang('error', 'login_failed');
+			$main->message->set_fromlang('error', 'generic');
 		}
 	}
@@ -83,7 +78,7 @@
 	function output_onpost_form_change_password() {
 		global $main, $db;
-		if ($db->cnt('', 'users', "account_code IS NOT NULL AND account_code = '".get('account_code')."' AND id = '".get('user')."'") == 1) {
+		if ($db->cnt('users', "account_code = '".get('account_code')."' AND id = '".get('user')."'") == 1) {
 			if ($_POST['users__password'] == $_POST['users__password_c'] && $_POST['users__password'] != '') {
-				$ret = $db->set('users', array("status" => "activated", "account_code" => generate_account_code(), "password" => md5($_POST['users__password'])), "id = '".get('user')."'");
+				$ret = $db->set('users', array("password" => md5($_POST['users__password'])), "id = '".get('user')."'");
 				
 				if ($ret) {
Index: /trunk/includes/pages/startup/startup.php
===================================================================
--- /trunk/includes/pages/startup/startup.php (revision 143)
+++ /trunk/includes/pages/startup/startup.php (revision 1)
@@ -29,5 +29,4 @@
 	
 	function output() {
-		if (file_exists(ROOT_PATH."config/startup.html")) $this->tpl['startup_html'] = file_get_contents(ROOT_PATH."config/startup.html");
 		return template($this->tpl, __FILE__);
 	}
Index: /trunk/includes/pages/dnszones/dnszones.php
===================================================================
--- /trunk/includes/pages/dnszones/dnszones.php (revision 71)
+++ /trunk/includes/pages/dnszones/dnszones.php (revision 1)
@@ -30,5 +30,5 @@
 	function form_search_dns() {
 		$form_search_dns = new form(array('FORM_NAME' => 'form_search_dns'));
-		$form_search_dns->db_data('dns_zones.type, dns_zones.name, dns_zones.status');
+		$form_search_dns->db_data('dns_zones.type, dns_zones.name');
 		$form_search_dns->db_data_search();
 		return $form_search_dns;
@@ -38,17 +38,14 @@
 		global $construct, $db, $vars;
 		$form_search_dns = $this->form_search_dns();
-		if (substr($form_search_dns->data[1]['value'], -strlen(".".$vars['dns']['root_zone'])) == ".".$vars['dns']['root_zone']) {
-			$form_search_dns->data[1]['value'] = substr($form_search_dns->data[1]['value'], 0, -strlen(".".$vars['dns']['root_zone']));
-		}
 		$where = $form_search_dns->db_data_where(array("dns_zones__name" => "starts_with"));
 		$table_dns = new table(array('TABLE_NAME' => 'table_dns', 'FORM_NAME' => 'table_dns'));
 
 		$table_dns->db_data(
-			'dns_zones.id AS dns_zones__id, dns_zones.name AS dns_zones__name, dns_zones.type, dns_zones.date_in, dns_zones.status, nodes.name AS nodes__name, nodes.id AS nodes__id',
+			'dns_zones.id AS dns_zones__id, dns_zones.name AS dns_zones__name, dns_zones.type, dns_zones.date_in, nodes.name AS nodes__name, nodes.id AS nodes__id',
 			'dns_zones
 			LEFT JOIN nodes ON dns_zones.node_id = nodes.id',
 			$where,
-			"",
-			"dns_zones.status ASC, dns_zones.type ASC, dns_zones.name ASC");
+			($where !=''?"(".$where.") AND ":"")."dns_zones.status = 'active'",
+			"dns_zones.type ASC, dns_zones.name ASC");
 		for($i=1;$i<count($table_dns->data);$i++) {
 			if (isset($table_dns->data[$i])) {
@@ -60,5 +57,4 @@
 		$table_dns->info['EDIT_COLUMN'] = 'nodes__name';
 		$table_dns->db_data_remove('dns_zones__id', 'type', 'nodes__id');
-		$table_dns->db_data_translate('dns_zones__status');
 		return $table_dns;
 	}
Index: /trunk/includes/pages/admin/admin_users.php
===================================================================
--- /trunk/includes/pages/admin/admin_users.php (revision 26)
+++ /trunk/includes/pages/admin/admin_users.php (revision 1)
@@ -45,6 +45,5 @@
 			'users LEFT JOIN rights ON users.id = rights.user_id',
 			$where,
-			'users.id',
-			'users.date_in DESC');
+			'users.id');
 		$table_users->db_data_search($form_search_users);
 		for($i=1;$i<count($table_users->data);$i++) {
Index: /trunk/includes/pages/admin/admin_nodes.php
===================================================================
--- /trunk/includes/pages/admin/admin_nodes.php (revision 41)
+++ /trunk/includes/pages/admin/admin_nodes.php (revision 1)
@@ -45,10 +45,6 @@
 		$table_nodes->db_data(
 			'nodes.id, nodes.name AS nodes__name, areas.name AS areas__name',
-			'nodes ' .
-			'LEFT JOIN areas ON nodes.area_id = areas.id ' .
-			'LEFT JOIN regions ON areas.region_id = regions.id',
-			$where,
-			"",
-			"nodes.id ASC");
+			'nodes, areas, regions',
+			'nodes.area_id = areas.id AND areas.region_id = regions.id'.($where!=''?' AND ('.$where.')':""));
 		$table_nodes->db_data_search($form_search_nodes);
 		for($i=1;$i<count($table_nodes->data);$i++) {
Index: /trunk/includes/pages/admin/admin.php
===================================================================
--- /trunk/includes/pages/admin/admin.php (revision 143)
+++ /trunk/includes/pages/admin/admin.php (revision 1)
@@ -20,5 +20,5 @@
  */
 
-if (get('subpage') != '') include_once(ROOT_PATH."includes/pages/admin/admin_".get('subpage').".php");
+if (get('subpage') != '') include_once($root_path."includes/pages/admin/admin_".get('subpage').".php");
 
 class admin {
Index: /unk/includes/pages/admin/admin_areas_area.php
===================================================================
--- /trunk/includes/pages/admin/admin_areas_area.php (revision 156)
+++  (revision )
@@ -1,71 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class admin_areas_area {
-
-	var $tpl;
-	
-	function admin_areas_area() {
-		
-	}
-	
-	function form_area() {
-		global $db, $vars;
-		$form_area = new form(array('FORM_NAME' => 'form_area'));
-		$form_area->db_data('areas.id, areas.region_id, areas.name, areas.ip_start, areas.ip_end, areas.info');
-		$form_area->db_data_enum('areas.region_id', $db->get("id AS value, name AS output", "regions"));
-		$form_area->db_data_values("areas", "id", get('area'));
-		if (get('area') != 'add') {
-			$form_area->data[3]['value'] = long2ip($form_area->data[3]['value']);
-			$form_area->data[4]['value'] = long2ip($form_area->data[4]['value']);
-		}
-		$form_area->db_data_remove('areas__id');
-		return $form_area;
-	}
-	
-	function output() {
-		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct;
-		$this->tpl['area_method'] = (get('area') == 'add' ? 'add' : 'edit' );
-		$this->tpl['form_area'] = $construct->form($this->form_area(), __FILE__);
-		return template($this->tpl, __FILE__);
-	}
-
-	function output_onpost_form_area() {
-		global $construct, $main, $db;
-		$form_area = $this->form_area();
-		$area = get('area');
-		$ret = TRUE;
-		$_POST['areas__ip_start'] = ip2long($_POST['areas__ip_start']);
-		$_POST['areas__ip_end'] = ip2long($_POST['areas__ip_end']);
-		$ret = $form_area->db_set(array(),
-								"areas", "id", get('area'));
-		
-		if ($ret) {
-			$main->message->set_fromlang('info', 'insert_success', makelink(array("page" => "admin", "subpage" => "areas")));
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-
-}
-
-?>
Index: /unk/includes/pages/admin/admin_services.php
===================================================================
--- /trunk/includes/pages/admin/admin_services.php (revision 187)
+++  (revision )
@@ -1,85 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-if (get('service') != '') include_once(ROOT_PATH."includes/pages/admin/admin_services_service.php");
-
-class admin_services {
-
-	var $tpl;
-	var $page;
-
-	function admin_services() {
-		if (get('service') != '') {
-			$p = "admin_services_service";
-			$this->page = new $p;
-		}
-	}
-	
-	function table_services() {
-		global $construct, $db, $main;
-		$table_services = new table(array('TABLE_NAME' => 'table_services', 'FORM_NAME' => 'table_services'));
-		$table_services->db_data(
-			'services.id, services.title, services.protocol, services.port',
-			'services',
-			'',
-			'',
-			"services.title ASC");
-		foreach( (array) $table_services->data as $key => $value) {
-			if ($key != 0) {
-				$table_services->info['EDIT'][$key] = makelink(array("page" => "admin", "subpage" => "services", "service" => $table_services->data[$key]['id']));
-			}
-		}
-		$table_services->info['EDIT_COLUMN'] = 'title';
-		$table_services->db_data_translate('services__protocol');
-		$table_services->db_data_multichoice('services', 'id');
-		$table_services->info['MULTICHOICE_LABEL'] = 'delete';
-		$table_services->db_data_remove('id');
-		return $table_services;
-	}
-	
-	function output() {
-		global $construct;
-		if (get('service') != '') {
-			return $this->page->output();
-		} else {
-			if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-			$this->tpl['link_services_categories_add'] = makelink(array('page' => 'admin', 'subpage' => 'services', 'service' => 'add'));
-			$this->tpl['table_services'] = $construct->table($this->table_services(), __FILE__);
-			return template($this->tpl, __FILE__);
-		}
-	}
-
-	function output_onpost_table_services() {
-		global $db, $main;
-		$ret = TRUE;
-		foreach( (array) $_POST['id'] as $key => $value) {
-			$ret = $ret && $db->del("services", "id = '".$value."'");
-		}
-		if ($ret) {
-			$main->message->set_fromlang('info', 'delete_success', makelink("",TRUE));
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-
-}
-
-?>
Index: /unk/includes/pages/admin/admin_services_service.php
===================================================================
--- /trunk/includes/pages/admin/admin_services_service.php (revision 152)
+++  (revision )
@@ -1,64 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class admin_services_service {
-
-	var $tpl;
-	
-	function admin_services_service() {
-		
-	}
-	
-	function form_services() {
-		global $db, $vars;
-		$form_services = new form(array('FORM_NAME' => 'form_services'));
-		$form_services->db_data('services.id, services.title, services.protocol, services.port');
-		$form_services->db_data_values("services", "id", get('service'));
-		$form_services->db_data_remove('services__id');
-		return $form_services;
-	}
-	
-	function output() {
-		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct;
-		$this->tpl['services_method'] = (get('service') == 'add' ? 'add' : 'edit' );
-		$this->tpl['form_services'] = $construct->form($this->form_services(), __FILE__);
-		return template($this->tpl, __FILE__);
-	}
-
-	function output_onpost_form_services() {
-		global $construct, $main, $db;
-		$form_services = $this->form_services();
-		$service = get('service');
-		$ret = TRUE;
-		$ret = $form_services->db_set(array(),
-								"services", "id", get('service'));
-		
-		if ($ret) {
-			$main->message->set_fromlang('info', 'insert_success', makelink(array("page" => "admin", "subpage" => "services")));
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-
-}
-
-?>
Index: /unk/includes/pages/admin/admin_regions.php
===================================================================
--- /trunk/includes/pages/admin/admin_regions.php (revision 187)
+++  (revision )
@@ -1,86 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-if (get('region') != '') include_once(ROOT_PATH."includes/pages/admin/admin_regions_region.php");
-
-class admin_regions {
-
-	var $tpl;
-	var $page;
-	
-	function admin_regions() {
-		if (get('region') != '') {
-			$p = "admin_regions_region";
-			$this->page = new $p;
-		}		
-	}
-	
-	function table_regions() {
-		global $construct, $db, $main;
-		$table_regions = new table(array('FORM_NAME' => 'table_regions', 'TABLE_NAME' => 'table_regions'));
-		$table_regions->db_data(
-			'regions.id, regions.name, regions.ip_start, regions.ip_end, regions.info',
-			'regions',
-			"",
-			"",
-			"ip_start ASC");
-		for($i=1;$i<count($table_regions->data);$i++) {
-			if (isset($table_regions->data[$i])) {
-				$table_regions->data[$i]['ip_start'] = long2ip($table_regions->data[$i]['ip_start']);
-				$table_regions->data[$i]['ip_end'] = long2ip($table_regions->data[$i]['ip_end']);
-				$table_regions->info['EDIT'][$i] = makelink(array("page" => "admin", "subpage" => "regions", "region" => $table_regions->data[$i]['id']));
-			}
-		}
-		$table_regions->info['EDIT_COLUMN'] = 'name';
-		$table_regions->db_data_multichoice('region', 'id');
-		$table_regions->info['MULTICHOICE_LABEL'] = 'delete';
-		$table_regions->db_data_remove('id');
-		return $table_regions;
-	}
-	
-	function output() {
-		if (get('region') != '') {
-			return $this->page->output();
-		} else {
-			if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-			global $construct;
-			$this->tpl['link_region_add'] = makelink(array('page' => 'admin', 'subpage' => 'regions', 'region' => 'add'));
-			$this->tpl['table_regions'] = $construct->table($this->table_regions(), __FILE__);
-			return template($this->tpl, __FILE__);
-		}
-	}
-
-	function output_onpost_table_regions() {
-		global $db, $main;
-		$ret = TRUE;
-		foreach( (array) $_POST['id'] as $key => $value) {
-			$ret = $ret && $db->del("regions", "id = '".$value."'");
-		}
-		if ($ret) {
-			$main->message->set_fromlang('info', 'delete_success', makelink("",TRUE));
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-
-}
-
-?>
Index: /unk/includes/pages/admin/admin_regions_region.php
===================================================================
--- /trunk/includes/pages/admin/admin_regions_region.php (revision 156)
+++  (revision )
@@ -1,70 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class admin_regions_region {
-
-	var $tpl;
-	
-	function admin_regions_region() {
-		
-	}
-	
-	function form_region() {
-		global $db, $vars;
-		$form_region = new form(array('FORM_NAME' => 'form_region'));
-		$form_region->db_data('regions.id, regions.name, regions.ip_start, regions.ip_end, regions.info');
-		$form_region->db_data_values("regions", "id", get('region'));
-		if (get('region') != 'add') {
-			$form_region->data[2]['value'] = long2ip($form_region->data[2]['value']);
-			$form_region->data[3]['value'] = long2ip($form_region->data[3]['value']);
-		}
-		$form_region->db_data_remove('regions__id');
-		return $form_region;
-	}
-	
-	function output() {
-		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct;
-		$this->tpl['region_method'] = (get('region') == 'add' ? 'add' : 'edit' );
-		$this->tpl['form_region'] = $construct->form($this->form_region(), __FILE__);
-		return template($this->tpl, __FILE__);
-	}
-
-	function output_onpost_form_region() {
-		global $construct, $main, $db;
-		$form_region = $this->form_region();
-		$region = get('region');
-		$ret = TRUE;
-		$_POST['regions__ip_start'] = ip2long($_POST['regions__ip_start']);
-		$_POST['regions__ip_end'] = ip2long($_POST['regions__ip_end']);
-		$ret = $form_region->db_set(array(),
-								"regions", "id", get('region'));
-		
-		if ($ret) {
-			$main->message->set_fromlang('info', 'insert_success', makelink(array("page" => "admin", "subpage" => "regions")));
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-
-}
-
-?>
Index: /unk/includes/pages/admin/admin_areas.php
===================================================================
--- /trunk/includes/pages/admin/admin_areas.php (revision 187)
+++  (revision )
@@ -1,87 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-if (get('area') != '') include_once(ROOT_PATH."includes/pages/admin/admin_areas_area.php");
-
-class admin_areas {
-
-	var $tpl;
-	var $page;
-	
-	function admin_areas() {
-		if (get('area') != '') {
-			$p = "admin_areas_area";
-			$this->page = new $p;
-		}		
-	}
-	
-	function table_areas() {
-		global $construct, $db, $main;
-		$table_areas = new table(array('FORM_NAME' => 'table_areas', 'TABLE_NAME' => 'table_areas'));
-		$table_areas->db_data(
-			'areas.id, areas.name AS areas__name, areas.ip_start, areas.ip_end, areas.info, regions.name AS regions__name',
-			'areas ' .
-			'LEFT JOIN regions ON regions.id = areas.region_id',
-			"",
-			"",
-			"areas.ip_start ASC");
-		for($i=1;$i<count($table_areas->data);$i++) {
-			if (isset($table_areas->data[$i])) {
-				$table_areas->data[$i]['ip_start'] = long2ip($table_areas->data[$i]['ip_start']);
-				$table_areas->data[$i]['ip_end'] = long2ip($table_areas->data[$i]['ip_end']);
-				$table_areas->info['EDIT'][$i] = makelink(array("page" => "admin", "subpage" => "areas", "area" => $table_areas->data[$i]['id']));
-			}
-		}
-		$table_areas->info['EDIT_COLUMN'] = 'areas__name';
-		$table_areas->db_data_multichoice('region', 'id');
-		$table_areas->info['MULTICHOICE_LABEL'] = 'delete';
-		$table_areas->db_data_remove('id');
-		return $table_areas;
-	}
-	
-	function output() {
-		if (get('area') != '') {
-			return $this->page->output();
-		} else {
-			if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-			global $construct;
-			$this->tpl['link_area_add'] = makelink(array('page' => 'admin', 'subpage' => 'areas', 'area' => 'add'));
-			$this->tpl['table_areas'] = $construct->table($this->table_areas(), __FILE__);
-			return template($this->tpl, __FILE__);
-		}
-	}
-
-	function output_onpost_table_areas() {
-		global $db, $main;
-		$ret = TRUE;
-		foreach( (array) $_POST['id'] as $key => $value) {
-			$ret = $ret && $db->del("areas", "id = '".$value."'");
-		}
-		if ($ret) {
-			$main->message->set_fromlang('info', 'delete_success', makelink("",TRUE));
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-
-}
-
-?>
Index: /unk/includes/pages/admin/admin_nodes_services.php
===================================================================
--- /trunk/includes/pages/admin/admin_nodes_services.php (revision 152)
+++  (revision )
@@ -1,97 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-
-class admin_nodes_services {
-
-	var $tpl;
-	
-	function admin_nodes_services() {
-	}
-
-	function form_search_services_edit() {
-		global $db;
-		$form_search_services_edit = new form(array('FORM_NAME' => 'form_search_services_edit'));
-		$form_search_services_edit->db_data('nodes_services.service_id, nodes.id, nodes.name');
-		$form_search_services_edit->db_data_enum('nodes_services.service_id', $db->get("id AS value, title AS output", "services", "", "", "title ASC"));
-		$form_search_services_edit->db_data_search();
-		return $form_search_services_edit;
-	}
-
-	function table_services() {
-		global $construct, $db, $main, $lang;
-		$form_search_services_edit = $this->form_search_services_edit();
-		$where = $form_search_services_edit->db_data_where();
-		$table_services = new table(array('TABLE_NAME' => 'table_services', 'FORM_NAME' => 'table_services'));
-		$table_services->db_data(
-			'services.title, nodes_services.id, nodes.name, nodes.id AS nodes__id, ip_addresses.ip, nodes_services.date_in, nodes_services.info, nodes_services.status, IFNULL(nodes_services.protocol, services.protocol) AS protocol, IFNULL(nodes_services.port, services.port) AS port',
-			'nodes_services
-			LEFT JOIN nodes on nodes_services.node_id = nodes.id
-			LEFT JOIN services on nodes_services.service_id = services.id
-			LEFT JOIN ip_addresses ON ip_addresses.id = nodes_services.ip_id',
-			$where,
-			'',
-			"nodes_services.date_in DESC");
-		$table_services->db_data_search($form_search_services_edit);
-		foreach( (array) $table_services->data as $key => $value) {
-			if ($key != 0) {
-				if ($table_services->data[$key]['ip']) {
-					$table_services->data[$key]['ip'] = long2ip($table_services->data[$key]['ip']);
-					if ($table_services->data[$key]['protocol'] && $table_services->data[$key]['port']) {
-						$table_services->data[$key]['ip'] .= ' ('.$lang['db']['nodes_services__protocol-'.$table_services->data[$key]['protocol']].'/'.$table_services->data[$key]['port'].')';
-					}
-				}
-				$table_services->data[$key]['name'] .= " (#".$table_services->data[$key]['nodes__id'].")";
-				$table_services->info['EDIT'][$key] = makelink(array("page" => "mynodes", "subpage" => "services", "node" => $table_services->data[$key]['nodes__id'], "service" => $table_services->data[$key]['id']));
-			}
-		}
-		$table_services->info['EDIT_COLUMN'] = 'title';
-		$table_services->db_data_translate('nodes_services__status');
-		$table_services->db_data_multichoice('nodes_services', 'id');
-		$table_services->info['MULTICHOICE_LABEL'] = 'delete';
-		$table_services->db_data_remove('id', 'nodes__id', 'protocol', 'port');
-		return $table_services;
-	}
-	
-	function output() {
-		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct;
-		$this->tpl['form_search_services_edit'] = $construct->form($this->form_search_services_edit(), __FILE__);
-		$this->tpl['table_services'] = $construct->table($this->table_services(), __FILE__);
-		return template($this->tpl, __FILE__);
-	}
-
-	function output_onpost_table_services() {
-		global $db, $main;
-		$ret = TRUE;
-		foreach( (array) $_POST['id'] as $key => $value) {
-			$ret = $ret && $db->del("nodes_services", "id = '".$value."'");
-		}
-		if ($ret) {
-			$main->message->set_fromlang('info', 'delete_success', makelink("",TRUE));
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-
-}
-
-?>
Index: /trunk/includes/pages/nodes/nodes_search.php
===================================================================
--- /trunk/includes/pages/nodes/nodes_search.php (revision 154)
+++ /trunk/includes/pages/nodes/nodes_search.php (revision 1)
@@ -29,12 +29,9 @@
 	
 	function form_search_nodes() {
-		global $db, $lang;
+		global $db;
 		$form_search_nodes = new form(array('FORM_NAME' => 'form_search_nodes'));
 		$form_search_nodes->db_data('nodes.id, nodes.name, areas.id, regions.id');
 		$form_search_nodes->db_data_enum('areas.id', $db->get("id AS value, name AS output", "areas"));
 		$form_search_nodes->db_data_enum('regions.id', $db->get("id AS value, name AS output", "regions"));
-		array_push($form_search_nodes->data, array('Compare' => 'numeric', 'Field' => 'total_active_peers', 'fullField' => 'total_active_peers'));
-		array_push($form_search_nodes->data, array('Compare' => 'numeric', 'Field' => 'total_active_clients', 'fullField' => 'total_active_clients'));
-		array_push($form_search_nodes->data, array('Field' => 'has_ap', 'fullField' => 'has_ap', 'Type' => 'enum', 'Type_Enums' => array(array('value' => 'Y', 'output' => $lang['yes']), array('value' => 'N', 'output' => $lang['no']))));
 		$form_search_nodes->db_data_search();
 		return $form_search_nodes;
@@ -42,56 +39,21 @@
 
 	function table_nodes() {
-		global $construct, $db, $main, $lang;
+		global $construct, $db, $main;
 		$form_search_nodes = $this->form_search_nodes();
-		$where = $form_search_nodes->db_data_where(array("nodes__name" => "starts_with", "total_active_peers" => 'exclude', "total_active_clients" => 'exclude', "has_ap" => 'exclude'));
-		$having = $form_search_nodes->db_data_where(array("nodes__id" => "exclude", "nodes__name" => "exclude", "areas__id" => "exclude", "regions__id" => "exclude", "has_ap" => 'exclude'));
-		if ($form_search_nodes->data[6]['value'] != '') {
-			$having .= ($having!=''?' AND ':'').'total_active_aps '.($form_search_nodes->data[6]['value']=='Y'?'>':'=').' 0';
-		}
+		$where = $form_search_nodes->db_data_where(array("nodes__name" => "starts_with"));
 		$table_nodes = new table(array('TABLE_NAME' => 'table_nodes'));
 		$table_nodes->db_data(
-			'nodes.id,
-        	nodes.name AS nodes__name,
-        	areas.name AS areas__name,
-        	COUNT(DISTINCT p2p.id) AS total_active_p2p,
-        	COUNT(DISTINCT aps.id) AS total_active_aps,
-        	COUNT(DISTINCT p2p.id)+COUNT(DISTINCT client.id) AS total_active_peers,
-        	COUNT(DISTINCT cl.id) AS total_active_clients',
-			'nodes
-			LEFT JOIN areas ON nodes.area_id = areas.id
-			LEFT JOIN regions ON areas.region_id = regions.id
-			LEFT JOIN links ON nodes.id = links.node_id AND links.status = "active"
-			LEFT JOIN links AS client ON links.peer_ap_id = client.id
-									  AND links.type = "client"
-									  AND client.type = "ap"
-									  AND client.status = "active"
-			LEFT JOIN links AS p2p ON p2p.peer_node_id = links.node_id
-								   AND links.peer_node_id = p2p.node_id
-								   AND links.type = "p2p"
-								   AND p2p.type = "p2p"
-								   AND p2p.status = "active"
-			LEFT JOIN links AS aps ON nodes.id = aps.node_id
-								   AND aps.type = "ap"
-								   AND aps.status = "active"
-			LEFT JOIN links AS cl ON cl.peer_ap_id = aps.id
-								  AND cl.type = "client"
-								  AND cl.status = "active"
-			INNER JOIN users_nodes ON nodes.id = users_nodes.node_id 
-			LEFT JOIN users ON users.id = users_nodes.user_id',
-			'users.status = "activated"'.
-			($where!=''?' AND ('.$where.')':""),
-			'nodes.id'.
-			($having!=''?' HAVING ('.$having.')':""),
-			"total_active_peers DESC, total_active_aps DESC, total_active_clients DESC, nodes.id");
+			'nodes.id, nodes.name AS nodes__name, areas.name AS areas__name',
+			'nodes, areas, regions',
+			'nodes.area_id = areas.id AND areas.region_id = regions.id'.($where!=''?' AND ('.$where.')':""));
 		$table_nodes->db_data_search($form_search_nodes);
 		for($i=1;$i<count($table_nodes->data);$i++) {
 			if (isset($table_nodes->data[$i])) {
 				$table_nodes->data[$i]['nodes__name'] .= " (#".$table_nodes->data[$i]['id'].")";
-				$table_nodes->data[$i]['total_active_peers'] = $table_nodes->data[$i]['total_active_peers'].($table_nodes->data[$i]['total_active_aps']>0?" (+".$table_nodes->data[$i]['total_active_aps']." ".$lang['aps'].")":"");
 				$table_nodes->info['EDIT'][$i] = makelink(array("page" => "nodes", "node" => $table_nodes->data[$i]['id']));
 			}
 		}
 		$table_nodes->info['EDIT_COLUMN'] = 'nodes__name';
-		$table_nodes->db_data_remove('id', 'total_active_p2p', 'total_active_aps');
+		$table_nodes->db_data_remove('id');
 		return $table_nodes;
 	}
@@ -99,13 +61,7 @@
 	function output() {
 		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct, $vars, $main;
+		global $construct;
 		$this->tpl['form_search_nodes'] = $construct->form($this->form_search_nodes(), __FILE__);
 		$this->tpl['table_nodes'] = $construct->table($this->table_nodes(), __FILE__);
-
-		$this->tpl['link_fullmap'] = makelink(array("page" => "gmap", "node" => get('node')));
-		$this->tpl['link_gearth'] = makelink(array("page" => "gearth", "subpage" => "download", "node" => get('node'), "show_p2p" => "1", "show_aps" => "1", "show_clients" => "1", "show_unlinked" => "1", "show_links_p2p" => "1", "show_links_client" => "1"));
-		if(get('show_map') == "no") $this->tpl['gmap_key_ok'] = "nomap";
-		else $this->tpl['gmap_key_ok'] = include_gmap("?page=gmap&subpage=js&node=".get('node'));
-
 		return template($this->tpl, __FILE__);
 	}
Index: /trunk/includes/pages/nodes/nodes_view.php
===================================================================
--- /trunk/includes/pages/nodes/nodes_view.php (revision 190)
+++ /trunk/includes/pages/nodes/nodes_view.php (revision 1)
@@ -20,10 +20,6 @@
  */
 
-include_once(ROOT_PATH.'globals/classes/geocalc.php');
-
-$geocalc = new GeoCalc();
-
-include_once(ROOT_PATH.'globals/classes/srtm.php');
-$srtm = new srtm($vars['srtm']['path']);
+$plot_path = $root_path."plot/";
+include $root_path."plot/elevation.php";
 
 class nodes_view {
@@ -36,25 +32,37 @@
 
 	function calculate_distance($a_node, $b_node) {
-		global $db, $geocalc, $srtm;
+		global $db;
 		$a_node_i = $db->get('latitude, longitude, elevation', 'nodes', "id = '".$a_node."'");
 		$b_node_i = $db->get('latitude, longitude, elevation', 'nodes', "id = '".$b_node."'");
-
-		$lat1 = isset($a_node_i[0]['latitude'])?$a_node_i[0]['latitude']:1;   // choose something better than '1' here
-		$lon1 = isset($a_node_i[0]['longitude'])?$a_node_i[0]['longitude']:1; // the same
-		$lat2 = isset($b_node_i[0]['latitude'])?$b_node_i[0]['latitude']:1;   // the same
-		$lon2 = isset($b_node_i[0]['longitude'])?$b_node_i[0]['longitude']:1; // the same
-
-		$a_node_el = str_replace(",", ".", $srtm->get_elevation($lat1, $lon1, FALSE));
-		$b_node_el = str_replace(",", ".", $srtm->get_elevation($lat2, $lon2, FALSE));
-		
-		$dist   = $geocalc->GCDistance($lat1, $lon1, $lat2, $lon2);
+		
+		$lat1 = $a_node_i[0]['latitude'];
+		$lon1 = $a_node_i[0]['longitude'];
+		$lat2 = $b_node_i[0]['latitude'];
+		$lon2 = $b_node_i[0]['longitude'];
+
+		$a_node_el = str_replace(",", ".", get_elevation($lat1, $lon1, FALSE));
+		$b_node_el = str_replace(",", ".", get_elevation($lat2, $lon2, FALSE));
+		
+		$dist   = acos(sin(deg2rad($lat1))
+				  * sin(deg2rad($lat2))
+				  + cos(deg2rad($lat1))
+				  * cos(deg2rad($lat2))
+				  * cos(deg2rad($lon1 - $lon2)));
+		
+		$dist   = rad2deg($dist);
+		
+		$miles  = (float) $dist * 69;
+		
+		$meters = (float) $miles * 1610;
 		
 		if ($a_node_el != FALSE && $b_node_el != FALSE) {
 			$a_node_el += (integer)$a_node_i[0]['elevation'];
 			$b_node_el += (integer)$b_node_i[0]['elevation'];
-			$dist = sqrt( pow($dist * 1000, 2) + pow( abs($a_node_el - $b_node_el), 2 ) ) / 1000;
-		}
-
-		return $dist;
+			$meters = sqrt( pow($meters, 2) + pow( abs($a_node_el - $b_node_el), 2 ) );
+		}
+		
+		$km     = (float) $meters / 1000;
+
+		return $km;
 	}
 	
@@ -65,7 +73,5 @@
 			'ip_ranges.id, "" AS ip_range, ip_ranges.ip_start, ip_ranges.ip_end, ip_ranges.date_in, ip_ranges.status, ip_ranges.delete_req',
 			'ip_ranges',
-			'ip_ranges.node_id = '.intval(get('node')),
-			"",
-			"ip_ranges.date_in ASC");
+			'ip_ranges.node_id = '.get('node'));
 		foreach( (array) $table_ip_ranges->data as $key => $value) {
 			if ($key != 0) {
@@ -89,7 +95,5 @@
 			'dns_zones.id, dns_zones.name, dns_zones.date_in, dns_zones.status, dns_zones.delete_req, dns_zones.type',
 			'dns_zones',
-			'dns_zones.node_id = '.intval(get('node')),
-			"",
-			"dns_zones.type ASC, dns_zones.date_in ASC");
+			'dns_zones.node_id = '.get('node'));
 		$table_dns->db_data_multichoice('dns_zones', 'id');
 		$table_dns->db_data_multichoice_checked('delete_req', 'Y');
@@ -113,7 +117,5 @@
 			'dns_nameservers.id, dns_nameservers.name, dns_nameservers.ip, dns_nameservers.date_in, dns_nameservers.status, nodes.name_ns AS nodes_name_ns, dns_nameservers.delete_req',
 			'dns_nameservers, nodes',
-			"nodes.id = ".intval(get('node'))." AND dns_nameservers.node_id = nodes.id",
-			"",
-			"dns_nameservers.name ASC");
+			"nodes.id = '".get('node')."' AND dns_nameservers.node_id = nodes.id");
 		foreach( (array) $table_nameservers->data as $key => $value) {
 			if ($key != 0) {
@@ -135,5 +137,5 @@
 		return $table_nameservers;
 	}
-	
+
 	function table_links_p2p() {
 		global $db;
@@ -145,16 +147,5 @@
 			INNER JOIN nodes AS n1 ON l1.node_id = n1.id
 			INNER JOIN nodes AS n2 ON l2.node_id = n2.id',
-			"l1.node_id = ".intval(get('node'))." AND l2.peer_node_id = l1.node_id AND l1.type ='p2p' AND l2.type = 'p2p'",
-			"",
-			"l1.date_in ASC");
-		$table_links->db_data(
-			'"" AS distance, n1.name AS node_name, n1.id AS node_id, n2.name AS peer_node_name, l1.type AS links__type, l1.info AS links__info, l2.node_id AS links__peer_node_id, l1.date_in AS links__date_in, l2.ssid AS links__ssid, l2.protocol AS links__protocol, l2.channel AS links__channel, l1.equipment AS links__equipment, l1.status AS l1_status, l2.status AS l2_status, "" AS links__status',
-			'links AS l1
-			INNER JOIN links AS l2 ON l1.peer_ap_id = l2.id
-			INNER JOIN nodes AS n1 ON l1.node_id = n1.id
-			INNER JOIN nodes AS n2 ON l2.node_id = n2.id',
-			"l1.node_id = ".intval(get('node'))." AND l1.type ='client' AND l2.type = 'ap'",
-			"",
-			"l1.date_in ASC");
+			"l1.node_id = '".get('node')."' AND l2.peer_node_id = l1.node_id AND l1.type ='p2p' AND l2.type = 'p2p'");
 		foreach( (array) $table_links->data as $key => $value) {
 			$table_links->data[$key]['distance'] = $this->calculate_distance($table_links->data[$key]['node_id'], $table_links->data[$key]['links__peer_node_id']);
@@ -165,5 +156,4 @@
 					$table_links->data[$key]['links__status'] = 'inactive';
 				}
-				$table_links->info['EDIT'][$key] = makelink(array('page' => 'nodes', 'node' => $table_links->data[$key]['links__peer_node_id']));
 			}
 		}
@@ -175,19 +165,44 @@
 	function table_links_ap($id) {
 		global $db;
-		$table_links = new table(array('TABLE_NAME' => 'table_links_ap'));
+		$table_links = new table(array('TABLE_NAME' => 'table_links_ap_'.$id, 'FORM_NAME' => 'table_links_ap_'.$id));
 		$table_links->db_data(
-			'nodes.id AS c_node_id, nodes.name AS c_node_name, l1.status AS c_status, l2.date_in AS links__date_in, l2.ssid AS links__ssid, l2.type AS links__type, l2.info AS links__info, l2.protocol AS links__protocol, l2.channel AS links__channel, l2.equipment AS links__equipment, l2.status AS links__status',
-			'links AS l2
-			LEFT JOIN links AS l1 ON l1.peer_ap_id = l2.id
-			LEFT JOIN nodes ON l1.node_id = nodes.id',
-			"(l1.type = 'client' OR l1.id IS NULL) AND l2.id = '".$id."'",
-			"",
-			"l1.date_in ASC");
-		foreach( (array) $table_links->data as $key => $value) {
-			if ($key != 0) {
-				$table_links->info['EDIT'][$key] = makelink(array('page' => 'nodes', 'node' => $table_links->data[$key]['c_node_id']));
-			}
-		}
+			'id, type, node_id, status',
+			'links',
+			"type = 'client' AND peer_ap_id = '".$id."'");
 		return $table_links;
+	}
+
+	function table_subnets() {
+		global $construct, $db;
+		$table_subnets = new table(array('TABLE_NAME' => 'table_subnets', 'FORM_NAME' => 'table_subnets'));
+		$table_subnets->db_data(
+			'subnets.id, subnets.ip_start, subnets.ip_end, subnets.type, n_l.name AS link_node_name, n_l.id AS link_node_id, n_c.name AS client_node_name, n_c.id AS client_node_id',
+			'subnets
+			LEFT JOIN links ON links.id = subnets.link_id
+			LEFT JOIN nodes AS n_l ON n_l.id = links.peer_node_id
+			LEFT JOIN nodes AS n_c ON n_c.id = client_node_id',
+			'subnets.node_id = '.get('node'));
+		foreach( (array) $table_subnets->data as $key => $value) {
+			if ($key != 0) {
+				$table_subnets->data[$key]['ip_start'] = long2ip($table_subnets->data[$key]['ip_start']);
+				$table_subnets->data[$key]['ip_end'] = long2ip($table_subnets->data[$key]['ip_end']);
+			}
+		}
+		return $table_subnets;
+	}
+
+	function table_ipaddr() {
+		global $construct, $db;
+		$table_ipaddr = new table(array('TABLE_NAME' => 'table_ipaddr', 'FORM_NAME' => 'table_ipaddr'));
+		$table_ipaddr->db_data(
+			'ip_addresses.id, ip_addresses.date_in, ip_addresses.ip, ip_addresses.type, ip_addresses.always_on, ip_addresses.info',
+			'ip_addresses',
+			'ip_addresses.node_id = '.get('node'));
+		foreach( (array) $table_ipaddr->data as $key => $value) {
+			if ($key != 0) {
+				$table_ipaddr->data[$key]['ip'] = long2ip($table_ipaddr->data[$key]['ip']);
+			}
+		}
+		return $table_ipaddr;
 	}
 
@@ -196,38 +211,9 @@
 		$table_ipaddr_subnets = new table(array('TABLE_NAME' => 'table_ipaddr_subnets'));
 		$table_ipaddr_subnets->db_data(
-			'ip_addresses.date_in, ip_addresses.hostname, ip_addresses.ip, ip_addresses.mac, ip_addresses.type AS ip_addresses__type, ip_addresses.always_on, ip_addresses.info, subnets.ip_start, subnets.ip_end, subnets.type, nodes.name AS nodes__name, nodes.id AS nodes__id, links.type AS links__type',
-			'subnets ' .
-			"LEFT JOIN links ON links.id = subnets.link_id " .
-			"LEFT JOIN ip_addresses ON " .
-				"ip_addresses.node_id = ".intval(get('node'))." AND (subnets.ip_start <= ip_addresses.ip AND subnets.ip_end >= ip_addresses.ip) " .
-			"LEFT JOIN nodes ON links.peer_node_id = nodes.id",
-			"subnets.node_id = ".intval(get('node'))." AND subnets.type IN ('local', 'link')",
+			'ip_addresses.date_in, ip_addresses.hostname, ip_addresses.ip, ip_addresses.mac, ip_addresses.type AS ip_addresses__type, ip_addresses.always_on, ip_addresses.info, subnets.ip_start, subnets.ip_end, subnets.type',
+			'ip_addresses, subnets',
+			"ip_addresses.node_id = '".get('node')."' AND subnets.node_id = '".get('node')."' AND subnets.ip_start <= ip_addresses.ip AND subnets.ip_end >= ip_addresses.ip",
 			"",
-			"subnets.type ASC, links.type DESC, subnets.ip_start ASC, ip_addresses.ip",
-			FALSE);
-		
-		$table_ipaddr_subnets->db_data(
-			'ip_addresses.date_in, ip_addresses.hostname, ip_addresses.ip, ip_addresses.mac, ip_addresses.type AS ip_addresses__type, ip_addresses.always_on, ip_addresses.info, subnets.ip_start, subnets.ip_end, subnets.type, nodes.name AS nodes__name, nodes.id AS nodes__id, links.type AS links__type',
-			'subnets ' .
-			"LEFT JOIN links ON links.id = subnets.link_id AND subnets.node_id = links.node_id " .
-			"LEFT JOIN ip_addresses ON " .
-				"ip_addresses.node_id = links.node_id AND (subnets.ip_start <= ip_addresses.ip AND subnets.ip_end >= ip_addresses.ip) " .
-			"LEFT JOIN nodes ON links.node_id = nodes.id",
-			"links.peer_node_id = ".intval(get('node'))." AND subnets.type = 'link'",
-			"",
-			"subnets.ip_start ASC, ip_addresses.ip",
-			FALSE);
-
-		$table_ipaddr_subnets->db_data(
-			'ip_addresses.date_in, ip_addresses.hostname, ip_addresses.ip, ip_addresses.mac, ip_addresses.type AS ip_addresses__type, ip_addresses.always_on, ip_addresses.info, subnets.ip_start, subnets.ip_end, subnets.type, nodes.name AS nodes__name, nodes.id AS nodes__id',
-			'subnets ' .
-			"LEFT JOIN ip_addresses ON " .
-				"ip_addresses.node_id = subnets.client_node_id AND (subnets.ip_start <= ip_addresses.ip AND subnets.ip_end >= ip_addresses.ip) " .
-			"LEFT JOIN nodes ON subnets.client_node_id = nodes.id",
-			"subnets.node_id = ".intval(get('node'))." AND subnets.type = 'client'",
-			"",
-			"subnets.ip_start ASC, ip_addresses.ip",
-			FALSE);
-
+			"subnets.type ASC, subnets.ip_start ASC");
 		foreach( (array) $table_ipaddr_subnets->data as $key => $value) {
 			if ($key != 0) {
@@ -238,53 +224,11 @@
 		}
 		$table_ipaddr_subnets->db_data_translate('ip_addresses__type', 'ip_addresses__always_on', 'subnets__type');
-		$table_ipaddr_subnets->db_data_hide('subnets__ip_start', 'subnets__ip_end', 'subnets__type', 'nodes__name', 'nodes__id', 'links__type');
+		$table_ipaddr_subnets->db_data_hide('subnets__ip_start', 'subnets__ip_end', 'subnets__type');
 		return $table_ipaddr_subnets;
 	}
-
-	function table_services() {
-		global $db, $vars, $lang;
-		$table_services = new table(array('TABLE_NAME' => 'table_services', 'FORM_NAME' => 'table_services'));
-		$table_services->db_data(
-			'services.title, nodes_services.id, nodes.id AS nodes__id, ip_addresses.ip, nodes_services.url, nodes_services.info, nodes_services.status, nodes_services.date_in, IFNULL(nodes_services.protocol, services.protocol) AS protocol, IFNULL(nodes_services.port, services.port) AS port',
-			'nodes_services
-			LEFT JOIN nodes on nodes_services.node_id = nodes.id
-			LEFT JOIN services on nodes_services.service_id = services.id
-			LEFT JOIN ip_addresses ON ip_addresses.id = nodes_services.ip_id',
-			"nodes_services.node_id = '".get('node')."'",
-			'',
-			"services.title ASC");
-
-		foreach( (array) $table_services->data as $key => $value) {
-			if ($key != 0) {
-				if ($table_services->data[$key]['ip']) {
-					$table_services->data[$key]['ip'] = long2ip($table_services->data[$key]['ip']);
-					if ($table_services->data[$key]['protocol'] && $table_services->data[$key]['port']) {
-						$table_services->data[$key]['ip'] .= ' ('.$lang['db']['nodes_services__protocol-'.$table_services->data[$key]['protocol']].'/'.$table_services->data[$key]['port'].')';
-					}
-				}
-				$table_services->info['LINK']['services__title'][$key] = $table_services->data[$key]['url'];
-			}
-		}
-		$table_services->db_data_remove('id','nodes__id', 'url', 'protocol', 'port');
-		$table_services->db_data_translate('nodes_services__status');
-		return $table_services;
-	}
-	
+		
 	function output() {
 		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct, $db, $vars, $main;
-		$main->html->head->add_script("text/javascript", "./templates/basic/scripts/javascripts/fancyzoom/js-global/FancyZoom_packed.js");
-		$main->html->head->add_script("text/javascript", "./templates/basic/scripts/javascripts/fancyzoom/js-global/FancyZoomHTML_packed.js");
-		$main->html->body->tags['onload']="setupZoom();";
-		if ($db->cnt('',
-					'nodes ' .
-					'INNER JOIN users_nodes ON users_nodes.node_id = nodes.id ' .
-					'INNER JOIN users ON users_nodes.user_id = users.id',
-					"nodes.id = ".intval(get('node')).
-					' AND users.status = "activated"')
-			 == 0) {
-			$main->message->set_fromlang('error', 'node_not_found');
-			return;
-		}
+		global $construct, $db, $vars;
 		$this->tpl['node'] = $db->get(
 			'nodes.id, nodes.name, nodes.date_in, nodes.latitude, nodes.longitude, nodes.elevation, nodes.info, areas.name as area_name, regions.name as region_name, users.username AS owner_username, users.email AS owner_email',
@@ -294,7 +238,6 @@
 			LEFT JOIN users_nodes ON users_nodes.node_id = nodes.id
 			LEFT JOIN users ON users.id = users_nodes.user_id',
-			"nodes.id = ".intval(get('node'))." AND (users_nodes.owner = 'Y' OR users_nodes.owner IS NULL)");
+			"nodes.id = '".get('node')."' AND (users_nodes.owner = 'Y' OR users_nodes.owner IS NULL)");
 		$this->tpl['node'] = $this->tpl['node'][0];
-		$this->tpl['link_contact'] = makelink(array("subpage" => "contact"), TRUE);
 		$this->tpl['table_ip_ranges'] = $construct->table($this->table_ip_ranges(), __FILE__);
 		$this->tpl['table_dns'] = $construct->table($this->table_dns(), __FILE__);
@@ -302,24 +245,20 @@
 		$this->tpl['table_links_p2p'] = $construct->table($this->table_links_p2p(), __FILE__);
 
-		$t = $db->get('id, type', 'links', "node_id = ".intval(get('node')));
+		$t = $db->get('id, type', 'links', "node_id = '".get('node')."'");
 		foreach( (array) $t as $key => $value) {
 			if ($value['type'] == 'ap') $this->tpl['table_links_ap'][$value['id']] = $construct->table($this->table_links_ap($value['id']), __FILE__);
 		}
 
+		$this->tpl['table_subnets'] = $construct->table($this->table_subnets(), __FILE__);
+		$this->tpl['table_ipaddr'] = $construct->table($this->table_ipaddr(), __FILE__);
 		$this->tpl['table_ipaddr_subnets'] = $construct->table($this->table_ipaddr_subnets(), __FILE__);
-		$this->tpl['table_services'] = $construct->table($this->table_services(), __FILE__);
-		$t = $db->get('id, date_in, view_point, info', 'photos', "node_id = ".intval(get('node')));
+		
+		$t = $db->get('id, date_in, view_point, info', 'photos', "node_id = '".get('node')."'");
 		foreach( (array) $t as $key => $value) {
 			$this->tpl['photosview'][$value['view_point']] = $value;
 			$this->tpl['photosview'][$value['view_point']]['image_s'] = $vars['folders']['photos'].'photo-'.$this->tpl['photosview'][$value['view_point']]['id'].'-s.jpg';
 			$this->tpl['photosview'][$value['view_point']]['image'] = $vars['folders']['photos'].'photo-'.$this->tpl['photosview'][$value['view_point']]['id'].'.jpg';
-		}
-		
-		$this->tpl['link_plot_link'] = makelink(array("page" => "nodes", "subpage" => "plot_link", "a_node" => $this->tpl['node']['id']));
-		if((isset($main->userdata->privileges['admin']) && $main->userdata->privileges['admin'] === TRUE) || $db->cnt('', "users_nodes", "node_id = ".get('node')." AND user_id = '".$main->userdata->user."'") > 0) $this->tpl['edit_node'] = makelink(array("page" => "mynodes", "node" => get('node')));
-		$this->tpl['link_fullmap'] = makelink(array("page" => "gmap", "node" => get('node')));
-		$this->tpl['link_gearth'] = makelink(array("page" => "gearth", "subpage" => "download", "node" => get('node'), "show_p2p" => "1", "show_aps" => "1", "show_clients" => "1", "show_unlinked" => "1", "show_links_p2p" => "1", "show_links_client" => "1"));
-		if(get('show_map') == "no") $this->tpl['gmap_key_ok'] = "nomap";
-		else $this->tpl['gmap_key_ok'] = include_gmap("?page=gmap&subpage=js&node=".get('node'));
+		}		
+		
 		return template($this->tpl, __FILE__);
 	}
Index: /trunk/includes/pages/nodes/nodes_plot.php
===================================================================
--- /trunk/includes/pages/nodes/nodes_plot.php (revision 143)
+++ /trunk/includes/pages/nodes/nodes_plot.php (revision 1)
@@ -20,12 +20,6 @@
  */
 
-include_once(ROOT_PATH.'globals/classes/geocalc.php');
-$geocalc = new geocalc();
-
-include_once(ROOT_PATH.'globals/classes/srtm.php');
-$srtm = new srtm($vars['srtm']['path']);
-
-include_once(ROOT_PATH.'globals/classes/geoimage.php');
-$geoimage = new geoimage();
+$plot_path = $root_path.'plot/';
+include $root_path."plot/link.php";
 
 class nodes_plot {
@@ -36,5 +30,5 @@
 	
 	function output() {
-		global $db, $geoimage;
+		global $db;
 		$a_node = $db->get('latitude, longitude, elevation', 'nodes', "id = '".get('a_node')."'");
 		$b_node = $db->get('latitude, longitude, elevation', 'nodes', "id = '".get('b_node')."'");
@@ -44,7 +38,9 @@
 		if ($height == 0) $height = 300;
 
-		$point_a = new coordinate($a_node[0]['latitude'], $a_node[0]['longitude']);
-		$point_b = new coordinate($b_node[0]['latitude'], $b_node[0]['longitude']);
-		$image = $geoimage->plotlink($width, $height, $point_a, $point_b, (integer)$a_node[0]['elevation'], (integer)$b_node[0]['elevation']);
+		$point_a = new elevation($a_node[0]['latitude'], $a_node[0]['longitude']);
+		$point_b = new elevation($b_node[0]['latitude'], $b_node[0]['longitude']);
+		//echo pvar($a_node);
+		//echo pvar($b_node);
+		$image = plotlink($width, $height, $point_a, $point_b, (integer)$a_node[0]['elevation'], (integer)$b_node[0]['elevation']);
 		
 		header('Content-type: image/png');
Index: /trunk/includes/pages/nodes/nodes.php
===================================================================
--- /trunk/includes/pages/nodes/nodes.php (revision 143)
+++ /trunk/includes/pages/nodes/nodes.php (revision 1)
@@ -21,10 +21,10 @@
 
 if (get('subpage') != '') {
-	include_once(ROOT_PATH."includes/pages/nodes/nodes_".get('subpage').".php");
+	include_once($root_path."includes/pages/nodes/nodes_".get('subpage').".php");
 } else {
 	if (get('node') != '') {
-		include_once(ROOT_PATH."includes/pages/nodes/nodes_view.php");
+		include_once($root_path."includes/pages/nodes/nodes_view.php");
 	} else {
-		include_once(ROOT_PATH."includes/pages/nodes/nodes_search.php");
+		include_once($root_path."includes/pages/nodes/nodes_search.php");
 	}
 }
Index: /unk/includes/pages/nodes/nodes_contact.php
===================================================================
--- /trunk/includes/pages/nodes/nodes_contact.php (revision 167)
+++  (revision )
@@ -1,85 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class nodes_contact {
-
-	var $tpl;
-	
-	function nodes_contact() {
-		
-	}
-	
-	function form_contact() {
-		global $db, $vars, $main;
-		$form_contact = new form(array('FORM_NAME' => 'form_contact'));
-		$t = $db->get('username, email', 'users', "id = '".$main->userdata->user."'");
-		$form_contact->info['from_username'] = $t[0]['username'];
-		$form_contact->info['from_email'] = $t[0]['email'];
-		return $form_contact;
-	}
-
-	function output() {
-		global $construct, $db, $main;
-		$main->header->hide = TRUE;
-		$main->menu->hide = TRUE;
-		$main->footer->hide = TRUE;
-		if (!$main->userdata->logged) {
-			$main->message->set_fromlang('error', 'not_logged_in');
-			return;
-		}
-		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		$this->tpl['form_contact'] = $construct->form($this->form_contact(), __FILE__);
-		$t = $db->get('id, name', 'nodes', "id = ".intval(get('node')));
-		$this->tpl['node_name'] = $t[0]['name'];
-		$this->tpl['node_id'] = $t[0]['id'];
-		return template($this->tpl, __FILE__);
-	}
-
-	function output_onpost_form_contact() {
-		global $construct, $main, $db, $lang;
-		$main->header->hide = TRUE;
-		$main->menu->hide = TRUE;
-		$main->footer->hide = TRUE;
-		$from = $db->get('username, email', 'users', "id = '".$main->userdata->user."'");
-		$to_db = $db->get('email', 'users INNER JOIN users_nodes ON users_nodes.user_id = users.id', "users_nodes.node_id = ".intval(get('node')).($_POST['email_to_type']=='owner'?" AND users_nodes.owner = 'Y'":""));
-		$node = $db->get('name, id', 'nodes', "id = ".intval(get('node')));
-		$to = array();
-		for($i=0;$i<count($to_db);$i++) {
-			array_push($to, $to_db[$i]['email']);
-		}
-		$to = implode(', ', $to);
-		$subject = $lang['email']['node_contact']['subject_prefix'].stripslashes($_POST['email_subject']).$lang['email']['node_contact']['subject_suffix'];
-		$body = $lang['email']['node_contact']['body_prefix'].stripslashes($_POST['email_body']).$lang['email']['node_contact']['body_suffix'];
-		$body = str_replace("##username##", $from[0]['username'], $body);
-		$body = str_replace("##node_name##", $node[0]['name'], $body);
-		$body = str_replace("##node_id##", $node[0]['id'], $body);
-		$ret = @sendmail($to, $subject, $body, $from[0]['username'], $from[0]['email'], TRUE);
-
-		if ($ret) {
-			$main->message->set_fromlang('info', 'message_sent');
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-
-}
-
-?>
Index: /unk/includes/pages/nodes/nodes_plot_link.php
===================================================================
--- /trunk/includes/pages/nodes/nodes_plot_link.php (revision 187)
+++  (revision )
@@ -1,95 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
- 
-include_once(ROOT_PATH.'globals/classes/geocalc.php');
-$geocalc = new geocalc();
-
-include_once(ROOT_PATH.'globals/classes/srtm.php');
-$srtm = new srtm($vars['srtm']['path']);
-
-class nodes_plot_link {
-
-	var $tpl;
-
-	function nodes_plot_link() {
-		
-	}
-
-	function output() {
-		global $main, $db, $geocalc, $srtm;
-		$main->header->hide = TRUE;
-		$main->menu->hide = TRUE;
-		$main->footer->hide = TRUE;
-		$this->tpl['a_node'] = (isset($_POST['a_node'])?$_POST['a_node']:get('a_node'));
-		if ($this->tpl['a_node'] != '') {
-			$a_node_data = $db->get('id, name, latitude, longitude, elevation', 'nodes', "id = '".$this->tpl['a_node']."'");
-			$a_node_data = $a_node_data[0];
-			$this->tpl['a_node_output'] = $a_node_data['name'].' (#'.$a_node_data['id'].')';
-		}
-		$this->tpl['b_node'] = (isset($_POST['b_node'])?$_POST['b_node']:get('b_node'));
-		if ($this->tpl['b_node'] != '') {
-			$b_node_data = $db->get('id, name, latitude, longitude, elevation', 'nodes', "id = '".$this->tpl['b_node']."'");
-			$b_node_data = $b_node_data[0];
-			$this->tpl['b_node_output'] = $b_node_data['name'].' (#'.$b_node_data['id'].')';
-		}
-		
-		if ($this->tpl['a_node'] != '' && $this->tpl['b_node'] != '') {
-			$this->tpl['a_node_azimuth'] = $geocalc->GCAzimuth($a_node_data['latitude'], $a_node_data['longitude'], $b_node_data['latitude'], $b_node_data['longitude']);
-			$this->tpl['b_node_azimuth'] = $geocalc->GCAzimuth($b_node_data['latitude'], $b_node_data['longitude'], $a_node_data['latitude'], $a_node_data['longitude']);
-			$this->tpl['a_node_geo_elevation'] = $srtm->get_elevation($a_node_data['latitude'], $a_node_data['longitude']); 
-			$this->tpl['b_node_geo_elevation'] = $srtm->get_elevation($b_node_data['latitude'], $b_node_data['longitude']);
-			$this->tpl['a_node_elevation'] = $a_node_data['elevation']; 
-			$this->tpl['b_node_elevation'] = $b_node_data['elevation']; 
-
-			$a_node_total_elevation = $this->tpl['a_node_geo_elevation'] + $this->tpl['a_node_elevation']; 
-			$b_node_total_elevation = $this->tpl['b_node_geo_elevation'] + $this->tpl['b_node_elevation']; 
-			
-			$this->tpl['distance'] = $geocalc->GCDistance($a_node_data['latitude'], $a_node_data['longitude'], $b_node_data['latitude'], $b_node_data['longitude']);
-			if ($this->tpl['distance'] != 0) {
-				$this->tpl['a_node_tilt'] = rad2deg(atan(($b_node_total_elevation - $a_node_total_elevation) / ($this->tpl['distance'] * 1000)));
-				$this->tpl['b_node_tilt'] = rad2deg(atan(($a_node_total_elevation - $b_node_total_elevation) / ($this->tpl['distance'] * 1000)));
-			}
-			else { 	// For links between nodes in the same place but with different elevations (e.g. link between rooftop and floor)
-				// FIXME: plotlink function of geoimage class does not plot anything in that (admitedly rare) case, but perhaps it should(?)
-				$sign = 0;
-				$elev = $b_node_total_elevation - $a_node_total_elevation;
-				if ($elev != 0) $sign = ($elev>0)?1:-1;
-				$this->tpl['a_node_tilt'] = ($elev!=0?$sign:0) * 90;
-				$this->tpl['b_node_tilt'] = -($this->tpl['a_node_tilt']);
-			}
-			$this->tpl['distance'] = sqrt( pow($this->tpl['distance'] * 1000, 2) + pow( abs($a_node_total_elevation - $b_node_total_elevation), 2 ) ) / 1000;
-			$this->tpl['gearth'] = makelink(array("page" => "gearth", "subpage" => "download", "node" => get('a_node'), "node2" => get('b_node'), "show_p2p" => "1", "show_aps" => "1", "show_clients" => "1", "show_unlinked" => "1", "show_links_p2p" => "1", "show_links_client" => "1"));
-			$this->tpl['frequency'] = (integer)(isset($_POST['frequency'])?$_POST['frequency']:2450);
-			if ($this->tpl['frequency'] <= 0) $this->tpl['frequency'] = 2450;
-			$frequency = $this->tpl['frequency'] * 1000000;
-			$c = 299792.458; // light speed in km
-			$this->tpl['fsl'] = 20 * log10(4 * pi() * $this->tpl['distance'] * ($frequency / $c));
-			
-			$this->tpl['plot_image'] = makelink(array("page" => "nodes", "subpage" => "plot", "a_node" => $this->tpl['a_node'], "b_node" => $this->tpl['b_node'], "frequency" => $this->tpl['frequency']));
-		}
-		
-		$this->tpl['hidden_qs'] = get_qs();
-		return template($this->tpl, __FILE__);
-	}
-
-}
-
-?>
Index: /unk/includes/pages/nodes/nodes_stats.php
===================================================================
--- /trunk/includes/pages/nodes/nodes_stats.php (revision 169)
+++  (revision )
@@ -1,106 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2006 John Kolovos <cirrus@awmn.net>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class nodes_stats {
-	
-	function output() {
-		global $db;
-		
-		$stats_nodes_active =
-				$db->cnt('',
-						'nodes ' .
-						'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' .
-						'LEFT JOIN links AS p2p ON (l1.type = "p2p" AND p2p.type = "p2p" AND l1.node_id = p2p.peer_node_id AND p2p.node_id = l1.peer_node_id) ' .
-						'LEFT JOIN links AS clients ON (l1.type = "client" AND l1.peer_ap_id = clients.id) ' .
-						'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' .
-						'LEFT JOIN users ON users.id = users_nodes.user_id',
-						'users.status = "activated" AND l1.status = "active" AND (p2p.status = "active" OR clients.status = "active")',
-						'nodes.id'
-						);
-		$stats_nodes_total =
-				$db->cnt('',
-						'nodes ' .
-						'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' .
-						'LEFT JOIN users ON users.id = users_nodes.user_id',
-						'users.status = "activated"',
-						'nodes.id'
-						);
-		$stats_backbone =
-				$db->cnt('',
-						'nodes ' .
-						'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' .
-						'INNER JOIN links AS l2 ON (l1.type = "p2p" AND l2.type = "p2p" AND l1.node_id = l2.peer_node_id AND l2.node_id = l1.peer_node_id) ' .
-						'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' .
-						'LEFT JOIN users ON users.id = users_nodes.user_id',
-						'users.status = "activated" AND l1.status = "active" AND l2.status = "active"',
-						'nodes.id'
-						);
-		$stats_links =
-				$db->cnt('',
-						'nodes ' .
-						'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' .
-						'LEFT JOIN links AS p2p ON (l1.id < p2p.id AND l1.type = "p2p" AND p2p.type = "p2p" AND l1.node_id = p2p.peer_node_id AND p2p.node_id = l1.peer_node_id) ' .
-						'LEFT JOIN links AS clients ON (l1.type = "client" AND l1.peer_ap_id = clients.id) ' .
-						'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' .
-						'LEFT JOIN users ON users.id = users_nodes.user_id',
-						'users.status = "activated" AND l1.status = "active" AND (p2p.status = "active" OR clients.status = "active")',
-						'l1.id'
-						);
-		$stats_aps =
-				$db->cnt('',
-						'nodes ' .
-						'INNER JOIN links ON links.node_id = nodes.id AND links.type = "ap" AND links.status = "active" ' .
-						'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' .
-						'LEFT JOIN users ON users.id = users_nodes.user_id',
-						'users.status = "activated"',
-						'links.id'
-						);
-		$stats_services_active =
-				$db->cnt('',
-						'nodes_services',
-						'nodes_services.status = "active"'
-						);
-		$stats_services_total =
-				$db->cnt('',
-						'nodes_services',
-						''
-						);
-
-		header ("Content-Type: text/xml");
-		echo "<?xml version=\"1.0\"?>\n";
-		echo "<statistics>\n";
-		echo "<nodes>\n";
-		echo "<active>".$stats_nodes_active."</active>\n";
-		echo "<total>".$stats_nodes_total."</total>\n";
-		echo "<backbone>".$stats_backbone."</backbone>\n";
-		echo "<ap>".$stats_aps."</ap>\n";
-		echo "</nodes>\n";
-		echo "<links>".$stats_links."</links>\n";
-		echo "<services>\n";
-		echo "<active>".$stats_services_active."</active>\n";
-		echo "<total>".$stats_services_total."</total>\n";
-		echo "</services>\n";
-		echo "</statistics>\n";
-		exit;
-	}
-}
-
-?>
Index: /trunk/includes/pages/hostmaster/hostmaster.php
===================================================================
--- /trunk/includes/pages/hostmaster/hostmaster.php (revision 143)
+++ /trunk/includes/pages/hostmaster/hostmaster.php (revision 1)
@@ -20,5 +20,5 @@
  */
 
-if (get('subpage') != '') include_once(ROOT_PATH."includes/pages/hostmaster/hostmaster_".get('subpage').".php");
+if (get('subpage') != '') include_once($root_path."includes/pages/hostmaster/hostmaster_".get('subpage').".php");
 
 class hostmaster {
Index: /trunk/includes/pages/hostmaster/hostmaster_dnszone.php
===================================================================
--- /trunk/includes/pages/hostmaster/hostmaster_dnszone.php (revision 187)
+++ /trunk/includes/pages/hostmaster/hostmaster_dnszone.php (revision 1)
@@ -29,14 +29,20 @@
 	
 	function form_zone() {
-		global $db, $vars, $main;
+		global $db, $vars;
 		$form_zone = new form(array('FORM_NAME' => 'form_zone'));
 		$form_zone->db_data('dns_zones.name, dns_zones.info, dns_zones_nameservers.nameserver_id, dns_zones.status');
+		$ns = $db->get("ns.id AS value, ns.ip AS ip, IF(ns.name IS NOT NULL, CONCAT(ns.name, '.', n.name_ns), n.name_ns) AS name",
+				"dns_nameservers AS ns, nodes AS n",
+				"ns.node_id = n.id");
+		foreach( (array) $ns as $key => $value) {
+			$ns[$key]['name'] = strtolower($value['name'].".".$vars['dns']['ns_zone']);
+			$ns[$key]['ip'] = long2ip($value['ip']);
+			$ns[$key]['output'] = $ns[$key]['name'].' ['.$ns[$key]['ip'].']';
+		}
+		$form_zone->db_data_enum('dns_zones_nameservers.nameserver_id', $ns, TRUE);
 		$form_zone->db_data_values("dns_zones", "id", get('zone'));
-		
-		$form_zone->db_data_pickup("dns_zones_nameservers.nameserver_id", "dns_nameservers", $db->get('dns_nameservers.id AS value, CONCAT(dns_nameservers.name, ".", nodes.name_ns, ".", "'.$vars['dns']['ns_zone'].'") AS output', "dns_zones_nameservers, dns_nameservers, nodes", "dns_nameservers.node_id = nodes.id AND dns_nameservers.id = dns_zones_nameservers.nameserver_id AND dns_zones_nameservers.zone_id = '".get('zone')."'"), TRUE);
+		$form_zone->db_data_values_multi("dns_zones_nameservers", "zone_id", get('zone'), 'nameserver_id');
 
 		$tmp = $db->get('users.email, users_nodes.owner', 'users, users_nodes, dns_zones', "users_nodes.user_id = users.id AND users_nodes.node_id = dns_zones.node_id AND dns_zones.id = '".get("zone")."'");
-		if (!isset($form_zone->info['email_all'])) $form_zone->info['email_all'] = '';
-		if (!isset($form_zone->info['email_owner'])) $form_zone->info['email_owner'] = '';
 		foreach( (array) $tmp as $key => $value) {
 			$form_zone->info['email_all'] .= $value['email'].', ';
@@ -48,159 +54,16 @@
 		$form_zone->info['node_name'] = $t[0]['name'];
 		$form_zone->info['node_id'] = $t[0]['id'];
-		$form_zone->info['hostmaster_username'] = $main->userdata->info['username'];
-		$form_zone->info['hostmaster_name'] = $main->userdata->info['name'];
-		$form_zone->info['hostmaster_surname'] = $main->userdata->info['surname'];
-		$t = $db->get('type', 'dns_zones', "id = '".get('zone')."'");
-		if ($t[0]['type'] == 'forward') $form_zone->data[0]['value'] .= ".".$vars['dns']['root_zone'];
 		return $form_zone;
 	}
 	
-	function table_node_info() {
-		global $db;
-		$table_node_info = new table(array('TABLE_NAME' => 'table_node_info'));
-		$table_node_info->db_data(
-			'nodes.name AS nodes__name, nodes.id, nodes.date_in, nodes.info, areas.name AS areas__name, regions.name AS regions__name',
-			'dns_zones ' .
-			'LEFT JOIN nodes ON dns_zones.node_id = nodes.id
-			LEFT JOIN areas ON nodes.area_id = areas.id
-			LEFT JOIN regions ON areas.region_id = regions.id',
-			"dns_zones.id = '".get('zone')."'");
-		for($i=1;$i<count($table_node_info->data);$i++) {
-			if (isset($table_node_info->data[$i])) {
-				$table_node_info->data[$i]['nodes__name'] .= " (#".$table_node_info->data[$i]['id'].")";
-				$table_node_info->info['EDIT'][$i] = makelink(array("page" => "mynodes", "node" => $table_node_info->data[$i]['id']));
-			}
-		}
-		$table_node_info->info['EDIT_COLUMN'] = 'nodes__name';
-		$table_node_info->db_data_remove('id');
-		return $table_node_info;
-	}
-
-	function table_user_info() {
-		global $db;
-		$table_user_info = new table(array('TABLE_NAME' => 'table_user_info'));
-		$table_user_info->db_data(
-			'users.id, users.username, users_nodes.owner, users.surname, users.name, users.name, users.email, users.phone, users.info',
-			'dns_zones ' .
-			'LEFT JOIN users_nodes ON users_nodes.node_id = dns_zones.node_id 
-			LEFT JOIN users ON users_nodes.user_id = users.id',
-			"dns_zones.id = '".get('zone')."'",
-			'',
-			'users_nodes.owner ASC');
-		for($i=1;$i<count($table_user_info->data);$i++) {
-			if (isset($table_user_info->data[$i])) {
-				$table_user_info->info['EDIT'][$i] = makelink(array("page" => "users", "user" => $table_user_info->data[$i]['id']));
-			}
-		}
-		$table_user_info->info['EDIT_COLUMN'] = 'username';
-		$table_user_info->db_data_remove('id');
-		$table_user_info->db_data_translate('users_nodes__owner');
-		return $table_user_info;
-	}
-
-	function table_links() {
-		global $db;
-		$table_links = new table(array('TABLE_NAME' => 'table_links', 'FORM_NAME' => 'table_links'));
-		$table_links->db_data(
-			'links.id, links.type, "" AS peer, links.peer_node_id, n_p.name AS peer_node_name, n_c.name AS peer_ap_nodename, n_c.id AS peer_ap_nodeid, l_c.ssid AS peer_ap_ssid, links.ssid, links.status AS links__status, l_p.status AS l_p__status, l_c.status AS l_c__status',
-			'links
-			LEFT JOIN dns_zones ON dns_zones.node_id = links.node_id
-			LEFT JOIN links AS l_p ON links.peer_node_id = l_p.node_id AND links.node_id = l_p.peer_node_id
-			LEFT JOIN nodes AS n_p ON links.peer_node_id = n_p.id
-			LEFT JOIN links AS l_c ON links.peer_ap_id = l_c.id
-			LEFT JOIN nodes AS n_c ON l_c.node_id = n_c.id',
-			"dns_zones.id = '".get('zone')."' AND (links.type != 'p2p' OR l_p.node_id IS NOT NULL)",
-			"",
-			"links.type ASC, links.date_in ASC");
-		for($i=1;$i<count($table_links->data);$i++) {
-			if (isset($table_links->data[$i])) {
-				if ($table_links->data[$i]['type'] == 'p2p') {
-					$table_links->data[$i]['peer'] = $table_links->data[$i]['peer_node_name']." (#".$table_links->data[$i]['peer_node_id'].")";
-					$table_links->data[$i]['links__status'] = ($table_links->data[$i]['l_p__status']=="inactive"?"inactive":$table_links->data[$i]['links__status']);
-				}
-				if ($table_links->data[$i]['type'] == 'client') {
-					$table_links->data[$i]['peer'] = $table_links->data[$i]['peer_ap_nodename']." (#".$table_links->data[$i]['peer_ap_nodeid'].")";
-					$table_links->data[$i]['ssid'] = $table_links->data[$i]['peer_ap_ssid'];
-					$table_links->data[$i]['links__status'] = ($table_links->data[$i]['l_c__status']=="inactive"?"inactive":$table_links->data[$i]['links__status']);
-				}				
-			}
-		}
-		$table_links->db_data_remove('id', 'peer_node_id', 'peer_node_name', 'peer_ap_nodename', 'peer_ap_nodeid', 'peer_ap_ssid', 'l_c__status', 'l_p__status');
-		$table_links->db_data_translate('links__type', 'links__status');
-		return $table_links;
-	}
-	
-	function table_ip_ranges() {
-		global $db;
-		$table_ip_ranges = new table(array('TABLE_NAME' => 'table_ip_ranges', 'FORM_NAME' => 'table_ip_ranges'));
-		$table_ip_ranges->db_data(
-			'"" AS ip_range, ip_ranges.ip_start, ip_ranges.ip_end, ip_ranges.date_in, ip_ranges.status',
-			'ip_ranges ' .
-			'LEFT JOIN dns_zones ON dns_zones.node_id = ip_ranges.node_id',
-			"dns_zones.id = '".get('zone')."'",
-			"",
-			"ip_ranges.date_in ASC");
-		foreach( (array) $table_ip_ranges->data as $key => $value) {
-			if ($key != 0) {
-				$table_ip_ranges->data[$key]['ip_start'] = long2ip($table_ip_ranges->data[$key]['ip_start']);
-				$table_ip_ranges->data[$key]['ip_end'] = long2ip($table_ip_ranges->data[$key]['ip_end']);
-				$table_ip_ranges->data[$key]['ip_range'] = $table_ip_ranges->data[$key]['ip_start']." - ".$table_ip_ranges->data[$key]['ip_end'];
-			}
-		}
-		$table_ip_ranges->db_data_remove('ip_start', 'ip_end');
-		$table_ip_ranges->db_data_translate('ip_ranges__status');
-		return $table_ip_ranges;
-	}
-
-	function table_dns() {
-		global $db, $vars;
-		$table_dns = new table(array('TABLE_NAME' => 'table_dns', 'FORM_NAME' => 'table_dns'));
-		$table_dns->db_data(
-			'dns_zones.id, dns_zones.name, dns_zones.date_in, dns_zones.status, dns_zones.delete_req, dns_zones.type',
-			'dns_zones ' .
-			'LEFT JOIN dns_zones AS t_dns_zones ON t_dns_zones.node_id = dns_zones.node_id',
-			't_dns_zones.id = '.get('zone'),
-			"",
-			"dns_zones.type ASC, dns_zones.date_in ASC");
-		for($i=1;$i<count($table_dns->data);$i++) {
-			if (isset($table_dns->data[$i])) {
-				if ($table_dns->data[$i]['type'] == 'forward') $table_dns->data[$i]['name'] .= ".".$vars['dns']['root_zone'];
-				$table_dns->info['EDIT'][$i] = makelink(array("page" => "hostmaster", "subpage" => "dnszone", "zone" => $table_dns->data[$i]['id'], "node" => intval(get('node'))));
-			}
-		}
-		$table_dns->info['EDIT_COLUMN'] = 'name';
-		$table_dns->db_data_remove('id', 'delete_req', 'type');
-		$table_dns->db_data_translate('dns_zones__status');
-		return $table_dns;
-	}
-
 	function output() {
 		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct, $db, $main;
-		if(get('action') === "delete")
-		{
-			$ret = $db->del("dns_zones", "id = '".get('zone')."'");
-			if ($ret) {
-				$main->message->set_fromlang('info', 'delete_success', makelink(array("page" => "hostmaster", "subpage" => "dnszones")));
-			} else {
-				$main->message->set_fromlang('error', 'generic');		
-			}
-			return ;
-		}
+		global $construct, $db;
 		$this->tpl['form_zone'] = $construct->form($this->form_zone(), __FILE__);
-		$this->tpl['table_node_info'] = $construct->table($this->table_node_info(), __FILE__);
-		$this->tpl['table_user_info'] = $construct->table($this->table_user_info(), __FILE__);
-		$this->tpl['table_links'] = $construct->table($this->table_links(), __FILE__);
-		$this->tpl['table_ip_ranges'] = $construct->table($this->table_ip_ranges(), __FILE__);
-		$this->tpl['table_dns'] = $construct->table($this->table_dns(), __FILE__);
-		$this->tpl['link_dnszone_delete'] = makelink (array("action" => "delete"),TRUE);
 		return template($this->tpl, __FILE__);
 	}
 
 	function output_onpost_form_zone() {
-		global $construct, $main, $db, $vars;
-		if (substr($_POST['dns_zones__name'], -strlen($vars['dns']['root_zone'])-1) == ".".$vars['dns']['root_zone']) {
-			$_POST['dns_zones__name'] = substr($_POST['dns_zones__name'], 0, -strlen($vars['dns']['root_zone'])-1);
-		}
+		global $construct, $main, $db;
 		$form_zone = $this->form_zone();
 		$ret = TRUE;
@@ -212,9 +75,9 @@
 		if ($_POST['sendmail'] == 'Y') {
 			$_POST['email_to'] = str_replace(";", ", ", $_POST['email_to']);
-			if ($ret) $ret = $ret && sendmail(stripslashes($_POST['email_to']), stripslashes($_POST['email_subject']), stripslashes($_POST['email_body']), '', '', TRUE);
+			if ($ret) $ret = $ret && sendmail($_POST['email_to'], $_POST['email_subject'], $_POST['email_body']);
 		}
 		
 		if ($ret) {
-			$main->message->set_fromlang('info', 'edit_success', makelink(array("page" => "hostmaster", "subpage" => "dnszones")));
+			$main->message->set_fromlang('info', 'edit_success', makelink("", TRUE));
 		} else {
 			$main->message->set_fromlang('error', 'generic');		
Index: /trunk/includes/pages/hostmaster/hostmaster_dnszones.php
===================================================================
--- /trunk/includes/pages/hostmaster/hostmaster_dnszones.php (revision 26)
+++ /trunk/includes/pages/hostmaster/hostmaster_dnszones.php (revision 1)
@@ -30,5 +30,5 @@
 	function form_search_dns() {
 		$form_search_dns = new form(array('FORM_NAME' => 'form_search_dns'));
-		$form_search_dns->db_data('dns_zones.type, dns_zones.name, dns_zones.status, dns_zones.delete_req, nodes.id, nodes.name');
+		$form_search_dns->db_data('dns_zones.type, dns_zones.name, dns_zones.status, dns_zones.delete_req');
 		$form_search_dns->db_data_search();
 		return $form_search_dns;
@@ -38,14 +38,11 @@
 		global $construct, $db, $vars;
 		$form_search_dns = $this->form_search_dns();
-		$where = $form_search_dns->db_data_where(array("dns_zones__name" => "starts_with", 'nodes__name' => 'starts_with'));
+		$where = $form_search_dns->db_data_where(array("dns_zones__name" => "starts_with"));
 		$table_dns = new table(array('TABLE_NAME' => 'table_dns', 'FORM_NAME' => 'table_dns'));
 
 		$table_dns->db_data(
 			'dns_zones.id, dns_zones.name, dns_zones.type, dns_zones.date_in, dns_zones.status, dns_zones.delete_req',
-			'dns_zones ' .
-			'LEFT JOIN nodes ON dns_zones.node_id = nodes.id',
-			$where,
-			"",
-			"dns_zones.date_in DESC, dns_zones.status ASC");
+			'dns_zones',
+			$where);
 		$table_dns->db_data_multichoice('dns_zones', 'id');
 		for($i=1;$i<count($table_dns->data);$i++) {
@@ -67,5 +64,4 @@
 		$this->tpl['form_search_dns'] = $construct->form($this->form_search_dns(), __FILE__);
 		$this->tpl['table_dns'] = $construct->table($this->table_dns(), __FILE__);
-		$this->tpl['link_schema'] = makelink(array('page' => 'hostmaster', 'subpage' => 'dnszones_schema'));
 		return template($this->tpl, __FILE__);
 	}
Index: /trunk/includes/pages/hostmaster/hostmaster_dnsnameserver.php
===================================================================
--- /trunk/includes/pages/hostmaster/hostmaster_dnsnameserver.php (revision 148)
+++ /trunk/includes/pages/hostmaster/hostmaster_dnsnameserver.php (revision 1)
@@ -37,120 +37,8 @@
 	}
 	
-	function table_node_info() {
-		global $db;
-		$table_node_info = new table(array('TABLE_NAME' => 'table_node_info'));
-		$table_node_info->db_data(
-			'nodes.name AS nodes__name, nodes.id, nodes.date_in, nodes.info, areas.name AS areas__name, regions.name AS regions__name',
-			'dns_nameservers ' .
-			'LEFT JOIN nodes ON dns_nameservers.node_id = nodes.id
-			LEFT JOIN areas ON nodes.area_id = areas.id
-			LEFT JOIN regions ON areas.region_id = regions.id',
-			"dns_nameservers.id = '".get('nameserver')."'");
-		for($i=1;$i<count($table_node_info->data);$i++) {
-			if (isset($table_node_info->data[$i])) {
-				$table_node_info->data[$i]['nodes__name'] .= " (#".$table_node_info->data[$i]['id'].")";
-				$table_node_info->info['EDIT'][$i] = makelink(array("page" => "mynodes", "node" => $table_node_info->data[$i]['id']));
-			}
-		}
-		$table_node_info->info['EDIT_COLUMN'] = 'nodes__name';
-		$table_node_info->db_data_remove('id');
-		return $table_node_info;
-	}
-
-	function table_user_info() {
-		global $db;
-		$table_user_info = new table(array('TABLE_NAME' => 'table_user_info'));
-		$table_user_info->db_data(
-			'users.id, users.username, users_nodes.owner, users.surname, users.name, users.name, users.email, users.phone, users.info',
-			'dns_nameservers ' .
-			'LEFT JOIN users_nodes ON users_nodes.node_id = dns_nameservers.node_id 
-			LEFT JOIN users ON users_nodes.user_id = users.id',
-			"dns_nameservers.id = '".get('nameserver')."'",
-			'',
-			'users_nodes.owner ASC');
-		for($i=1;$i<count($table_user_info->data);$i++) {
-			if (isset($table_user_info->data[$i])) {
-				$table_user_info->info['EDIT'][$i] = makelink(array("page" => "users", "user" => $table_user_info->data[$i]['id']));
-			}
-		}
-		$table_user_info->info['EDIT_COLUMN'] = 'username';
-		$table_user_info->db_data_remove('id');
-		$table_user_info->db_data_translate('users_nodes__owner');
-		return $table_user_info;
-	}
-
-	function table_links() {
-		global $db;
-		$table_links = new table(array('TABLE_NAME' => 'table_links', 'FORM_NAME' => 'table_links'));
-		$table_links->db_data(
-			'links.id, links.type, "" AS peer, links.peer_node_id, n_p.name AS peer_node_name, n_c.name AS peer_ap_nodename, n_c.id AS peer_ap_nodeid, l_c.ssid AS peer_ap_ssid, links.ssid, links.status AS links__status, l_p.status AS l_p__status, l_c.status AS l_c__status',
-			'links
-			LEFT JOIN dns_nameservers ON dns_nameservers.node_id = links.node_id
-			LEFT JOIN links AS l_p ON links.peer_node_id = l_p.node_id AND links.node_id = l_p.peer_node_id
-			LEFT JOIN nodes AS n_p ON links.peer_node_id = n_p.id
-			LEFT JOIN links AS l_c ON links.peer_ap_id = l_c.id
-			LEFT JOIN nodes AS n_c ON l_c.node_id = n_c.id',
-			"dns_nameservers.id = '".get('nameserver')."' AND (links.type != 'p2p' OR l_p.node_id IS NOT NULL)",
-			"",
-			"links.type ASC, links.date_in ASC");
-		for($i=1;$i<count($table_links->data);$i++) {
-			if (isset($table_links->data[$i])) {
-				if ($table_links->data[$i]['type'] == 'p2p') {
-					$table_links->data[$i]['peer'] = $table_links->data[$i]['peer_node_name']." (#".$table_links->data[$i]['peer_node_id'].")";
-					$table_links->data[$i]['links__status'] = ($table_links->data[$i]['l_p__status']=="inactive"?"inactive":$table_links->data[$i]['links__status']);
-				}
-				if ($table_links->data[$i]['type'] == 'client') {
-					$table_links->data[$i]['peer'] = $table_links->data[$i]['peer_ap_nodename']." (#".$table_links->data[$i]['peer_ap_nodeid'].")";
-					$table_links->data[$i]['ssid'] = $table_links->data[$i]['peer_ap_ssid'];
-					$table_links->data[$i]['links__status'] = ($table_links->data[$i]['l_c__status']=="inactive"?"inactive":$table_links->data[$i]['links__status']);
-				}				
-			}
-		}
-		$table_links->db_data_remove('id', 'peer_node_id', 'peer_node_name', 'peer_ap_nodename', 'peer_ap_nodeid', 'peer_ap_ssid', 'l_c__status', 'l_p__status');
-		$table_links->db_data_translate('links__type', 'links__status');
-		return $table_links;
-	}
-	
-	function table_dns() {
-		global $db, $vars;
-		$table_dns = new table(array('TABLE_NAME' => 'table_dns', 'FORM_NAME' => 'table_dns'));
-		$table_dns->db_data(
-			'dns_zones.id, dns_zones.name, dns_zones.date_in, dns_zones.status, dns_zones.delete_req, dns_zones.type',
-			'dns_zones ' .
-			'INNER JOIN dns_zones_nameservers ON dns_zones_nameservers.zone_id = dns_zones.id',
-			'dns_zones_nameservers.nameserver_id = '.get('nameserver'),
-			"",
-			"dns_zones.type ASC, dns_zones.date_in ASC");
-		for($i=1;$i<count($table_dns->data);$i++) {
-			if (isset($table_dns->data[$i])) {
-				if ($table_dns->data[$i]['type'] == 'forward') $table_dns->data[$i]['name'] .= ".".$vars['dns']['root_zone'];
-				$table_dns->info['EDIT'][$i] = makelink(array("page" => "hostmaster", "subpage" => "dnszone", "zone" => $table_dns->data[$i]['id']));
-			}
-		}
-		$table_dns->info['EDIT_COLUMN'] = 'name';
-		$table_dns->db_data_remove('id', 'type');
-		$table_dns->db_data_translate('dns_zones__delete_req', 'dns_zones__status');
-		return $table_dns;
-	}
-
 	function output() {
 		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct,$db,$main;
-		if(get('action') === "delete")
-		{
-			$ret = $db->del("dns_nameservers", "id = '".get('nameserver')."'");
-			if ($ret) {
-				$main->message->set_fromlang('info', 'delete_success', makelink(array("page" => "hostmaster", "subpage" => "dnsnameservers")));
-			} else {
-				$main->message->set_fromlang('error', 'generic');		
-			}
-			return ;
-		}
+		global $construct;
 		$this->tpl['form_nameserver'] = $construct->form($this->form_nameserver(), __FILE__);
-		$this->tpl['table_node_info'] = $construct->table($this->table_node_info(), __FILE__);
-		$this->tpl['table_user_info'] = $construct->table($this->table_user_info(), __FILE__);
-		$this->tpl['table_links'] = $construct->table($this->table_links(), __FILE__);
-		$this->tpl['table_dns'] = $construct->table($this->table_dns(), __FILE__);
-		$this->tpl['link_nameserver_delete'] = makelink (array("action" => "delete"),TRUE);
 		return template($this->tpl, __FILE__);
 	}
@@ -164,5 +52,5 @@
 		
 		if ($ret) {
-			$main->message->set_fromlang('info', 'edit_success', makelink(array("page" => "hostmaster", "subpage" => "dnsnameservers")));
+			$main->message->set_fromlang('info', 'edit_success', makelink("", TRUE));
 		} else {
 			$main->message->set_fromlang('error', 'generic');		
Index: /trunk/includes/pages/hostmaster/hostmaster_range.php
===================================================================
--- /trunk/includes/pages/hostmaster/hostmaster_range.php (revision 187)
+++ /trunk/includes/pages/hostmaster/hostmaster_range.php (revision 1)
@@ -29,13 +29,11 @@
 	
 	function form_range() {
-		global $construct, $db, $vars, $main;
+		global $construct, $db, $vars;
 		$form_range = new form(array('FORM_NAME' => 'form_range'));
-		$form_range->db_data('ip_ranges.ip_start, ip_ranges.ip_end, ip_ranges.info, ip_ranges.status');
+		$form_range->db_data('ip_ranges.ip_start, ip_ranges.ip_end, ip_ranges.subnetmask, ip_ranges.info, ip_ranges.status');
 		$form_range->db_data_values("ip_ranges", "id", get('iprange'));
 		$form_range->data[0]['value'] = long2ip($form_range->data[0]['value']);
 		$form_range->data[1]['value'] = long2ip($form_range->data[1]['value']);
 		$tmp = $db->get('users.email, users_nodes.owner', 'users, users_nodes, ip_ranges', "users_nodes.user_id = users.id AND users_nodes.node_id = ip_ranges.node_id AND ip_ranges.id = '".get("iprange")."'");
-		if (!isset($form_range->info['email_all'])) $form_range->info['email_all']= '';
-		if (!isset($form_range->info['email_owner'])) $form_range->info['email_owner'] = '';
 		foreach( (array) $tmp as $key => $value) {
 			$form_range->info['email_all'] .= $value['email'].', ';
@@ -47,126 +45,11 @@
 		$form_range->info['node_name'] = $t[0]['name'];
 		$form_range->info['node_id'] = $t[0]['id'];
-		$form_range->info['hostmaster_username'] = $main->userdata->info['username'];
-		$form_range->info['hostmaster_name'] = $main->userdata->info['name'];
-		$form_range->info['hostmaster_surname'] = $main->userdata->info['surname'];
 		return $form_range;
 	}
 	
-	function table_node_info() {
-		global $db;
-		$table_node_info = new table(array('TABLE_NAME' => 'table_node_info'));
-		$table_node_info->db_data(
-			'nodes.name AS nodes__name, nodes.id, nodes.date_in, nodes.info, areas.name AS areas__name, regions.name AS regions__name',
-			'ip_ranges ' .
-			'LEFT JOIN nodes ON ip_ranges.node_id = nodes.id
-			LEFT JOIN areas ON nodes.area_id = areas.id
-			LEFT JOIN regions ON areas.region_id = regions.id',
-			"ip_ranges.id = '".get('iprange')."'");
-		for($i=1;$i<count($table_node_info->data);$i++) {
-			if (isset($table_node_info->data[$i])) {
-				$table_node_info->data[$i]['nodes__name'] .= " (#".$table_node_info->data[$i]['id'].")";
-				$table_node_info->info['EDIT'][$i] = makelink(array("page" => "mynodes", "node" => $table_node_info->data[$i]['id']));
-			}
-		}
-		$table_node_info->info['EDIT_COLUMN'] = 'nodes__name';
-		$table_node_info->db_data_remove('id');
-		return $table_node_info;
-	}
-
-	function table_user_info() {
-		global $db;
-		$table_user_info = new table(array('TABLE_NAME' => 'table_user_info'));
-		$table_user_info->db_data(
-			'users.id, users.username, users_nodes.owner, users.surname, users.name, users.name, users.email, users.phone, users.info',
-			'ip_ranges ' .
-			'LEFT JOIN users_nodes ON users_nodes.node_id = ip_ranges.node_id 
-			LEFT JOIN users ON users_nodes.user_id = users.id',
-			"ip_ranges.id = '".get('iprange')."'",
-			'',
-			'users_nodes.owner ASC');
-		for($i=1;$i<count($table_user_info->data);$i++) {
-			if (isset($table_user_info->data[$i])) {
-				$table_user_info->info['EDIT'][$i] = makelink(array("page" => "users", "user" => $table_user_info->data[$i]['id']));
-			}
-		}
-		$table_user_info->info['EDIT_COLUMN'] = 'username';
-		$table_user_info->db_data_remove('id');
-		$table_user_info->db_data_translate('users_nodes__owner');
-		return $table_user_info;
-	}
-
-	function table_links() {
-		global $db;
-		$table_links = new table(array('TABLE_NAME' => 'table_links', 'FORM_NAME' => 'table_links'));
-		$table_links->db_data(
-			'links.id, links.type, "" AS peer, links.peer_node_id, n_p.name AS peer_node_name, n_c.name AS peer_ap_nodename, n_c.id AS peer_ap_nodeid, l_c.ssid AS peer_ap_ssid, links.ssid, links.status AS links__status, l_p.status AS l_p__status, l_c.status AS l_c__status',
-			'links
-			LEFT JOIN ip_ranges ON ip_ranges.node_id = links.node_id
-			LEFT JOIN links AS l_p ON links.peer_node_id = l_p.node_id AND links.node_id = l_p.peer_node_id
-			LEFT JOIN nodes AS n_p ON links.peer_node_id = n_p.id
-			LEFT JOIN links AS l_c ON links.peer_ap_id = l_c.id
-			LEFT JOIN nodes AS n_c ON l_c.node_id = n_c.id',
-			"ip_ranges.id = '".get('iprange')."' AND (links.type != 'p2p' OR l_p.node_id IS NOT NULL)",
-			"",
-			"links.type ASC, links.date_in ASC");
-		for($i=1;$i<count($table_links->data);$i++) {
-			if (isset($table_links->data[$i])) {
-				if ($table_links->data[$i]['type'] == 'p2p') {
-					$table_links->data[$i]['peer'] = $table_links->data[$i]['peer_node_name']." (#".$table_links->data[$i]['peer_node_id'].")";
-					$table_links->data[$i]['links__status'] = ($table_links->data[$i]['l_p__status']=="inactive"?"inactive":$table_links->data[$i]['links__status']);
-				}
-				if ($table_links->data[$i]['type'] == 'client') {
-					$table_links->data[$i]['peer'] = $table_links->data[$i]['peer_ap_nodename']." (#".$table_links->data[$i]['peer_ap_nodeid'].")";
-					$table_links->data[$i]['ssid'] = $table_links->data[$i]['peer_ap_ssid'];
-					$table_links->data[$i]['links__status'] = ($table_links->data[$i]['l_c__status']=="inactive"?"inactive":$table_links->data[$i]['links__status']);
-				}				
-			}
-		}
-		$table_links->db_data_remove('id', 'peer_node_id', 'peer_node_name', 'peer_ap_nodename', 'peer_ap_nodeid', 'peer_ap_ssid', 'l_c__status', 'l_p__status');
-		$table_links->db_data_translate('links__type', 'links__status');
-		return $table_links;
-	}
-	
-	function table_ip_ranges() {
-		global $db;
-		$table_ip_ranges = new table(array('TABLE_NAME' => 'table_ip_ranges', 'FORM_NAME' => 'table_ip_ranges'));
-		$table_ip_ranges->db_data(
-			'"" AS ip_range, ip_ranges.ip_start, ip_ranges.ip_end, ip_ranges.date_in, ip_ranges.status',
-			'ip_ranges ' .
-			'LEFT JOIN ip_ranges AS t_ip_ranges ON t_ip_ranges.node_id = ip_ranges.node_id',
-			"t_ip_ranges.id = '".get('iprange')."'",
-			"",
-			"ip_ranges.date_in ASC");
-		foreach( (array) $table_ip_ranges->data as $key => $value) {
-			if ($key != 0) {
-				$table_ip_ranges->data[$key]['ip_start'] = long2ip($table_ip_ranges->data[$key]['ip_start']);
-				$table_ip_ranges->data[$key]['ip_end'] = long2ip($table_ip_ranges->data[$key]['ip_end']);
-				$table_ip_ranges->data[$key]['ip_range'] = $table_ip_ranges->data[$key]['ip_start']." - ".$table_ip_ranges->data[$key]['ip_end'];
-			}
-		}
-		$table_ip_ranges->db_data_remove('ip_start', 'ip_end');
-		$table_ip_ranges->db_data_translate('ip_ranges__status');
-		return $table_ip_ranges;
-	}
-
 	function output() {
 		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct,$db,$main;
-		if(get('action') === "delete")
-		{
-			$ret = $db->del("ip_ranges", "id = '".get('iprange')."'");
-			if ($ret) {
-				$main->message->set_fromlang('info', 'delete_success', makelink(array("page" => "hostmaster", "subpage" => "ranges")));
-			} else {
-				$main->message->set_fromlang('error', 'generic');		
-			}
-			return ;
-		}
+		global $construct;
 		$this->tpl['form_range'] = $construct->form($this->form_range(), __FILE__);
-		$this->tpl['table_node_info'] = $construct->table($this->table_node_info(), __FILE__);
-		$this->tpl['table_user_info'] = $construct->table($this->table_user_info(), __FILE__);
-		$this->tpl['table_links'] = $construct->table($this->table_links(), __FILE__);
-		$this->tpl['table_ip_ranges'] = $construct->table($this->table_ip_ranges(), __FILE__);
-		$this->tpl['link_range_delete'] = makelink (array("action" => "delete"),TRUE);
 		return template($this->tpl, __FILE__);
 	}
@@ -183,8 +66,8 @@
 		if ($_POST['sendmail'] == 'Y') {
 			$_POST['email_to'] = str_replace(";", ", ", $_POST['email_to']);
-			if ($ret) $ret = $ret && sendmail(stripslashes($_POST['email_to']), stripslashes($_POST['email_subject']), stripslashes($_POST['email_body']), '', '', TRUE);
+			if ($ret) $ret = $ret && sendmail($_POST['email_to'], $_POST['email_subject'], $_POST['email_body']);
 		}
 		if ($ret) {
-			$main->message->set_fromlang('info', 'edit_success', makelink(array("page" => "hostmaster", "subpage" => "ranges")));
+			$main->message->set_fromlang('info', 'insert_success', makelink("", TRUE));
 		} else {
 			$main->message->set_fromlang('error', 'generic');		
Index: /trunk/includes/pages/hostmaster/hostmaster_dnsnameservers.php
===================================================================
--- /trunk/includes/pages/hostmaster/hostmaster_dnsnameservers.php (revision 187)
+++ /trunk/includes/pages/hostmaster/hostmaster_dnsnameservers.php (revision 1)
@@ -32,5 +32,5 @@
 		$form_search_nameservers = new form(array('FORM_NAME' => 'form_search_nameservers'));
 		$form_search_nameservers->data = array("0" => array("Field" => "ip", "fullField" => "dns_nameservers__ip"));
-		$form_search_nameservers->db_data('dns_nameservers.status, dns_nameservers.delete_req, nodes.id, nodes.name');
+		$form_search_nameservers->db_data('dns_nameservers.status, dns_nameservers.delete_req');
 		$form_search_nameservers->db_data_search();
 		return $form_search_nameservers;
@@ -39,13 +39,13 @@
 	function table_nameservers() {
 		global $construct, $db, $vars;
-		if (isset($_POST['dns_nameservers__ip'])) $_POST['dns_nameservers__ip'] = ip2long($_POST['dns_nameservers__ip']);
+		if ($_POST['dns_nameservers__ip'] != '') $_POST['dns_nameservers__ip'] = ip2long($_POST['dns_nameservers__ip']);
 		if ($_GET['form_search_nameservers_search'] != '') {
 			$t = unserialize(stripslashes($_GET['form_search_nameservers_search']));
-			if (isset($t['dns_nameservers__ip'])) $t['dns_nameservers__ip'] = ip2long($t['dns_nameservers__ip']);
+			if ($t['dns_nameservers__ip'] != '') $t['dns_nameservers__ip'] = ip2long($t['dns_nameservers__ip']);
 			$_GET['form_search_nameservers_search'] = addslashes(serialize($t));
 		}
 
 		$form_search_nameservers = $this->form_search_nameservers();
-		$where = $form_search_nameservers->db_data_where(array('nodes__name' => 'starts_with'));
+		$where = $form_search_nameservers->db_data_where();
 		$table_nameservers = new table(array('TABLE_NAME' => 'table_nameservers', 'FORM_NAME' => 'table_nameservers'));
 
@@ -54,7 +54,5 @@
 			'dns_nameservers
 			LEFT JOIN nodes ON dns_nameservers.node_id = nodes.id',
-			$where,
-			"",
-			"dns_nameservers.date_in DESC, dns_nameservers.status ASC");
+			$where);
 		$table_nameservers->db_data_search($form_search_nameservers);
 		
@@ -72,5 +70,5 @@
 			}
 		}
-		$table_nameservers->info['EDIT_COLUMN'] = 'name';
+		$table_nameservers->info['EDIT_COLUMN'] = 'ip';
 		$table_nameservers->info['MULTICHOICE_LABEL'] = 'delete';
 		$table_nameservers->db_data_remove('id', 'name_ns');
Index: /trunk/includes/pages/hostmaster/hostmaster_ranges.php
===================================================================
--- /trunk/includes/pages/hostmaster/hostmaster_ranges.php (revision 26)
+++ /trunk/includes/pages/hostmaster/hostmaster_ranges.php (revision 1)
@@ -32,5 +32,5 @@
 		$form_search_ranges = new form(array('FORM_NAME' => 'form_search_ranges'));
 		$form_search_ranges->data = array("0" => array("Field" => "ip", "fullField" => "ip"));
-		$form_search_ranges->db_data('ip_ranges.status, ip_ranges.delete_req, nodes.id, nodes.name');
+		$form_search_ranges->db_data('ip_ranges.status, ip_ranges.delete_req');
 		$form_search_ranges->db_data_search();
 		return $form_search_ranges;
@@ -40,5 +40,5 @@
 		global $construct, $db;
 		$form_search_ranges = $this->form_search_ranges();
-		$where = $form_search_ranges->db_data_where(array('ip' => 'exclude', 'nodes__name' => 'starts_with'));
+		$where = $form_search_ranges->db_data_where(array('ip' => 'exclude'));
 		$table_ip_ranges = new table(array('TABLE_NAME' => 'table_ip_ranges', 'FORM_NAME' => 'table_ip_ranges'));
 		$s_ip = correct_ip($form_search_ranges->data[0]['value']);
@@ -48,9 +48,6 @@
 		$table_ip_ranges->db_data(
 			'ip_ranges.id, "" AS ip_range, ip_ranges.ip_start, ip_ranges.ip_end, ip_ranges.date_in, ip_ranges.status, ip_ranges.delete_req',
-			'ip_ranges ' .
-			'LEFT JOIN nodes ON ip_ranges.node_id = nodes.id',
-			$where,
-			"",
-			"ip_ranges.date_in DESC, ip_ranges.status ASC");
+			'ip_ranges',
+			$where);
 		foreach( (array) $table_ip_ranges->data as $key => $value) {
 			if ($key != 0) {
Index: /unk/includes/pages/hostmaster/hostmaster_dnszones_schema.php
===================================================================
--- /trunk/includes/pages/hostmaster/hostmaster_dnszones_schema.php (revision 25)
+++  (revision )
@@ -1,94 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class hostmaster_dnszones_schema {
-
-	var $tpl;
-	
-	function hostmaster_dnszones_schema() {
-		
-	}
-	
-	function form_zone_forward() {
-		global $vars;
-		$form_zone_forward = new form(array('FORM_NAME' => 'form_zone_forward'));
-		$form_zone_forward->data[0]['fullField'] = 'schema'; 
-		$form_zone_forward->data[0]['Field'] = 'schema';
-		$form_zone_forward->data[0]['Type'] = 'text';
-		$form_zone_forward->data[0]['value'] = file_get_contents($vars['dns']['forward_zone_schema']);
-		return $form_zone_forward;
-	}
-
-	function form_zone_reverse() {
-		global $vars;
-		$form_zone_reverse = new form(array('FORM_NAME' => 'form_zone_reverse'));
-		$form_zone_reverse->data[0]['fullField'] = 'schema'; 
-		$form_zone_reverse->data[0]['Field'] = 'schema';
-		$form_zone_reverse->data[0]['Type'] = 'text';
-		$form_zone_reverse->data[0]['value'] = file_get_contents($vars['dns']['reverse_zone_schema']);
-		return $form_zone_reverse;
-	}
-
-	function output() {
-		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct, $vars, $main;
-		if (!file_exists($vars['dns']['forward_zone_schema']) || !file_exists($vars['dns']['reverse_zone_schema'])) {
-			$main->message->set_fromlang('error', 'schema_files_missing');
-			return;
-		}
-		$this->tpl['form_zone_forward'] = $construct->form($this->form_zone_forward(), __FILE__);
-		$this->tpl['form_zone_reverse'] = $construct->form($this->form_zone_reverse(), __FILE__);
-		return template($this->tpl, __FILE__);
-	}
-
-	function output_onpost_form_zone_forward() {
-		global $db, $main, $vars;
-		$ret = FALSE;
-		
-		$f = fopen($vars['dns']['forward_zone_schema'], "w");
-		if (fwrite($f, $_POST['schema']) !== FALSE) $ret = TRUE;
-		fclose($f);
-		
-		if ($ret) {
-			$main->message->set_fromlang('info', 'edit_success', makelink("",TRUE));
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-
-	function output_onpost_form_zone_reverse() {
-		global $db, $main, $vars;
-		$ret = FALSE;
-		
-		$f = fopen($vars['dns']['reverse_zone_schema'], "w");
-		if (fwrite($f, $_POST['schema']) !== FALSE) $ret = TRUE;
-		fclose($f);
-		
-		if ($ret) {
-			$main->message->set_fromlang('info', 'edit_success', makelink("",TRUE));
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-
-}
-
-?>
Index: /trunk/includes/pages/pickup/pickup.php
===================================================================
--- /trunk/includes/pages/pickup/pickup.php (revision 143)
+++ /trunk/includes/pages/pickup/pickup.php (revision 1)
@@ -20,5 +20,5 @@
  */
 
-if (get('subpage') != '') include_once(ROOT_PATH."includes/pages/pickup/pickup_".get('subpage').".php");
+if (get('subpage') != '') include_once($root_path."includes/pages/pickup/pickup_".get('subpage').".php");
 
 class pickup {
Index: /trunk/includes/pages/pickup/pickup_users.php
===================================================================
--- /trunk/includes/pages/pickup/pickup_users.php (revision 39)
+++ /trunk/includes/pages/pickup/pickup_users.php (revision 1)
@@ -44,7 +44,6 @@
 			'users.id, users.username',
 			'users',
-			"users.status = 'activated'".($where!=''?' AND ('.$where.')':""),
-			'users.id',
-			"users.username ASC");
+			$where,
+			'users.id');
 		$table_users->db_data_search($form_search_users);
 		for($i=1;$i<count($table_users->data);$i++) {
Index: /unk/includes/pages/pickup/pickup_dns_nameservers.php
===================================================================
--- /trunk/includes/pages/pickup/pickup_dns_nameservers.php (revision 26)
+++  (revision )
@@ -1,79 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class pickup_dns_nameservers {
-
-	var $tpl;
-	
-	function pickup_dns_nameservers() {
-		
-	}
-	
-	function form_search_nameservers() {
-		global $db;
-		$form_search_nameservers = new form(array('FORM_NAME' => 'form_search_nameservers'));
-		$form_search_nameservers->db_data('nodes.id, nodes.name, areas.id, regions.id');
-		$form_search_nameservers->db_data_enum('areas.id', $db->get("id AS value, name AS output", "areas"));
-		$form_search_nameservers->db_data_enum('regions.id', $db->get("id AS value, name AS output", "regions"));
-		$form_search_nameservers->db_data_search();
-		return $form_search_nameservers;
-	}
-
-	function table_nameservers() {
-		global $construct, $db, $main, $vars;
-		$form_search_nameservers = $this->form_search_nameservers();
-		$where = $form_search_nameservers->db_data_where(array("nodes__name" => "starts_with"));
-		$table_nameservers = new table(array('TABLE_NAME' => 'table_nameservers'));
-		$table_nameservers->db_data(
-			'dns_nameservers.id, dns_nameservers.name, nodes.id AS nodes__id, nodes.name AS nodes__name, nodes.name_ns AS nodes__name_ns, areas.name AS areas__name',
-			'dns_nameservers, nodes, areas, regions',
-			'dns_nameservers.node_id = nodes.id AND nodes.area_id = areas.id AND areas.region_id = regions.id'.($where!=''?' AND ('.$where.')':""),
-			"",
-			"nodes.id ASC");
-		$table_nameservers->db_data_search($form_search_nameservers);
-		for($i=1;$i<count($table_nameservers->data);$i++) {
-			if (isset($table_nameservers->data[$i])) {
-				$table_nameservers->data[$i]['nodes__name'] .= " (#".$table_nameservers->data[$i]['nodes__id'].")";
-				$table_nameservers->data[$i]['name'] .= ".".$table_nameservers->data[$i]['nodes__name_ns'].".".$vars['dns']['ns_zone'];
-				$table_nameservers->info['PICKUP_VALUE'][$i] = $table_nameservers->data[$i]['id'];
-				$table_nameservers->info['PICKUP_OUTPUT'][$i] = $table_nameservers->data[$i]['name'];
-			}
-		}
-		$table_nameservers->info['PICKUP_COLUMN'] = 'name';
-		$table_nameservers->info['PICKUP_OBJECT'] = stripslashes(get('object'));
-		$table_nameservers->db_data_remove('id', 'nodes__id', 'nodes__name_ns');
-		return $table_nameservers;
-	}
-	
-	function output() {
-		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct, $main;
-		$main->header->hide = TRUE;
-		$main->menu->hide = TRUE;
-		$main->footer->hide = TRUE;
-		$this->tpl['form_search_nameservers'] = $construct->form($this->form_search_nameservers(), __FILE__);
-		$this->tpl['table_nameservers'] = $construct->table($this->table_nameservers(), __FILE__);
-		return template($this->tpl, __FILE__);
-	}
-
-}
-
-?>
Index: /unk/includes/pages/pickup/pickup_links_ap.php
===================================================================
--- /trunk/includes/pages/pickup/pickup_links_ap.php (revision 88)
+++  (revision )
@@ -1,84 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class pickup_links_ap {
-
-	var $tpl;
-	
-	function pickup_links_ap() {
-		
-	}
-	
-	function form_search_links_ap() {
-		global $db;
-		$form_search_links_ap = new form(array('FORM_NAME' => 'form_search_links_ap'));
-		$form_search_links_ap->db_data('links.ssid, nodes.id, nodes.name, areas.id, regions.id');
-		$form_search_links_ap->db_data_enum('areas.id', $db->get("id AS value, name AS output", "areas"));
-		$form_search_links_ap->db_data_enum('regions.id', $db->get("id AS value, name AS output", "regions"));
-		$form_search_links_ap->db_data_search();
-		return $form_search_links_ap;
-	}
-
-	function table_links_ap() {
-		global $construct, $db, $main, $lang;
-		$form_search_links_ap = $this->form_search_links_ap();
-		$where = $form_search_links_ap->db_data_where(array("links__ssid" => "starts_with", "nodes__name" => "starts_with"));
-		$table_links_ap = new table(array('TABLE_NAME' => 'table_links_ap'));
-		$table_links_ap->db_data(
-			'links.id AS links__id, links.ssid, nodes.id AS nodes__id, nodes.name AS nodes__name, areas.name AS areas__name',
-			'links ' .
-			'INNER JOIN nodes ON links.node_id = nodes.id ' .
-			'LEFT JOIN areas ON nodes.area_id = areas.id ' .
-			'LEFT JOIN regions ON areas.region_id = regions.id',
-			"links.type = 'ap'".($where!=''?' AND ('.$where.')':""),
-			"",
-			"nodes.id ASC");
-		$table_links_ap->db_data_search($form_search_links_ap);
-		for($i=1;$i<count($table_links_ap->data);$i++) {
-			if (isset($table_links_ap->data[$i])) {
-				if ($table_links_ap->data[$i]['ssid'] == '') {
-					$table_links_ap->data[$i]['ssid'] = $lang['null'];
-				}
-				$table_links_ap->data[$i]['nodes__name'] .= " (#".$table_links_ap->data[$i]['nodes__id'].")";
-				$table_links_ap->info['PICKUP_VALUE'][$i] = $table_links_ap->data[$i]['links__id'];
-				$table_links_ap->info['PICKUP_OUTPUT'][$i] = $table_links_ap->data[$i]['nodes__name']." [".$lang['db']['links__ssid'].": ".$table_links_ap->data[$i]['ssid']."]";
-			}
-		}
-		$table_links_ap->info['PICKUP_COLUMN'] = 'ssid';
-		$table_links_ap->info['PICKUP_OBJECT'] = stripslashes(get('object'));
-		$table_links_ap->db_data_remove('links__id', 'nodes__id');
-		return $table_links_ap;
-	}
-	
-	function output() {
-		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct, $main;
-		$main->header->hide = TRUE;
-		$main->menu->hide = TRUE;
-		$main->footer->hide = TRUE;
-		$this->tpl['form_search_links_ap'] = $construct->form($this->form_search_links_ap(), __FILE__);
-		$this->tpl['table_links_ap'] = $construct->table($this->table_links_ap(), __FILE__);
-		return template($this->tpl, __FILE__);
-	}
-
-}
-
-?>
Index: /unk/includes/pages/pickup/pickup_gmap.php
===================================================================
--- /trunk/includes/pages/pickup/pickup_gmap.php (revision 89)
+++  (revision )
@@ -1,42 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class pickup_gmap {
-
-	var $tpl;
-	
-	function pickup_gmap() {
-		
-	}
-	
-	function output() {
-		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct, $main, $vars;
-		$main->header->hide = TRUE;
-		$main->menu->hide = TRUE;
-		$main->footer->hide = TRUE;
-		$this->tpl['gmap_key_ok'] = include_gmap("?page=gmap&subpage=pickup_js&object_lat=".stripslashes(get('object_lat'))."&object_lon=".stripslashes(get('object_lon')));
-		return template($this->tpl, __FILE__);
-	}
-
-}
-
-?>
Index: /unk/includes/pages/pickup/pickup_nodes.php
===================================================================
--- /trunk/includes/pages/pickup/pickup_nodes.php (revision 85)
+++  (revision )
@@ -1,83 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class pickup_nodes {
-
-	var $tpl;
-	
-	function pickup_nodes() {
-		
-	}
-	
-	function form_search_nodes() {
-		global $db;
-		$form_search_nodes = new form(array('FORM_NAME' => 'form_search_nodes'));
-		$form_search_nodes->db_data('nodes.id, nodes.name, areas.id, regions.id');
-		$form_search_nodes->db_data_enum('areas.id', $db->get("id AS value, name AS output", "areas"));
-		$form_search_nodes->db_data_enum('regions.id', $db->get("id AS value, name AS output", "regions"));
-		$form_search_nodes->db_data_search();
-		return $form_search_nodes;
-	}
-
-	function table_nodes() {
-		global $construct, $db, $main;
-		$form_search_nodes = $this->form_search_nodes();
-		$where = $form_search_nodes->db_data_where(array("nodes__name" => "starts_with"));
-		if ($main->userdata->privileges['admin'] !== TRUE) $where = "users.status = 'activated'".($where!=''?' AND ('.$where.')':"");
-		$table_nodes = new table(array('TABLE_NAME' => 'table_nodes'));
-		$table_nodes->db_data(
-			'nodes.id, nodes.name AS nodes__name, areas.name AS areas__name',
-			'nodes
-			LEFT JOIN areas ON nodes.area_id = areas.id
-			LEFT JOIN regions ON areas.region_id = regions.id ' .
-			'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' .
-			'LEFT JOIN users ON users.id = users_nodes.user_id',
-			($where!=''?$where:""),
-			"nodes.id",
-			"nodes.id ASC");
-		$table_nodes->db_data_search($form_search_nodes);
-		for($i=1;$i<count($table_nodes->data);$i++) {
-			if (isset($table_nodes->data[$i])) {
-				$table_nodes->data[$i]['nodes__name'] .= " (#".$table_nodes->data[$i]['id'].")";
-				$table_nodes->info['PICKUP_VALUE'][$i] = $table_nodes->data[$i]['id'];
-				$table_nodes->info['PICKUP_OUTPUT'][$i] = $table_nodes->data[$i]['nodes__name'];
-			}
-		}
-		$table_nodes->info['PICKUP_COLUMN'] = 'nodes__name';
-		$table_nodes->info['PICKUP_OBJECT'] = stripslashes(get('object'));
-		$table_nodes->db_data_remove('id');
-		return $table_nodes;
-	}
-	
-	function output() {
-		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct, $main;
-		$main->header->hide = TRUE;
-		$main->menu->hide = TRUE;
-		$main->footer->hide = TRUE;
-		$this->tpl['form_search_nodes'] = $construct->form($this->form_search_nodes(), __FILE__);
-		$this->tpl['table_nodes'] = $construct->table($this->table_nodes(), __FILE__);
-		return template($this->tpl, __FILE__);
-	}
-
-}
-
-?>
Index: /trunk/includes/pages/mynodes/mynodes_dnsnameserver.php
===================================================================
--- /trunk/includes/pages/mynodes/mynodes_dnsnameserver.php (revision 137)
+++ /trunk/includes/pages/mynodes/mynodes_dnsnameserver.php (revision 1)
@@ -49,7 +49,8 @@
 		$nameserver = get('nameserver');
 		if (get('nameserver') == 'add') {
+			$f['date_in'] = date_now();
 			$_POST['dns_nameservers__ip'] = ip2long($_POST['dns_nameservers__ip']);
 		}
-		$f['node_id'] = intval(get('node'));
+		$f['node_id'] = get('node');
 		$ret = TRUE;
 		$ret = $form_nameserver->db_set($f,
@@ -57,5 +58,5 @@
 		
 		if ($ret) {
-			$main->message->set_fromlang('info', (get('zone') == 'add'?'request_dnsnameserver_success':'edit_success'), makelink(array("page" => "mynodes", "node" => intval(get('node')))));
+			$main->message->set_fromlang('info', 'request_dnsnameserver_success', makelink("", TRUE));
 		} else {
 			$main->message->set_fromlang('error', 'generic');		
Index: /trunk/includes/pages/mynodes/mynodes_range.php
===================================================================
--- /trunk/includes/pages/mynodes/mynodes_range.php (revision 137)
+++ /trunk/includes/pages/mynodes/mynodes_range.php (revision 1)
@@ -33,5 +33,5 @@
 		$data2 = $db->get("areas.id AS area_id, ip_start, ip_end",
 					"areas
-					INNER JOIN nodes ON nodes.area_id = areas.id AND nodes.id = ".intval(get('node')));
+					INNER JOIN nodes ON nodes.area_id = areas.id AND nodes.id = '".get('node')."'");
 		$area_id = $data2[0]['area_id'];
 		$area_ip_start = $data2[0]['ip_start'];
@@ -42,12 +42,14 @@
 					INNER JOIN nodes ON nodes.id = ip_ranges.node_id
 					INNER JOIN areas ON nodes.area_id = areas.id",
-					"areas.ip_start <= ip_ranges.ip_start AND areas.ip_end >= ip_ranges.ip_end AND areas.id = '".$area_id."'", "" , "ip_end ASC");
+					"areas.ip_start <= ip_ranges.ip_start AND areas.ip_end >= ip_ranges.ip_end AND areas.id = '".$area_id."'", "" , "ip_end DESC");
 		
 		if (count($data) == 0) {
 			$ret['ip_start'] = $area_ip_start;
 			$ret['ip_end'] = $area_ip_start+$range-1;
-		} elseif ($data[count($data)-1]['ip_end']+$range <= $area_ip_end) {
-			$ret['ip_start'] = $data[count($data)-1]['ip_end']+1;
-			$ret['ip_end'] = $data[count($data)-1]['ip_end']+$range;
+			$ret['subnetmask'] = 24;		
+		} elseif ($data[count($data)-1]['area_ip_end']+$range <= $area_ip_end) {
+			$ret['ip_start'] = $data[count($data)-1]['area_ip_end']+1;
+			$ret['ip_end'] = $data[count($data)-1]['area_ip_end']+$range;
+			$ret['subnetmask'] = 24;
 		} else {
 			for ($start = $area_ip_start; $start <= $area_ip_end; $start=$start+$range) {
@@ -64,4 +66,5 @@
 					$ret['ip_start'] = $start;
 					$ret['ip_end'] = $end;
+					$ret['subnetmask'] = 24;
 					break;
 				}
@@ -83,5 +86,5 @@
 		$this->tpl['form_getrange'] = $construct->form($this->form_getrange(), __FILE__);
 		$this->tpl['node_id'] = get('node');
-		$this->tpl['node_name'] = $db->get('name', 'nodes', "id = ".intval(get('node')));
+		$this->tpl['node_name'] = $db->get('name', 'nodes', "id = '".get('node')."'");
 		$this->tpl['node_name'] = $this->tpl['node_name'][0]['name'];
 		return template($this->tpl, __FILE__);
@@ -89,15 +92,10 @@
 
 	function output_onpost_form_getrange() {
-		global $main, $db;
-		$t = $db->get('area_id', 'nodes', "id = ".intval(get('node')));
-		if ($t[0]['area_id'] == '') {
-			$main->message->set_fromlang('error', 'nodes_no_area_id');
-			return;
-		}
+		global $main;
 		$form_getrange = $this->form_getrange();
 		$nextr = $this->calculate_next_range();
-		$status = "waiting";
+		$status = "pending";
 		$ret = TRUE;
-		$ret = $form_getrange->db_set(array("node_id" => intval(get('node')), "ip_start" => $nextr['ip_start'], "ip_end" => $nextr['ip_end'], "status" => $status));
+		$ret = $form_getrange->db_set(array('date_in' => date_now(), "node_id" => get('node'), "ip_start" => $nextr['ip_start'], "ip_end" => $nextr['ip_end'], "ip_subnetmask" => $nextr['subnetmask'], "status" => $status));
 		if ($ret) {
 			$main->message->set_fromlang('info', 'request_range_success', makelink(array("page" => "mynodes", "node" => get('node'))));
Index: /trunk/includes/pages/mynodes/mynodes_link.php
===================================================================
--- /trunk/includes/pages/mynodes/mynodes_link.php (revision 137)
+++ /trunk/includes/pages/mynodes/mynodes_link.php (revision 1)
@@ -33,9 +33,6 @@
 		$form_link->db_data('links.type, links.peer_node_id, links.peer_ap_id, links.protocol, links.ssid, links.channel, links.status, links.equipment, links.info');
 		$form_link->db_data_values("links", "id", get('link'));
-		
-		$form_link->db_data_pickup('links.peer_node_id', "nodes", $db->get("links.peer_node_id AS value, CONCAT(nodes.name, ' (#', nodes.id, ')') AS output", "links, nodes", "links.peer_node_id = nodes.id AND links.id = '".get("link")."'"));
-		$form_link->db_data_pickup('links.peer_ap_id', "links_ap", $db->get("l1.peer_ap_id AS value, l2.ssid AS output", "links AS l1, links AS l2", "l1.peer_ap_id = l2.id AND l1.id = '".get("link")."'"));
-		$form_link->data[1]['Null'] = '';
-		$form_link->data[2]['Null'] = '';
+		$form_link->db_data_enum('links.peer_node_id', $db->get("id AS value, name AS output", "nodes"));
+		$form_link->db_data_enum('links.peer_ap_id', $db->get("id AS value, ssid AS output", "links", "type = 'ap'"));
 		return $form_link;
 	}
@@ -54,19 +51,11 @@
 		$link = get('link');
 		$ret = TRUE;
-		$f = array("node_id" => intval(get('node')));
+		$f = array("date_in" => date_now(), "node_id" => get('node'));
 		switch ($_POST['links__type']) {
 			case 'p2p':
-				if ($_POST['links__peer_node_id'] == '') {
-					$db->output_error_fields_required(array('links__peer_node_id'));
-					return;
-				}
 				$f['peer_ap_id'] = '';
 				$f['peer_node_id'] = $_POST['links__peer_node_id'];
 				break;
 			case 'client':
-				if ($_POST['links__peer_ap_id'] == '') {
-					$db->output_error_fields_required(array('links__peer_ap_id'));
-					return;
-				}
 				$f['peer_ap_id'] = $_POST['links__peer_ap_id'];
 				$f['peer_node_id'] = '';
@@ -77,5 +66,5 @@
 		
 		if ($ret) {
-			$main->message->set_fromlang('info', 'insert_success', makelink(array("page" => "mynodes", "node" => get('node'))));
+			$main->message->set_fromlang('info', 'insert_success', makelink("", TRUE));
 		} else {
 			$main->message->set_fromlang('error', 'generic');		
Index: /trunk/includes/pages/mynodes/mynodes.php
===================================================================
--- /trunk/includes/pages/mynodes/mynodes.php (revision 191)
+++ /trunk/includes/pages/mynodes/mynodes.php (revision 1)
@@ -20,5 +20,5 @@
  */
 
-if (get('subpage') != '') include_once(ROOT_PATH."includes/pages/mynodes/mynodes_".get('subpage').".php");
+if (get('subpage') != '') include_once($root_path."includes/pages/mynodes/mynodes_".get('subpage').".php");
 
 class mynodes {
@@ -38,5 +38,5 @@
 		if ($main->userdata->privileges['admin']===TRUE) return TRUE;
 		
-		if ($db->cnt('', "users_nodes", "user_id = '".$main->userdata->user."' AND node_id = ".intval(get('node'))." AND owner = 'Y'") > 0) return TRUE;
+		if ($db->cnt("users_nodes", "user_id = '".$main->userdata->user."' AND node_id = '".get('node')."' AND owner = 'Y'") > 0) return TRUE;
 		
 		return FALSE;
@@ -50,17 +50,23 @@
 			$form_node->data[6]['Field'] = 'user_id_owner';
 			$form_node->data[6]['fullField'] = 'user_id_owner';
+			$form_node->data[6]['Type'] = 'pickup';
+			$form_node->data[6]['Pickup_url'] = makelink(array("page" => "pickup", "subpage" => "users", "object" => "form_node.user_id_owner"));
+			//$form_node->data[6]['Null'] = 'YES';
+			//$form_node->db_data_enum('user_id_owner', $db->get("id AS value, username AS output", "users"));
 			if (get('node') == 'add') {
-				$temp = $db->get("users.id AS value, users.username AS output", "users", "users.id = '".$main->userdata->user."'");
+				$form_node->data[6]['Type_Pickup'] = $db->get("users.id AS value, users.username AS output", "users", "users.id = '".$main->userdata->user."'");
 			} else {
-				$temp = $db->get("users.id AS value, users.username AS output", "users_nodes, users", "users.id = users_nodes.user_id AND users_nodes.node_id = ".intval(get('node'))." AND users_nodes.owner = 'Y'");			
-			}
-			$form_node->db_data_pickup("user_id_owner", "users", $temp);
-			$form_node->db_data_pickup("users_nodes.user_id", "users", $db->get("users.id AS value, users.username AS output", "users_nodes, users", "users.id = users_nodes.user_id AND users_nodes.node_id = ".intval(get('node'))." AND users_nodes.owner != 'Y'"), TRUE);
+				$form_node->data[6]['Type_Pickup'] = $db->get("users.id AS value, users.username AS output", "users_nodes, users", "users.id = users_nodes.user_id AND users_nodes.node_id = '".get('node')."' AND users_nodes.owner = 'Y'");			
+			}
+			$form_node->data[6]['Type_Pickup'] = $form_node->data[6]['Type_Pickup'][0];
+			$form_node->data[7]['Type'] = 'pickup_multi';
+			$form_node->data[7]['Pickup_url'] = makelink(array("page" => "pickup", "subpage" => "users", "object" => "form_node.elements['users_nodes__user_id[]']"));
 			$form_node->data[7]['Null'] = 'YES';
+			$form_node->data[7]['Type_Pickup'] = $db->get("users.id AS value, users.username AS output", "users_nodes, users", "users.id = users_nodes.user_id AND users_nodes.node_id = '".get('node')."' AND users_nodes.owner != 'Y'");			
 		}
 		
 		if ($main->userdata->privileges['admin'] === TRUE) $form_node->db_data('nodes.id, nodes.name_ns');
 		$form_node->db_data_enum('nodes.area_id', $db->get("id AS value, name AS output", "areas"));
-		$form_node->db_data_values("nodes", "id", intval(get('node')));
+		$form_node->db_data_values("nodes", "id", get('node'));
 		return $form_node;
 	}
@@ -72,7 +78,5 @@
 			'ip_ranges.id, "" AS ip_range, ip_ranges.ip_start, ip_ranges.ip_end, ip_ranges.date_in, ip_ranges.status, ip_ranges.delete_req',
 			'ip_ranges',
-			'ip_ranges.node_id = '.intval(get('node')),
-			"",
-			"ip_ranges.date_in ASC");
+			'ip_ranges.node_id = '.get('node'));
 		foreach( (array) $table_ip_ranges->data as $key => $value) {
 			if ($key != 0) {
@@ -96,7 +100,5 @@
 			'dns_zones.id, dns_zones.name, dns_zones.date_in, dns_zones.status, dns_zones.delete_req, dns_zones.type',
 			'dns_zones',
-			'dns_zones.node_id = '.intval(get('node')),
-			"",
-			"dns_zones.type ASC, dns_zones.date_in ASC");
+			'dns_zones.node_id = '.get('node'));
 		$table_dns->db_data_multichoice('dns_zones', 'id');
 		$table_dns->db_data_multichoice_checked('delete_req', 'Y');
@@ -104,5 +106,5 @@
 			if (isset($table_dns->data[$i])) {
 				if ($table_dns->data[$i]['type'] == 'forward') $table_dns->data[$i]['name'] .= ".".$vars['dns']['root_zone'];
-				$table_dns->info['EDIT'][$i] = makelink(array("page" => "mynodes", "subpage" => "dnszone", "zone" => $table_dns->data[$i]['id'], "node" => intval(get('node'))));
+				$table_dns->info['EDIT'][$i] = makelink(array("page" => "mynodes", "subpage" => "dnszone", "zone" => $table_dns->data[$i]['id']));
 			}
 		}
@@ -120,7 +122,5 @@
 			'dns_nameservers.id, dns_nameservers.name, dns_nameservers.ip, dns_nameservers.date_in, dns_nameservers.status, nodes.name_ns AS nodes_name_ns, dns_nameservers.delete_req',
 			'dns_nameservers, nodes',
-			"nodes.id = ".intval(get('node'))." AND dns_nameservers.node_id = nodes.id",
-			"",
-			"dns_nameservers.name ASC");
+			"nodes.id = '".get('node')."' AND dns_nameservers.node_id = nodes.id");
 		foreach( (array) $table_nameservers->data as $key => $value) {
 			if ($key != 0) {
@@ -133,5 +133,5 @@
 		for($i=1;$i<count($table_nameservers->data);$i++) {
 			if (isset($table_nameservers->data[$i])) {
-				$table_nameservers->info['EDIT'][$i] = makelink(array("page" => "mynodes", "subpage" => "dnsnameserver", "nameserver" => $table_nameservers->data[$i]['id'], "node" => intval(get('node'))));
+				$table_nameservers->info['EDIT'][$i] = makelink(array("page" => "mynodes", "subpage" => "dnsnameserver", "nameserver" => $table_nameservers->data[$i]['id']));
 			}
 		}
@@ -152,7 +152,5 @@
 			LEFT JOIN links AS l_c ON links.peer_ap_id = l_c.id
 			LEFT JOIN nodes AS n_c ON l_c.node_id = n_c.id',
-			"links.node_id = ".intval(get('node')),
-			"",
-			"links.type ASC, links.date_in ASC");
+			"links.node_id = '".get('node')."'");
 		$table_links->db_data_multichoice('links', 'id');
 		for($i=1;$i<count($table_links->data);$i++) {
@@ -165,8 +163,8 @@
 					$table_links->data[$i]['ssid'] = $table_links->data[$i]['peer_ap_ssid'];
 				}				
-				$table_links->info['EDIT'][$i] = makelink(array("page" => "mynodes", "subpage" => "link", 'node' => intval(get('node')), "link" => $table_links->data[$i]['id']));
-			}
-		}
-		$table_links->info['EDIT_COLUMN'] = 'type';
+				$table_links->info['EDIT'][$i] = makelink(array("page" => "mynodes", "subpage" => "link", 'node' => get('node'), "link" => $table_links->data[$i]['id']));
+			}
+		}
+		$table_links->info['EDIT_COLUMN'] = 'peer';
 		$table_links->info['MULTICHOICE_LABEL'] = 'delete';
 		$table_links->db_data_remove('id', 'peer_node_id', 'peer_node_name', 'peer_ap_nodename', 'peer_ap_nodeid', 'peer_ap_ssid');
@@ -179,16 +177,16 @@
 		$table_links = new table(array('TABLE_NAME' => 'table_links_ap_'.$id, 'FORM_NAME' => 'table_links_ap_'.$id));
 		$table_links->db_data(
-			'links.id, "" AS peer, links.type, links.node_id, nodes.name, links.status',
+			'links.id, links.type, "" AS peer, links.node_id, nodes.name, links.status',
 			'links
 			LEFT JOIN nodes ON links.node_id = nodes.id',
-			"links.type = 'client' AND links.peer_ap_id = '".$id."'",
-			"",
-			"links.date_in ASC");
+			"links.type = 'client' AND links.peer_ap_id = '".$id."'");
 		$table_links->db_data_multichoice('links', 'id');
 		for($i=1;$i<count($table_links->data);$i++) {
 			if (isset($table_links->data[$i])) {
 				$table_links->data[$i]['peer'] = $table_links->data[$i]['name']." (#".$table_links->data[$i]['node_id'].")";
-			}
-		}
+				$table_links->info['EDIT'][$i] = makelink(array("page" => "mynodes", "subpage" => "link", 'node' => $table_links->data[$i]['node_id'], "link" => $table_links->data[$i]['id']));
+			}
+		}
+		$table_links->info['EDIT_COLUMN'] = 'peer';
 		$table_links->info['MULTICHOICE_LABEL'] = 'delete';
 		$table_links->db_data_remove('id', 'node_id', 'name');
@@ -198,15 +196,13 @@
 
 	function table_subnets() {
-		global $construct, $db, $lang;
+		global $construct, $db;
 		$table_subnets = new table(array('TABLE_NAME' => 'table_subnets', 'FORM_NAME' => 'table_subnets'));
 		$table_subnets->db_data(
-			'subnets.id, "" AS subnet, subnets.ip_start, subnets.ip_end, subnets.type, "" AS peer, n_l.name AS link_node_name, n_l.id AS link_node_id, n_c.name AS client_node_name, n_c.id AS client_node_id, links.type AS links_type, links.ssid AS links_ssid',
+			'subnets.id, "" AS subnet, subnets.ip_start, subnets.ip_end, subnets.type, "" AS peer, n_l.name AS link_node_name, n_l.id AS link_node_id, n_c.name AS client_node_name, n_c.id AS client_node_id',
 			'subnets
 			LEFT JOIN links ON links.id = subnets.link_id
 			LEFT JOIN nodes AS n_l ON n_l.id = links.peer_node_id
 			LEFT JOIN nodes AS n_c ON n_c.id = client_node_id',
-			'subnets.node_id = '.intval(get('node')),
-			"",
-			"subnets.type ASC, subnets.ip_start ASC");
+			'subnets.node_id = '.get('node'));
 		foreach( (array) $table_subnets->data as $key => $value) {
 			if ($key != 0) {
@@ -215,8 +211,5 @@
 				$table_subnets->data[$key]['subnet'] = $table_subnets->data[$key]['ip_start']." - ".$table_subnets->data[$key]['ip_end'];
 				if ($table_subnets->data[$key]['type'] == 'link') {
-					if($table_subnets->data[$key]['links_type'] == 'p2p')
-						$table_subnets->data[$key]['peer'] = $table_subnets->data[$key]['link_node_name']." (#".$table_subnets->data[$key]['link_node_id'].")";
-					elseif ($table_subnets->data[$key]['links_type'] == 'ap')
-						$table_subnets->data[$key]['peer'] = $lang['ap']." - ".$table_subnets->data[$key]['links_ssid'];
+					$table_subnets->data[$key]['peer'] = $table_subnets->data[$key]['link_node_name']." (#".$table_subnets->data[$key]['link_node_id'].")";
 				}
 				if ($table_subnets->data[$key]['type'] == 'client') {
@@ -228,10 +221,10 @@
 		for($i=1;$i<count($table_subnets->data);$i++) {
 			if (isset($table_subnets->data[$i])) {
-				$table_subnets->info['EDIT'][$i] = makelink(array("page" => "mynodes", "subpage" => "subnet", 'node' => intval(get('node')), "subnet" => $table_subnets->data[$i]['id']));
+				$table_subnets->info['EDIT'][$i] = makelink(array("page" => "mynodes", "subpage" => "subnet", 'node' => get('node'), "subnet" => $table_subnets->data[$i]['id']));
 			}
 		}
 		$table_subnets->info['EDIT_COLUMN'] = 'subnet';
 		$table_subnets->info['MULTICHOICE_LABEL'] = 'delete';
-		$table_subnets->db_data_remove('id', 'ip_start', 'ip_end', 'link_node_name', 'link_node_id', 'client_node_name', 'client_node_id','links_type','links_ssid');
+		$table_subnets->db_data_remove('id', 'ip_start', 'ip_end', 'link_node_name', 'link_node_id', 'client_node_name', 'client_node_id');
 		$table_subnets->db_data_translate('subnets__type');
 		return $table_subnets;
@@ -244,7 +237,5 @@
 			'ip_addresses.id, ip_addresses.hostname, ip_addresses.ip, ip_addresses.mac, ip_addresses.type, ip_addresses.always_on',
 			'ip_addresses',
-			'ip_addresses.node_id = '.intval(get('node')),
-			"",
-			"ip_addresses.ip ASC");
+			'ip_addresses.node_id = '.get('node'));
 		foreach( (array) $table_ipaddr->data as $key => $value) {
 			if ($key != 0) {
@@ -255,5 +246,5 @@
 		for($i=1;$i<count($table_ipaddr->data);$i++) {
 			if (isset($table_ipaddr->data[$i])) {
-				$table_ipaddr->info['EDIT'][$i] = makelink(array("page" => "mynodes", "subpage" => "ipaddr", 'node' => intval(get('node')), "ipaddr" => $table_ipaddr->data[$i]['id']));
+				$table_ipaddr->info['EDIT'][$i] = makelink(array("page" => "mynodes", "subpage" => "ipaddr", 'node' => get('node'), "ipaddr" => $table_ipaddr->data[$i]['id']));
 			}
 		}
@@ -265,31 +256,4 @@
 	}
 
-	function table_services() {
-		global $construct, $db, $main;
-		$table_services = new table(array('TABLE_NAME' => 'table_services', 'FORM_NAME' => 'table_services'));
-		$table_services->db_data(
-			'services.title, nodes_services.id, nodes.id AS nodes__id, ip_addresses.ip, nodes_services.url, nodes_services.info, nodes_services.status, nodes_services.date_in',
-			'nodes_services
-			LEFT JOIN nodes on nodes_services.node_id = nodes.id
-			LEFT JOIN services on nodes_services.service_id = services.id
-			LEFT JOIN ip_addresses ON ip_addresses.id = nodes_services.ip_id',
-			"nodes_services.node_id = '".get('node')."'",
-			'',
-			"nodes_services.date_in ASC");
-		foreach( (array) $table_services->data as $key => $value) {
-			if ($key != 0) {
-				if ($table_services->data[$key]['ip']) 
-					$table_services->data[$key]['ip'] = long2ip($table_services->data[$key]['ip']);
-				$table_services->info['EDIT'][$key] = makelink(array("page" => "mynodes", "subpage" => "services", "node" => intval(get('node')), "service" => $table_services->data[$key]['id']));
-			}
-		}
-		$table_services->info['EDIT_COLUMN'] = 'title';
-		$table_services->db_data_translate('nodes_services__status');
-		$table_services->db_data_multichoice('nodes_services', 'id');
-		$table_services->info['MULTICHOICE_LABEL'] = 'delete';
-		$table_services->db_data_remove('id','nodes__id');
-		return $table_services;
-	}
-	
 	function table_photosview() {
 		global $db, $vars;
@@ -298,5 +262,5 @@
 			'photos.id, photos.date_in, photos.view_point, photos.info',
 			'photos',
-			'photos.node_id = '.intval(get('node')));
+			'photos.node_id = '.get('node'));
 		$i=1;
 		$t[0] = $table_photosview->data[0];
@@ -307,5 +271,5 @@
 				unset($p);
 			}
-			if (isset($p) && ($table_photosview->data[$p]['view_point'] == $value)) {
+			if ($table_photosview->data[$p]['view_point'] == $value) {
 				$table_photosview->data[$p]['photo'] = $vars['folders']['photos'].'photo-'.$table_photosview->data[$p]['id'].'-s.jpg';
 				$t[$i] = $table_photosview->data[$p];
@@ -324,5 +288,5 @@
 	function output() {
 		if (get('subpage') != '') return $this->page->output();
-		if (isset($_POST['form_name']) && (strstr($_POST['form_name'], 'table_links_ap') !== FALSE)) return $this->output_onpost_table_links_ap();
+		if (strstr($_POST['form_name'], 'table_links_ap') !== FALSE) return $this->output_onpost_table_links_ap();
 		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
 		global $construct, $main, $db;
@@ -330,5 +294,5 @@
 		$this->tpl['node'] = get('node');
 		if (get('action') == 'delete') {
-			if ($db->del('nodes', "id = ".intval(get('node')))) { 
+			if ($db->del('nodes', "id = '".get('node')."'")) { 
 				$main->message->set_fromlang('info', 'delete_success', makelink());
 			} else {
@@ -338,5 +302,5 @@
 			$this->tpl['node_method'] = (get('node') == 'add' ? 'add' : 'edit');
 			if (get('node') != 'add') {
-				$t = $db->get('id, name', 'nodes', "id = ".intval(get('node')));
+				$t = $db->get('id, name', 'nodes', "id = '".get('node')."'");
 				$this->tpl['node_name'] = $t[0]['name'];
 				$this->tpl['node_id'] = $t[0]['id'];
@@ -346,14 +310,12 @@
 				$this->tpl['table_nameservers'] = $construct->table($this->table_nameservers(), __FILE__);
 				$this->tpl['table_links'] = $construct->table($this->table_links(), __FILE__);
-				$t = $db->get('id, ssid', 'links', "node_id = ".intval(get('node'))." AND type = 'ap'");
+				$t = $db->get('id, type', 'links', "node_id = '".get('node')."'");
 				foreach( (array) $t as $key => $value) {
-					$this->tpl['table_links_ap'][$value['ssid']] = $construct->table($this->table_links_ap($value['id']), __FILE__);
+					if ($value['type'] == 'ap') $this->tpl['table_links_ap'][$value['id']] = $construct->table($this->table_links_ap($value['id']), __FILE__);
 				}
 				$this->tpl['table_subnets'] = $construct->table($this->table_subnets(), __FILE__);
 				$this->tpl['table_ipaddr'] = $construct->table($this->table_ipaddr(), __FILE__);
-				$this->tpl['table_services'] = $construct->table($this->table_services(), __FILE__);
 				$this->tpl['table_photosview'] = $construct->table($this->table_photosview(), __FILE__);
 				if ($this->has_owner_access()) $this->tpl['link_node_delete'] = makelink(array('action' => 'delete'), TRUE);
-				$this->tpl['link_node_view'] = makelink(array('page' => 'nodes', 'node' => get('node')));
 				$this->tpl['link_req_cclass'] = makelink(array('page' => 'mynodes', 'subpage' => 'range', 'node' => get('node')));
 				$this->tpl['link_req_dns_for'] = makelink(array('page' => 'mynodes', 'subpage' => 'dnszone', 'type' => 'forward', 'node' => get('node'), 'zone' => 'add'));
@@ -363,8 +325,5 @@
 				$this->tpl['link_subnet_add'] = makelink(array('page' => 'mynodes', 'subpage' => 'subnet', 'node' => get('node'), 'subnet' => 'add'));
 				$this->tpl['link_ipaddr_add'] = makelink(array('page' => 'mynodes', 'subpage' => 'ipaddr', 'node' => get('node'), 'ipaddr' => 'add'));
-				$this->tpl['link_services_add'] = makelink(array('page' => 'mynodes', 'subpage' => 'services', 'node' => get('node'), 'service' => 'add'));
-
-			}
-			$this->tpl['link_gmap_pickup'] = makelink(array('page' => 'pickup', 'subpage' => 'gmap', "object_lat" => "form_node.elements['nodes__latitude']", "object_lon" => "form_node.elements['nodes__longitude']"));
+			}
 			return template($this->tpl, __FILE__);
 		}
@@ -379,5 +338,5 @@
 		}
 		if ($main->userdata->privileges['admin'] === TRUE && $_POST['nodes__name_ns'] != '') {
-			$name_ns = validate_name_ns($_POST['nodes__name_ns'], get('node'));
+			$name_ns = $_POST['nodes__name_ns'];
 		} else {
 			$name_ns = validate_name_ns($_POST['nodes__name'], get('node'));
@@ -388,10 +347,12 @@
 		
 		if (get('node') != 'add') {
-			$old_v = $db->get('name, area_id', 'nodes', "id = ".intval(get('node')));
-			if ($old_v[0]['name'] != $_POST['nodes__name']) {
-				$name_ns = validate_name_ns($_POST['nodes__name'], get('node'));
+			$old_v = $db->get('name, area_id', 'nodes', "id = '".get('node')."'");
+			if ($old_v[0]['name'] != $_POST['nodes__name'] && 
+					$db->cnt('dns_nameservers', "node_id = '".get('node')."'") > 0) {
+				$main->message->set_fromlang('error', 'nodes_field_name', makelink("",TRUE));
+				return;
 			}
 			if ($old_v[0]['area_id'] != $_POST['nodes__area_id'] && 
-					$db->cnt('', 'ip_ranges', "node_id = ".intval(get('node'))) > 0) {
+					$db->cnt('ip_ranges', "node_id = '".get('node')."'") > 0) {
 				$main->message->set_fromlang('error', 'nodes_field_area_id', makelink("",TRUE));
 				return;
@@ -399,20 +360,19 @@
 		}
 		
-		$ret = $ret && $form_node->db_set(array('name_ns' => $name_ns), "nodes", "id", intval(get('node')));
+		$ret = $ret && $form_node->db_set(array('date_in' => date_now(), 'name_ns' => $name_ns), "nodes", "id", get('node'));
 		if ($ret && $main->userdata->privileges['admin'] === TRUE && get('node') != 'add' && get('node') != $_POST['nodes__id']) {
-			$db->set('dns_nameservers', array('node_id' => $_POST['nodes__id']), "node_id = ".intval(get('node')));
-			$db->set('dns_zones', array('node_id' => $_POST['nodes__id']), "node_id = ".intval(get('node')));
-			$db->set('ip_addresses', array('node_id' => $_POST['nodes__id']), "node_id = ".intval(get('node')));
-			$db->set('ip_ranges', array('node_id' => $_POST['nodes__id']), "node_id = ".intval(get('node')));
-			$db->set('nodes_services', array('node_id' => $_POST['nodes__id']), "node_id = '".get('node')."'");
-			$db->set('links', array('node_id' => $_POST['nodes__id']), "node_id = ".intval(get('node')));
-			$db->set('links', array('peer_node_id' => $_POST['nodes__id']), "peer_node_id = ".intval(get('node')));
-			$db->set('photos', array('node_id' => $_POST['nodes__id']), "node_id = ".intval(get('node')));
-			$db->set('subnets', array('node_id' => $_POST['nodes__id']), "node_id = ".intval(get('node')));
-			$db->set('subnets', array('client_node_id' => $_POST['nodes__id']), "client_node_id = ".intval(get('node')));
-			$db->set('users_nodes', array('node_id' => $_POST['nodes__id']), "node_id = ".intval(get('node')));
+			$db->set('dns_nameservers', array('node_id' => $_POST['nodes__id']), "node_id = '".get('node')."'");
+			$db->set('dns_zones', array('node_id' => $_POST['nodes__id']), "node_id = '".get('node')."'");
+			$db->set('ip_addresses', array('node_id' => $_POST['nodes__id']), "node_id = '".get('node')."'");
+			$db->set('ip_ranges', array('node_id' => $_POST['nodes__id']), "node_id = '".get('node')."'");
+			$db->set('links', array('node_id' => $_POST['nodes__id']), "node_id = '".get('node')."'");
+			$db->set('links', array('peer_node_id' => $_POST['nodes__id']), "peer_node_id = '".get('node')."'");
+			$db->set('photos', array('node_id' => $_POST['nodes__id']), "node_id = '".get('node')."'");
+			$db->set('subnets', array('node_id' => $_POST['nodes__id']), "node_id = '".get('node')."'");
+			$db->set('subnets', array('client_node_id' => $_POST['nodes__id']), "client_node_id = '".get('node')."'");
+			$db->set('users_nodes', array('node_id' => $_POST['nodes__id']), "node_id = '".get('node')."'");
 			$ins_id = $_POST['nodes__id'];
 		} else {
-			$ins_id = (get('node')=='add' ? $db->insert_id : intval(get('node')));
+			$ins_id = (get('node')=='add' ? $db->insert_id : get('node'));
 		}
 		if ($ret && ($this->has_owner_access() || get('node')=='add')) {
@@ -433,5 +393,5 @@
 		global $db, $main;
 		$ret = TRUE;
-		$ret = $ret && $db->set("ip_ranges", array('delete_req' => 'N'), "node_id = ".intval(get('node')));
+		$ret = $ret && $db->set("ip_ranges", array('delete_req' => 'N'), "node_id = '".get('node')."'");
 		foreach( (array) $_POST['id'] as $key => $value) {
 			$ret = $ret && $db->set("ip_ranges", array('delete_req' => 'Y'), "id = '".$value."'");
@@ -447,5 +407,5 @@
 		global $db, $main;
 		$ret = TRUE;
-		$ret = $ret && $db->set("dns_zones", array('delete_req' => 'N'), "node_id = ".intval(get('node')));
+		$ret = $ret && $db->set("dns_zones", array('delete_req' => 'N'), "node_id = '".get('node')."'");
 		foreach( (array) $_POST['id'] as $key => $value) {
 			$ret = $ret && $db->set("dns_zones", array('delete_req' => 'Y'), "id = '".$value."'");
@@ -461,5 +421,5 @@
 		global $db, $main;
 		$ret = TRUE;
-		$ret = $ret && $db->set("dns_nameservers, ip_ranges, nodes", array('dns_nameservers.delete_req' => 'N'), "dns_nameservers.ip >= ip_ranges.ip_start AND dns_nameservers.ip <= ip_ranges.ip_end AND ip_ranges.node_id = ".intval(get('node'))." AND ip_ranges.node_id = nodes.id");
+		$ret = $ret && $db->set("dns_nameservers, ip_ranges, nodes", array('dns_nameservers.delete_req' => 'N'), "dns_nameservers.ip >= ip_ranges.ip_start AND dns_nameservers.ip <= ip_ranges.ip_end AND ip_ranges.node_id = '".get('node')."' AND ip_ranges.node_id = nodes.id");
 		foreach( (array) $_POST['id'] as $key => $value) {
 			$ret = $ret && $db->set("dns_nameservers", array('delete_req' => 'Y'), "id = '".$value."'");
@@ -524,38 +484,23 @@
 	}
 	
-	function output_onpost_table_services() {
-		global $db, $main;
-		$ret = TRUE;
-		foreach( (array) $_POST['id'] as $key => $value) {
-			$ret = $ret && $db->del("nodes_services", "id = '".$value."'");
-		}
-		if ($ret) {
-			$main->message->set_fromlang('info', 'delete_success', makelink("",TRUE));
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-	
 	function output_onpost_table_photosview() {
-		global $vars, $db, $main;
-		if (isset($_POST['id'])) {
-			foreach( (array) $_POST['id'] as $key => $value) {
-				$db->del("photos", "id = '".$value."'");
-				$uploaddir = $vars['folders']['photos'];
-				$filename = 'photo-'.$value.".*";
-				delfile(ROOT_PATH.$uploaddir.$filename);
-				$filename = 'photo-'.$value."-*.*";
-				delfile(ROOT_PATH.$uploaddir.$filename);
-			}
+		global $root_path, $vars, $db, $main;
+		foreach( (array) $_POST['id'] as $key => $value) {
+			$db->del("photos", "id = '".$value."'");
+			$uploaddir = $vars['folders']['photos'];
+			$filename = 'photo-'.$value.".*";
+			delfile($root_path.$uploaddir.$filename);
+			$filename = 'photo-'.$value."-*.*";
+			delfile($root_path.$uploaddir.$filename);
 		}
 		foreach( (array) array('N','NE','E','SE','S','SW','W','NW', 'PANORAMIC') as $value) {
-			if (isset($_FILES[$value]['tmp_name'])) {
-				if (!imagecreatefromjpeg($_FILES[$value]['tmp_name'])) continue;
-				$db->add("photos", array('node_id' => intval(get('node')), 'type' => 'view', 'view_point' => $value, 'info' => $_POST['info-'.$value]));
+			if ($_FILES[$value]['tmp_name'] != '') {
+				if (@!imagecreatefromjpeg($_FILES[$value]['tmp_name'])) continue;
+				$db->add("photos", array('date_in' => date_now(), 'node_id' => get('node'), 'type' => 'view', 'view_point' => $value, 'info' => $_POST['info-'.$value]));
 				$ins_id = $db->insert_id;
 				$uploaddir = $vars['folders']['photos'];
 				$filename = 'photo-'.$ins_id.'.jpg';
 				$filename_s = 'photo-'.$ins_id.'-s.jpg';
-				if (@move_uploaded_file($_FILES[$value]['tmp_name'], ROOT_PATH.$uploaddir.$filename) === FALSE) {
+				if (@move_uploaded_file($_FILES[$value]['tmp_name'], $root_path.$uploaddir.$filename) === FALSE) {
 					$db->del("photos", "id = '".$ins_id."'");
 					$main->message->set_fromlang("error", "upload_file_failed");
@@ -563,11 +508,11 @@
 				}
 				if ($value == 'PANORAMIC') {
-					$image_s = resizeJPG(ROOT_PATH.$uploaddir.$filename, 600, 200);
+					$image_s = resizeJPG($root_path.$uploaddir.$filename, 600, 200);
 				} else {
-					$image_s = resizeJPG(ROOT_PATH.$uploaddir.$filename, 200, 200);
+					$image_s = resizeJPG($root_path.$uploaddir.$filename, 200, 200);
 				}
-				imagejpeg($image_s, ROOT_PATH.$uploaddir.$filename_s);
+				imagejpeg($image_s, $root_path.$uploaddir.$filename_s);
 			} elseif ($_POST['info-'.$value] != '') {
-				$db->set("photos", array('info' => $_POST['info-'.$value]), "node_id = ".intval(get('node'))." AND view_point = '".$value."'");
+				$db->set("photos", array('info' => $_POST['info-'.$value]), "node_id = '".get('node')."' AND view_point = '".$value."'");
 			}
 		}
Index: /trunk/includes/pages/mynodes/mynodes_dnszone.php
===================================================================
--- /trunk/includes/pages/mynodes/mynodes_dnszone.php (revision 149)
+++ /trunk/includes/pages/mynodes/mynodes_dnszone.php (revision 1)
@@ -36,5 +36,5 @@
 				$ipr = $db->get("ip_start, ip_end",
 						"ip_ranges",
-						"node_id = ".intval(get('node')));
+						"node_id = '".get('node')."'");
 				foreach( (array) $ipr as $key => $value) {
 					$ipr[$key]['ip_start'] = long2ip($value['ip_start']);
@@ -45,20 +45,19 @@
 				$form_zone->db_data_enum('dns_zones.name', $ipr);
 			} else {
-				$form_zone->data[0]['value'] = $db->get('name_ns', 'nodes', "id = ".intval(get('node')));
+				$form_zone->data[0]['value'] = $db->get('name_ns', 'nodes', "id = '".get('node')."'");
 				$form_zone->data[0]['value'] = $form_zone->data[0]['value'][0]['name_ns'];
-				$form_zone->data[0]['value'] .= ".".$vars['dns']['root_zone'];
 			}
 		}
 
-		$form_zone->db_data_pickup(
-					"dns_zones_nameservers.nameserver_id",
-					"dns_nameservers",
-					$db->get('dns_nameservers.id AS value, ' .
-							'CONCAT(dns_nameservers.name, ".", nodes.name_ns, ".", "'.$vars['dns']['ns_zone'].'") AS output', 
-							"dns_zones_nameservers, dns_nameservers, nodes", 
-							"dns_nameservers.node_id = nodes.id AND dns_nameservers.id = dns_zones_nameservers.nameserver_id AND dns_zones_nameservers.zone_id = '".get('zone')."'",
-							"",
-							"dns_zones_nameservers.id ASC")
-					, TRUE);
+		$ns = $db->get("ns.id AS value, ns.ip AS ip, IF(ns.name IS NOT NULL, CONCAT(ns.name, '.', n.name_ns), n.name_ns) AS name",
+				"dns_nameservers AS ns, nodes AS n",
+				"ns.node_id = n.id");
+		foreach( (array) $ns as $key => $value) {
+			$ns[$key]['name'] = strtolower($value['name'].".".$vars['dns']['ns_zone']);
+			$ns[$key]['ip'] = long2ip($value['ip']);
+			$ns[$key]['output'] = $ns[$key]['name'].' ['.$ns[$key]['ip'].']';
+		}
+		$form_zone->db_data_enum('dns_zones_nameservers.nameserver_id', $ns, TRUE);
+		$form_zone->db_data_values_multi("dns_zones_nameservers", "zone_id", get('zone'), 'nameserver_id');
 		return $form_zone;
 	}
@@ -73,13 +72,10 @@
 
 	function output_onpost_form_zone() {
-		global $construct, $main, $db, $vars;
-		if (substr($_POST['dns_zones__name'], -strlen($vars['dns']['root_zone'])-1) == ".".$vars['dns']['root_zone']) {
-			$_POST['dns_zones__name'] = substr($_POST['dns_zones__name'], 0, -strlen($vars['dns']['root_zone'])-1);
-		}
+		global $construct, $main, $db;
 		$form_zone = $this->form_zone();
 		$ret = TRUE;
 		$f = array();
 		if (get('zone') == 'add') {
-			$f = array('dns_zones.status' => 'waiting', 'dns_zones.type' => get('type'), "dns_zones.node_id" => intval(get('node')));
+			$f = array('dns_zones.status' => 'pending', 'dns_zones.type' => get('type'), 'dns_zones.date_in' => date_now(), "dns_zones.node_id" => get('node'));
 			$ret = $form_zone->db_set($f,
 									"dns_zones", "id", get('zone'));
@@ -89,5 +85,5 @@
 
 		if ($ret) {
-			$main->message->set_fromlang('info', (get('zone') == 'add'?'request_dnszone_success':'edit_success'), makelink(array("page" => "mynodes", "node" => intval(get('node')))));
+			$main->message->set_fromlang('info', 'request_dnszone_success', makelink("", TRUE));
 		} else {
 			$main->message->set_fromlang('error', 'generic');		
Index: /trunk/includes/pages/mynodes/mynodes_subnet.php
===================================================================
--- /trunk/includes/pages/mynodes/mynodes_subnet.php (revision 137)
+++ /trunk/includes/pages/mynodes/mynodes_subnet.php (revision 1)
@@ -29,37 +29,13 @@
 	
 	function form_subnet() {
-		global $db, $vars, $lang;
+		global $db, $vars;
 		$form_subnet = new form(array('FORM_NAME' => 'form_subnet'));
 		$form_subnet->db_data('subnets.ip_start, subnets.ip_end, subnets.type, subnets.link_id, subnets.client_node_id');
-		$links = $db->get('links.id AS value, links.type, links.ssid, nodes.name, links.peer_node_id, "" AS output',
+		$links = $db->get("links.id AS value, IF(links.type = 'ap', CONCAT(links.type, ' - ', links.ssid), CONCAT(links.type, ' - ', nodes.name, ' (#',links.peer_node_id, ')')) AS output",
 							"links
 							LEFT JOIN nodes ON links.peer_node_id = nodes.id",
-							"(links.type = 'ap' OR links.type = 'p2p') AND node_id = ".intval(get('node')),
-							"",
-							"links.type ASC, links.date_in ASC");
-		foreach ( (array) $links as $key => $value) {
-			$links[$key]['output'] .= $lang['db']['links__type-'.$value['type']].' - ';
-			if ($value['type'] == 'ap') {
-				$links[$key]['output'] .= $links[$key]['ssid'];
-			}
-			if ($value['type'] == 'p2p') {
-				$links[$key]['output'] .= $links[$key]['name'].' (#'.$links[$key]['peer_node_id'].')';
-			}
-		}
+							"(links.type = 'ap' OR links.type = 'p2p') AND node_id = '".get('node')."'");
 		$form_subnet->db_data_enum('subnets.link_id', $links);
-
-		$clients = $db->get('cl_n.id AS value, ap_l.ssid, cl_n.name, cl_n.id, "" AS output',
-							"links AS cl_l " .
-							"LEFT JOIN links AS ap_l ON cl_l.peer_ap_id = ap_l.id
-							LEFT JOIN nodes AS ap_n ON ap_l.node_id = ap_n.id " .
-							"LEFT JOIN nodes AS cl_n ON cl_l.node_id = cl_n.id",
-							"cl_l.type = 'client' AND ap_l.type = 'ap' AND ap_l.node_id = ".intval(get('node')),
-							"",
-							"ap_l.date_in ASC, cl_l.date_in ASC");
-		foreach ( (array) $clients as $key => $value) {
-			$clients[$key]['output'] = '['.$lang['db']['links__type-ap'].' '.$clients[$key]['ssid'].'] - '.$clients[$key]['name'].' (#'.$clients[$key]['id'].')';
-		}
-		$form_subnet->db_data_enum('subnets.client_node_id', $clients);
-
+		$form_subnet->db_data_enum('subnets.client_node_id', $db->get("id AS value, name AS output", "nodes"));
 		$form_subnet->db_data_values("subnets", "id", get('subnet'));
 		if (get('subnet') != 'add') {
@@ -85,19 +61,9 @@
 		$_POST['subnets__ip_start'] = ip2long($_POST['subnets__ip_start']);
 		$_POST['subnets__ip_end'] = ip2long($_POST['subnets__ip_end']);
-		if ($_POST['subnets__type'] == 'link') {
-			if ($db->cnt(
-				'',
-				'ip_ranges',
-				"node_id = ".intval(get('node'))." AND ip_ranges.ip_start <= '".$_POST['subnets__ip_start']."' AND ip_ranges.ip_end >= '".$_POST['subnets__ip_start']."' " .
-						"AND ip_ranges.ip_start <= '".$_POST['subnets__ip_end']."' AND ip_ranges.ip_end >= '".$_POST['subnets__ip_end']."'") == 0) {
-					$main->message->set_fromlang('error', 'subnet_backbone_no_ip_range');
-					return;
-				}
-		}
-		$ret = $form_subnet->db_set(array('node_id' => intval(get('node'))),
+		$ret = $form_subnet->db_set(array('date_in' => date_now(), 'node_id' => get('node')),
 								"subnets", "id", $subnet);
 		
 		if ($ret) {
-			$main->message->set_fromlang('info', 'insert_success', makelink(array("page" => "mynodes", "node" => get('node'))));
+			$main->message->set_fromlang('info', 'insert_success', makelink("", TRUE));
 		} else {
 			$main->message->set_fromlang('error', 'generic');		
Index: /trunk/includes/pages/mynodes/mynodes_ipaddr.php
===================================================================
--- /trunk/includes/pages/mynodes/mynodes_ipaddr.php (revision 137)
+++ /trunk/includes/pages/mynodes/mynodes_ipaddr.php (revision 1)
@@ -53,9 +53,9 @@
 		$ret = TRUE;
 		$_POST['ip_addresses__ip'] = ip2long($_POST['ip_addresses__ip']);
-		$ret = $form_ipaddr->db_set(array('node_id' => intval(get('node'))),
+		$ret = $form_ipaddr->db_set(array('date_in' => date_now(), 'node_id' => get('node')),
 								"ip_addresses", "id", $ipaddr);
 		
 		if ($ret) {
-			$main->message->set_fromlang('info', 'insert_success', makelink(array("page" => "mynodes", "node" => get('node'))));
+			$main->message->set_fromlang('info', 'insert_success', makelink("", TRUE));
 		} else {
 			$main->message->set_fromlang('error', 'generic');		
Index: /unk/includes/pages/mynodes/mynodes_services.php
===================================================================
--- /trunk/includes/pages/mynodes/mynodes_services.php (revision 152)
+++  (revision )
@@ -1,88 +1,0 @@
-<?php
-/*
- * WiND - Wireless Nodes Database
- *
- * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- */
-
-class mynodes_services {
-
-	var $tpl;
-	
-	function mynodes_services() {
-		
-	}
-	
-	function form_services() {
-		global $db, $vars;
-		$form_services = new form(array('FORM_NAME' => 'form_services'));
-		$form_services->db_data(
-			'nodes_services.service_id, nodes_services.id, nodes_services.node_id, nodes.id AS nodes__id, nodes_services.ip_id, nodes_services.url, nodes_services.info, nodes_services.status, nodes_services.protocol, nodes_services.port',
-			'nodes_services',
-			'',
-			'',
-			"");
-
-		$form_services->db_data_enum('nodes_services.service_id', $db->get("id AS value, title AS output", "services", "", "", "title ASC"));
-
-		$ips = $db->get("ip_addresses.id AS value, ip_addresses.hostname AS hostname, ip_addresses.ip AS ip",
-						"ip_addresses " .
-						"INNER JOIN subnets ON subnets.node_id = ip_addresses.node_id AND ip_addresses.ip <= subnets.ip_end AND ip_addresses.ip >= subnets.ip_start", 
-						"ip_addresses.node_id = ".intval(get('node'))." AND subnets.type = 'local'",
-						"subnets.ip_start ASC, ip_addresses.ip ASC");
-		foreach ((array) $ips as $key => $value) {
-			$ips[$key]['output'] = $ips[$key]['hostname']." [".long2ip($ips[$key]['ip'])."]";
-		}
-		$form_services->db_data_enum('nodes_services.ip_id', $ips);
-
-		$form_services->db_data_values("nodes_services", "id", get('service'));
-		if (get('service') != 'add') {
-			$form_services->db_data_pickup('nodes_services.node_id', "nodes", $db->get("nodes_services.node_id AS value, CONCAT(nodes.name, ' (#', nodes.id, ')') AS output", "nodes_services, nodes", "nodes_services.node_id = nodes.id AND nodes_services.id = ".get("service")));
-		} else {
-			$form_services->db_data_pickup('nodes_services.node_id', "nodes", $db->get("nodes.id AS value, CONCAT(nodes.name, ' (#', nodes.id, ')') AS output", "nodes", "nodes.id = ".get("node")));
-		}
-		$form_services->db_data_remove('nodes_services__id');
-		return $form_services;
-	}
-	
-	function output() {
-		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) return call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct;
-		$this->tpl['services_method'] = (get('service') == 'add' ? 'add' : 'edit' );
-		$this->tpl['form_services'] = $construct->form($this->form_services(), __FILE__);
-		return template($this->tpl, __FILE__);
-	}
-
-	function output_onpost_form_services() {
-		global $construct, $main, $db;
-		$form_services = $this->form_services();
-		$service = get('service');
-		$ret = TRUE;
-		$_POST['nodes_services__url'] = url_fix($_POST['nodes_services__url']);
-		$ret = $form_services->db_set(array(),
-								"nodes_services", "id", $service);
-		
-		if ($ret) {
-			$main->message->set_fromlang('info', 'insert_success', makelink(array("page" => "mynodes", "node" => $_POST['nodes_services__node_id'])));
-		} else {
-			$main->message->set_fromlang('error', 'generic');		
-		}
-	}
-
-}
-
-?>
Index: /trunk/includes/main_header.php
===================================================================
--- /trunk/includes/main_header.php (revision 187)
+++ /trunk/includes/main_header.php (revision 1)
@@ -23,6 +23,5 @@
 	
 	var $hide=FALSE;
-	var $tpl;
-		
+	
 	function header() {
 	}
@@ -31,8 +30,4 @@
 	function output() {
 		if ($this->hide) return;
-		if (file_exists(ROOT_PATH.'config/mylogo.png')) {
-			$this->tpl['mylogo'] = TRUE;
-			$this->tpl['mylogo_dir'] = ROOT_PATH.'config/';
-		}
 		return template($this->tpl, __FILE__);
 	}
Index: /trunk/includes/body.php
===================================================================
--- /trunk/includes/body.php (revision 41)
+++ /trunk/includes/body.php (revision 1)
@@ -22,5 +22,4 @@
 class body {
 	
-	var $tags;
 	var $tpl;
 	
Index: /trunk/includes/head.php
===================================================================
--- /trunk/includes/head.php (revision 187)
+++ /trunk/includes/head.php (revision 1)
@@ -25,6 +25,5 @@
 	
 	function add_extra($extra) {
-		if (!isset($this->tpl['extra'])) $this->tpl['extra'] = "";
-		$this->tpl['extra'] .= $extra;
+		$this->tpl['extra'] = $extra;
 	}
 	
@@ -48,7 +47,7 @@
 	}
 	
-	function add_script($type,$src) {
+	function add_script($type,$scr) {
 		if (!isset($this->tpl['script'])) $this->tpl['script'] = array();
-		array_push($this->tpl['script'], array('type' => $type, 'src' => $src));
+		array_push($this->tpl['script'], array('type' => $type, 'scr' => $scr));
 	}
 	
Index: /trunk/includes/main_footer.php
===================================================================
--- /trunk/includes/main_footer.php (revision 187)
+++ /trunk/includes/main_footer.php (revision 1)
@@ -29,11 +29,5 @@
 	
 	function output() {
-		global $db, $php_start, $main, $vars;
 		if ($this->hide) return;
-		$this->tpl['php_time'] = getmicrotime() - $php_start;
-		$this->tpl['mysql_time'] = $db->total_time;
-		if (isset($main->userdata->privileges['admin']) && $main->userdata->privileges['admin'] === TRUE && $vars['debug']['enabled'] == TRUE) {
-			$this->tpl['debug_mysql'] = ROOT_PATH."debug/mysql.php?".get_qs();
-		}
 		return template($this->tpl, __FILE__);
 	}
Index: /trunk/includes/html.php
===================================================================
--- /trunk/includes/html.php (revision 143)
+++ /trunk/includes/html.php (revision 1)
@@ -20,6 +20,6 @@
  */
 
-include_once(ROOT_PATH."includes/head.php");
-include_once(ROOT_PATH."includes/body.php");
+include_once($root_path."includes/head.php");
+include_once($root_path."includes/body.php");
 
 class html {
@@ -28,4 +28,5 @@
 	var $head;
 	var $body;
+	var $do_format = FALSE;
 	
 	function html() {
@@ -34,10 +35,37 @@
 	}
 	
+	function format_html($html) {
+		$spliter = "  ";
+		$offset = 0;
+		$tabs = 0;
+		while (($pos = strpos($html, "<", $offset)) !== false) {
+			if ($pos-$offset > 0) $ret .= substr($html, $offset, $pos-$offset)."\n".str_repeat($spliter, $tabs);
+			$offset = strpos($html, ">", $pos);
+			if (substr($html, $pos+1, 1) == "/") {
+				$offset++;
+				$tabs--;
+				$ret = substr($ret, 0, -strlen($spliter));
+				$ret .= substr($html, $pos, $offset-$pos)."\n".str_repeat($spliter, $tabs);				
+			} else {
+				if (substr($html, $pos+1, 1) == "!" || substr($html, $pos+1, 1) == "?" || substr($html, $offset-1, 1) == "/") {
+					$offset++;
+					$ret .= substr($html, $pos, $offset-$pos)."\n".str_repeat($spliter, $tabs);
+				} else {
+					$offset++;
+					$tabs++;
+					$ret .= substr($html, $pos, $offset-$pos)."\n".str_repeat($spliter, $tabs);				
+				}
+			}
+		}
+		if ($pos-$offset > 0) $ret .= substr($html, $offset, $pos-$offset)."\n".str_repeat($spliter, $tabs);
+		if ($ret == "") $ret = $html;
+		return $ret;
+	}
+	
 	function output() {
 		$this->tpl['head'] = $this->head->output();
 		$this->tpl['body'] = $this->body->output();
-		$this->tpl['body_tags'] = $this->body->tags;
 		$ret = template($this->tpl, __FILE__);
-		return $ret;
+		return ($this->do_format?$this->format_html($ret):$ret);
 	}
 	
Index: /trunk/includes/main.php
===================================================================
--- /trunk/includes/main.php (revision 187)
+++ /trunk/includes/main.php (revision 1)
@@ -20,11 +20,11 @@
  */
 
-include_once(ROOT_PATH."includes/html.php");
-include_once(ROOT_PATH."globals/classes/userdata.php");
-include_once(ROOT_PATH."globals/classes/message.php");
-include_once(ROOT_PATH."includes/main_header.php");
-include_once(ROOT_PATH."includes/main_center.php");
-include_once(ROOT_PATH."includes/main_footer.php");
-include_once(ROOT_PATH."includes/main_menu.php");
+include_once($root_path."includes/html.php");
+include_once($root_path."globals/classes/userdata.php");
+include_once($root_path."globals/classes/message.php");
+include_once($root_path."includes/main_header.php");
+include_once($root_path."includes/main_center.php");
+include_once($root_path."includes/main_footer.php");
+include_once($root_path."includes/main_menu.php");
 
 class main {
@@ -49,27 +49,15 @@
 	
 	function output() {
-		global $lang;
-		
-		if (get('session_lang') != '') $_SESSION['lang'] = get('session_lang');
-		if (isset($this->userdata->info)) {
-		    language_set($this->userdata->info['language']);
-		}
-		else {
-		    language_set();
-		}
-		
-		// Reload user info from database using SET NAMES (workaround)
-		$this->userdata->load_info();
+		global $root_path, $lang;
 		
 		$this->html->head->add_title($lang['site_title']);
 		$this->html->head->add_meta("text/html; charset=".$lang['charset'], "", "Content-Type");
-		header("Content-Type: text/html; charset=".$lang['charset']);
 		
 		$this->html->body->tpl['center'] = $this->center->output();
-		$this->html->body->tpl['menu'] = $this->menu->output();
 		$this->html->body->tpl['header'] = $this->header->output();
 		$this->html->body->tpl['footer'] = $this->footer->output();
+		$this->html->body->tpl['menu'] = $this->menu->output();
 		if ($this->message->show) $this->html->body->tpl['message'] = $this->message->output();
-		
+
 		return $this->html->output();
 	}
Index: /trunk/includes/main_center.php
===================================================================
--- /trunk/includes/main_center.php (revision 187)
+++ /trunk/includes/main_center.php (revision 1)
@@ -20,5 +20,5 @@
  */
 
-include_once(ROOT_PATH."includes/pages/".get('page')."/".get('page').".php");
+include_once($root_path."includes/pages/".get('page')."/".get('page').".php");
 
 class center {
@@ -33,5 +33,5 @@
 	function security_check() {
 		global $main, $db;
-		if (isset($main->userdata->privileges['admin']) && $main->userdata->privileges['admin'] === TRUE) return TRUE;
+		if ($main->userdata->privileges['admin'] === TRUE) return TRUE;
 		switch (get('page')) {
 			case 'admin':
@@ -45,5 +45,5 @@
 					if (get('node') == 'add') return TRUE;
 					if (get('node') != 'add' && get('action') == 'delete') {
-						if ($db->cnt('', "users_nodes", "node_id = ".intval(get('node'))." AND user_id = '".$main->userdata->user."' AND owner = 'Y'") > 0) {
+						if ($db->cnt("users_nodes", "node_id = '".get('node')."' AND user_id = '".$main->userdata->user."' AND owner = 'Y'") > 0) {
 							return TRUE;
 						} else {
@@ -51,9 +51,5 @@
 						}
 					}
-					if ($db->cnt('', "users_nodes", "node_id = ".get('node')." AND user_id = '".$main->userdata->user."'") > 0) return TRUE;
-					if (get('subpage') == 'dnszone' && 
-						$db->cnt('', "users_nodes, dns_zones", "dns_zones.node_id = users_nodes.node_id AND dns_zones.id = '".get('zone')."' AND users_nodes.user_id = '".$main->userdata->user."'") > 0) return TRUE;
-					if (get('subpage') == 'dnsnameserver' && 
-						$db->cnt('', "users_nodes, dns_nameservers", "dns_nameservers.node_id = users_nodes.node_id AND dns_nameservers.id = '".get('nameserver')."' AND users_nodes.user_id = '".$main->userdata->user."'") > 0) return TRUE;
+					if ($db->cnt("users_nodes", "node_id = '".get('node')."' AND user_id = '".$main->userdata->user."'") > 0) return TRUE;
 				}
 				break;
@@ -63,8 +59,4 @@
 			case 'dnszones':
 			case 'pickup':
-			case 'gmap':
-			case 'gearth':
-			case 'services':
-			case 'search':
 				return TRUE;
 				break;
Index: /trunk/includes/main_menu.php
===================================================================
--- /trunk/includes/main_menu.php (revision 192)
+++ /trunk/includes/main_menu.php (revision 1)
@@ -30,103 +30,12 @@
 		return $form_login;
 	}
-	
-	function calculate_menu_stats() {
-		global $db, $config;
-		$stats_tmp = "/tmp/wind-stats-".md5(__FILE__).".tmp";
-		if (file_exists($stats_tmp)) {
-			$stats = unserialize(file_get_contents($stats_tmp));
-			if ($stats['last_calc'] + 3600 > time()) {
-				unset($stats['last_calc']);
-				$this->tpl = array_merge($this->tpl, $stats);
-				return;
-			}
-		}
-		$stats['stats_nodes_active'] =
-				$db->cnt('',
-						'nodes ' .
-						'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' .
-						'LEFT JOIN links AS p2p ON (l1.type = "p2p" AND p2p.type = "p2p" AND l1.node_id = p2p.peer_node_id AND p2p.node_id = l1.peer_node_id) ' .
-						'LEFT JOIN links AS clients ON (l1.type = "client" AND l1.peer_ap_id = clients.id) ' .
-						'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' .
-						'LEFT JOIN users ON users.id = users_nodes.user_id',
-						'users.status = "activated" AND l1.status = "active" AND (p2p.status = "active" OR clients.status = "active")',
-						'nodes.id'
-						);
-		$stats['stats_nodes_total'] =
-				$db->cnt('',
-						'nodes ' .
-						'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' .
-						'LEFT JOIN users ON users.id = users_nodes.user_id',
-						'users.status = "activated"',
-						'nodes.id'
-						);
-		$stats['stats_backbone'] =
-				$db->cnt('',
-						'nodes ' .
-						'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' .
-						'INNER JOIN links AS l2 ON (l1.type = "p2p" AND l2.type = "p2p" AND l1.node_id = l2.peer_node_id AND l2.node_id = l1.peer_node_id) ' .
-						'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' .
-						'LEFT JOIN users ON users.id = users_nodes.user_id',
-						'users.status = "activated" AND l1.status = "active" AND l2.status = "active"',
-						'nodes.id'
-						);
-		$stats['stats_links'] =
-				$db->cnt('',
-						'nodes ' .
-						'INNER JOIN links AS l1 ON l1.node_id = nodes.id ' .
-						'LEFT JOIN links AS p2p ON (l1.id < p2p.id AND l1.type = "p2p" AND p2p.type = "p2p" AND l1.node_id = p2p.peer_node_id AND p2p.node_id = l1.peer_node_id) ' .
-						'LEFT JOIN links AS clients ON (l1.type = "client" AND l1.peer_ap_id = clients.id) ' .
-						'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' .
-						'LEFT JOIN users ON users.id = users_nodes.user_id',
-						'users.status = "activated" AND l1.status = "active" AND (p2p.status = "active" OR clients.status = "active")',
-						'l1.id'
-						);
-		$stats['stats_aps'] =
-				$db->cnt('',
-						'nodes ' .
-						'INNER JOIN links ON links.node_id = nodes.id AND links.type = "ap" AND links.status = "active" ' .
-						'INNER JOIN users_nodes ON nodes.id = users_nodes.node_id ' .
-						'LEFT JOIN users ON users.id = users_nodes.user_id',
-						'users.status = "activated"',
-						'links.id'
-						);
-		$stats['stats_services_active'] =
-				$db->cnt('',
-						'nodes_services',
-						'nodes_services.status = "active"'
-						);
-		$stats['stats_services_total'] =
-				$db->cnt('',
-						'nodes_services',
-						''
-						);
-		$this->tpl = array_merge($this->tpl, $stats);
-		$stats['last_calc'] = time();
-		if (is_writable($stats_tmp) || !file_exists($stats_tmp)) {
-			$h = @fopen($stats_tmp, "w");
-			@fwrite($h, serialize($stats));
-			@fclose($h);
-		}
-	}
-	
+
 	function output() {
 		if ($this->hide) return;
 		if ($_SERVER['REQUEST_METHOD'] == 'POST' && method_exists($this, 'output_onpost_'.$_POST['form_name'])) call_user_func(array($this, 'output_onpost_'.$_POST['form_name']));
-		global $construct, $main, $db, $vars, $lang;
+		global $construct, $main, $db;
 		$this->tpl['logged'] = $main->userdata->logged;
 		$this->tpl['form_login'] = $construct->form($this->form_login(), __FILE__);
-		
-		$main->html->body->tpl['logged'] = $this->tpl['logged'];
-		$main->html->body->tpl['form_login'] = $this->tpl['form_login'];
-		$main->html->body->tpl['logged_username'] = isset($main->userdata->info['username'])?$main->userdata->info['username']:"";
-		$main->html->body->tpl['link_logged_profile'] = makelink(array("page" => "users", "user" => $main->userdata->user));
-		
-		foreach($vars['language']['enabled'] as $key => $value) {
-			if ($value) {
-				$main->html->body->tpl['languages'][$key]['name'] = ($lang['languages'][$key]==''?$key:$lang['languages'][$key]);
-				$main->html->body->tpl['languages'][$key]['link'] = makelink(array("session_lang" => $key), TRUE);
-			}
-		}
-		
+		$main->html->dody->tpl['form_login'] = $this->tpl['form_login'];
 		if ($main->userdata->logged) {
 			$this->tpl = array_merge($this->tpl, $main->userdata->info);
@@ -134,5 +43,4 @@
 			foreach( (array) $this->tpl['mynodes'] as $key => $value) {
 				$this->tpl['mynodes'][$key]['url'] = makelink(array("page" => "mynodes", "node" => $this->tpl['mynodes'][$key]['id']));
-				$this->tpl['mynodes'][$key]['url_view'] = makelink(array("page" => "nodes", "node" => $this->tpl['mynodes'][$key]['id']));
 			}
 			$this->tpl['link_addnode'] = makelink(array("page" => "mynodes", "node" => "add"));
@@ -142,8 +50,4 @@
 				$this->tpl['link_admin_nodes'] = makelink(array("page" => "admin", "subpage" => "nodes"));
 				$this->tpl['link_admin_users'] = makelink(array("page" => "admin", "subpage" => "users"));
-				$this->tpl['link_admin_nodes_services'] = makelink(array("page" => "admin", "subpage" => "nodes_services"));
-				$this->tpl['link_admin_services'] = makelink(array('page' => 'admin', 'subpage' => 'services'));
-				$this->tpl['link_admin_regions'] = makelink(array('page' => 'admin', 'subpage' => 'regions'));
-				$this->tpl['link_admin_areas'] = makelink(array('page' => 'admin', 'subpage' => 'areas'));
 			}
 			if ($main->userdata->privileges['admin'] === TRUE || $main->userdata->privileges['hostmaster'] === TRUE) {
@@ -151,33 +55,28 @@
 
 				$this->tpl['link_dnsnameservers'] = makelink(array("page" => "hostmaster", "subpage" => "dnsnameservers"));
-				$this->tpl['link_dnsnameservers_waiting'] = makelink(array("page" => "hostmaster", "subpage" => "dnsnameservers", "form_search_nameservers_search" => serialize(array("dns_nameservers__status" => "waiting", "dns_nameservers__delete_req" => "N"))));
-				$this->tpl['dnsnameservers_waiting'] = $db->cnt('', "dns_nameservers", "status = 'waiting' AND delete_req = 'N'");
+				$this->tpl['link_dnsnameservers_pending'] = makelink(array("page" => "hostmaster", "subpage" => "dnsnameservers", "form_search_nameservers_search" => serialize(array("dns_nameservers__status" => "pending"))));
+				$this->tpl['dnsnameservers_pending'] = $db->cnt("dns_nameservers", "status = 'pending'");
 				$this->tpl['link_dnsnameservers_req_del'] = makelink(array("page" => "hostmaster", "subpage" => "dnsnameservers", "form_search_nameservers_search" => serialize(array("dns_nameservers__delete_req" => "Y"))));
-				$this->tpl['dnsnameservers_req_del'] = $db->cnt('', "dns_nameservers", "delete_req = 'Y'");
+				$this->tpl['dnsnameservers_req_del'] = $db->cnt("dns_nameservers", "delete_req = 'Y'");
 
 				$this->tpl['link_dnszones'] = makelink(array("page" => "hostmaster", "subpage" => "dnszones"));
-				$this->tpl['link_dnszones_waiting'] = makelink(array("page" => "hostmaster", "subpage" => "dnszones", "form_search_dns_search" => serialize(array("dns_zones__status" => "waiting", "dns_zones__delete_req" => "N"))));
-				$this->tpl['dnszones_waiting'] = $db->cnt('', "dns_zones", "status = 'waiting' AND delete_req = 'N'");
+				$this->tpl['link_dnszones_pending'] = makelink(array("page" => "hostmaster", "subpage" => "dnszones", "form_search_dns_search" => serialize(array("dns_zones__status" => "pending"))));
+				$this->tpl['dnszones_pending'] = $db->cnt("dns_zones", "status = 'pending'");
 				$this->tpl['link_dnszones_req_del'] = makelink(array("page" => "hostmaster", "subpage" => "dnszones", "form_search_dns_search" => serialize(array("dns_zones__delete_req" => "Y"))));
-				$this->tpl['dnszones_req_del'] = $db->cnt('', "dns_zones", "delete_req = 'Y'");
+				$this->tpl['dnszones_req_del'] = $db->cnt("dns_zones", "delete_req = 'Y'");
 
 				$this->tpl['link_ranges'] = makelink(array("page" => "hostmaster", "subpage" => "ranges"));
-				$this->tpl['link_ranges_waiting'] = makelink(array("page" => "hostmaster", "subpage" => "ranges", "form_search_ranges_search" => serialize(array("ip_ranges__status" => "waiting", "ip_ranges__delete_req" => "N"))));
-				$this->tpl['ranges_waiting'] = $db->cnt('', "ip_ranges", "status = 'waiting' AND delete_req = 'N'");
+				$this->tpl['link_ranges_pending'] = makelink(array("page" => "hostmaster", "subpage" => "ranges", "form_search_ranges_search" => serialize(array("ip_ranges__status" => "pending"))));
+				$this->tpl['ranges_pending'] = $db->cnt("ip_ranges", "status = 'pending'");
 				$this->tpl['link_ranges_req_del'] = makelink(array("page" => "hostmaster", "subpage" => "ranges", "form_search_ranges_search" => serialize(array("ip_ranges__delete_req" => "Y"))));
-				$this->tpl['ranges_req_del'] = $db->cnt('', "ip_ranges", "delete_req = 'Y'");
+				$this->tpl['ranges_req_del'] = $db->cnt("ip_ranges", "delete_req = 'Y'");
 			}
 		}
-		$this->tpl['link_home'] = makelink(array());
 		$this->tpl['link_allnodes'] = makelink(array("page" => "nodes"));
 		$this->tpl['link_allranges'] = makelink(array("page" => "ranges", "subpage" => "search"));
-		$this->tpl['link_allservices'] = makelink(array("page" => "services"));
 		$this->tpl['link_alldnszones'] = makelink(array("page" => "dnszones"));
 		$this->tpl['link_restore_password'] = makelink(array("page" => "users", "action" => "restore"));
 		$this->tpl['link_register'] = makelink(array("page" => "users", "user" => "add"));
 		$this->tpl['link_logout'] = makelink(array("page" => "users", "action" => "logout"));
-		parse_str(substr(makelink(array("page" => "search"), FALSE, TRUE, FALSE), 1), $this->tpl['query_string']);
-		$this->calculate_menu_stats();
-		$main->html->head->add_script("text/javascript", makelink(array("page" => "search", "subpage" => "suggest_js")));
 		return template($this->tpl, __FILE__);
 	}
@@ -185,5 +84,5 @@
 	function output_onpost_form_login() {
 		global $main;
-		if ($main->userdata->login($_POST['users__username'], $_POST['users__password'], ((isset($_POST['save_login']) && $_POST['save_login']=='Y')?TRUE:FALSE))) {
+		if ($main->userdata->login($_POST['users__username'], $_POST['users__password'])) {
 			if ($main->userdata->info['status'] == 'pending') {
 				$main->message->set_fromlang('info', 'activation_required');
Index: /trunk/config.php.sample
===================================================================
--- /trunk/config.php.sample (revision 1)
+++ /trunk/config.php.sample (revision 1)
@@ -0,0 +1,53 @@
+<?php
+
+$config = array(
+	
+	'db' => array(
+		'server' => "server.example.org",
+		'username' => "youruser",
+		'password' => "yourpassword",
+		'database' => "yourdatabase"
+		),
+		
+	'site' => array(
+		'domain' => 'server.example.org',
+		'url' => 'http://server.example.org/'
+		),
+	
+	'cookies' => array(
+		'expire' => (60 * 60 * 24 * 30)
+		),
+
+	'message' => array(
+		'delay' => 5
+		),
+
+	'language' => array(
+		'default' => 'greek'
+		),
+		
+	'smarty' => array(
+		'class' => '/usr/share/php/smarty/libs/Smarty.class.php'
+		),
+		
+	'constructor' => array(
+		'max_rows' => 50
+		),
+	
+	'dns' => array(
+		'root_zone' => 'domain',
+		'ns_zone' => 'ns.domain',
+		'reverse_zone' => 'in-addr.arpa'
+		),
+	
+	'folders' => array(
+		'photos' => $root_path.'files/photos/'
+		),
+	
+	'mail' => array(
+		'from' => 'hostmaster@wind.cube.gr',
+		'from_name' => 'WiND Hostmaster'
+		)
+);
+
+?>
Index: /trunk/index.php
===================================================================
--- /trunk/index.php (revision 143)
+++ /trunk/index.php (revision 1)
@@ -22,9 +22,9 @@
 ob_start();
 
-define("ROOT_PATH","./");
+$root_path = "./";
 
-include_once(ROOT_PATH."globals/common.php");
+include_once($root_path."globals/common.php");
 
-include_once(ROOT_PATH."includes/main.php");
+include_once($root_path."includes/main.php");
 
 $main = new main;
Index: /trunk/map/flash/main.html
===================================================================
--- /trunk/map/flash/main.html (revision 1)
+++ /trunk/map/flash/main.html (revision 1)
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>main</title>
+</head>
+<body bgcolor="#ffffff">
+<!--url's used in the movie-->
+<!--text used in the movie-->
+<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="720" height="500" id="main" align="middle">
+<param name="allowScriptAccess" value="sameDomain" />
+<param name="movie" value="main.swf" />
+<param name="menu" value="false" />
+<param name="quality" value="high" />
+<param name="wmode" value="opaque" />
+<param name="bgcolor" value="#ffffff" />
+<embed src="main.swf" menu="false" quality="high" wmode="opaque" bgcolor="#ffffff" width="720" height="500" name="main" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
+</object>
+</body>
+</html>
Index: /trunk/plot/link.php
===================================================================
--- /trunk/plot/link.php (revision 1)
+++ /trunk/plot/link.php (revision 1)
@@ -0,0 +1,123 @@
+<?php
+/*
+ * WiND - Wireless Nodes Database
+ *
+ * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
+ * 
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 dated June, 1991.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+include $plot_path."elevation.php";
+
+class elevation {
+	var $lat;
+	var $log;
+
+	function elevation($lat, $log) {
+		$this->lat = $lat;
+		$this->log = $log;
+	}		
+}
+
+function plotlink($width, $height, $point_a, $point_b, $antenna_a=0, $antenna_b=0) {
+	$image = imagecreate($width, $height);
+	$ground_pad = $height * (1 / 20);
+	$sky_pad = $height * (1 / 20);
+	$left_pad = 0;
+	$right_pad = 0;
+	
+	$width = $width - $left_pad - $right_pad;
+	
+	$color_sky = ImageColorAllocate($image, 99, 200, 248);
+	$color_ground = ImageColorAllocate($image, 177, 125, 86);
+	$color_antenna = ImageColorAllocate($image, 0, 0, 0);
+	$black = ImageColorAllocate($image, 0, 0, 0);
+	$color_link_on = ImageColorAllocate($image, 57, 187, 77);
+	$color_link_off = ImageColorAllocate($image, 211, 97, 97);
+	
+	$step_lat = ($point_b->lat - $point_a->lat) / ($width - 1);
+	$step_log = ($point_b->log - $point_a->log) / ($width - 1);
+	for ($i=0;$i<$width;$i++) {
+		$elevations[$i] = get_elevation($point_a->lat + $step_lat * $i, $point_a->log + $step_log * $i, FALSE);
+		if ($point_a->lat == '' || $point_a->log == '' || $point_b->lat == '' || $point_b->log == '' || $elevations[$i] === FALSE) {
+			imagestring ($image, 5, 10, 10, "Data error!", $black);
+			return $image;
+		}
+	}
+	$max_el = max($elevations) + max($antenna_a, $antenna_b);
+	$min_el = min($elevations);
+	
+	$step_elevation = ($max_el - $min_el) / ($height - $ground_pad - $sky_pad);
+	$antenna_a_se = $antenna_a / $step_elevation;
+	$antenna_b_se = $antenna_b / $step_elevation;
+	
+	for ($i=0;$i<$width;$i++) {
+		//GROUND
+		$pixels_el = ($elevations[$i] - $min_el) / $step_elevation;
+		$y1 = $height - 1 - $ground_pad - $pixels_el;
+		$y2 = $height - 1;
+		imagelinethick($image, $left_pad + $i, $y1, $left_pad + $i, $y2, $color_ground);
+		
+		//ANTENNA A
+		if ($i ==0) {
+			$ant_a = $y1 - $antenna_a_se;
+			imagelinethick($image, $left_pad + $i, $y1, $left_pad + $i, $ant_a, $color_antenna, 2);
+		}
+		
+		//ANTENNA B
+		if ($i == $width-1) { 
+			$ant_b = $y1 - $antenna_b_se;
+			imagelinethick($image, $left_pad + $i, $y1, $left_pad + $i, $ant_b, $color_antenna, 2);
+		}
+	}
+	
+	$color_link = $color_link_on;
+	for ($i=0;$i<$width;$i++) {
+		if (imagecolorat($image, $left_pad + $i, $ant_a + $i * ($ant_b - $ant_a) / ($width - 1)) == $color_ground) {
+			$color_link = $color_link_off;
+			break;
+		}
+	}
+	imagelinethick($image, $left_pad + 0, $ant_a, $left_pad + $width - 1, $ant_b, $color_link, 2);
+	
+	return $image;
+}
+
+function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1) 
+{
+   /* this way it works well only for orthogonal lines
+   imagesetthickness($image, $thick);
+   return imageline($image, $x1, $y1, $x2, $y2, $color);
+   */
+   if ($thick == 1) {
+       return imageline($image, $x1, $y1, $x2, $y2, $color);
+   }
+   $t = $thick / 2 - 0.5;
+   if ($x1 == $x2 || $y1 == $y2) {
+       return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
+   }
+   $k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
+   $a = $t / sqrt(1 + pow($k, 2));
+   $points = array(
+       round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
+       round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
+       round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
+       round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
+   );    
+   imagefilledpolygon($image, $points, 4, $color);
+   return imagepolygon($image, $points, 4, $color);
+}
+
+?>
Index: /trunk/plot/plot.php
===================================================================
--- /trunk/plot/plot.php (revision 1)
+++ /trunk/plot/plot.php (revision 1)
@@ -0,0 +1,54 @@
+<?php
+/*
+ * WiND - Wireless Nodes Database
+ *
+ * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
+ * 
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 dated June, 1991.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+include "link.php";
+
+set_time_limit(120);
+
+$width = (integer)$_GET['width'];
+$height = (integer)$_GET['height'];
+$a_lat = (float)$_GET['a_lat'];
+$a_log = (float)$_GET['a_log'];
+$b_lat = (float)$_GET['b_lat'];
+$b_log = (float)$_GET['b_log'];
+$a_ant = (float)$_GET['a_ant'];
+$b_ant = (float)$_GET['b_ant'];
+if ($width == 0) $width = 600;
+if ($height == 0) $height = 300;
+
+
+$point_b = new elevation(37.991, 23.7645); //john70
+
+$point_a = new elevation(37.979, 23.7689); // ngia
+$point_a = new elevation(37.9926, 23.771); // winner
+$point_a = new elevation(38.0389, 23.7004); //nikpet
+$point_a = new elevation(38.002, 23.7642); //bliz
+$point_b = new elevation(37.99330, 23.77420); // thista
+
+$point_a = new elevation($a_lat, $a_log);
+$point_b = new elevation($b_lat, $b_log);
+
+$image = plotlink($width, $height, $point_a, $point_b, $a_ant, $b_ant);
+
+header('Content-type: image/png');
+imagepng($image);
+
+?>
Index: /trunk/plot/elevation.php
===================================================================
--- /trunk/plot/elevation.php (revision 1)
+++ /trunk/plot/elevation.php (revision 1)
@@ -0,0 +1,55 @@
+<?php
+/*
+ * WiND - Wireless Nodes Database
+ *
+ * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr>
+ * 
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 dated June, 1991.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+function get_elevation($lat, $log, $round=TRUE) {
+global $plot_path;
+$y = $lat;
+$x = $log;
+
+$filename = $plot_path.'hgt/N'.(integer)$lat.'E'.((integer)$log<100?'0'.(integer)$log:(integer)$log).'.hgt';
+
+if ($lat == '' || $log == '' || !file_exists($filename)) return FALSE;
+
+$file = fopen($filename, 'r');
+$offset = ( (integer)(($x - (integer)$x) * 1200) * 2 + (1200 - (integer)(($y - (integer)$y) * 1200)) * 2402 );
+fseek($file, $offset);
+$h1 = bytes2int(strrev(fread($file, 2)));
+$h2 = bytes2int(strrev(fread($file, 2)));
+fseek($file, $offset-2402);
+$h3 = bytes2int(strrev(fread($file, 2)));
+$h4 = bytes2int(strrev(fread($file, 2)));
+fclose($file);
+
+$fx = ($log - (integer)($log * 1200) / 1200) * 1200;
+$fy = ($lat - (integer)($lat * 1200) / 1200) * 1200;
+
+$elevation = ($h1 * (1 - $fx) + $h2 * $fx) * (1 - $fy) + ($h3 * (1 - $fx) + $h4 * $fx) * $fy;
+if ($round) $elevation = round($elevation);
+return $elevation;
+}
+
+function bytes2int($val) {
+	$t = unpack("s", $val);
+	$ret = $t[1];
+	return $ret;
+}
+
+?>
Index: /trunk/templates/basic/includes/pages/ranges/ranges_allocation.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/ranges/ranges_allocation.tpl (revision 24)
+++ /trunk/templates/basic/includes/pages/ranges/ranges_allocation.tpl (revision 1)
@@ -19,8 +19,7 @@
  *
  *}
-{include assign=help file=generic/help.tpl help=ranges_allocation}
 {include assign="t1" file="generic/link.tpl" link=$link_ranges_search content="`$lang.ip_ranges_search`"}
 {include assign="t2" file="generic/link.tpl" link=$link_ranges_allocation content="`$lang.ip_ranges_allocation`"}
-{include file=generic/page-title.tpl title="`$lang.all_ranges` $t1 $t2" right="$help"}
+{include file=generic/page-title.tpl title="`$lang.all_ranges` $t1 $t2"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
Index: /trunk/templates/basic/includes/pages/ranges/ranges_search.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/ranges/ranges_search.tpl (revision 24)
+++ /trunk/templates/basic/includes/pages/ranges/ranges_search.tpl (revision 1)
@@ -19,8 +19,7 @@
  *
  *}
-{include assign=help file=generic/help.tpl help=ranges_search}
 {include assign="t1" file="generic/link.tpl" link=$link_ranges_search content="`$lang.ip_ranges_search`"}
 {include assign="t2" file="generic/link.tpl" link=$link_ranges_allocation content="`$lang.ip_ranges_allocation`"}
-{include file=generic/page-title.tpl title="`$lang.all_ranges` $t1 $t2" right="$help"}
+{include file=generic/page-title.tpl title="`$lang.all_ranges` $t1 $t2"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
Index: /trunk/templates/basic/includes/pages/users/users.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/users/users.tpl (revision 148)
+++ /trunk/templates/basic/includes/pages/users/users.tpl (revision 1)
@@ -19,15 +19,10 @@
  *
  *}
-{include assign=help file=generic/help.tpl help="users_`$user_method`"}
 {assign var=t value="user_`$user_method`"}
-
-
-
-{include file=generic/page-title.tpl title="`$lang.$t`" right="$help"}
+{include file=generic/page-title.tpl title="`$lang.$t`"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
 <td class="table-page-pad">
-{if $link_user_delete}{include assign=user_delete file=generic/link.tpl content="`$lang.delete`" link=$link_user_delete confirm=TRUE}{/if}
-{include file=generic/title1.tpl title="`$lang.user_info`" right="$user_delete" content=$form_user}
+{include file=generic/title1.tpl title="`$lang.user_info`" content=$form_user}
 </td>
 </tr>
Index: /trunk/templates/basic/includes/pages/users/users_restore.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/users/users_restore.tpl (revision 24)
+++ /trunk/templates/basic/includes/pages/users/users_restore.tpl (revision 1)
@@ -20,6 +20,5 @@
  *}
 {if $form_restore != ''}
-{include assign=help file=generic/help.tpl help=users_restore_password_recover}
-{include file=generic/page-title.tpl title="`$lang.password_recover`" right="$help"}
+{include file=generic/page-title.tpl title="`$lang.password_recover`"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
@@ -30,6 +29,5 @@
 </table>
 {elseif $form_change_password != ''}
-{include assign=help file=generic/help.tpl help=users_restore_password_change}
-{include file=generic/page-title.tpl title="`$lang.password_change`" right="$help"}
+{include file=generic/page-title.tpl title="`$lang.password_change`"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
Index: /trunk/templates/basic/includes/pages/startup/startup.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/startup/startup.tpl (revision 136)
+++ /trunk/templates/basic/includes/pages/startup/startup.tpl (revision 1)
@@ -20,16 +20,13 @@
  *}
 {include file=generic/page-title.tpl title="`$lang.welcome`"}
-{if $startup_html != ''}
-{$startup_html}
-{else}
-<center>
-<p>
-<font size="5"><strong>WiND - Wireless Nodes Database</strong></font>
+<center><br />
+<br />
+<b><font size="5">WiND - Wireless Nodes Database</font></b>
 <br />
 <br />
-<strong>Warning</strong>: this is an SVN snapshot.<br />
-As such, it's still under heavy development and you
-should expect it to break and/or lose data.<br />
-</p>
-</center>
-{/if}
+<b>Ðñïóï÷Þ! ÐéëïôéêÞ åöáñìïãÞ.</b>
+<br />
+ÏôéäÞðïôå ðëçñïöïñßåò áðïèçêåýóåôå èá ÷áèïýí üôáí îåêéíÞóåé ç êáíïíéêÞ ëåéôïõñãßá.
+<br />
+<br />
+ÁíáöïñÜ ðñïâëçìÜôùí óôï <a href="mailto:winner@cube.gr">winner@cube.gr</a></center>
Index: /trunk/templates/basic/includes/pages/dnszones/dnszones.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/dnszones/dnszones.tpl (revision 24)
+++ /trunk/templates/basic/includes/pages/dnszones/dnszones.tpl (revision 1)
@@ -19,6 +19,5 @@
  *
  *}
-{include assign=help file=generic/help.tpl help=dnszones}
-{include file=generic/page-title.tpl title="`$lang.all_zones`" right="$help"}
+{include file=generic/page-title.tpl title="`$lang.all_zones`"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
Index: /unk/templates/basic/includes/pages/admin/admin_regions_region.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/admin/admin_regions_region.tpl (revision 156)
+++  (revision )
@@ -1,29 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{assign var=t value="region_`$region_method`"}
-{include file=generic/page-title.tpl title="`$lang.$t`"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include file=generic/title2.tpl title="`$lang.$t`" content=$form_region}
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/admin/admin_areas.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/admin/admin_areas.tpl (revision 156)
+++  (revision )
@@ -1,29 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{include file=generic/page-title.tpl title="`$lang.admin_panel` > `$lang.areas`"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include assign="t1" file="generic/link.tpl" link=$link_area_add content="`$lang.area_add`"}
-{include file=generic/title2.tpl title="`$lang.areas` $t1" content=$table_areas}
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/admin/admin_nodes_services.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/admin/admin_nodes_services.tpl (revision 152)
+++  (revision )
@@ -1,34 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{include assign=help file=generic/help.tpl help="admin_nodes_services_edit"}
-{include file=generic/page-title.tpl title="`$lang.admin_panel` > `$lang.services`" right="$help"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.services_search`" content=$form_search_services_edit}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title2.tpl title="`$lang.services_found`" content=$table_services}
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/admin/admin_areas_area.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/admin/admin_areas_area.tpl (revision 156)
+++  (revision )
@@ -1,29 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{assign var=t value="area_`$area_method`"}
-{include file=generic/page-title.tpl title="`$lang.$t`"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include file=generic/title2.tpl title="`$lang.$t`" content=$form_area}
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/admin/admin_services.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/admin/admin_services.tpl (revision 156)
+++  (revision )
@@ -1,29 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{include file=generic/page-title.tpl title="`$lang.admin_panel` > `$lang.services_categories`"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include assign="t1" file="generic/link.tpl" link=$link_services_categories_add content="`$lang.services_categories_add`"}
-{include file=generic/title2.tpl title="`$lang.services_categories` $t1" content=$table_services}
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/admin/admin_services_service.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/admin/admin_services_service.tpl (revision 156)
+++  (revision )
@@ -1,29 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{assign var=t value="services_categories_`$services_method`"}
-{include file=generic/page-title.tpl title="`$lang.$t`"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include file=generic/title2.tpl title="`$lang.$t`" content=$form_services}
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/admin/admin_regions.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/admin/admin_regions.tpl (revision 156)
+++  (revision )
@@ -1,29 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{include file=generic/page-title.tpl title="`$lang.admin_panel` > `$lang.regions`"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include assign="t1" file="generic/link.tpl" link=$link_region_add content="`$lang.region_add`"}
-{include file=generic/title2.tpl title="`$lang.regions` $t1" content=$table_regions}
-</td>
-</tr>
-</table>
Index: /trunk/templates/basic/includes/pages/nodes/nodes_view.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/nodes/nodes_view.tpl (revision 154)
+++ /trunk/templates/basic/includes/pages/nodes/nodes_view.tpl (revision 1)
@@ -19,53 +19,31 @@
  *
  *}
-{include file=generic/page-title.tpl title="`$lang.node` `$node.name` (#`$node.id`)"|escape right="$help"}
+{include file=generic/page-title.tpl title="`$lang.node` `$node.name` (#`$node.id`)" right="$help"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
-	<td class="table-page-split">
-		{include assign=t1 file="includes/pages/nodes/node_info.tpl"}
-		{if $edit_node}{include assign=ed file="generic/link.tpl" content="`$lang.edit_node`" link=$edit_node}{/if}
-		{include file="generic/title3.tpl" title="`$lang.node_info` $ed" content="$t1"}
-		{include file="generic/title4.tpl" title="`$lang.db.nodes__info`" content="`$node.info`"|escape|nl2br}
-		{include file="generic/title5.tpl" title="`$lang.ip_ranges`" content="`$table_ip_ranges`"}
-		{include file="generic/title5.tpl" title="`$lang.dns_zones`" content="`$table_dns`"}
-		{include file="generic/title5.tpl" title="`$lang.dns_nameservers`" content="`$table_nameservers`"}
-		<br />
-		<div align="center">{include file=generic/link.tpl content="`$lang.node_plot_link`" onclick="javascript: t = window.open('$link_plot_link', 'popup_plot_link', 'width=600,height=420,toolbar=0,resizable=1,scrollbars=1'); t.focus(); return false;"}</div>
-	</td>
-	<td class="table-page-split">
-	{if $gmap_key_ok!=="nomap"}
-		<table bgcolor="#DBE0D7" cellpadding="0" cellspacing="2">
-			<tr>
-				<td align="left" nowrap="nowrap">{include file=generic/link.tpl link=$link_gearth content="Google earth"}</td>
-				<td align="right" nowrap="nowrap">{include file=generic/link.tpl link=$link_fullmap content="`$lang.new_window`" target="_blank"}</td>
-			</tr>
-			<tr>
-				<td style="font-size:12px; text-align:center; width: 500px; height: 500px" colspan="2">
-					{if $gmap_key_ok}
-					<div id="map" style="width: 500px; height: 500px"></div>
-					{else}
-					{$lang.message.error.gmap_key_failed.body|wordwrap:40|nl2br}
-					{/if}
-				</td>
-			</tr>
-			<tr>
-				<td style="font-size:12px;" colspan="2" nowrap="nowrap">
-					<input type="checkbox" name="p2p" checked="checked" onclick="gmap_refresh();" />{html_image file="`$img_dir`/gmap/mm_20_orange.png" alt=$lang.backbone}{$lang.backbone}
-					<input type="checkbox" name="aps" checked="checked" onclick="gmap_refresh();" />{html_image file="`$img_dir`/gmap/mm_20_green.png" alt=$lang.aps}{$lang.aps}
-					<input type="checkbox" name="clients" checked="checked" onclick="gmap_refresh();" />{html_image file="`$img_dir`/gmap/mm_20_blue.png" alt=$lang.clients}{$lang.clients}
-					<input type="checkbox" name="unlinked" onclick="gmap_refresh();" />{html_image file="`$img_dir`/gmap/mm_20_red.png" alt=$lang.unlinked}{$lang.unlinked}
-				</td>
-			</tr>
-		</table>
-	{/if}
-	</td>
-	
+<td class="table-page-split">
+{include assign=t1 file="includes/pages/nodes/node_info.tpl"}
+{include file="generic/title3.tpl" title="`$lang.node_info`" content="$t1"}
+{include file="generic/title4.tpl" title="`$lang.db.nodes__info`" content="`$node.info`"|nl2br}
+{include file="generic/title5.tpl" title="`$lang.ip_ranges`" content="`$table_ip_ranges`"}
+{include file="generic/title5.tpl" title="`$lang.dns_zones`" content="`$table_dns`"}
+{include file="generic/title5.tpl" title="`$lang.dns_nameservers`" content="`$table_nameservers`"}
+</td>
+<td class="table-page-split">
+<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="500" height="500" id="main" align="middle">
+<param name="allowScriptAccess" value="sameDomain" />
+<param name="movie" value="map/flash/main.swf" />
+<param name="menu" value="false" />
+<param name="quality" value="high" />
+<param name="wmode" value="opaque" />
+<param name="bgcolor" value="#ffffff" />
+<embed src="map/flash/main.swf" menu="false" quality="high" wmode="opaque" bgcolor="#ffffff" width="500" height="500" name="main" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
+</object>
+<div align="center">{include file=generic/link.tpl link="map/flash/main.html" content="`$lang.new_window`" target="_blank"}</div>
+</td>
 </tr>
 <tr>
 <td colspan="2" class="table-page-pad">
-{foreach from=$table_links_ap item=ap}
-	{assign var=aps value="`$aps``$ap`"}
-{/foreach}
-{include file=generic/title2.tpl title="`$lang.links`" content="`$table_links_p2p``$aps`"}
+{include file=generic/title2.tpl title="`$lang.links`" content=$table_links_p2p}
 </td>
 </tr>
@@ -77,9 +55,4 @@
 <tr>
 <td colspan="2" class="table-page-pad">
-{include file=generic/title2.tpl title="`$lang.services`" content=$table_services}
-</td>
-</tr>
-<tr>
-<td colspan="2" class="table-page-pad">
 {include assign=t file=includes/pages/nodes/myview.tpl}
 {include file=generic/title2.tpl title="`$lang.myview`" content=$t}
Index: /trunk/templates/basic/includes/pages/nodes/comments.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/nodes/comments.tpl (revision 48)
+++ /trunk/templates/basic/includes/pages/nodes/comments.tpl (revision 1)
@@ -24,5 +24,5 @@
 </tr>
 <tr>
-<td colspan="4" class="table-comments-text">{$node.info|escape}</td>
+<td colspan="4" class="table-comments-text">{$node.info}</td>
 </tr>
 </table>
Index: /trunk/templates/basic/includes/pages/nodes/link_info.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/nodes/link_info.tpl (revision 48)
+++ /trunk/templates/basic/includes/pages/nodes/link_info.tpl (revision 1)
@@ -22,5 +22,5 @@
 <tr>
 <td rowspan="2" class="table-d1-side">&nbsp;</td>
-<td class="table-d1-title-text" ><a href="{$extra_data.EDIT[rowl]}">{$data[rowl].peer_node_name|escape} (#{$data[rowl].links__peer_node_id})</a></td>
+<td class="table-d1-title-text" >{$data[rowl].peer_node_name} (#{$data[rowl].links__peer_node_id})</td>
 <td rowspan="2" class="table-d1-side2">&nbsp;</td>
 </tr>
@@ -29,6 +29,6 @@
 		<table border="0" cellpadding="0" cellspacing="6" class="table-form">
 		<tr class="table-form-row1">
-		<td class="table-node-link-info"><img src="{$img_dir}node.gif" width="32" height="32" alt="{$lang.db.peer}" /></td>
-		<td class="table-node-link-info" width="33%">
+		<td class="table-node-link-info"><img src="{$img_dir}node.gif" width="32" height="32"></td>
+		<td class="table-node-link-info">
 
 <table class="table-form">
@@ -47,23 +47,23 @@
 <tr>
 	<td class="table-node-key2">{$lang.db.links__protocol}</td>
-	<td class="table-node-value2">{$data[rowl].links__protocol|escape}</td>
+	<td class="table-node-value2">{$data[rowl].links__protocol}</td>
 </tr>
 <tr>
 	<td class="table-node-key2">{$lang.db.links__ssid}</td>
-	<td class="table-node-value2">{$data[rowl].links__ssid|escape}</td>
+	<td class="table-node-value2">{$data[rowl].links__ssid}</td>
 </tr>
 <tr>
 	<td class="table-node-key2">{$lang.db.links__channel}</td>
-	<td class="table-node-value2">{$data[rowl].links__channel|escape}</td>
+	<td class="table-node-value2">{$data[rowl].links__channel}</td>
 </tr>
 <tr>
 	<td class="table-node-key2">{$lang.db.links__equipment}</td>
-	<td class="table-node-value2">{$data[rowl].links__equipment|escape|nl2br}</td>
+	<td class="table-node-value2">{$data[rowl].links__equipment|nl2br}</td>
 </tr>
 </table>
 		</td>
-		<td class="table-node-link-info" width="33%">{include file=generic/plot.tpl}</td>
-		<td class="table-node-link-info" width="33%" height="100%">
-		{include file="generic/title4.tpl" title="`$lang.db.links__info`" content="`$data[rowl].links__info`"|escape|nl2br}
+		<td class="table-node-link-info">{include file=generic/plot.tpl}</td>
+		<td class="table-node-link-info" width="200">
+		{include file="generic/title4.tpl" title="`$lang.db.links__info`" content="`$data[rowl].links__info`"|nl2br}
 		</td>
 		</tr>
Index: /trunk/templates/basic/includes/pages/nodes/nodes_search.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/nodes/nodes_search.tpl (revision 154)
+++ /trunk/templates/basic/includes/pages/nodes/nodes_search.tpl (revision 1)
@@ -22,41 +22,13 @@
 {include file=generic/page-title.tpl title="`$lang.all_nodes`" right="$help"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-	<tr>
-		<td class="table-page-split">
-		{if $gmap_key_ok!=="nomap"}
-			<table align="center" bgcolor="#DBE0D7" cellpadding="0" cellspacing="2">
-				<tr>
-					<td align="left">{include file=generic/link.tpl link=$link_gearth content="`$lang.google_earth`"}</td><td align="right">{include file=generic/link.tpl link=$link_fullmap content="`$lang.new_window`" target="_blank"}</td>
-				</tr>
-				<tr>
-					<td style="font-size:12px; text-align:center;" colspan="2">
-					{if $gmap_key_ok}
-						<div id="map" style="width: 500px; height: 500px;"></div>
-					{else}
-						{$lang.message.error.gmap_key_failed.body|wordwrap:40|nl2br}
-					{/if}
-					</td>
-				</tr>
-				<tr>
-					<td style="font-size:12px;">
-						<input type="checkbox" name="p2p" checked="checked" onclick="gmap_refresh();" />{html_image file="`$img_dir`/gmap/mm_20_orange.png" alt=$lang.backbone}{$lang.backbone}
-						<input type="checkbox" name="aps" checked="checked" onclick="gmap_refresh();" />{html_image file="`$img_dir`/gmap/mm_20_green.png" alt=$lang.aps}{$lang.aps}
-						<input type="checkbox" name="clients" onclick="gmap_refresh();" />{html_image file="`$img_dir`/gmap/mm_20_blue.png" alt=$lang.clients}{$lang.clients}
-						<input type="checkbox" name="unlinked" onclick="gmap_refresh();" />{html_image file="`$img_dir`/gmap/mm_20_red.png" alt=$lang.unlinked}{$lang.unlinked}
-					</td>
-				</tr>
-			</table>
-		{/if}
-		</td>
-	</tr>
-	<tr>
-		<td class="table-page-split">
-			{include file=generic/title1.tpl title="`$lang.nodes_search`" content=$form_search_nodes}
-		</td>
-	</tr>
-	<tr>
-		<td class="table-page-pad">
-			{include file=generic/title2.tpl title="`$lang.nodes_found`" content=$table_nodes}
-		</td>
-	</tr>
+<tr>
+<td class="table-page-pad">
+{include file=generic/title1.tpl title="`$lang.nodes_search`" content=$form_search_nodes}
+</td>
+</tr>
+<tr>
+<td class="table-page-pad">
+{include file=generic/title2.tpl title="`$lang.nodes_found`" content=$table_nodes}
+</td>
+</tr>
 </table>
Index: /trunk/templates/basic/includes/pages/nodes/nodes_view_table_ipaddr_subnets.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/nodes/nodes_view_table_ipaddr_subnets.tpl (revision 48)
+++ /trunk/templates/basic/includes/pages/nodes/nodes_view_table_ipaddr_subnets.tpl (revision 1)
@@ -22,24 +22,11 @@
 {section name=row loop=$data start=1}
 {if $data[row].ip_start != $cur}
-	{$close2}{$close1}
-	{assign var=close1 value=""}
-	{assign var=close2 value=""}
-	{assign var=close1 value="</table>"}
+	{if $close == true}</table></td></tr></table>{/if}
 	{assign var=cur value=$data[row].ip_start}
+	{assign var=close value=true}
 	<tr><td>
 	<table class="table-form">
-	<tr><td class="table-search-menu-text">
-		<img src="{$img_dir}admin.gif" alt="{$lang.db.subnet}" />
-		{assign var=t1 value="subnets__type-"|cat:$data[row].type}
-		{assign var=t2 value="links__type-"|cat:$data[row].links__type}
-		{$lang.db.$t1}
-		{$lang.db.$t2}
-		{if $data[row].nodes__name != ''}[{$data[row].nodes__name|escape} (#{$data[row].nodes__id})] {/if}
-		({$data[row].ip_start} - {$data[row].ip_end})
-	</td></tr>
-	{if $data[row].date_in != ''}
-	{assign var=close2 value="</table></td></tr>"}
-	<tr><td>
-	<table class="table-form">
+	<tr><td class="table-search-menu-text"><img src="{$img_dir}admin.gif" /> {assign var=t value="subnets__type-"|cat:$data[row].type}{$lang.db.$t} ({$data[row].ip_start} - {$data[row].ip_end})</td></tr>
+	<tr><td><table class="table-form">
 	<tr>
 	{foreach key=key item=itm from=$data.0}
@@ -59,39 +46,34 @@
 	{/if}
 	
-	<td class="{$cellclass}">{$cell|escape}</td>
+	<td class="{$cellclass}">{$cell}</td>
 	{/if}
 	{/foreach}
 	</tr>
+{/if}
+<tr>
+	{foreach key=key item=itm from=$data[row]}
+	{assign var="fullkey" value=$data.0.$key}
+	{if $extra_data.HIDE.$fullkey != 'YES'}
+	{if $smarty.section.row.index == 0 && $lang.db.$itm != ''}
+		{assign var="cell" value="`$lang.db.$itm`"}
+		{assign var="cellclass" value="table-node-key2"}
+	{elseif $smarty.section.row.index != 0 && $key|truncate:5:"":true == 'date_'}
+		{assign var="cell" value=$itm|date_format:"%x"}
+		{assign var="cellclass" value="table-node-value2"}
+	{elseif $extra_data.TRANSLATE.$fullkey == 'YES'}
+		{assign var="cellclass" value="table-node-value2"}
+		{assign var="lang_cell" value=$fullkey|cat:"-"|cat:$itm}
+		{assign var="cell" value=$lang.db.$lang_cell}
+		{assign var="cellclass" value="table-node-value2"}
+	{else}
+		{assign var="cellclass" value="table-node-value2"}
+		{assign var="cell" value=$itm}
 	{/if}
-{/if}
-	{if $data[row].date_in != ''}
-	<tr>
-		{foreach key=key item=itm from=$data[row]}
-		{assign var="fullkey" value=$data.0.$key}
-		{if $extra_data.HIDE.$fullkey != 'YES'}
-		{if $smarty.section.row.index == 0 && $lang.db.$itm != ''}
-			{assign var="cell" value="`$lang.db.$itm`"}
-			{assign var="cellclass" value="table-node-key2"}
-		{elseif $smarty.section.row.index != 0 && $key|truncate:5:"":true == 'date_'}
-			{assign var="cell" value=$itm|date_format:"%x"}
-			{assign var="cellclass" value="table-node-value2"}
-		{elseif $extra_data.TRANSLATE.$fullkey == 'YES'}
-			{assign var="cellclass" value="table-node-value2"}
-			{assign var="lang_cell" value=$fullkey|cat:"-"|cat:$itm}
-			{assign var="cell" value=$lang.db.$lang_cell}
-			{assign var="cellclass" value="table-node-value2"}
-		{else}
-			{assign var="cellclass" value="table-node-value2"}
-			{assign var="cell" value=$itm}
-		{/if}
-		
-		<td class="{$cellclass}">{$cell|escape}</td>
-		{/if}
-		{/foreach}
-	</tr>
+	
+	<td class="{$cellclass}">{$cell}</td>
 	{/if}
+	{/foreach}
+</tr>
 {/section}
-{$close2}{$close1}
-{assign var=close1 value=""}
-{assign var=close2 value=""}
+{if $close == true}</table></td></tr></table>{/if}
 </table>
Index: /trunk/templates/basic/includes/pages/nodes/node_info.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/nodes/node_info.tpl (revision 120)
+++ /trunk/templates/basic/includes/pages/nodes/node_info.tpl (revision 1)
@@ -26,13 +26,13 @@
 <tr>
 <td class="table-node-key">{$lang.db.nodes__name}</td>
-<td class="table-node-value">{$node.name|escape}</td>
+<td class="table-node-value">{$node.name}</td>
 </tr>
 <tr>
 <td class="table-node-key">{$lang.db.areas__name}</td>
-<td class="table-node-value">{$node.area_name|escape}</td>
+<td class="table-node-value">{$node.area_name}</td>
 </tr>
 <tr>
 <td class="table-node-key">{$lang.db.regions__name}</td>
-<td class="table-node-value">{$node.region_name|escape}</td>
+<td class="table-node-value">{$node.region_name}</td>
 </tr>
 <tr>
@@ -42,5 +42,5 @@
 <tr>
 <td class="table-node-key">{$lang.db.user_id_owner}</td>
-<td class="table-node-value">{$node.owner_username|escape} {include file="generic/link.tpl" onclick="javascript: t = window.open('$link_contact', 'contact', 'width=700,height=600,toolbar=0,resizable=1,scrollbars=1'); t.focus(); return false;" content=$lang.contact}</td>
+<td class="table-node-value">{$node.owner_username}</td>
 </tr>
 </table>
Index: /unk/templates/basic/includes/pages/nodes/nodes_contact_form_contact.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/nodes/nodes_contact_form_contact.tpl (revision 48)
+++  (revision )
@@ -1,36 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-<form name="{$extra_data.FORM_NAME}" method="post">
-<input type="hidden" name="query_string" value="{$hidden_qs}" />
-<input type="hidden" name="form_name" value="{$extra_data.FORM_NAME}" />
-<table class="table-form">
-	<tr class="table-form-row1"><td class="table-form-title">{$lang.from}:</td><td class="table-form-field">{$extra_data.from_username|escape} &lt;{$extra_data.from_email|escape}&gt;</td></tr>
-<tr class="table-form-row2"><td class="table-form-title">{$lang.to}:</td><td class="table-form-field">
-		<select class="fld-form-input" name="email_to_type">
-			<option value="all">{$lang.mailto_all}</option>
-			<option value="owner">{$lang.mailto_owner}</option>
-		</select>
-</td></tr>
-<tr class="table-form-row1"><td class="table-form-title">{$lang.subject}:</td><td  class="table-form-field"><input class="fld-form-input" type="text" name="email_subject" /></td></tr>
-<tr class="table-form-row2"><td class="table-form-title">{$lang.body}:</td><td  class="table-form-field"><textarea class="fld-form-input" name ="email_body"></textarea></td></tr>
-<tr><td  class="table-form-submit" colspan="2"><input class="fld-form-submit" type="submit" name="submit" value="{$lang.send}" /></td></tr>
-</table>
-</form>
Index: /unk/templates/basic/includes/pages/nodes/nodes_contact.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/nodes/nodes_contact.tpl (revision 49)
+++  (revision )
@@ -1,29 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{include assign=help file=generic/help.tpl help=node_contact}
-{include file=generic/page-title.tpl title="`$lang.contact`" right="$help"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.contact_node` $node_name (#$node_id)"|escape content=$form_contact}
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/nodes/nodes_plot_link.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/nodes/nodes_plot_link.tpl (revision 146)
+++  (revision )
@@ -1,90 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-<table cellpadding="0" cellspacing="0" class="table-main">
-	<tr>
-		<td>
-			{include file=generic/page-title.tpl title="`$lang.nodes_plot_link`"}
-		</td>
-	</tr>
-	<tr>
-		<td height="100%">
-			<script language="JavaScript" type="text/javascript" src="{$js_dir}pickup.js"></script>
-			<form style="height:100%;" name="form_nodes_plot_link" method="post" action="?">
-			<input type="hidden" name="query_string" value="{$hidden_qs}" />
-			<table cellpadding="4" cellspacing="0" class="plot-link-table">
-				<tr>
-					<td width="25%" align="left">
-						{include file=generic/link.tpl content="`$lang.change`" onclick="javascript: t = window.open('?page=pickup&subpage=nodes&object=form_nodes_plot_link.a_node', 'popup_pickup', 'width=700,height=600,toolbar=0,resizable=1,scrollbars=1'); t.focus(); return false;"}
-						<br />
-						<input type="hidden" name="a_node" value="{$a_node}" />
-						<input class="fld-form-input-pickup" type="text" disabled="disabled" name="a_node_output" value="{$a_node_output|escape}" />
-					</td>
-					<td width="50%" align="center">
-						<input class="fld-form-submit" type="submit" name="submitbutton" value="{$lang.submit}" />
-					</td>
-					<td width="25%" align="right">
-						{include file=generic/link.tpl content="`$lang.change`" onclick="javascript: t = window.open('?page=pickup&subpage=nodes&object=form_nodes_plot_link.b_node', 'popup_pickup', 'width=700,height=600,toolbar=0,resizable=1,scrollbars=1'); t.focus(); return false;"}
-						<br />
-						<input type="hidden" name="b_node" value="{$b_node}" />
-						<input style="text-align:right;" class="fld-form-input-pickup" type="text" disabled="disabled" name="b_node_output" value="{$b_node_output|escape}" />
-					</td>
-				</tr>
-				{if $a_node != '' && $b_node != ''}
-				<tr>
-					<td align="left">
-						{$lang.azimuth}: {$a_node_azimuth|round:2}&#176;<br />
-						{$lang.elevation}: {$a_node_geo_elevation|round:0} (+{$a_node_elevation|round:0}) m<br />
-						{$lang.tilt}: {$a_node_tilt|round:2}&#176;
-					</td>
-					<td align="center">
-						<--- {$lang.distance}: {$distance|round:3} km ---><br />
-						<span style="color: brown;">
-							{$lang.fsl}:<br />
-							{$fsl|round:2} dBm @ 
-							<select name="frequency" onchange="this.form.submit();" style="font-size: 10px;">
-								<option value="2450"{if $frequency == 2450} selected="selected"{/if}>2450</option>
-								<option value="5500"{if $frequency == 5500} selected="selected"{/if}>5500</option>
-							</select>
-	 						MHz
-						</span>
-					</td>
-					<td align="right">
-						{$lang.azimuth}: {$b_node_azimuth|round:2}&#176;<br />
-						{$lang.elevation}: {$b_node_geo_elevation|round:0} (+{$b_node_elevation|round:0}) m<br />
-						{$lang.tilt}: {$b_node_tilt|round:2}&#176;
-					</td>
-				</tr>
-				<tr>
-					<td height="100%" colspan="3" align="center"><img src="{$plot_image}&amp;width=570&amp;height=250" width="570" height="250" /></td>
-				</tr>
-				<tr>
-					<td colspan="3" align="right">{include file=generic/link.tpl content="`$lang.google_earth`" link="$gearth"}</td>
-				</tr>
-				{else}
-				<tr>
-					<td height="100%" colspan="3" align="center">{$lang.nodes_plot_link_info|wordwrap:40:"<br />"}</td>
-				</tr>
-				{/if}
-			</table>
-			</form>
-		</td>
-	</tr>
-</table>
Index: /unk/templates/basic/includes/pages/nodes/nodes_view_table_links_ap.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/nodes/nodes_view_table_links_ap.tpl (revision 48)
+++  (revision )
@@ -1,82 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-<table border="0" cellspacing="0" cellpadding="0" class="table-d1">
-<tr>
-<td rowspan="2" class="table-d1-side">&nbsp;</td>
-<td class="table-d1-title-text" >{assign var=t value="links__type-"|cat:$data.1.links__type}{$lang.db.$t} [ {$data.1.links__ssid|escape} ]</td>
-<td rowspan="2" class="table-d1-side2">&nbsp;</td>
-</tr>
-<tr>
-<td class="table-d1-text1">
-		<table border="0" cellpadding="0" cellspacing="6" class="table-form">
-		<tr class="table-form-row1">
-		<td class="table-node-link-info"><img src="{$img_dir}node.gif" width="32" height="32" alt="{$lang.db.peer}" /></td>
-		<td class="table-node-link-info" width="33%">
-
-<table class="table-form">
-<tr>
-	<td class="table-node-key2">{$lang.db.links__type}</td>
-	<td class="table-node-value2">{assign var=t value="links__type-"|cat:$data.1.links__type}{$lang.db.$t}</td>
-</tr>
-<tr>
-	<td class="table-node-key2">{$lang.db.links__status}</td>
-	<td class="{if $data.1.links__status == 'active'}link-up{else}link-down{/if}">{assign var=t value="links__status-"|cat:$data.1.links__status}{$lang.db.$t}</td>
-</tr>
-<tr>
-	<td class="table-node-key2">{$lang.db.links__date_in}</td>
-	<td class="table-node-value2">{$data.1.links__date_in|date_format:"%x"}</td>
-</tr>
-<tr>
-	<td class="table-node-key2">{$lang.db.links__protocol}</td>
-	<td class="table-node-value2">{$data.1.links__protocol|escape}</td>
-</tr>
-<tr>
-	<td class="table-node-key2">{$lang.db.links__ssid}</td>
-	<td class="table-node-value2">{$data.1.links__ssid|escape}</td>
-</tr>
-<tr>
-	<td class="table-node-key2">{$lang.db.links__channel}</td>
-	<td class="table-node-value2">{$data.1.links__channel|escape}</td>
-</tr>
-<tr>
-	<td class="table-node-key2">{$lang.db.links__equipment}</td>
-	<td class="table-node-value2">{$data.1.links__equipment|escape|nl2br}</td>
-</tr>
-</table>
-		</td>
-		<td class="table-node-link-info" width="33%">
-		<table class="table-form">
-		<tr><td colspan="2" class="table-node-key2">{$lang.clients}</td></tr>
-		{if $data.1.c_node_id != ''}
-			{section name=c loop=$data start=1}
-				<tr><td class="table-node-value2"><a href="{$extra_data.EDIT[c]}">{$data[c].c_node_name|escape} (#{$data[c].c_node_id})</a></td><td class="{if $data[c].c_status == 'active'}link-up{else}link-down{/if}">{assign var=t value="links__status-"|cat:$data[c].c_status}{$lang.db.$t}</td></tr>
-			{/section}
-		{/if}
-		</table>
-		</td>
-		<td class="table-node-link-info" width="33%" height="100%">
-		{include file="generic/title4.tpl" title="`$lang.db.links__info`" content="`$data.1.links__info`"|escape|nl2br}
-		</td>
-		</tr>
-		</table>
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/nodes/nodes_view_table_services.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/nodes/nodes_view_table_services.tpl (revision 151)
+++  (revision )
@@ -1,21 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{include file="constructors/table2.tpl"}
Index: /trunk/templates/basic/includes/pages/hostmaster/hostmaster_range_form_range.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/hostmaster/hostmaster_range_form_range.tpl (revision 132)
+++ /trunk/templates/basic/includes/pages/hostmaster/hostmaster_range_form_range.tpl (revision 1)
@@ -26,10 +26,10 @@
 	{section loop=$data[3].Type_Enums name=e}
 		{assign var="lng" value=$data[3].Type_Enums[e].value}
-		arr_s[{$smarty.section.e.index}] = '{$lang.email.range.$lng.subject|replace:"##range##":"`$data.0.value` - `$data.1.value`"|replace:"\r":"\\r"|replace:"\n":"\\n"|escape:"quotes"}'
+		arr_s[{$smarty.section.e.index}] = '{$lang.email.range.$lng.subject|replace:"##range##":"`$data.0.value` - `$data.1.value`"}'
 	{/section}
 	var arr_b = new Array()
 	{section loop=$data[3].Type_Enums name=e}
 		{assign var="lng" value=$data[3].Type_Enums[e].value}
-		arr_b[{$smarty.section.e.index}] = '{$lang.email.range.$lng.body|replace:"##range##":"`$data.0.value` - `$data.1.value`"|replace:"##node_name##":"`$extra_data.node_name`"|replace:"##node_id##":"`$extra_data.node_id`"|replace:"##hostmaster_username##":"`$extra_data.hostmaster_username`"|replace:"##hostmaster_name##":"`$extra_data.hostmaster_name`"|replace:"##hostmaster_surname##":"`$extra_data.hostmaster_surname`"|replace:"\r":"\\r"|replace:"\n":"\\n"|escape:"quotes"}'
+		arr_b[{$smarty.section.e.index}] = '{$lang.email.range.$lng.body|replace:"##range##":"`$data.0.value` - `$data.1.value`"|replace:"##node_name##":"`$extra_data.node_name`"|replace:"##node_id##":"`$extra_data.node_id`"}'
 	{/section}
 	document.{$extra_data.FORM_NAME}.email_subject.value = arr_s[document.{$extra_data.FORM_NAME}.{$data[3].fullField}.selectedIndex]
@@ -71,9 +71,9 @@
 <input type="hidden" name="form_name" value="{$extra_data.FORM_NAME}" />
 <table class="table-form">
-	<tr class="table-form-row1"><td class="table-form-title">{$lang.db[$data.0.fullField]}{if $data.0.Null != 'YES'}*{/if}:</td><td class="table-form-field"><input class="fld-form-input" name="{$data.0.fullField}" type="text" value="{$data.0.value|escape}" /></td></tr>
+	<tr class="table-form-row1"><td class="table-form-title">{$lang.db[$data.0.fullField]}{if $data.0.Null != 'YES'}*{/if}:</td><td class="table-form-field"><input class="fld-form-input" name="{$data.0.fullField}" type="text" value="{$data.0.value}" /></td></tr>
 
-	<tr class="table-form-row2"><td class="table-form-title">{$lang.db[$data.1.fullField]}{if $data.1.Null != 'YES'}*{/if}:</td><td class="table-form-field"><input class="fld-form-input" name="{$data.1.fullField}" type="text" value="{$data.1.value|escape}" /></td></tr>
+	<tr class="table-form-row2"><td class="table-form-title">{$lang.db[$data.1.fullField]}{if $data.1.Null != 'YES'}*{/if}:</td><td class="table-form-field"><input class="fld-form-input" name="{$data.1.fullField}" type="text" value="{$data.1.value}" /></td></tr>
 
-	<tr class="table-form-row1"><td class="table-form-title">{$lang.db[$data.2.fullField]}{if $data.2.Null != 'YES'}*{/if}:</td><td class="table-form-field"><textarea class="fld-form-input" name="{$data.2.fullField}">{$data.2.value|escape}</textarea></td></tr>
+	<tr class="table-form-row1"><td class="table-form-title">{$lang.db[$data.2.fullField]}{if $data.2.Null != 'YES'}*{/if}:</td><td class="table-form-field"><textarea class="fld-form-input" name="{$data.2.fullField}">{$data.2.value}</textarea></td></tr>
 
 	<tr class="table-form-row2"><td class="table-form-title">{$lang.db[$data.3.fullField]}{if $data[3].Null != 'YES'}*{/if}:</td>
@@ -81,5 +81,5 @@
 		<select class="fld-form-input" name="{$data[3].fullField}" onchange="status_changed()">
 			{section loop=$data[3].Type_Enums name=e}
-			<option value="{$data[3].Type_Enums[e].value|escape}"{if $data[3].Type_Enums[e].value == $data[3].value} selected="selected"{/if}>{include file=constructors/form_enum.tpl fullField=$data.3.fullField value=$data[3].Type_Enums[e].output}</option>
+			<option value="{$data[3].Type_Enums[e].value}"{if $data[3].Type_Enums[e].value == $data[3].value} selected="selected"{/if}>{include file=constructors/form_enum.tpl fullField=$data.3.fullField value=$data[3].Type_Enums[e].output}</option>
 			{/section}
 		</select>
@@ -95,5 +95,5 @@
 <tr class="table-form-row1"><td class="table-form-title">{$lang.subject}:</td><td class="table-form-field"><input class="fld-form-input" type="text" name="email_subject" disabled="disabled" /></td></tr>
 <tr class="table-form-row2"><td class="table-form-title"s>{$lang.body}:</td><td class="table-form-field"><textarea class="fld-form-input" name ="email_body" disabled="disabled"></textarea></td></tr>
-<tr><td  class="table-form-submit" colspan="2"><input class="fld-form-submit" type="submit" name="submit" value="{$lang.submit}" /></td></tr>
+<tr><td  class="table-form-submit" colspan="2"><input class="fld-form-submit" type="submit" name="submit" value="OK" /></td></tr>
 </table>
 </form>
Index: /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnsnameserver.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnsnameserver.tpl (revision 148)
+++ /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnsnameserver.tpl (revision 1)
@@ -23,26 +23,5 @@
 <tr>
 <td class="table-page-pad">
-{include assign=nameserver_delete file=generic/link.tpl content="`$lang.delete`" link=$link_nameserver_delete confirm=TRUE}
-{include file=generic/title1.tpl title="`$lang.nameserver_edit`" right="$nameserver_delete" content=$form_nameserver}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.node_info`" content=$table_node_info}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.users_info`" content=$table_user_info}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.links`" content=$table_links}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.dns_zones`" content=$table_dns}
+{include file=generic/title2.tpl title="`$lang.nameserver_edit`" content=$form_nameserver}
 </td>
 </tr>
Index: /trunk/templates/basic/includes/pages/hostmaster/hostmaster_range.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/hostmaster/hostmaster_range.tpl (revision 148)
+++ /trunk/templates/basic/includes/pages/hostmaster/hostmaster_range.tpl (revision 1)
@@ -23,26 +23,5 @@
 <tr>
 <td class="table-page-pad">
-{include assign=range_delete file=generic/link.tpl content="`$lang.delete`" link=$link_range_delete confirm=TRUE}
-{include file=generic/title1.tpl title="`$lang.ip_range_edit`" right="$range_delete" content=$form_range}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.node_info`" content=$table_node_info}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.users_info`" content=$table_user_info}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.links`" content=$table_links}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.ip_ranges`" content=$table_ip_ranges}
+{include file=generic/title2.tpl title="`$lang.ip_range_edit`" content=$form_range}
 </td>
 </tr>
Index: /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnszone_form_zone.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnszone_form_zone.tpl (revision 132)
+++ /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnszone_form_zone.tpl (revision 1)
@@ -26,10 +26,10 @@
 	{section loop=$data[3].Type_Enums name=e}
 		{assign var="lng" value=$data[3].Type_Enums[e].value}
-		arr_s[{$smarty.section.e.index}] = '{$lang.email.zone.$lng.subject|replace:"##zone##":"`$data.0.value`"|replace:"\r":"\\r"|replace:"\n":"\\n"|escape:"quotes"}'
+		arr_s[{$smarty.section.e.index}] = '{$lang.email.zone.$lng.subject|replace:"##zone##":"`$data.0.value`"}'
 	{/section}
 	var arr_b = new Array()
 	{section loop=$data[3].Type_Enums name=e}
 		{assign var="lng" value=$data[3].Type_Enums[e].value}
-		arr_b[{$smarty.section.e.index}] = '{$lang.email.zone.$lng.body|replace:"##zone##":"`$data.0.value`"|replace:"##node_name##":"`$extra_data.node_name`"|replace:"##node_id##":"`$extra_data.node_id`"|replace:"##hostmaster_username##":"`$extra_data.hostmaster_username`"|replace:"##hostmaster_name##":"`$extra_data.hostmaster_name`"|replace:"##hostmaster_surname##":"`$extra_data.hostmaster_surname`"|replace:"\r":"\\r"|replace:"\n":"\\n"|escape:"quotes"}'
+		arr_b[{$smarty.section.e.index}] = '{$lang.email.zone.$lng.body|replace:"##zone##":"`$data.0.value`"|replace:"##node_name##":"`$extra_data.node_name`"|replace:"##node_id##":"`$extra_data.node_id`"}'
 	{/section}
 	document.{$extra_data.FORM_NAME}.email_subject.value = arr_s[document.{$extra_data.FORM_NAME}.{$data[3].fullField}.selectedIndex]
@@ -67,26 +67,21 @@
 </script>
 {/literal}
-<script language="JavaScript" type="text/javascript" src="{$js_dir}pickup.js"></script>
 <form name="{$extra_data.FORM_NAME}" method="post">
 <input type="hidden" name="query_string" value="{$hidden_qs}" />
 <input type="hidden" name="form_name" value="{$extra_data.FORM_NAME}" />
 <table class="table-form">
-	<tr class="table-form-row1"><td class="table-form-title">{$lang.db[$data.0.fullField]}{if $data.0.Null != 'YES'}*{/if}:</td><td class="table-form-field"><input class="fld-form-input" name="{$data.0.fullField}" type="text" value="{$data.0.value|escape}" /></td></tr>
+	<tr class="table-form-row1"><td class="table-form-title">{$lang.db[$data.0.fullField]}{if $data.0.Null != 'YES'}*{/if}:</td><td class="table-form-field"><input class="fld-form-input"name="{$data.0.fullField}" type="text" value="{$data.0.value}" /></td></tr>
 
-	<tr class="table-form-row2"><td class="table-form-title">{$lang.db[$data.1.fullField]}{if $data.1.Null != 'YES'}*{/if}:</td><td class="table-form-field"><textarea class="fld-form-input" name="{$data.1.fullField}">{$data.1.value|escape}</textarea></td></tr>
+	<tr class="table-form-row2"><td class="table-form-title">{$lang.db[$data.1.fullField]}{if $data.1.Null != 'YES'}*{/if}:</td><td class="table-form-field"><textarea class="fld-form-input" name="{$data.1.fullField}">{$data.1.value}</textarea></td></tr>
 
-	<tr class="table-form-row1">
-	<td class="table-form-title">{$lang.db[$data.2.fullField]}{if $data[2].Null != 'YES'}*{/if}:</td>
-	<td class="table-form-field" >
-		<select class="fld-form-input" name="{$data.2.fullField}[]" size="5" multiple="multiple">
-			{section loop=$data.2.Type_Pickup name=e}
-			{assign var="value" value=$data.2.Type_Pickup[e].value}
-			<option value="{$data.2.Type_Pickup[e].value|escape}" selected="selected">{include file=constructors/form_enum.tpl fullField=$fullField value=$data.2.Type_Pickup[e].output}</option>
+	<tr class="table-form-row1"><td class="table-form-title">{$lang.db[$data.2.fullField]}{if $data[2].Null != 'YES'}*{/if}:</td>
+	<td class="table-form-field">
+		<select class="fld-form-input" name="{$data[2].fullField}[]" size="5" multiple="multiple">
+			{section loop=$data[2].Type_Enums name=e}
+			{assign var="value" value=$data[2].Type_Enums[e].value}
+			<option value="{$data[2].Type_Enums[e].value}"{if $data[2].value.$value == 'YES'} selected="selected"{/if}>{$data[2].Type_Enums[e].output}</option>
 			{/section}
 		</select>
-		{include file=generic/link.tpl content="`$lang.add`" onclick="javascript: t = window.open('`$data.2.Pickup_url`', 'popup_pickup', 'width=700,height=600,toolbar=0,resizable=1,scrollbars=1'); t.focus(); return false;"}
-		{include file=generic/link.tpl content="`$lang.remove`" onclick="javascript: remove_selected(window.document.`$extra_data.FORM_NAME`.elements['`$data.2.fullField`[]']); return false;"}
-	</td>	
-	</tr>
+	</td></tr>
 		
 	<tr class="table-form-row2"><td class="table-form-title">{$lang.db[$data.3.fullField]}{if $data[d].Null != 'YES'}*{/if}:</td>
@@ -94,5 +89,5 @@
 		<select class="fld-form-input" name="{$data[3].fullField}" onchange="status_changed()">
 			{section loop=$data[3].Type_Enums name=e}
-			<option value="{$data[3].Type_Enums[e].value|escape}"{if $data[3].Type_Enums[e].value == $data[3].value} selected="selected"{/if}>{include file=constructors/form_enum.tpl fullField=$data.3.fullField value=$data[3].Type_Enums[e].output}</option>
+			<option value="{$data[3].Type_Enums[e].value}"{if $data[3].Type_Enums[e].value == $data[3].value} selected="selected"{/if}>{include file=constructors/form_enum.tpl fullField=$data.3.fullField value=$data[3].Type_Enums[e].output}</option>
 			{/section}
 		</select>
@@ -108,5 +103,5 @@
 <tr class="table-form-row1"><td class="table-form-title">{$lang.subject}:</td><td  class="table-form-field"><input class="fld-form-input" type="text" name="email_subject" disabled="disabled" /></td></tr>
 <tr class="table-form-row2"><td class="table-form-title">{$lang.body}:</td><td  class="table-form-field"><textarea class="fld-form-input" name ="email_body" disabled="disabled"></textarea></td></tr>
-<tr><td  class="table-form-submit" colspan="2"><input class="fld-form-submit" type="submit" name="submit" value="{$lang.submit}" /></td></tr>
+<tr><td  class="table-form-submit" colspan="2"><input class="fld-form-submit" type="submit" name="submit" value="OK" /></td></tr>
 </table>
 </form>
Index: /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnszone.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnszone.tpl (revision 148)
+++ /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnszone.tpl (revision 1)
@@ -23,31 +23,5 @@
 <tr>
 <td class="table-page-pad">
-{include assign=dnszone_delete file=generic/link.tpl content="`$lang.delete`" link=$link_dnszone_delete confirm=TRUE}
-{include file=generic/title1.tpl title="`$lang.dnszone_edit`" right="$dnszone_delete" content=$form_zone}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.node_info`" content=$table_node_info}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.users_info`" content=$table_user_info}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.links`" content=$table_links}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.ip_ranges`" content=$table_ip_ranges}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.dns_zones`" content=$table_dns}
+{include file=generic/title1.tpl title="`$lang.dnszone_edit`" content=$form_zone}
 </td>
 </tr>
Index: /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnszones.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnszones.tpl (revision 25)
+++ /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnszones.tpl (revision 1)
@@ -19,6 +19,5 @@
  *
  *}
-{include assign="t1" file="generic/link.tpl" link=$link_schema content="`$lang.db.schema`"}
-{include file=generic/page-title.tpl title="`$lang.hostmaster_panel` > `$lang.dns_zones` $t1"}
+{include file=generic/page-title.tpl title="`$lang.hostmaster_panel` > `$lang.dns_zones`"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
Index: /unk/templates/basic/includes/pages/hostmaster/hostmaster_dnszones_schema.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/hostmaster/hostmaster_dnszones_schema.tpl (revision 25)
+++  (revision )
@@ -1,33 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{include file=generic/page-title.tpl title="`$lang.hostmaster_panel` > `$lang.dns_zones` (`$lang.db.schema`)"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.zone_forward`" content=$form_zone_forward}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.zone_reverse`" content=$form_zone_reverse}
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/pickup/pickup_nodes.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/pickup/pickup_nodes.tpl (revision 4)
+++  (revision )
@@ -1,33 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{include file=generic/page-title.tpl title="`$lang.nodes`"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.nodes_search`" content=$form_search_nodes}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title2.tpl title="`$lang.nodes_found`" content=$table_nodes}
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/pickup/pickup_dns_nameservers.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/pickup/pickup_dns_nameservers.tpl (revision 10)
+++  (revision )
@@ -1,33 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{include file=generic/page-title.tpl title="`$lang.nodes`"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.dns_nameservers_search`" content=$form_search_nameservers}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title2.tpl title="`$lang.dns_nameservers_found`" content=$table_nameservers}
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/pickup/pickup_links_ap.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/pickup/pickup_links_ap.tpl (revision 4)
+++  (revision )
@@ -1,33 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-{include file=generic/page-title.tpl title="`$lang.aps`"}
-<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
-<tr>
-<td class="table-page-pad">
-{include file=generic/title1.tpl title="`$lang.aps_search`" content=$form_search_links_ap}
-</td>
-</tr>
-<tr>
-<td class="table-page-pad">
-{include file=generic/title2.tpl title="`$lang.aps_found`" content=$table_links_ap}
-</td>
-</tr>
-</table>
Index: /unk/templates/basic/includes/pages/pickup/pickup_gmap.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/pickup/pickup_gmap.tpl (revision 55)
+++  (revision )
@@ -1,33 +1,0 @@
-{*
- * WiND - Wireless Nodes Database
- * Basic HTML Template
- *
- * Copyright (C) 2005 Konstantinos Papadimitriou <vinilios@cube.gr>
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 dated June, 1991.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- *}
-<table class="table-main" cellpadding="0" cellspacing="0"><tr><td>
-{include file=generic/page-title.tpl title="`$lang.find_coordinates`"}
-</td></tr><tr style="height: 100%"><td>
-<table class="table-main" cellpadding="0" cellspacing="0"><tr><td style="font-size:12px; text-align:center; width: 100%; height: 100%">
-{if $gmap_key_ok}
-<div id="map" style="width: 100%; height: 100%"></div>
-{else}
-{$lang.message.error.gmap_key_failed.body|wordwrap:40|nl2br}
-{/if}
-</td></tr>
-</table>
-</td></tr>
-</table>
Index: /trunk/templates/basic/includes/pages/mynodes/mynodes_ipaddr.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/mynodes/mynodes_ipaddr.tpl (revision 24)
+++ /trunk/templates/basic/includes/pages/mynodes/mynodes_ipaddr.tpl (revision 1)
@@ -19,7 +19,6 @@
  *
  *}
-{include assign=help file=generic/help.tpl help="mynodes_ipaddr_`$ip_address_method`"}
 {assign var=t value="ip_address_`$ip_address_method`"}
-{include file=generic/page-title.tpl title="`$lang.$t`" right="$help"}
+{include file=generic/page-title.tpl title="`$lang.$t`"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
Index: /trunk/templates/basic/includes/pages/mynodes/mynodes_subnet_form_subnet.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/mynodes/mynodes_subnet_form_subnet.tpl (revision 141)
+++ /trunk/templates/basic/includes/pages/mynodes/mynodes_subnet_form_subnet.tpl (revision 1)
@@ -26,34 +26,25 @@
 	switch (form.subnets__type.value) {
 		case 'local':
-		form.subnets__link_id.value = ''
-		form.subnets__link_id.disabled = true
-		form.subnets__client_node_id.value = ''
-		form.subnets__client_node_id.disabled = true
-		t.rows[3].style.display = "none"
-		t.rows[4].style.display = "none"
-		break
+			form.subnets__link_id.value = ''
+			form.subnets__link_id.disabled = true
+			form.subnets__client_node_id.value = ''
+			form.subnets__client_node_id.disabled = true
+			t.rows[3].style.display = "none"
+			t.rows[4].style.display = "none"
+			break
 		case 'link':
-		form.subnets__link_id.disabled = false
-		form.subnets__client_node_id.value = ''
-		form.subnets__client_node_id.disabled = true
-		try {
-			t.rows[3].style.display = 'table-row';
-		} catch(e) {
-			t.rows[3].style.display = 'block';
-		}
-
-		t.rows[4].style.display = "none"
-		break
+			form.subnets__link_id.disabled = false
+			form.subnets__client_node_id.value = ''
+			form.subnets__client_node_id.disabled = true
+			t.rows[3].style.display = "block"
+			t.rows[4].style.display = "none"
+			break
 		case 'client':
-		form.subnets__link_id.value = ''
-		form.subnets__link_id.disabled = true
-		form.subnets__client_node_id.disabled = false
-		t.rows[3].style.display = "none"
-		try {
-			t.rows[4].style.display = 'table-row';
-		} catch(e) {
-			t.rows[4].style.display = 'block';
-		}
-		break
+			form.subnets__link_id.value = ''
+			form.subnets__link_id.disabled = true
+			form.subnets__client_node_id.disabled = false
+			t.rows[3].style.display = "none"
+			t.rows[4].style.display = "block"
+			break
 	}
 }
@@ -64,52 +55,38 @@
 <input type="hidden" name="form_name" value="{$extra_data.FORM_NAME}" />
 <table class="table-form" id="{$extra_data.FORM_NAME}_t">
-		<tr class="table-form-row1">
-			<td class="table-form-title">{$lang.db[$data.0.fullField]}{if $data[0].Null != 'YES'}*{/if}:</td>
-			<td class="table-form-field"><input class="fld-form-input" name="{$data[0].fullField}" type="text" value="{$data[0].value|escape}" /></td>
-		</tr>
-		<tr class="table-form-row2">
-			<td class="table-form-title">{$lang.db[$data.1.fullField]}{if $data[1].Null != 'YES'}*{/if}:</td>
-			<td class="table-form-field"><input class="fld-form-input" name="{$data[1].fullField}" type="text" value="{$data[1].value|escape}" /></td>
-		</tr>
+		<tr class="table-form-row1"><td class="table-form-title">{$lang.db[$data.0.fullField]}{if $data[0].Null != 'YES'}*{/if}:</td><td class="table-form-field"><input name="{$data[0].fullField}" type="text" value="{$data[0].value}" /></td></tr>
+		<tr class="table-form-row2"><td class="table-form-title">{$lang.db[$data.1.fullField]}{if $data[1].Null != 'YES'}*{/if}:</td><td class="table-form-field"><input name="{$data[1].fullField}" type="text" value="{$data[1].value}" /></td></tr>
 
-		<tr class="table-form-row1">
-			<td class="table-form-title">{$lang.db[$data.2.fullField]}{if $data[2].Null != 'YES'}*{/if}:</td>
-			<td class="table-form-field">
-				<select class="fld-form-input" name="{$data[2].fullField}" onchange="type_changed()">
-					{if $data[2].Null == 'YES'}<option value=""></option>{/if}
-					{section loop=$data[2].Type_Enums name=e}
-					<option value="{$data[2].Type_Enums[e].value|escape}"{if $data[2].Type_Enums[e].value == $data[2].value} selected="selected"{/if}>{include file=constructors/form_enum.tpl fullField=$data.2.fullField value=$data[2].Type_Enums[e].output}</option>
-					{/section}
-				</select>
-			</td>
-		</tr>	
+		<tr class="table-form-row1"><td class="table-form-title">{$lang.db[$data.2.fullField]}{if $data[2].Null != 'YES'}*{/if}:</td>
+		<td class="table-form-field">
+			<select name="{$data[2].fullField}" onchange="type_changed()">
+				{if $data[2].Null == 'YES'}<option value=""></option>{/if}
+				{section loop=$data[2].Type_Enums name=e}
+				<option value="{$data[2].Type_Enums[e].value}"{if $data[2].Type_Enums[e].value == $data[2].value} selected="selected"{/if}>{include file=constructors/form_enum.tpl fullField=$data.2.fullField value=$data[2].Type_Enums[e].output}</option>
+				{/section}
+			</select>
+		</td></tr>	
 
-		<tr class="table-form-row2">
-			<td class="table-form-title">{$lang.db[$data.3.fullField]}{if $data[3].Null != 'YES'}*{/if}:</td>
-			<td class="table-form-field">
-				<select class="fld-form-input" name="{$data[3].fullField}">
-					{if $data[3].Null == 'YES'}<option value=""></option>{/if}
-					{section loop=$data[3].Type_Enums name=e}
-					<option value="{$data[3].Type_Enums[e].value|escape}"{if $data[3].Type_Enums[e].value == $data[3].value} selected="selected"{/if}>{$data[3].Type_Enums[e].output|escape}</option>
-					{/section}
-				</select>
-			</td>
-		</tr>	
+		<tr class="table-form-row2"><td class="table-form-title">{$lang.db[$data.3.fullField]}{if $data[3].Null != 'YES'}*{/if}:</td>
+		<td class="table-form-field">
+			<select name="{$data[3].fullField}">
+				{if $data[3].Null == 'YES'}<option value=""></option>{/if}
+				{section loop=$data[3].Type_Enums name=e}
+				<option value="{$data[3].Type_Enums[e].value}"{if $data[3].Type_Enums[e].value == $data[3].value} selected="selected"{/if}>{$data[3].Type_Enums[e].output}</option>
+				{/section}
+			</select>
+		</td></tr>	
 
-		<tr class="table-form-row2">
-			<td class="table-form-title">{$lang.db[$data.4.fullField]}{if $data[4].Null != 'YES'}*{/if}:</td>
-			<td class="table-form-field">
-				<select class="fld-form-input" name="{$data[4].fullField}">
-					{if $data[4].Null == 'YES'}<option value=""></option>{/if}
-					{section loop=$data[4].Type_Enums name=e}
-					<option value="{$data[4].Type_Enums[e].value|escape}"{if $data[4].Type_Enums[e].value == $data[4].value} selected="selected"{/if}>{$data[4].Type_Enums[e].output|escape}</option>
-					{/section}
-				</select>
-			</td>
-		</tr>	
+		<tr class="table-form-row2"><td class="table-form-title">{$lang.db[$data.4.fullField]}{if $data[4].Null != 'YES'}*{/if}:</td>
+		<td class="table-form-field">
+			<select name="{$data[4].fullField}">
+				{if $data[4].Null == 'YES'}<option value=""></option>{/if}
+				{section loop=$data[4].Type_Enums name=e}
+				<option value="{$data[4].Type_Enums[e].value}"{if $data[4].Type_Enums[e].value == $data[4].value} selected="selected"{/if}>{$data[4].Type_Enums[e].output}</option>
+				{/section}
+			</select>
+		</td></tr>	
 
-		<tr>
-			<td class="table-form-submit" colspan="2"><input class="fld-form-submit" type="submit" name="submit" value="{$lang.submit}" /></td>
-		</tr>
+<tr><td colspan="2"><input type="submit" name="submit" value="OK" /></td></tr>
 </table>
 </form>
Index: /trunk/templates/basic/includes/pages/mynodes/mynodes_dnsnameserver.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/mynodes/mynodes_dnsnameserver.tpl (revision 24)
+++ /trunk/templates/basic/includes/pages/mynodes/mynodes_dnsnameserver.tpl (revision 1)
@@ -19,7 +19,6 @@
  *
  *}
-{include assign=help file=generic/help.tpl help="mynodes_dnsnameserver_`$nameserver_method`"}
 {assign var=t value="nameserver_`$nameserver_method`"}
-{include file=generic/page-title.tpl title="`$lang.$t`" right="$help"}
+{include file=generic/page-title.tpl title="`$lang.$t`"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
Index: /trunk/templates/basic/includes/pages/mynodes/mynodes_range.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/mynodes/mynodes_range.tpl (revision 49)
+++ /trunk/templates/basic/includes/pages/mynodes/mynodes_range.tpl (revision 1)
@@ -19,10 +19,9 @@
  *
  *}
-{include assign=help file=generic/help.tpl help=mynodes_range}
-{include file=generic/page-title.tpl title="`$lang.ip_range_request`" right="$help"}
+{include file=generic/page-title.tpl title="`$lang.ip_range_request`"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
 <td class="table-page-pad">
-{include file=generic/title2.tpl title="`$lang.ip_range_request_for_node` $node_name (#$node_id)"|escape content=$form_getrange}
+{include file=generic/title2.tpl title="`$lang.ip_range_request_for_node` $node_name (#$node_id)" content=$form_getrange}
 </td>
 </tr>
Index: /trunk/templates/basic/includes/pages/mynodes/mynodes_link.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/mynodes/mynodes_link.tpl (revision 24)
+++ /trunk/templates/basic/includes/pages/mynodes/mynodes_link.tpl (revision 1)
@@ -19,7 +19,6 @@
  *
  *}
-{include assign=help file=generic/help.tpl help="mynodes_link_`$link_method`"}
 {assign var=t value="link_`$link_method`"}
-{include file=generic/page-title.tpl title="`$lang.$t`" right="$help"}
+{include file=generic/page-title.tpl title="`$lang.$t`"}
 <table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table-page">
 <tr>
Index: /trunk/templates/basic/includes/pages/mynodes/mynodes_link_form_link.tpl
===================================================================
--- /trunk/templates/basic/includes/pages/mynodes/mynodes_link_form_link.tpl (revision 142)
+++ /trunk/templates/basic/includes/pages/mynodes/mynodes_link_form_link.tpl (revision 1)
@@ -32,19 +32,9 @@
 			form.links__ssid.disabled = false
 			form.links__channel.disabled = false
-			try {
-				t.rows[1].style.display = 'table-row';
-			} catch(e) {
-				t.rows[1].style.display = 'block';
-			}
+			t.rows[1].style.display = "block"
 			t.rows[2].style.display = "none"
-			try {
-				t.rows[3].style.display = 'table-row';
-				t.rows[4].style.display = 'table-row';
-				t.rows[5].style.display = 'table-row';
-			} catch(e) {
-				t.rows[3].style.display = 'block';
-				t.rows[4].style.display = 'block';
-				t.rows[5].style.display = 'block';
-			}
+			t.rows[3].style.display = "block"
+			t.rows[4].style.display = "block"
+			t.rows[5].style.display = "block"
 			break
 		case 'ap':
@@ -58,13 +48,7 @@
 			t.rows[1].style.display = "none"
 			t.rows[2].style.display = "none"
-			try {
-				t.rows[3].style.display = 'table-row';
-				t.rows[4].style.display = 'table-row';
-				t.rows[5].style.display = 'table-row';
-			} catch(e) {
-				t.rows[3].style.display = 'block';
-				t.rows[4].style.display = 'block';
-				t.rows[5].style.display = 'block';
-			}
+			t.rows[3].style.display = "block"
+			t.rows[4].style.display = "block"
+			t.rows[5].style.display = "block"
 			break
 		case 'client':
@@ -78,9 +62,5 @@
 			form.links__channel.value = ''
 			t.rows[1].style.display = "none"
-			try {
-				t.rows[2].style.display = 'table-row';
-			} catch(e) {
-				t.rows[2].style.display = "block";
-			}
+			t.rows[2].style.display = "block"
 			t.rows[3].style.display = "none"
 			t.rows[4].style.display = "none"
@@ -91,65 +71,62 @@
 </script>
 {/literal}
-<script language="JavaScript" type="text/javascript" src="{$js_dir}pickup.js"></script>
 <form name="{$extra_data.FORM_NAME}" method="post" action="?">
 <input type="hidden" name="query_string" value="{$hidden_qs}" />
 <input type="hidden" name="form_name" value="{$extra_data.FORM_NAME}" />
 <table class="table-form" id="{$extra_data.FORM_NAME}_t">
-		<tr class="table-form-row1">
-		<td class="table-form-title">{$lang.db[$data.0.fullField]}{if $data[0].Null != 'YES'}*{/if}:</td>
+		<tr class="table-form-row1"><td class="table-form-title">{$lang.db[$data.0.fullField]}{if $data[0].Null != 'YES'}*{/if}:</td>
 		<td class="table-form-field">
-			<select class="fld-form-input" name="{$data[0].fullField}" onchange="type_changed()">
+			<select name="{$data[0].fullField}" onchange="type_changed()">
 				{if $data[0].Null == 'YES'}<option value=""></option>{/if}
 				{section loop=$data[0].Type_Enums name=e}
-				<option value="{$data[0].Type_Enums[e].value|escape}"{if $data[0].Type_Enums[e].value == $data[0].value} selected="selected"{/if}>{include file=constructors/form_enum.tpl fullField=$data.0.fullField value=$data[0].Type_Enums[e].output}</option>
+				<option value="{$data[0].Type_Enums[e].value}"{if $data[0].Type_Enums[e].value == $data[0].value} selected="selected"{/if}>{include file=constructors/form_enum.tpl fullField=$data.0.fullField value=$data[0].Type_Enums[e].output}</option>
 				{/section}
 			</select>
-		</td>
-		</tr>	
-		<tr class="table-form-row2">
-		<td class="table-form-title">{$lang.db[$data.1.fullField]}{if $data[1].Null != 'YES'}*{/if}:</td>
+		</td></tr>	
+		<tr class="table-form-row2"><td class="table-form-title">{$lang.db[$data.1.fullField]}{if $data[1].Null != 'YES'}*{/if}:</td>
 		<td class="table-form-field">
-			<input type="hidden" name="{$data[1].fullField}" value="{$data[1].Type_Pickup.value|escape}" />
-			<input type="text" disabled="disabled" class="fld-form-input-pickup" name="{$data[1].fullField}_output" value="{$data[1].Type_Pickup.output|escape}" />
-			{include file=generic/link.tpl content="`$lang.change`" onclick="javascript: t = window.open('`$data[1].Pickup_url`', 'popup_pickup', 'width=700,height=600,toolbar=0,resizable=1,scrollbars=1'); t.focus(); return false;"}
-			{if $data[1].Null == 'YES'}{include file=generic/link.tpl content="`$lang.delete`" onclick="javascript: `$data[1].fullField`.value = ''; `$data[1].fullField`_output.innerText = ''; return false;"}{/if}
-		</td>	
-		</tr>	
-		<tr class="table-form-row2">
-		<td class="table-form-title">{$lang.db[$data.2.fullField]}{if $data[2].Null != 'YES'}*{/if}:</td>
+			<select name="{$data[1].fullField}">
+				{if $data[1].Null == 'YES'}<option value=""></option>{/if}
+				{section loop=$data[1].Type_Enums name=e}
+				<option value="{$data[1].Type_Enums[e].value}"{if $data[1].Type_Enums[e].value == $data[1].value} selected="selected"{/if}>{$data[1].Type_Enums[e].output}</option>
+				{/section}
+			</select>
+		</td></tr>	
+		<tr class="table-form-row1"><td class="table-form-title">{$lang.db[$data.2.fullField]}{if $data[2].Null != 'YES'}*{/if}:</td>
 		<td class="table-form-field">
-			<input type="hidden" name="{$d