dojo.declare("map_widget", null, {
    constructor: function(){
        //googlestatic="http://maps.google.com/maps/api/staticmap?size=603x257&key=ABQIAAAAlaV2ruqwvRN//7bFZ9EE8mixSOSrix02YYpkUyRI-i52tMdcp2qxSX_GEEFRDkXwGLOcsi6Jh7DoMceg&sensor=false";
        googlestatic = "https://maps-api-ssl.google.com/maps/api/staticmap?size=603x257&client=gme-penske&sensor=false";
        googlemicrostatic = "https://maps-api-ssl.google.com/maps/api/staticmap?size=457x254&client=gme-penske&sensor=false";
        //alert('constructor');
        
        if (template_type == 'city') {
            generateCityMap();
        }
        else {
	   if ((template_type == 'microsite') || (template_type == 'micro_sub')) {
	     generateMicroSiteMap();
	   } else {
             generateStateMap();
           }
        }

        
    }
});

function generateMicroSiteMap() {
	
	var loclatlong = '';
	
	loclatlong += '&markers=color:green|label:A|size:mid|' + lat + ',' + long + '';
	var signedUrl=getGoogleMapUrl(googlemicrostatic + loclatlong);
	dojo.style("micrositeMap",{"backgroundImage": "url('" + signedUrl + "')"});
	
}

function generateCityMap(){

    var loclatlong = '';
    var numLocs = 0;
    var lati = '';
    var longi = '';
    var show_warning = false;
    
    
    dojo.forEach(locations.items, function(item, E, H){
    
        lati = item.latitude;
        longi = item.longitude;
        numLocs++;
        //loclatlong += '&markers=color:red|label:' + indexToAlpha(numLocs).toUpperCase() + '|size:mid|' + lati + ',' + longi + '';
		if (numLocs < 27) {
            loclatlong += '&markers=color:green|label:' + indexToAlpha(numLocs).toUpperCase() + '|size:mid|' + lati + ',' + longi + '';
        }
        else {
            show_warning = true;
        }
    });
//    dojo.forEach(nearby_locations.items, function(item, E, H){
//        lati = item.latitude;
//        longi = item.longitude;
//        
//        
//        numLocs++;
//        if (numLocs < 27) {
//            loclatlong += '&markers=color:red|label:' + indexToAlpha(numLocs).toUpperCase() + '|size:mid|' + lati + ',' + longi + '';
//        }
//        else {
//            show_warning = true;
//        }
//        
//        
//    });
    
    //alert(numLocs);
    
    //googlestatic = "https://maps-api-ssl.google.com/maps/api/staticmap?size=420x200&client=gme-penske&sensor=false";
    
    //var djkdk=googlestatic+loclatlong;
    //alert(djkdk.length);
    //document.getElementById('location_map').src = googlestatic + loclatlong;
    var signedUrl=getGoogleMapUrl(googlestatic + loclatlong);
    dojo.style("googleMap",{"backgroundImage": "url('" + signedUrl + "')"});
    if (show_warning) {
        alert('There may be some locaitons which are not plotted on the map');
    }
    
}

function generateStateMap(){
    //alert('generating state map');
    var center = '&zoom=7&center=' + state_abbrev + ',' + country_name;
    //document.getElementById('googleMap').style.background = "background-image: url('" + googlestatic + center + "')";
    var signedUrl=getGoogleMapUrl(googlestatic + center);
    dojo.style("googleMap",{"backgroundImage": "url('" + signedUrl + "')"});
}

function generateIndexMap(){
    //alert('generating state map');
    var center = '&center=USA&zoom=3';
	var signedUrl=getGoogleMapUrl(googlestatic + center);
    document.getElementById('location_map').src = signedUrl;
}

function indexToAlpha(A){
    var B = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
    return B[(A - 1) % 26]
}

function getGoogleMapUrl(googlemapurl){
    
        var signedUrl = '';
        
        var requestObj = {
            identifier: 'ID',
            label: 'obj',
            items: [{
                Request_For: 'getSignedUrl',
                Secid: '',
                URL: googlemapurl,
                APPNAME: 'local.go',
                ID: '1'
            }]
        };
        
        
        dojo.rawXhrPost({
            url: "/gmapsigner/entry/ApplicationEntry",
            handleAs: "json",
            postData: dojo.toJson(requestObj),
            sync: true,
            load: function(self){
                return function(data, ioArgs){
                    //	dojo.require("Penske.omniture");
                    if (typeof(data) == 'object') {
                        if (data.label == 'error') {
                            
                            return false;
                        }
                        else {
                            if (data.items[0].URL != 'undefined') {
                                signedUrl = data.items[0].URL;
                            }
                            
                            
                            return true;
                        }
                    }
                    else {
                        
                        return false;
                    }
                };
            }(this),
            error: function(response, ioArgs){
                
            }
        });
        
        
        return signedUrl;
        
} // getGoogleMapUrl()
