﻿var liStates = new Array();
var liLocations = new Object();
var stateCompare = {'AL':'ALABAMA', 'AK':'ALASKA', 'AS':'AMERICAN SAMOA', 'AZ':'ARIZONA', 'AR':'ARKANSAS', 'CA':'CALIFORNIA', 'CO':'COLORADO', 'CT':'CONNECTICUT', 'DE':'DELAWARE', 'DC':'DISTRICT OF COLUMBIA', 'FM':'FEDERATED STATES OF MICRONESIA', 'FL':'FLORIDA', 'GA':'GEORGIA', 'GU':'GUAM', 'HI':'HAWAII', 'ID':'IDAHO', 'IL':'ILLINOIS', 'IN':'INDIANA', 'IA':'IOWA', 'KS':'KANSAS', 'KY':'KENTUCKY', 'LA':'LOUISIANA', 'ME':'MAINE', 'MH':'MARSHALL ISLANDS', 'MD':'MARYLAND', 'MA':'MASSACHUSETTS', 'MI':'MICHIGAN', 'MN':'MINNESOTA', 'MS':'MISSISSIPPI', 'MO':'MISSOURI', 'MT':'MONTANA', 'NE':'NEBRASKA', 'NV':'NEVADA', 'NH':'NEW HAMPSHIRE', 'NJ':'NEW JERSEY', 'NM':'NEW MEXICO', 'NY':'NEW YORK', 'NC':'NORTH CAROLINA', 'ND':'NORTH DAKOTA', 'MP':'NORTHERN MARIANA ISLANDS', 'OH':'OHIO', 'OK':'OKLAHOMA', 'OR':'OREGON', 'PW':'PALAU', 'PA':'PENNSYLVANIA', 'PR':'PUERTO RICO', 'RI':'RHODE ISLAND', 'SC':'SOUTH CAROLINA', 'SD':'SOUTH DAKOTA', 'TN':'TENNESSEE', 'TX':'TEXAS', 'UT':'UTAH', 'VT':'VERMONT', 'VI':'VIRGIN ISLANDS', 'VA':'VIRGINIA', 'WA':'WASHINGTON', 'WV':'WEST VIRGINIA', 'WI':'WISCONSIN', 'WY':'WYOMING'}

var speedyRewards = function(result) {
    if (result.locations) {
        result.locations.each(function(myLoc) {
            var myState = myLoc.smState;
            liStates.include(myState);
            if (!liLocations[myState]) {
                liLocations[myState] = new Array();
            }
            liLocations[myState].include(myLoc);
        });
        if (liStates.length > 0) {
            liStates.sort();
            liStates.each(function(myState) {
                if (liLocations[myState].length > 0) {
                    var myLocs = mooT('locations');
                    var stateLi = new Element('li', {
                        'class': 'closed',
                        'html': '<span><strong>' + stateCompare[myState] + '</strong> (' + liLocations[myState].length + ')</span><br/>'
                    });
                    stateLi.inject(myLocs);
                    var myUl = new Element('ul');
                    myUl.inject(stateLi);
                    liLocations[myState].sort();
                    liLocations[myState].each(function(myLoc) {
                        var locLi = new Element('li');
                        var liHTML = '<a href="' + myLoc.storeURL + '">' + myLoc.smAddress1;
                        if ((myLoc.smAddress2 != '') && (myLoc.smAddress2 != null)) {
                            liHTML = liHTML + '<br/>' + myLoc.smAddress2;
                        }
                        liHTML = liHTML + '</a><br/>' + myLoc.smCity + ', ' + myLoc.smState + ' ' + myLoc.smZip;
                        locLi.set('html', liHTML);
                        locLi.inject(myUl);
                    });
                }
            });
            makeLocations();
        }
    }
}

window.addEvent('domready', function() {
    var myWS = new Object();
    myWS.live = { 'href': 'http://viocdealer.com/SpeedyRewards/GetAllParticipatingLocations.aspx' };
    myWS.local = { 'href': './results.txt' };
    myWS.debug = { 'href': 'http://ext.catdir.com/results.txt' };

    var useLink = 'live';

    var myUrl = myWS[useLink].href;

    var jsonpReq = new Request.JSONP({
        url: myUrl,
        callbackKey: 'jsoncallback',
        onComplete: function(result) {
            speedyRewards.run(result);
        }
    });
    jsonpReq.send({ 'sFormat': 'json' });
});

function makeLocations() {
    if (mooT('locations')) {
        var myLocs = mooT('locations');
        myLocs.getElements('li').each(function(myLoc) {
            if (myLoc.getParent().get('id') == 'locations') {
                myLoc.getElement('span').setStyle('cursor', 'pointer');
                myLoc.addClass('toggle');
                myLoc.removeClass('closed');
            }
        });

        var myAccordion = new Fx.Accordion(myLocs.getElements('li.toggle span'), myLocs.getElements('li.toggle ul'), {
            display: -1,
            alwaysHide: true,
            onActive: function(toggler, element) {
                //toggler.getParent('li').removeClass('closed');
            },
            onBackground: function(toggler, element) {
                //toggler.getParent('li').addClass('closed');
            }
        });
    }
}

function closeLocations(){
	var myLocs = mooT('locations');
	myLocs.getElements('li').each(function(myLoc){
		if(myLoc.getParent().getParent().get('tag') == 'div'){
			if(!myLoc.hasClass('closed')){
				myLoc.addClass('closed');
			}
		}
	});
}
