﻿var radars
var radarSeries
var warnings
var warningSeries
var cities
var warningCities
var regions

var bRadar=false;
var bAnimate=false;
var radarAdded=false;

function getCities(){
    cities=new Array();
    cities.push([new GLatLngBounds(new GLatLng(32.9197463989, -92.5187336315),new GLatLng(37.7702560425, -87.2272685658)),"memphis","NQA"]);
    cities.push([new GLatLngBounds(new GLatLng(38.6862411499, -99.2391884544),new GLatLng(43.9537582397, -93.4928061745)),"omaha","OAX"]);
    cities.push([new GLatLngBounds(new GLatLng(33.7243385315, -98.2374510332),new GLatLng(38.6256599426, -92.8905549483)),"tulsa","INX"]);
    cities.push([new GLatLngBounds(new GLatLng(32.8673629761, -97.0059675737),new GLatLng(37.7146377563, -91.7180314498)),"fortsmith","SRX"]);
    cities.push([new GLatLngBounds(new GLatLng(35.1554031372, -100.168742093),new GLatLng(40.15259552, -94.7172594937)),"wichita","ICT"]);
    cities.push([new GLatLngBounds(new GLatLng(34.5888214111, -91.4765625),new GLatLng(39.5471801758, -86.0674438477)),"paducah","PAH"]);
    cities.push([new GLatLngBounds(new GLatLng(39.0804786682, -96.6144762906),new GLatLng(44.3815193176, -90.8315228549)),"desmoines","DMX"]);
    cities.push([new GLatLngBounds(new GLatLng(37.5630569458, -92.1602096558),new GLatLng(42.7389450073, -86.5137863159)),"springfieldil","ILX"]);
    cities.push([new GLatLngBounds(new GLatLng(36.4517364502, -99.0086552013),new GLatLng(41.5422668457, -93.4553493153)),"topeka","TWX"]);
    cities.push([new GLatLngBounds(new GLatLng(37.5630569458, -92.1602096558),new GLatLng(42.7389450073, -86.5137863159)),"quad","DVN"]);
    cities.push([new GLatLngBounds(new GLatLng(36.2714195251, -97.0333619551),new GLatLng(41.3485832214, -91.4946379228)),"kc","EAX"]);
    cities.push([new GLatLngBounds(new GLatLng(36.1643638611, -93.4480576949),new GLatLng(41.2336387634, -87.9179396196)),"stl","LSX"]);
    cities.push([new GLatLngBounds(new GLatLng(34.7503433228, -96.1105367487),new GLatLng(39.7196578979, -90.689466303)),"springfield","SGF"]);
}

function getWarningCities(){
    warningCities=new Array();
    warningCities.push([new GLatLngBounds(new GLatLng(32.9241559531, -92.5231431857),new GLatLng(37.7746655967, -87.23167812)),"memphis","NQA"]);
    warningCities.push([new GLatLngBounds(new GLatLng(38.6910298018, -99.2439771063),new GLatLng(43.9585468916, -93.4975948264)),"omaha","OAX"]);
    warningCities.push([new GLatLngBounds(new GLatLng(33.7287942782, -98.2419067799),new GLatLng(38.6301156894, -92.895010695)),"tulsa","INX"]);
    warningCities.push([new GLatLngBounds(new GLatLng(32.8717695895, -97.0103741871),new GLatLng(37.7190443698, -91.7224380632)),"fortsmith","SRX"]);
    warningCities.push([new GLatLngBounds(new GLatLng(35.1599460394, -100.173284995),new GLatLng(40.1571384222, -94.7218023959)),"wichita","ICT"]);
    warningCities.push([new GLatLngBounds(new GLatLng(34.59332901, -91.4810700989),new GLatLng(39.5516877747, -86.0719514465)),"paducah","PAH"]);
    warningCities.push([new GLatLngBounds(new GLatLng(39.0852977961, -96.6192954185),new GLatLng(44.3863384455, -90.8363419828)),"desmoines","DMX"]);
    warningCities.push([new GLatLngBounds(new GLatLng(37.5677622986, -92.1649150085),new GLatLng(42.7436503601, -86.5184916687)),"springfieldil","ILX"]);
    warningCities.push([new GLatLngBounds(new GLatLng(36.4563642051, -99.0132829562),new GLatLng(41.5468946006, -93.4599770702)),"topeka","TWX"]);
    warningCities.push([new GLatLngBounds(new GLatLng(38.9711798651, -93.4719532082),new GLatLng(44.2624396307, -87.6996698275)),"quad","DVN"]);
    warningCities.push([new GLatLngBounds(new GLatLng(36.2760351285, -97.0379775585),new GLatLng(41.3531988248, -91.4992535262)),"kc","EAX"]);
    warningCities.push([new GLatLngBounds(new GLatLng(36.1689722928, -93.4526661266),new GLatLng(41.2382471952, -87.9225480513)),"stl","LSX"]);
    warningCities.push([new GLatLngBounds(new GLatLng(34.7548608815, -96.1150543074),new GLatLng(39.7241754567, -90.6939838617)),"springfield","SGF"]);
}

function getRegions(){
    regions=new Array();
    regions.push([new GLatLngBounds(new GLatLng(35.5892852379, -104.626090533),new GLatLng(49.9663293901, -89.530194173)),"upperMiss","uppermissvly"]);
    regions.push([new GLatLngBounds(new GLatLng(24.3572194939, -97.4375684567),new GLatLng(38.7342636462, -82.3416720969)),"southMiss","southmissvly"]);
}

function createRadarSeries(){
    getCities();
    radarSeries=new Array();
    for (q=0;q<cities.length;q++){
        radarSeries[q]=new Array();
        for (c=1;c<11;c++){
            radarSeries[q].push(new GGroundOverlay("http://ghweb13/radar/" + cities[q][1] + c + ".gif",cities[q][0]));
            radarSeries[q][radarSeries[q].length-1].inMap=false;
        }
    }
}

function createRadarOverlays(){
    getCities();
    radars=new Array();
    for (q=0;q<cities.length;q++){
        radars.push(new GGroundOverlay("http://radar.weather.gov/ridge/RadarImg/N0R/" + cities[q][2] + "_N0R_0.gif",cities[q][0]));
        radars[radars.length-1].bounds=cities[q][0];
    }
}

function createRadarOverlays2(){
    getRegions();
    radars=new Array();
    for (q=0;q<regions.length;q++){
        radars.push(new GGroundOverlay("http://ghweb13/radar/" + regions[q][2] + "_radaronly.gif",regions[q][0]));
        radars[radars.length-1].bounds=regions[q][0];
    }
}

function createWarningSeries(){
    getWarningCities();
    warningSeries=new Array();
    for (q=0;q<warningCities.length;q++){
        warningSeries[q]=new Array();
        for (c=1;c<11;c++){
            warningSeries[q].push(new GGroundOverlay("http://ghweb13/radar/" + warningCities[q][1] + c + ".gif",warningCities[q][0]));
            warningSeries[q][warningSeries[q].length-1].inMap=false;
        }
    }
}

function createWarningOverlays(){
    getWarningCities();
    warnings=new Array();
    for (q=0;q<warningCities.length;q++){
        warnings.push(new GGroundOverlay("http://radar.weather.gov/ridge/Warnings/Short/" + warningCities[q][2] + "_Warnings_0.gif",warningCities[q][0]));
        warnings[warnings.length-1].bounds=warningCities[q][0];
    }
}

function addRadarSeries(){
    for (z=0;z<radarSeries.length;z++){
        for (n=0;n<10;n++){
            map.addOverlay(radarSeries[z][n]);
            radarSeries[z][n].hide();
        }
    }
    bRadar=true;
}

function addRadar(){
    for (z=0;z<radars.length;z++){
        map.addOverlay(radars[z]);
    }
    bRadar=true;
}

function addWarnings(){
    if (bAnimate){
        for (z=0;z<warningSeries.length;z++){
            for (n=0;n<10;n++){
                map.addOverlay(warningSeries[z][n]);
                warningSeries[z][n].hide();
            }
        }
    }
    else {
        for (z=0;z<warnings.length;z++){
            map.addOverlay(warnings[z]);
        }
    }
}

function removeRadar(){
    if (bAnimate){
        for (z=0;z<radarSeries.length;z++){
            for (n=0;n<10;n++){
                map.removeOverlay(radarSeries[z][n]);
            }
        }
    }
    else {
        for (z=0;z<radars.length;z++){
            map.removeOverlay(radars[z]);
        }
    }
    bRadar=false;
}

function removeWarnings(){
    if (bAnimate){
        for (z=0;z<warningSeries.length;z++){
            for (n=0;n<10;n++){
                map.removeOverlay(warningSeries[z][n]);
            }
        }
    }
    else {
        for (z=0;z<warnings.length;z++){
            map.removeOverlay(warnings[z]);
        }
    }
}

function hideRadar(){
    if (bAnimate){
        for (z=0;z<radarSeries.length;z++){
            for (n=0;n<10;n++){
                radarSeries[z][n].hide();
            }
        }
    }
    else {
        for (z=0;z<radars.length;z++){
            radars[z].hide();
        }
    }
}

function showRadar(){
    if (bAnimate){
        animateMap(1,2);
    }
    else {
        for (z=0;z<radars.length;z++){
            if (radars[z].bounds.intersects(map.getBounds())){
                radars[z].show();
            }
        }
    }
}

function animateMap(oldframe,newframe){

    for (z=0;z<radarSeries.length;z++){
        if (radarSeries[z][newframe].inMap){
            radarSeries[z][newframe].show();
        }
        else {
            map.addOverlay(radarSeries[z][newframe]);
            radarSeries[z][newframe].inMap=true;
        }
        if (radarSeries[z][oldframe].inMap){
            radarSeries[z][oldframe].hide();
            //setTimeout("radarSeries[" + z + "][" + oldframe + "].hide();",10);
        }
    }
    newframe++;
    oldframe++;
    
    if (newframe>9){
        newframe=1;
    }
    
    if (oldframe>9){
        oldframe=1;
    }
    
    if (bAnimate){
        setTimeout("animateMap(" + oldframe + "," + newframe + ");",250);
    }
}

function stopAnimate(){
    bAnimate=false;
}

function toggleRadar(){

    if (bRadar){
        hideRadar();
        bRadar=false;
    }
    else {
        showRadar();
        bRadar=true;
    }
}
