“use strict”;

var positionImage = function positionImage(imageEl) {
var imageDimensions = imageEl.dataset.imageDimensions.split(‘x’);
var originalWidth = imageDimensions[0];
var originalHeight = imageDimensions[1];
var focalPoint = imageEl.dataset.imageFocalPoint.split(‘,’);
var focalPointX = focalPoint[0];
var focalPointY = focalPoint[1];
var parentNode = imageEl.parentNode;

var scale = function () {
var imageRatio = originalWidth / originalHeight;
var parentClientSize = {
height: parentNode.clientHeight,
width: parentNode.clientWidth
var parentRatio = parentClientSize.width / parentClientSize.height;

if (imageRatio > parentRatio) {
return parentClientSize.height / originalHeight;

return parentClientSize.width / originalWidth;

var getRelativeOffset = function getRelativeOffset() {
var targetWidth = Math.ceil(originalWidth * scale);
var targetHeight = Math.ceil(originalHeight * scale);
var parentDimensionWidth = parentNode.offsetWidth;
var parentDimensionHeight = parentNode.offsetHeight;
var overflowWidth = targetWidth – parentDimensionWidth;
var overflowHeight = targetHeight – parentDimensionHeight;
var valueX;

if (overflowWidth === 0) {
valueX = focalPointX;
} else {
valueX = Math.max(Math.min(targetWidth * focalPointX – parentDimensionWidth * 0.5, overflowWidth), 0) / overflowWidth;

var valueY;

if (overflowHeight === 0) {
valueY = focalPointY;
} else {
valueY = Math.max(Math.min(targetHeight * focalPointY – parentDimensionHeight * 0.5, overflowHeight), 0) / overflowHeight;

return {
valueX: valueX,
valueY: valueY

var relativeOffset = getRelativeOffset();
var valueX = relativeOffset.valueX;
var valueY = relativeOffset.valueY; = “”.concat(valueX * 100, “% “).concat(valueY * 100, “%”);
Object.assign(, {
height: ‘100%’,
width: ‘100%’,
objectFit: ‘cover’,

Resources & Newsletters

The resources on this page are intended to help our members contact their local and national representatives, dig into topics raised by our speaker series in more depth, read past newsletters, and more. If you have a resource you would like to share, you can send it to If you have thoughts and opinions you’d like to share, please consider posting a short article on our Blog page.

U.S. Officials


U.S. Senator (D)

Kyrsten Sinema

Phone: (520) 639-7080


U.S. Senator (D)

Mark Kelley

Phone: (520) 475-5177


U.S. Representative (D)

Ann Kirkpatrick

Phone: (520) 881-3588

State Officials – District 2


State Senator (D)

Rosanna Gabaldon

Phone: (602) 926-3424



State Representative (D)

Andrea Dalessandro

Phone: (602) 926-5342



State Representative (D)

Daniel Hernandez, Jr.

Phone: (602) 926-4840


Newsletter Archive

Our newsletter comes out twice a month, on or about the 1st and the 15th of each month. You can sign up for the newsletter through the form at the bottom of each website page or by sending an email to If you have already signed up for our newsletters and are not receiving them, please be sure to check your spam folder and mark the email (it will come from Democratic Club of Quail Creek) as “Not Spam”. If you are still having problems receiving the newsletter, you can reach out to us at

Resources Archive

Below are links to some presentations by our speakers or resources we’ve shared previously on other pages of our site. If you don’t find what you are looking for, you can contact us at

Terry Sayles, The Modern Militia Movement, power point slides.

David Domke, Youtube Video Series, How They Beat the Filibuster, video 1, video 2, video 3

Photo credits: Top, Chuck Stack; Bottom, left to right; Chuck Stack, Brett Blum