def __init__(self, session, args = 0):
		Screen.__init__(self, session)
		self.hardware_info = HardwareInfo()
		self.device=self.hardware_info.get_device_name()
		self.mac=getMacAddress()
		self.mac_end=self.mac[6:]
		self.dreamIRCconf = ConfigSubsection()
		self.reloadFile()
		list = []
		list.append(getConfigListEntry(_('Nickname'), self.dreamIRCconf.nick))      
		if config.usage.setup_level.index > 1: # advanced
			list.append(getConfigListEntry(_('Passwd'), self.dreamIRCconf.passwd))      
		if config.usage.setup_level.index >= 1: # intermediate+
			list.append(getConfigListEntry(_('Server1'), self.dreamIRCconf.server1))      
		if config.usage.setup_level.index > 1: # advanced
			list.append(getConfigListEntry(_('Server2'), self.dreamIRCconf.server2))      
			list.append(getConfigListEntry(_('Server3'), self.dreamIRCconf.server3))      
		if config.usage.setup_level.index >= 1: # intermediate+
			list.append(getConfigListEntry(_('Port'), self.dreamIRCconf.port))          
		list.append(getConfigListEntry(_('Channel'), self.dreamIRCconf.channel))    
		if config.usage.setup_level.index > 1: # i
			list.append(getConfigListEntry(_('Debug'), self.dreamIRCconf.debug))        

		self["key_red"] = StaticText(_("Cancel"))
		self["key_green"] = StaticText(_("Save"))

		ConfigListScreen.__init__(self, list)                                     
		self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
				{
						"green": self.saveAndExit,
						"red": self.dontSaveAndExit,
						"cancel": self.dontSaveAndExit
				}, -1)
	def load(self):
		self.pipe=MessagePipe()
		self.status1=False
		self.status2=False
		self.status3=False
		self.hardware_info = HardwareInfo()
		self.device=self.hardware_info.get_device_name()
		self.mac=getMacAddress()
		self.mac_end=self.mac[6:]
		try:
			doc = xml.dom.minidom.parse(accounts_xml)
			root = doc.childNodes[0]
			for node in elementsWithTag(root.childNodes, "account"):
				self.type = node.getAttribute("type")
				self.login = node.getAttribute("login")
				self.nick = node.getAttribute("nick")
				if ((self.nick.lower() == "dreamircuser") or (self.nick == "") or (self.nick[0] == " ") or (self.nick.lower() == "dm8000-vip")) :
					print "[dreamIRC] nickname error... restoring default..."
					self.nick = self.device+"_"+self.mac_end
				self.passwd = node.getAttribute("passwd")
				self.server1 = node.getAttribute("server1") # atm only ip.. cause of probs with theads and dns..
				self.server2 = node.getAttribute("server2") 
				self.server3 = node.getAttribute("server3") 
				self.port = node.getAttribute("port")
				self.channel = node.getAttribute("channel")
				self.debug = node.getAttribute("debug") # not used yet.. later will enable/disable console debug out..
		except IOError:
			self.type = "IRC"
			self.login = "******"
			self.nick = self.device+"_"+self.mac_end
			self.passwd = ""
			self.server1 = "irc.freenet.de"
			self.server2 = "irc.freenet.de"
			self.server3 = "irc.tu-illmenau.de"
			self.port = "06667"
			self.channel = "#dreamirc"
			self.debug = ""
		self.server1 = self.server1.strip()
		self.server2 = self.server2.strip()
		self.server3 = self.server3.strip()
		if self.server3:
			try:
				self.result3=gethostbyname_ex(self.server3)
				if self.result3:
					for ip_tmp3 in self.result3[2]:
						self.ip=ip_tmp3
						self.server=self.server3
						self.status3=True
			except:
				print "unable to resolve hostname %s..." % self.server3
		if self.server2:
			try:
				self.result2=gethostbyname_ex(self.server2)
				if self.result2:
					for ip_tmp2 in self.result2[2]:
						self.ip=ip_tmp2
						self.server=self.server2
						self.status2=True
			except:
				print "unable to resolve hostname %s..." % self.server2
		if self.server1:
			try:
				self.result1=gethostbyname_ex(self.server1)
				if self.result1:
					for ip_tmp1 in self.result1[2]:
						self.ip=ip_tmp1
						self.server=self.server1
						self.status1=True
			except:
				print "unable to resolve hostname %s..." % self.server1
				
		if self.status1==False and self.status2==False and self.status3==False:
			self.pipe.add("ERROR!!! no irc server was valid... please check settings...")
			return False
		else:
			print " account = type: %s login:%s nick:%s passwd:%s server:%s ip:%s port:%s channel:%s debug:%s " % (self.type, self.login, self.nick, self.passwd, self.server, self.ip, self.port, self.channel, self.debug)
			self.accounts=[ircsupport.IRCAccount(self.type, string.atoi(self.login), str(self.nick), str(self.passwd), str(self.ip), string.atoi(self.port), str(self.channel))]
			print self.accounts
			return self.accounts