
var protocol = (('https:' == document.location.protocol) ? 'https:' : 'http:');

 function clearDefaultEmail() {
     $("input.email_input_field").each(function() {
        var emailVal = $(this).attr('value');
        if (emailVal == "Enter Your Email Address" ) {
            $(this).attr('value', '');
        }
    });
}

 function clearDefaultFirst() {
     $("input.first_name_input_field").each(function() {
        var emailVal = $(this).attr('value');
        if (emailVal == "First Name" ) {
            $(this).attr('value', '');
        }
    });
}
 function clearDefaultLast() {
     $("input.last_name_input_field").each(function() {
        var emailVal = $(this).attr('value');
        if (emailVal == "Last Name" ) {
            $(this).attr('value', '');
        }
    });
}

function subscribe(buttonPressed) {
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    var validEmail = emailPattern.test($("input.email_input_field").attr("value"));
    if ( !validEmail ) {
        $("input.email_input_field").each(function() {
            $(this).fadeOut("slow");
        });
        $("input.email_input_field").each(function() {
            $(this).attr('value', "Enter Your Email Address");
        });

        $("input.email_input_field").each(function() {
            $(this).fadeIn("slow");
        });


    } else {
        $("input.email_input_field").each(function() {
            $(this).attr('disabled', 'true');

        });
        $("input.subscribe_button").each( function() {
            $(this).replaceWith('<img src="/altos/img/spinner.gif" />');

        });

        var suburl = protocol +"//"+regServer+"/altos/app?service=crmpost&rf=json&apiv=1&pai=" + partnerId +
                "&cityzip=" + $("input.email_input_field").attr("id") + "&PREF_CONTACT_METHOD=email" +
                "&FIRST_NAME=" + $("input.first_name_input_field").attr("value") +
                "&LAST_NAME=" + $("input.last_name_input_field").attr("value") +
                "&EMAIL1=" + $("input.email_input_field").attr("value") +
                "&PHONE_AREA_CODE=&PHONE_LOCAL_CODE=&PHONE_NUMBER=";

        $.ajax({
            url: suburl,
            dataType: "jsonp",
            success: function(data) {
                if ( data.responseCode == 200 ) {
                    $("div.marker_box").each(function() {
                        $(this).fadeOut("fast");
                        $(this).html(data.response.successMessage);
                        $(this).fadeIn("fast");
                    });
                } else {
                    $("div.marker_box").each(function() {
                        $(this).fadeOut("fast");
                        $(this).html('Your request has been received. Thank you for interest!');
                        $(this).fadeIn("fast");
                    });
                }

            }
        });

    }

}

$(document).ready(function() {

var listurl = protocol +"//"+chartServer+"/altos/app?service=listreports&rf=jsonp&apiv=1&pai=" + partnerId;
 $.ajax({
        url: listurl,
        dataType: 'jsonp',
        success: function(data) {
            if ( data.responseCode == 500 ||  data.resultCount == 0  ) {
                $("div#market_mapper").attr('style', 'color:white;text-align:center;vertical-align: bottom; height: 400px; width: 690px;background: url(/altos/img/no-locations.png) no-repeat center #233040;');
                $("div#market_mapper").html('<p><br/><br/>Looks like you have no locations to map.<br/><br/>This feature is only available to AltosConnect customers with Pro or Premium Subscriptions</p>');
                return;
            }

            var count = data.response.resultCount;
            if ( count == 0 ) return;


            var latlng = new google.maps.LatLng(40.27, -98.7);
            var myOptions = {
              zoom: 8,
              center: latlng,
              mapTypeId: google.maps.MapTypeId.ROADMAP
            };

           var map = new google.maps.Map($("div#market_mapper").get(0), myOptions);
           var latlngbounds = new google.maps.LatLngBounds();



            $.each(data.list, function(i,item) {
                var location = ""; var title = "";
                if ( item.cityWide == "true" ) {
                    location = item.stateName + "/" + item.cityDisplayName + "/" + item.zipName + "<br/>";
                    title = "" + item.cityDisplayName + ", " + item.stateName + "";
                } else {
                    location = item.stateName + "/" + item.cityDisplayName + "/" + item.zipName + "<br/>";
                    title = "" + item.cityDisplayName + ", " + item.stateName + " " + item.zipName + "";
                }

                var cityzipValue = item.cityId + "_" + item.zipId + "_" + item.residenceTypeId + "_" + item.marketAreaId + "_" + item.stateName;
                var rtStr  = "sf";
                if ( item.residenceTypeid == "200" ) {
                    rtStr = "mf";
                }


                var lat = new Number(item.latitude);
                var lng = new Number( item.longitude);

                if ( lat != 0.0 && lng != 0.0 ) {
                    var myLatlng = new google.maps.LatLng( lat, lng  );
                    latlngbounds.extend( myLatlng );
                    var priceChartImgUrl = protocol +"//" + chartServer + "/altos/app?service=chart&pai=" + partnerId +
                            "&ts=e&sz=s&ra=c&rt="+rtStr+"&q=a&s=median_price&st="+ item.stateName + "&c=" + item.cityName+"&z=" + item.zipName;
                    var contentString = '<div class="marker_box" style="margin:0;text-align:center;width:220px;height:200px;"><span style="font-family:Tahoma,Arial,Helmet,Freesans,sans-serif;font-size:10px;font-weight:bold;">'+title+'</span><br/><img style="background: url('+protocol +"//" + chartServer+'/altos/img/spinner.gif) no-repeat center center;width:180px;height:120px;"src="'+ priceChartImgUrl + '"/>'+
                            '<input class="first_name_input_field" onfocus="clearDefaultFirst();" type="text"  style="font-family:Tahoma,Arial,Helmet,Freesans,sans-serif;font-size:9px;margin-right: 3px; padding:0; border:1px solid gray; width:80px;" name="first_name" value="First Name"/>' +
                            '<input class="last_name_input_field" onfocus="clearDefaultLast();" type="text"  style="font-family:Tahoma,Arial,Helmet,Freesans,sans-serif;font-size:9px;margin:0; padding:0; border:1px solid gray; width:80px;" name="last_name" value="Last Name"/><br/>' +
                            '<input id="'+cityzipValue+'"  class="email_input_field" onfocus="clearDefaultEmail();" type="text"  style="font-family:Tahoma,Arial,Helmet,Freesans,sans-serif;font-size:9px;margin:0; border:1px solid gray; width:165px;" name="email" value="Enter Your Email Address"/>' +
                            '<input class="subscribe_button" type="button" onclick="subscribe(this);" style="color:white;font-family:Tahoma,Arial,Helmet,Freesans,sans-serif;font-size:9px;font-weight:bold;border:1px solid #666666;margin: 0;padding:0;width:175px;background-color: #d43f2b;" value="SEND ME THE FULL REPORT"/></div>';
                    var infowindow = new google.maps.InfoWindow({
                        content: contentString
                    });

                    var marker = new google.maps.Marker({
                          position: myLatlng,
                          map: map,
                          title: title
                    });



                    google.maps.event.addListener(marker, 'click', function() {
                        infowindow.open(map,marker);
                    });
                }

            });
            map.setCenter(latlngbounds.getCenter());
            map.fitBounds(latlngbounds);

        }
    });

});

