import sys
from com.l2dot.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from com.l2dot.gameserver.datatables import SkillTable
from com.l2dot			       import L2DatabaseFactory
from com.l2dot.gameserver.model.actor.appearance import PcAppearance
from com.l2dot.gameserver.model.quest import State
from com.l2dot.gameserver.model.actor.appearance import PcAppearance
from com.l2dot.gameserver.model.quest import QuestState
from com.l2dot.gameserver.model.quest.jython import QuestJython as JQuest

qn = "20103_TopList"

NPC=[20103]
Precio_ID = 57
QuestId     = 20103
QuestName   = "TopList"
QuestDesc   = "custom"
InitialHtml = "1.htm"

print "Importing Custom: TopList"

class Quest (JQuest) :

	def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

	# ***********************
	# Quero falar com NPC *
	# ***********************
	def onTalk (self,npc,player):
		return InitialHtml
	# ***********************

	# *****************************************************
	# Top PvP e PK Server *
	# *****************************************************
	def onEvent(self,event,st):
		htmltext = event
		cantidad_pago = st.getQuestItemsCount(Precio_ID)
		
		# *********
		# PK info *
		# *********
		
		if event == "1" and cantidad_pago >= 3000 :
			st.takeItems(Precio_ID,3000)
			total_asesinados = 0
			htmltext_ini = "<html><head><title>Pk Info Online</title></head><body><table width=300><tr><td><font color =\"FF00FF\">Pos.</td><td><center><font color =\"FFFF00\">*** Player ***</color></center></td><td><center>*** Kills ***</center></td></tr>"
			htmltext_info =""			
			color = 1
			pos = 0
			con = L2DatabaseFactory.getInstance().getConnection()
			pks = con.prepareStatement("SELECT char_name,pkkills FROM characters WHERE pkkills>0 and accesslevel=0 order by pkkills desc limit 100")
			rs = pks.executeQuery()
			while (rs.next()) :
				char_name = rs.getString("char_name")
				char_pkkills = rs.getString("pkkills")
				total_asesinados = total_asesinados + int(char_pkkills)
				pos = pos + 1
				posstr = str(pos)
				if color == 1:
					color_text = "<font color =\"00FFFF\">"
					color = 2
					htmltext_info = htmltext_info + "<tr><td><center><font color =\"FF00FF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
				elif color == 2:
					color_text = "<font color =\"FF0000\">"
					color = 1
					htmltext_info = htmltext_info + "<tr><td><center><font color =\"FF00FF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
			htmltext_end = "</table><center><font color=\"FFFFFF\">" + "A Total of " + str(total_asesinados) + " Pk's.</center></body></html>"
			htmltext_pklist = htmltext_ini + htmltext_info + htmltext_end
			con.close()
			return htmltext_pklist
		elif event == "1" and cantidad_pago < 3000 :
			htmltext = "<html><head><title>PK info Online</title></head><body><font color =\"FF0000\">Voce nao tem Adena: 3,000.<br>You do not have Adena: 3,000.<br>Pague primeiro para poder ver a lista top players.<br>Pay first to see the top players list</body></html>"
			return htmltext
			
		# **********
		# PvP info *
		# **********
			
		if event == "2" and cantidad_pago >= 3000 :
			st.takeItems(Precio_ID,3000)
			total_asesinados = 0
			htmltext_ini = "<html><head><title>PvP info Online</title></head><body><table width=300><tr><td><font color =\"FF00FF\">Pos.</td><td><center><font color =\"FFFF00\">*** Player ***</color></center></td><td><center>*** Kills ***</center></td></tr>"
			htmltext_info =""			
			color = 1
			pos = 0
			con = L2DatabaseFactory.getInstance().getConnection()
			pks = con.prepareStatement("SELECT char_name,pvpkills FROM characters WHERE pvpkills>0 and accesslevel=0 order by pvpkills desc limit 100")
			rs = pks.executeQuery()
			while (rs.next()) :
				char_name = rs.getString("char_name")
				char_pkkills = rs.getString("pvpkills")
				total_asesinados = total_asesinados + int(char_pkkills)
				pos = pos + 1
				posstr = str(pos)
				if color == 1:
					color_text = "<font color =\"00FFFF\">"
					color = 2
					htmltext_info = htmltext_info + "<tr><td><center><font color =\"FF00FF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
				elif color == 2:
					color_text = "<font color =\"FF0000\">"
					color = 1
					htmltext_info = htmltext_info + "<tr><td><center><font color =\"FF00FF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
			htmltext_end = "</table><center><font color=\"FFFFFF\">" + "A Total of " + str(total_asesinados) + " Kills.</center></body></html>"
			htmltext_pklist = htmltext_ini + htmltext_info + htmltext_end
			con.close()
			return htmltext_pklist
		elif event == "2" and cantidad_pago < 3000 :
			htmltext = "<html><head><title>PK info Online</title></head><body><font color =\"FF0000\">Voce nao tem Adena: 3,000.<br>You do not have Adena: 3,000.<br>Pague primeiro para poder ver a lista top players.<br>Pay first to see the top players list</body></html>"
			return htmltext

		# *************
		# Medal Of Victory info *
		# *************
	
		if event == "3" and cantidad_pago >= 100000 :
			st.takeItems(Precio_ID,100000)
			total_cantidad = 0
			htmltext_ini = "<html><head><title>Medal Of Victory info Online</title></head><body><table width=300><tr><td><font color =\"FF00FF\">Pos.</td><td><center><font color =\"FFFF00\">*** Name ***</color></center></td><td><center>*** Adenas ***</center></td></tr>"
			htmltext_info =""			
			color = 1
			pos = 0
			con = L2DatabaseFactory.getInstance().getConnection()
			pks = con.prepareStatement("SELECT count,owner_id FROM items WHERE item_id=57 order by count desc limit 50")
			rs = pks.executeQuery()
			while (rs.next()) :
				cantidad = rs.getString("count")
				pj_id = rs.getString("owner_id")
				total_cantidad = total_cantidad + long(cantidad)
				pos = pos + 1
				posstr = str(pos)
				charname = con.prepareStatement("SELECT char_name FROM characters WHERE charId=" + pj_id)
				rs2 = charname.executeQuery()
				while (rs2.next()) :
					char_name = rs2.getString("char_name")
				if color == 1:
					color_text = "<font color =\"00FFFF\">"
					color = 2
					htmltext_info = htmltext_info + "<tr><td><center><font color =\"FF00FF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + cantidad + "</center></td></tr>"
				elif color == 2:
					color_text = "<font color =\"FF0000\">"
					color = 1
					htmltext_info = htmltext_info + "<tr><td><center><font color =\"FF00FF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + cantidad + "</center></td></tr>"
			htmltext_end = "</table><center><font color=\"FFFFFF\">" + "Los TOPS suman " + str(total_cantidad) + " adenas.</center></body></html>"
			htmltext_pklist = htmltext_ini + htmltext_info + htmltext_end
			con.close()
			return htmltext_pklist
		elif event == "3" and cantidad_pago < 3000 :
			htmltext = "<html><head><title>Adenas info Online</title></head><body><font color =\"FF0000\">Voce nao tem Adena: 3,000.<br>You do not have Adena: 3,000.<br>Pague primeiro para poder ver a lista top players.<br>Pay first to see the top players list</body></html>"
			return htmltext

QUEST       = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
CREATED=State('Start',QUEST)
STARTED=State('Started',QUEST)
COMPLETED=State('Completed',QUEST)

QUEST.setInitialState(CREATED)

for npcId in NPC:
 QUEST.addStartNpc(npcId)
 QUEST.addTalkId(npcId)
