from urllib.request import urlopen
from TRG.Programs import GeoDir

def fetch():

    link = "http://www.wildcad.net/WAopen.asp"

    f = urlopen(link)
    myfile = f.read()
    s=myfile.decode()
    ts = s.find('WA-NEC:')
    tf = s.find('WA-CWC')
    s= s[ts:tf]

    return s

def joinfuels(temp):
    join = []
    join = temp.split(',')
    joined = join[0]+'/'
    for val in range(len(join)-1):
        if val == 0:
            pass
        else:
            if join[val][0:1].find(' ') != -1:
                joined = joined + join[val][1:] + '/'
            else:
                joined = joined + join[val] + '/'
    joined = joined + join[len(join)-1][1:]

    return joined

def joincomment(temp):
    join = []
    joined = ''
    join = temp.split(',')
    for val in range(len(join)-1):
        joined = joined + join[val] + ' -'
    joined = joined + join[len(join)-1]

    return joined

def parse(s, kmllist):
    wildcad = []
    pval = []
    listend = 0

    # Adjust kmllist for In NEWA and ALL TAs and AOs
    if kmllist[0] == '1':
        kmllist2 = kmllist[1:]

    while listend != -1:
        joined = ''
        for item in range(12):
            s = s[s.find('<TD align="CENTER" bgcolor="#FFFFCC"><font size="2">'):]
            ts = 52 + s.find('<TD align="CENTER" bgcolor="#FFFFCC"><font size="2">')
            tf = s.find('</font></TD>')
            temp = s[ts:tf]
            pval = pval + [temp]
            s = s[tf + 13:]
            listend = s.find('<TD align="CENTER" bgcolor="#FFFFCC"><font size="2">')

        ll = pval[7].split(',')
        if len(ll) != 1:
            latlong = [float(ll[0][0:2]) + (float(ll[0][3:9])/60), float(ll[1][2:5]) + (float(ll[1][6:12])/60)]
            pval[7] = str(latlong[0]) + ',-' + str(latlong[1])
        else:
            pval[7] = 'x,x'
        if kmllist[0] != '1':
            pval = pval + [GeoDir.point(pval[7], kmllist)]
            if pval[12] != '':
                if pval[8].find(',') != -1:
                    pval[8] = joinfuels(pval[8])
                if pval[11].find(',') != -1:
                    pval[11] = joincomment(pval[11])
                wildcad = wildcad + [[pval[0],pval[1],pval[2],pval[3],pval[4],pval[5],pval[6],pval[7],pval[8],pval[9],pval[10],pval[11],pval[12],'']]
        elif kmllist[0] == '1':
            pval = pval + [GeoDir.point(pval[7], kmllist2)]
            if pval[8].find(',') != -1:
                pval[8] = joinfuels(pval[8])
            if pval[11].find(',') != -1:
                pval[11] = joincomment(pval[11])
            wildcad = wildcad + [[pval[0],pval[1],pval[2],pval[3],pval[4],pval[5],pval[6],pval[7],pval[8],pval[9],pval[10],pval[11],pval[12],'']]

        pval = []

    return wildcad

def main(kmllist):
    #print("Getting WildCAD Data")
    s = fetch()
    wildcad = parse(s, kmllist)

    return wildcad

#main()
#input()
