﻿var unM = 0;

function showMap(LINKID) {
    var locales = new Array("usa", "australia", "canada", "europe", "south-america");
    
    var hideLinkID = document.getElementById(LINKID);
    var showMapID = document.getElementById("wXsnowski-" + LINKID);

    for (var locale in locales) {
        document.getElementById(locales[locale]).style.display = "inline";
        document.getElementById("wXsnowski-" + locales[locale]).style.display = "none";
        document.getElementById("locale-" + locales[locale]).value = "";
    }

    hideLinkID.style.display = "none";
    showMapID.style.display = "block";

    document.getElementById("resort-select-label").className = "disabled";
    document.getElementById("resort-select").disabled = true;
    document.getElementById("resort-select").value = "";

    document.getElementById("wXsnowski-resort").style.display = "none";

    var cookieExp = new Date();
    cookieExp.setDate(cookieExp.getDate() + 90);

    document.cookie = "locale=" + LINKID + "; expires=" + cookieExp + "; path=/";
}

function getIndexByResortId(rid) {
    var resorts1 = document.getElementById("resort-select");
    for (var j = 1; j < resorts1.options.length; j++) {
        if (resorts1.options[j].value == rid) {
            return j;
        }
    }
    return -1;
}

function getPrevResortIdByIndex(idx) {
    var resorts2 = document.getElementById("resort-select");
    if (idx - 1 > 0) {
        return resorts2.options[idx-1].value;
    }
    return -1;
}

function getNextResortIdByIndex(idx1) {
    var resorts3 = document.getElementById("resort-select");
    if (resorts3.options.length > idx1+1) {
        return resorts3.options[idx1+1].value;
    }
    return -1;
}

function getIndexByRegionId(regionId) {
    var regions = document.getElementById("sst");
    for (var j = 1; j < regions.options.length; j++) {
        if (regions.options[j].value == regionId) {
            return j;
        }
    }
    return -1;
}

function chooseLocation(VALUE) {
    document.getElementById("wXsnowski-resort").style.display = "none";
    if (VALUE != "") {
        document.getElementById("resort-select-label").className = "";
        document.getElementById("resort-select").disabled = true
        res = loadSyncHttp(svcUrl, 'sst=' + VALUE);
        var ary = evaluateObjectEqual(res);
        if (res) {
            document.getElementById("noResorts").style.display = "none";
            var resorts = document.getElementById("resort-select");
            if (resorts.options.length > 1) {
                for (var i = resorts.options.length - 1; i > 0; i--) {
                    resorts.options[i] = null; //.remove(i);
                }
            }

            for (var x = 0; x <= ary.skiAreaList.length; x++) {
                try {
                    opt = document.createElement("OPTION");
                    if (ary.skiAreaList[x].skiAreaName.length > 0) {
                        resorts.options[resorts.options.length] = new Option(ary.skiAreaList[x].skiAreaName, ary.skiAreaList[x].skiAreaId);
                        resorts.options[resorts.options.length].innerText = ary.skiAreaList[x].skiAreaName;
                        resorts.options[resorts.options.length].textContent = ary.skiAreaList[x].skiAreaName;
                        //opt.Value = ary.skiAreaList[x].skiAreaId;
                    }
                }
                catch (e) { }
            }
            document.getElementById("resort-select").disabled = false;

        } else { document.getElementById("noResorts").style.display = "block"; }

    } else {
        document.getElementById("resort-select-label").className = "disabled";
        document.getElementById("resort-select").disabled = true
    }
}

function clickLocation(LOCALE, VALUE) {
    document.getElementById("wXsnowski-resort").style.display = "none";
    element = document.getElementById('sst');
    element.value = VALUE;
    element.options.selectedIndex = getIndexByRegionId(VALUE);
    chooseLocation(VALUE);
}

function selectResort() {
    var VALUE2 = "0";
    var sel = document.getElementById("resort-select");
    var VALUE = sel.options[sel.selectedIndex].value;

    try { VALUE2 = sel.options[sel.selectedIndex + 1].value; } catch (e) { }

    if (VALUE != "") {
        getResortData(VALUE, VALUE2);
        //window.location = String(window.location).replace(/\#.*$/, "") + "#viewResorts";
    }
    else document.getElementById("wXsnowski-resort").style.display = "none";
}

function getLocalResortData(zip) {
    var res = loadSyncHttp(svcUrl, 'zip=' + zip);
    var cities = evaluateObjectEqual(res)
    var inHt = ""
    if (cities) {
        if (cities.skiAreaLocalData.length > 0) {
            try{document.getElementById("citylist").innerHTML = "";}catch(e){}
        }
        for (var h = 0; h < cities.skiAreaLocalData.length; h++) {
            try {
                inHt += "<a href=\"" + cities.skiAreaLocalData[h].cityurl + "\">" + cities.skiAreaLocalData[h].cityname + " weather</a><br/>";
            } catch (e) { }
        }
        try{document.getElementById("citylist").innerHTML = inHt;}catch(e){}
        if (cities.skiAreaLocalMapLinks) {
            try {
                if (cities.skiAreaLocalMapLinks.tempmap != "") {
                    document.getElementById("tempmap").style.display = "inline";
                    document.getElementById("tempmaphref").href = cities.skiAreaLocalMapLinks.tempmap;
                } else { document.getElementById("tempmap").style.display = "none"; }
                if (cities.skiAreaLocalMapLinks.windmap != "") {
                    document.getElementById("windmap").style.display = "inline";
                    document.getElementById("windmaphref").href = cities.skiAreaLocalMapLinks.windmap;
                } else { document.getElementById("windmap").style.display = "none"; }
                if (cities.skiAreaLocalMapLinks.chillmap != "") {
                    document.getElementById("chillmap").style.display = "inline";
                    document.getElementById("chillmaphref").href = cities.skiAreaLocalMapLinks.chillmap;
                } else { document.getElementById("chillmap").style.display = "none"; }
            } catch (e) { }
            try{
            if (cities.skiAreaLocalMapLinks.forecasturl != "") {
                document.getElementById("skiForecast").style.display = "inline";
                document.getElementById("skiForecastHref").href = cities.skiAreaLocalMapLinks.forecasturl;
            }else { document.getElementById("skiForecast").style.display = "none";}
            }catch(e){}
        }

        try {
            if (cities.skiAreaLocalHourly.length > 0) {
                for (var k = 0; k < cities.skiAreaLocalHourly.length; k++) {
                    document.getElementById("hourlyHour" + k).innerText = getHour(cities.skiAreaLocalHourly[k].hour);
                    document.getElementById("hourlyHour" + k).textContent = getHour(cities.skiAreaLocalHourly[k].hour);
                    document.getElementById("hourlyHeader").innerText = cities.skiAreaLocalHourly[k].loctext;
                    document.getElementById("hourlyHeader").textContent = cities.skiAreaLocalHourly[k].loctext;
                    document.getElementById("hourlyIcon" + k).src = cities.skiAreaLocalHourly[k].condicon;
                    document.getElementById("hourlyIcon" + k).alt = "";
                    document.getElementById("hourlyTemp" + k).innerText = cities.skiAreaLocalHourly[k].currtemp + " F";
                    document.getElementById("hourlyTemp" + k).textContent = cities.skiAreaLocalHourly[k].currtemp + " F";
                    document.getElementById("hourlyPrecip" + k).innerText = cities.skiAreaLocalHourly[k].precip + "%";
                    document.getElementById("hourlyPrecip" + k).textContent = cities.skiAreaLocalHourly[k].precip + "%";
                    document.getElementById("hourlyFeelsLike" + k).innerText = cities.skiAreaLocalHourly[k].feelslike + " F";
                    document.getElementById("hourlyFeelsLike" + k).textContent = cities.skiAreaLocalHourly[k].feelslike + " F";
                    document.getElementById("hourlyWind" + k).innerText = "From " + cities.skiAreaLocalHourly[k].winddir + " " + cities.skiAreaLocalHourly[k].windspeed + " mph";
                    document.getElementById("hourlyWind" + k).textContent = "From " + cities.skiAreaLocalHourly[k].winddir + " " + cities.skiAreaLocalHourly[k].windspeed + " mph";
                    document.getElementById("nextUrl").href = cities.skiAreaLocalHourly[k].hourlyurl;
                }
            }
        } catch (e) { }
    }
    
}

function getResortData(r1, r2) {
    try {
        var res = loadSyncHttp(svcUrl, 'resort=' + r1 + '&snr=' + r2);
        var ski = evaluateObjectEqual(res)
        if (ski) {
            document.getElementById("resort-name").innerText = ski.skiAreaData.resortname;
            document.getElementById("resort-name").textContent = ski.skiAreaData.resortname;
            document.getElementById("resort-select").options.selectedIndex = getIndexByResortId(r1);
            var idx = getIndexByResortId(r1)
            var nextrid = getNextResortIdByIndex(idx);
            var prevrid = getPrevResortIdByIndex(idx);
            if ((prevrid == -1) && (nextrid != -1)) {
                document.getElementById("next-resort-url").style.display = "inline";
                document.getElementById("prev-resort-url").style.display = "none";
            }
            else if ((prevrid != -1) && (nextrid == -1)) {
                document.getElementById("next-resort-url").style.display = "none";
                document.getElementById("prev-resort-url").style.display = "inline";
            }
            else if ((prevrid != -1) && (nextrid != -1)) {
                document.getElementById("next-resort-url").style.display = "inline";
                document.getElementById("prev-resort-url").style.display = "inline";
            }
            else {
                document.getElementById("next-resort-url").style.display = "none";
                document.getElementById("prev-resort-url").style.display = "none";
            }
            document.getElementById("next-resort-url").onclick = function() { getResortData(nextrid, ""); return false; }
            document.getElementById("prev-resort-url").onclick = function() { getResortData(prevrid, ""); return false; }
                document.getElementById("newSnow").innerText = ski.skiAreaData.newsnow + "cm";
                document.getElementById("newSnow").textContent = ski.skiAreaData.newsnow + "cm";
                document.getElementById("baseDepth").innerText = ski.skiAreaData.basedepth + "cm";
                document.getElementById("baseDepth").textContent = ski.skiAreaData.basedepth + "cm";
                document.getElementById("newSnowin").innerText = ski.skiAreaData.newsnowin + "in";
                document.getElementById("newSnowin").textContent = ski.skiAreaData.newsnowin + "in";
                document.getElementById("baseDepthin").innerText = ski.skiAreaData.basedepthin + "in";
                document.getElementById("baseDepthin").textContent = ski.skiAreaData.basedepthin + "in";
                if (document.getElementById("wXsnowski-usa") != null)
                    unM = 0;
                else 
                    unM = 1;
                displayUnM();
            document.getElementById("surfaceSnow").innerText = ski.skiAreaData.surfacesnow;
            document.getElementById("surfaceSnow").textContent = ski.skiAreaData.surfacesnow;
            document.getElementById("runs").innerText = ski.skiAreaData.runs;
            document.getElementById("runs").textContent = ski.skiAreaData.runs;
            document.getElementById("liftsOpen").innerText = ski.skiAreaData.lifts;
            document.getElementById("liftsOpen").textContent = ski.skiAreaData.lifts;
            
            document.getElementById("kmxc").innerText = ski.skiAreaData.kmxc;
            document.getElementById("kmxc").textContent = ski.skiAreaData.kmxc;
            document.getElementById("hours").innerText = ski.skiAreaData.hours;
            document.getElementById("hours").textContent = ski.skiAreaData.hours;
            document.getElementById("open").innerText = ski.skiAreaData.open;
            document.getElementById("open").textContent = ski.skiAreaData.open;
            document.getElementById("callAhead").innerText = ski.skiAreaData.callahead;
            document.getElementById("callAhead").textContent = ski.skiAreaData.callahead;
            document.getElementById("notes").innerText = ski.skiAreaData.notes;
            document.getElementById("notes").textContent = ski.skiAreaData.notes;
            document.getElementById("resort-updated").innerText = ski.skiAreaData.lastupdate;
            document.getElementById("resort-updated").textContent = ski.skiAreaData.lastupdate;
            if (ski.skiAreaData) {
                if (ski.skiAreaData.snowcamurl != "") {
                    document.getElementById("skiCamHref").href = ski.skiAreaData.snowcamurl;
                    document.getElementById("skiCam").style.display = "inline";
                }
                else {
                    document.getElementById("skiCam").style.display = "none";
                }
                if (ski.skiAreaData.lodgingurl != "") {
                    document.getElementById("skiLodgingHref").href = ski.skiAreaData.lodgingurl;
                    document.getElementById("skiLodging").style.display = "inline";
                }
                else {
                    document.getElementById("skiLodging").style.display = "none";
                }
                if (ski.skiAreaData.resortpackageurl != "") {
                    document.getElementById("skiPackageHref").href = ski.skiAreaData.resortpackageurl;
                    document.getElementById("skiPackage").style.display = "inline";
                }
                else {
                    document.getElementById("skiPackage").style.display = "none";
                }
            }

            document.getElementById("wXsnowski-resort").style.display = "block";
            document.getElementById("ssRegions").style.display = "block";
            document.getElementById("ssMap").style.display = "none"; 
        }

        if (ski.skiAreaData) {
            if (ski.skiAreaData.resortzip != "") {
                getLocalResortData(ski.skiAreaData.resortzip);
            }
        }

    } catch (e) {}
}

function getHour(fhour) {
    var hr;
    var hrs;
    if (fhour >= 12) {
        if (fhour == 12)
            hr = 12;
        else
            hr = fhour - 12;
        
        hrs = hr + "pm";
    }
    else
        hrs = fhour + "am";

    return hrs;
}

function backToSkiMap() {
    document.getElementById("ssMap").style.display = "block";
    //document.getElementById("btnBackToMap").style.display = "none";
    document.getElementById("wXsnowski-resort").style.display = "none";
    document.getElementById("resort-select-label").className = "disabled";
    document.getElementById("resort-select").disabled = "disabled";
    document.getElementById("sst").options.selectedIndex = 0;
    document.getElementById("resort-select").options.selectedIndex = 0;
    if (document.getElementById("tempmap"))
        document.getElementById("tempmaphref").href = tempMapUrl;
    if(document.getElementById("windmap"))
        document.getElementById("windmaphref").href = windMapUrl;
    if (document.getElementById("chillmap"))
        document.getElementById("chillmaphref").href = chillMapUrl;
    if(document.getElementById("skiForecast"))
        document.getElementById("skiForecast").style.display = "none";
    if(document.getElementById("skiLodging"))
        document.getElementById("skiLodging").style.display = "none";
    if(document.getElementById("skiCam"))
        document.getElementById("skiCam").style.display = "none";
    if(document.getElementById("skiPackage"))
        document.getElementById("skiPackage").style.display = "none";
}

function displayUnM() {
    if (unM != 0) {
        document.getElementById("newSnow").style.display = "inline";
        document.getElementById("baseDepth").style.display = "inline";
        document.getElementById("newSnowin").style.display = "none";
        document.getElementById("baseDepthin").style.display = "none";
        document.getElementById("btnUnM").innerText = "English";
        document.getElementById("btnUnM").textContent = "English";
        unM = 0;
    }
    else {
        document.getElementById("newSnowin").style.display = "inline";
        document.getElementById("baseDepthin").style.display = "inline";
        document.getElementById("newSnow").style.display = "none";
        document.getElementById("baseDepth").style.display = "none";
        document.getElementById("btnUnM").innerText = "Metric";
        document.getElementById("btnUnM").textContent = "Metric";
        unM = 1;
    }
}