text:
bottomer, fred (3)
howard, needles, tammen & bergendoff (3)
bartimole, roldo (2)
city club of cleveland (2)
acme newspictures (new york, n.y.) (1)
ad photo studios (1)
aleksandrowicz, frank (1)
brunton, tom (1)
butler airphotos, inc. (1)
1913? (1)
3 x 5 in. (27)
10 x 8 in. (1)
edgewater park (11)
cleveland (ohio) (5)
food supply (5)
local foods (5)
urban agriculture (5)
agricultural education (4)
children's gardens -- ohio (4)
Description: TOTAL
New Concrete Bridge over Rocky River, Cleveland Sixth City
Detroit-Rocky River Bridge; Rocky River Bridge; Rocky River; Bridges; Rocky River Concrete Arch Bridge (Rocky River and Lakewood, Ohio)
(Center span-280ft. Height above water 100 ft., Total length 772ft.)
Great Lakes Dredge & Dock impermanent intake crib
Dredges; Docks; Great Lakes (North America); Interiors; Lakes & ponds; Construction; Great Lakes Dredge & Dock Company
"12031 11-6-07 ... George W. Jackson Inc. ... Interior view Intake Crib for S.W. Land & Lake Tunnel - finishing 5th course. Total feet B.M. in Crib 3,000,000" -- photo front.
"1970-71 Directory, high schools offering two and three year programs in vocational horticulture." Cleveland Public Schools Horticulture Program
School gardens; Cleveland Public Schools Horticulture Program; Gardening; Agriculture; Laboratory schools; School children; Local foods; Urban agriculture; Vocational education; High schools; Sustainability
"1970-71 Directory, high schools offering two and three year programs in vocational horticulture" is a summary of a survey done of 24 states and territories, 18 of which reported (including Ohio) the following information regarding their programs:...
Richmond Heights General Hospital
Hospitals; Architecture
"A 220 bed Osteopathic hospital located at 27100 Chardon Road in Richmond Heights, Ohio. Founded in 1961, this fully accredited teaching hospital completed a total renovation and expansion of facilities in late 1983." -- card verso.
Architectural model of University-Euclid proposal
University Circle (Cleveland, Ohio); Cleveland; Parking garages; Architectural models; Research facilities;
"A PEDESTRIAN WALK on a plaza level 16 feet above the existing grade is one of the features in the first phase of a proposed $14,000,000 industrial research center in Cleveland's University-Euclid renewal area. Three buildings of four to eight...
A man standing on a ladder holds a swimsuit-clad woman over a pool of water, ready to toss her in
Cuyahoga County Fair; Fairs; Berea (Ohio); WERE (Radio station : Cleveland, Ohio); Bathing suits; Fund raising
"About to get dunked in the WERE Pool of Pennies at the Cuyahoga County Fair is model Paula Ackerman. Every time anyone throws a dollar or more into the pool, he gets to throw Paula in. At the end of the Fair, WERE will match the total of the...
Along the Shore, Edgewater Park, Cleveland, Sixth City
Edgewater Park; Parks; Lakefront; Waterfronts; Beaches
"ALONG THE SHORE, EDGEWATER PARK, CLEVELAND, SIXTH CITY. Edgewater Park is located about halfway between the Public Square and city limits on the lake front west of the Cuyahoga River. It has a total area of 100 acres, contains 21-2 miles of...
Modulux Prefabricated Structures will be used to build classrooms and offices at Cleveland State University
Cleveland State University; Buildings
"An instant campus of prefabricated air conditioned buildings at Cleveland State University will look something like this California college when it is completed next month. CSU to Erect 40 Classrooms in Instant Campus By Bud Weidenthal There's...
550 barrel storage and aging tanks at the Cleveland Home Brewing Company
Brewing And Distilling Industry; Brewing industry; Cleveland Home Brewing Company
"An interior view of the plant, showing a row of the huge glass-lined aging tanks. In 12 cellars located in the building are 32 of these tanks, capable of holding a total of 14,910 barrels of beer. In the picture is seen Earl W. Harrison, chief...
A beverage store owner stands on a tower of bottles he's unable to return
Grgat, John; Bottles; Carbonated beverages; Beverage industry strikes; Teamsters Union; Broadview Beverage Co.
"Backlog of cases can be as annoying to a beverage store owner as to a judge. This 25-foot tower consists of 154 cases of 12 bottles each--a total of 1848 bottles. Each case is worth $1. John Grgat of Broadview Beverage Co., 7890 Broadview Rd.,...
Bath House, Edgewater Park, Cleveland, Sixth City
Edgewater Park; Bathhouses; Beaches
"Bath House, Edgewater Park, Cleveland, Sixth City. Edgewater Park is located about half way between the Public Square and city limits on the lakefront west of the Cuyahoga River. It has total area of 100 acres, contains 2 1/2 miles of cement and...
Bathhouse and View Towards City, Edgewater Park, Cleveland, Ohio
Edgewater Park; Bathhouses
"Bathhouse and View Towards City, Edgewater Park, Cleveland, Ohio. Edgewater park is located about half way between the Public Square and city limits on the lake front west of the Cuyahoga River. It has a total area of 100 acres, contains 2 1/2...
Bathing at Edgewater Park, Cleveland Sixth City
Edgewater Park; Beaches
"Bathing at Edgewater Park, Cleveland, Sixth City. Edgewater Park is located about half way between the Public Square and city limits on the lakefront west of the Cuyahoga River. It has total area of 100 acres, contains 2 1/2 miles of cement and...
Bathing, Edgewater Park, Cleveland, Sixth City
"Bathing, Edgewater Park, Cleveland, Sixth City. Edgewater Park is located about half way between the Public Square and city limits on the lakefront west of the Cuyahoga River. It has total area of 100 acres, contains 2 1/2 miles of cement and...
Walter K. Bailey accepting a check from Daniel H. Lind for Blossom Music Center
Blossom Music Center; Bailey, Walter K.; Lind, Daniel H.
"Blossom Center Gift -- Walter K. Bailey (left), general chairman of the Half Century Fund of the Cleveland Orchestra, accepts a check for $20,000 from Daniel H. Lind, Cleveland manager of sales fro United States Steel. The check was presented on...
Bob Feller contemplates a baseball
Baseball; Baseballs; Feller, Bob, 1918-2010; Cleveland Indians; Baseball players; Baseball pitchers
"Bob Feller, Cleveland Indians pitcher, looks at the ball with which he tied [Philadelphia Athletics pitcher Rube] Waddell's strikeout record of 343 in a season." --photo caption. Feller went on to finish the season with 348 strikeouts,...
Boulevard Through Edgewater Park, Cleveland, Ohio
"Boulevard Through Edgewater Park, Cleveland, Ohio. Edgewater park is located about half way between the Public Square and city limits on the lake front west of the Cuyahoga River. It has a total area of 100 acres, contains 2 1/2 miles of cement...
Bridge at Wade Park Av., Rockefeller Park
Rockefeller Park; Wade Park; East Blvd.; Bridges; Parks; Wade Park Avenue Bridge (Cleveland, Ohio)
"Bridge at Wade Park Av., Rockefeller Park, Cleveland, Sixth City. Rockefeller Park contains a total area of 273 acres and consists of three sections. Brookway, Cedar and Fairmont. It contains 12 miles of beautiful driveways and 5 acres of lakes....
Construction of Forest Hill Park Pedestrian Bridge, 1940
Bridges, Arch; Forest Hill Park Pedestrian Bridge (East Cleveland, Ohio); Rockefeller, John D.; Watson, Wilbur J.; Pedestrian bridges
"Bridge in Forest Hill Park now under construction by Works Progress Administration"--photo verso. Shows the construction of the Forest Hill Foot Bridge over Forest Hill Boulevard in East Cleveland, Ohio. Scaffolding is set up around the frame of...
Radio Control Panel - Crile General Hospital
Crile Hospital; Hospitals; Military Hospitals; Parma (Ohio); Radio
"Broadcasting on the Hospital radio system, installed with the proceeds of the Heroes' Homecoming Fund is handled through this control board. The Heroes' Homecoming Campaign, sponsored by the Cleveland Press, raised a total of $175,000 to provide a...


text:
/*!
 * sweetalert2 v5.3.1
 * Released under the MIT License.
 */
'use strict';

var swalPrefix = 'swal2-'

var prefix = function (items) {
  var result = {}
  for (var i in items) {
    result[items[i]] = swalPrefix + items[i]
  }
  return result
}

var swalClasses = prefix([
  'container',
  'in',
  'iosfix',
  'modal',
  'overlay',
  'close',
  'content',
  'spacer',
  'confirm',
  'cancel',
  'icon',
  'image',
  'input',
  'file',
  'range',
  'select',
  'radio',
  'checkbox',
  'textarea',
  'validationerror',
  'progresssteps',
  'activeprogressstep',
  'progresscircle',
  'progressline',
  'loading',
  'styled'
])

var iconTypes = prefix([
  'success',
  'warning',
  'info',
  'question',
  'error'
])

var defaultParams = {
  title: '',
  text: '',
  html: '',
  type: null,
  customClass: '',
  animation: true,
  allowOutsideClick: true,
  allowEscapeKey: true,
  showConfirmButton: true,
  showCancelButton: false,
  preConfirm: null,
  confirmButtonText: 'OK',
  confirmButtonColor: '#3085d6',
  confirmButtonClass: null,
  cancelButtonText: 'Cancel',
  cancelButtonColor: '#aaa',
  cancelButtonClass: null,
  buttonsStyling: true,
  reverseButtons: false,
  focusCancel: false,
  showCloseButton: false,
  showLoaderOnConfirm: false,
  imageUrl: null,
  imageWidth: null,
  imageHeight: null,
  imageClass: null,
  timer: null,
  width: 500,
  padding: 20,
  background: '#fff',
  input: null,
  inputPlaceholder: '',
  inputValue: '',
  inputOptions: {},
  inputAutoTrim: true,
  inputClass: null,
  inputAttributes: {},
  inputValidator: null,
  progressSteps: [],
  currentProgressStep: null,
  progressStepsDistance: '40px',
  onOpen: null,
  onClose: null
}

var sweetHTML = '
' +
    '

' +
    '
' +
      '' +
    '
' +
    '
?
' +
    '
!
' +
    '
i
' +
    '
' +
      ' ' +
      '

' +
    '
' +
    '' +
    '

' +
    '

' +
    '<input class="' + swalClasses.input + '">' +
    '<input type="file" class="' + swalClasses.file + '">' +
    '
' +
      '<output></output>' +
      '<input type="range">' +
    '
' +
    '<select class="' + swalClasses.select + '"></select>' +
    '

' +
    '' +
      '<input type="checkbox">' +
    '' +
    '<textarea class="' + swalClasses.textarea + '"></textarea>' +
    '

' +
    '
' +
    '<button type="button" class="' + swalClasses.confirm + '">OK</button>' +
    '<button type="button" class="' + swalClasses.cancel + '">Cancel</button>' +
    '×' +
  '
'

var sweetContainer

var existingSweetContainers = document.getElementsByClassName(swalClasses.container)

if (existingSweetContainers.length) {
  sweetContainer = existingSweetContainers[0]
} else {
  sweetContainer = document.createElement('div')
  sweetContainer.className = swalClasses.container
  sweetContainer.innerHTML = sweetHTML
}

var extend = function (a, b) {
  for (var key in b) {
    if (b.hasOwnProperty(key)) {
      a[key] = b[key]
    }
  }

  return a
}

/*
 * Set hover, active and focus-states for buttons (source: http://www.sitepoint.com/javascript-generate-lighter-darker-color)
 */
var colorLuminance = function (hex, lum) {
  // Validate hex string
  hex = String(hex).replace(/[^0-9a-f]/gi, '')
  if (hex.length < 6) {
    hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]
  }
  lum = lum || 0

  // Convert to decimal and change luminosity
  var rgb = '#'
  for (var i = 0; i < 3; i++) {
    var c = parseInt(hex.substr(i * 2, 2), 16)
    c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16)
    rgb += ('00' + c).substr(c.length)
  }

  return rgb
}

// Remember state in cases where opening and handling a modal will fiddle with it.
var states = {
  previousWindowKeyDown: null,
  previousActiveElement: null,
  previousBodyPadding: null
}

/*
 * Add modal + overlay to DOM
 */
var init = function () {
  if (typeof document === 'undefined') {
    console.error('SweetAlert2 requires document to initialize')
    return
  } else if (document.getElementsByClassName(swalClasses.container).length) {
    return
  }

  document.body.appendChild(sweetContainer)

  var modal = getModal()
  var input = getChildByClass(modal, swalClasses.input)
  var file = getChildByClass(modal, swalClasses.file)
  var range = modal.querySelector('.' + swalClasses.range + ' input')
  var select = getChildByClass(modal, swalClasses.select)
  var checkbox = modal.querySelector('.' + swalClasses.checkbox + ' input')
  var textarea = getChildByClass(modal, swalClasses.textarea)

  input.oninput = function () {
    sweetAlert.resetValidationError()
  }

  input.onkeyup = function (event) {
    event.stopPropagation()
    if (event.keyCode === 13) {
      sweetAlert.clickConfirm()
    }
  }

  file.onchange = function () {
    sweetAlert.resetValidationError()
  }

  range.oninput = function () {
    sweetAlert.resetValidationError()
    range.previousSibling.value = range.value
  }

  range.onchange = function () {
    sweetAlert.resetValidationError()
    range.previousSibling.value = range.value
  }

  select.onchange = function () {
    sweetAlert.resetValidationError()
  }

  checkbox.onchange = function () {
    sweetAlert.resetValidationError()
  }

  textarea.oninput = function () {
    sweetAlert.resetValidationError()
  }

  return modal
}

/*
 * Manipulate DOM
 */
var elementByClass = function (className) {
  return sweetContainer.querySelector('.' + className)
}

var getModal = function () {
  return document.body.querySelector('.' + swalClasses.modal) || init()
}

var getIcons = function () {
  var modal = getModal()
  return modal.querySelectorAll('.' + swalClasses.icon)
}

var getSpacer = function () {
  return elementByClass(swalClasses.spacer)
}

var getProgressSteps = function () {
  return elementByClass(swalClasses.progresssteps)
}

var getValidationError = function () {
  return elementByClass(swalClasses.validationerror)
}

var getConfirmButton = function () {
  return elementByClass(swalClasses.confirm)
}

var getCancelButton = function () {
  return elementByClass(swalClasses.cancel)
}

var getCloseButton = function () {
  return elementByClass(swalClasses.close)
}

var getFocusableElements = function (focusCancel) {
  var buttons = [getConfirmButton(), getCancelButton()]
  if (focusCancel) {
    buttons.reverse()
  }
  return buttons.concat(Array.prototype.slice.call(
    getModal().querySelectorAll('button:not([class^=' + swalPrefix + ']), input:not([type=hidden]), textarea, select')
  ))
}

var hasClass = function (elem, className) {
  return elem.classList.contains(className)
}

var focusInput = function (input) {
  input.focus()

  // place cursor at end of text in text input
  if (input.type !== 'file') {
    // http://stackoverflow.com/a/2345915/1331425
    var val = input.value
    input.value = ''
    input.value = val
  }
}

var addClass = function (elem, className) {
  if (!elem || !className) {
    return
  }
  var classes = className.split(/\s+/)
  classes.forEach(function (className) {
    elem.classList.add(className)
  })
}

var removeClass = function (elem, className) {
  if (!elem || !className) {
    return
  }
  var classes = className.split(/\s+/)
  classes.forEach(function (className) {
    elem.classList.remove(className)
  })
}

var getChildByClass = function (elem, className) {
  for (var i = 0; i < elem.childNodes.length; i++) {
    if (hasClass(elem.childNodes[i], className)) {
      return elem.childNodes[i]
    }
  }
}

var show = function (elem, display) {
  if (!display) {
    display = 'block'
  }
  elem.style.opacity = ''
  elem.style.display = display
}

var hide = function (elem) {
  elem.style.opacity = ''
  elem.style.display = 'none'
}

var empty = function (elem) {
  while (elem.firstChild) {
    elem.removeChild(elem.firstChild)
  }
}

// borrowed from jqeury $(elem).is(':visible') implementation
var isVisible = function (elem) {
  return elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length
}

var removeStyleProperty = function (elem, property) {
  if (elem.style.removeProperty) {
    elem.style.removeProperty(property)
  } else {
    elem.style.removeAttribute(property)
  }
}

var fireClick = function (node) {
  // Taken from http://www.nonobtrusive.com/2011/11/29/programatically-fire-crossbrowser-click-event-with-javascript/
  // Then fixed for today's Chrome browser.
  if (typeof MouseEvent === 'function') {
    // Up-to-date approach
    var mevt = new MouseEvent('click', {
      view: window,
      bubbles: false,
      cancelable: true
    })
    node.dispatchEvent(mevt)
  } else if (document.createEvent) {
    // Fallback
    var evt = document.createEvent('MouseEvents')
    evt.initEvent('click', false, false)
    node.dispatchEvent(evt)
  } else if (document.createEventObject) {
    node.fireEvent('onclick')
  } else if (typeof node.onclick === 'function') {
    node.onclick()
  }
}

var stopEventPropagation = function (e) {
  // In particular, make sure the space bar doesn't scroll the main window.
  if (typeof e.stopPropagation === 'function') {
    e.stopPropagation()
    e.preventDefault()
  } else if (window.event && window.event.hasOwnProperty('cancelBubble')) {
    window.event.cancelBubble = true
  }
}

var animationEndEvent = (function () {
  var testEl = document.createElement('div')
  var transEndEventNames = {
    'WebkitAnimation': 'webkitAnimationEnd',
    'OAnimation': 'oAnimationEnd oanimationend',
    'msAnimation': 'MSAnimationEnd',
    'animation': 'animationend'
  }
  for (var i in transEndEventNames) {
    if (transEndEventNames.hasOwnProperty(i) &&
      testEl.style[i] !== undefined) {
      return transEndEventNames[i]
    }
  }

  return false
})()

// Reset the page to its previous state
var resetPrevState = function () {
  var modal = getModal()
  window.onkeydown = states.previousWindowKeyDown
  if (states.previousActiveElement && states.previousActiveElement.focus) {
    states.previousActiveElement.focus()
  }
  clearTimeout(modal.timeout)
}

// Measure width of scrollbar
// https://github.com/twbs/bootstrap/blob/master/js/modal.js#L279-L286
var measureScrollbar = function () {
  var scrollDiv = document.createElement('div')
  scrollDiv.style.width = '50px'
  scrollDiv.style.height = '50px'
  scrollDiv.style.overflow = 'scroll'
  document.body.appendChild(scrollDiv)
  var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
  document.body.removeChild(scrollDiv)
  return scrollbarWidth
}

// JavaScript Debounce Function
// https://davidwalsh.name/javascript-debounce-function
var debounce = function (func, wait, immediate) {
  var timeout
  return function () {
    var context = this
    var args = arguments
    var later = function () {
      timeout = null
      if (!immediate) func.apply(context, args)
    }
    var callNow = immediate && !timeout
    clearTimeout(timeout)
    timeout = setTimeout(later, wait)
    if (callNow) func.apply(context, args)
  }
}

var modalParams = extend({}, defaultParams)
var queue = []
var swal2Observer

/*
 * Set type, text and actions on modal
 */
var setParameters = function (params) {
  var modal = getModal()

  for (var param in params) {
    if (!defaultParams.hasOwnProperty(param) && param !== 'extraParams') {
      console.warn('SweetAlert2: Unknown parameter "' + param + '"')
    }
  }

  // set modal width and margin-left
  modal.style.width = (typeof params.width === 'number') ? params.width + 'px' : params.width

  modal.style.padding = params.padding + 'px'
  modal.style.background = params.background

  var $title = modal.querySelector('h2')
  var $content = modal.querySelector('.' + swalClasses.content)
  var $confirmBtn = getConfirmButton()
  var $cancelBtn = getCancelButton()
  var $closeButton = modal.querySelector('.' + swalClasses.close)

  // Title
  $title.innerHTML = params.title.split('\n').join('
')

  // Content
  var i
  if (params.text || params.html) {
    if (typeof params.html === 'object') {
      $content.innerHTML = ''
      if (0 in params.html) {
        for (i = 0; i in params.html; i++) {
          $content.appendChild(params.html[i].cloneNode(true))
        }
      } else {
        $content.appendChild(params.html.cloneNode(true))
      }
    } else {
      $content.innerHTML = params.html || (params.text.split('\n').join('
'))
    }
    show($content)
  } else {
    hide($content)
  }

  // Close button
  if (params.showCloseButton) {
    show($closeButton)
  } else {
    hide($closeButton)
  }

  // Custom Class
  modal.className = swalClasses.modal
  if (params.customClass) {
    addClass(modal, params.customClass)
  }

  // Progress steps
  var progressStepsContainer = getProgressSteps()
  var currentProgressStep = parseInt(params.currentProgressStep === null ? sweetAlert.getQueueStep() : params.currentProgressStep, 10)
  if (params.progressSteps.length) {
    show(progressStepsContainer)
    empty(progressStepsContainer)
    if (currentProgressStep >= params.progressSteps.length) {
      console.warn(
        'SweetAlert2: Invalid currentProgressStep parameter, it should be less than progressSteps.length ' +
        '(currentProgressStep like JS arrays starts from 0)'
      )
    }
    params.progressSteps.forEach(function (step, index) {
      var circle = document.createElement('li')
      addClass(circle, swalClasses.progresscircle)
      circle.innerHTML = step
      if (index === currentProgressStep) {
        addClass(circle, swalClasses.activeprogressstep)
      }
      progressStepsContainer.appendChild(circle)
      if (index !== params.progressSteps.length - 1) {
        var line = document.createElement('li')
        addClass(line, swalClasses.progressline)
        line.style.width = params.progressStepsDistance
        progressStepsContainer.appendChild(line)
      }
    })
  } else {
    hide(progressStepsContainer)
  }

  // Icon
  var icons = getIcons()
  for (i = 0; i < icons.length; i++) {
    hide(icons[i])
  }
  if (params.type) {
    var validType = false
    for (var iconType in iconTypes) {
      if (params.type === iconType) {
        validType = true
        break
      }
    }
    if (!validType) {
      console.error('SweetAlert2: Unknown alert type: ' + params.type)
      return false
    }
    var $icon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes[params.type])
    show($icon)

    // Animate icon
    switch (params.type) {
      case 'success':
        addClass($icon, 'animate')
        addClass($icon.querySelector('.tip'), 'animate-success-tip')
        addClass($icon.querySelector('.long'), 'animate-success-long')
        break
      case 'error':
        addClass($icon, 'animate-error-icon')
        addClass($icon.querySelector('.x-mark'), 'animate-x-mark')
        break
      case 'warning':
        addClass($icon, 'pulse-warning')
        break
      default:
        break
    }
  }

  // Custom image
  var $customImage = modal.querySelector('.' + swalClasses.image)
  if (params.imageUrl) {
    $customImage.setAttribute('src', params.imageUrl)
    show($customImage)

    if (params.imageWidth) {
      $customImage.setAttribute('width', params.imageWidth)
    } else {
      $customImage.removeAttribute('width')
    }

    if (params.imageHeight) {
      $customImage.setAttribute('height', params.imageHeight)
    } else {
      $customImage.removeAttribute('height')
    }

    $customImage.className = swalClasses.image
    if (params.imageClass) {
      addClass($customImage, params.imageClass)
    }
  } else {
    hide($customImage)
  }

  // Cancel button
  if (params.showCancelButton) {
    $cancelBtn.style.display = 'inline-block'
  } else {
    hide($cancelBtn)
  }

  // Confirm button
  if (params.showConfirmButton) {
    removeStyleProperty($confirmBtn, 'display')
  } else {
    hide($confirmBtn)
  }

  // Buttons spacer
  var spacer = getSpacer()
  if (!params.showConfirmButton && !params.showCancelButton) {
    hide(spacer)
  } else {
    show(spacer)
  }

  // Edit text on cancel and confirm buttons
  $confirmBtn.innerHTML = params.confirmButtonText
  $cancelBtn.innerHTML = params.cancelButtonText

  // Set buttons to selected background colors
  if (params.buttonsStyling) {
    $confirmBtn.style.backgroundColor = params.confirmButtonColor
    $cancelBtn.style.backgroundColor = params.cancelButtonColor
  }

  // Add buttons custom classes
  $confirmBtn.className = swalClasses.confirm
  addClass($confirmBtn, params.confirmButtonClass)
  $cancelBtn.className = swalClasses.cancel
  addClass($cancelBtn, params.cancelButtonClass)

  // Buttons styling
  if (params.buttonsStyling) {
    addClass($confirmBtn, swalClasses.styled)
    addClass($cancelBtn, swalClasses.styled)
  } else {
    removeClass($confirmBtn, swalClasses.styled)
    removeClass($cancelBtn, swalClasses.styled)

    $confirmBtn.style.backgroundColor = $confirmBtn.style.borderLeftColor = $confirmBtn.style.borderRightColor = ''
    $cancelBtn.style.backgroundColor = $cancelBtn.style.borderLeftColor = $cancelBtn.style.borderRightColor = ''
  }

  // CSS animation
  if (params.animation === true) {
    removeClass(modal, 'no-animation')
  } else {
    addClass(modal, 'no-animation')
  }
}

/*
 * Animations
 */
var openModal = function (animation, onComplete) {
  var modal = getModal()
  if (animation) {
    addClass(modal, 'show-swal2')
    addClass(sweetContainer, 'fade')
    removeClass(modal, 'hide-swal2')
  } else {
    removeClass(modal, 'fade')
  }
  show(modal)

  // scrolling is 'hidden' until animation is done, after that 'auto'
  sweetContainer.style.overflowY = 'hidden'
  if (animationEndEvent && !hasClass(modal, 'no-animation')) {
    modal.addEventListener(animationEndEvent, function swalCloseEventFinished () {
      modal.removeEventListener(animationEndEvent, swalCloseEventFinished)
      sweetContainer.style.overflowY = 'auto'
    })
  } else {
    sweetContainer.style.overflowY = 'auto'
  }

  addClass(sweetContainer, swalClasses.in)
  addClass(document.body, swalClasses.in)
  fixScrollbar()
  iOSfix()
  states.previousActiveElement = document.activeElement
  if (onComplete !== null && typeof onComplete === 'function') {
    onComplete.call(this, modal)
  }
}

function fixScrollbar () {
  // for queues, do not do this more than once
  if (states.previousBodyPadding !== null) {
    return
  }
  // if the body has overflow
  if (document.body.scrollHeight > window.innerHeight) {
    // add padding so the content doesn't shift after removal of scrollbar
    states.previousBodyPadding = document.body.style.paddingRight
    document.body.style.paddingRight = measureScrollbar() + 'px'
  }
}

function undoScrollbar () {
  if (states.previousBodyPadding !== null) {
    document.body.style.paddingRight = states.previousBodyPadding
    states.previousBodyPadding = null
  }
}

// Fix iOS scrolling http://stackoverflow.com/q/39626302/1331425
function iOSfix () {
  if (!hasClass(document.body, swalClasses.iosfix)) {
    var offset = document.body.scrollTop
    document.body.style.top = (offset * -1) + 'px'
    addClass(document.body, swalClasses.iosfix)
  }
}

function undoIOSfix () {
  if (hasClass(document.body, swalClasses.iosfix)) {
    var offset = parseInt(document.body.style.top, 10)
    removeClass(document.body, swalClasses.iosfix)
    document.body.scrollTop = (offset * -1)
  }
}

function modalDependant () {
  if (arguments[0] === undefined) {
    console.error('SweetAlert2 expects at least 1 attribute!')
    return false
  }

  var params = extend({}, modalParams)

  switch (typeof arguments[0]) {

    case 'string':
      params.title = arguments[0]
      params.text = arguments[1] || ''
      params.type = arguments[2] || ''

      break

    case 'object':
      extend(params, arguments[0])
      params.extraParams = arguments[0].extraParams

      if (params.input === 'email' && params.inputValidator === null) {
        params.inputValidator = function (email) {
          return new Promise(function (resolve, reject) {
            var emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/
            if (emailRegex.test(email)) {
              resolve()
            } else {
              reject('Invalid email address')
            }
          })
        }
      }

      break

    default:
      console.error('SweetAlert2: Unexpected type of argument! Expected "string" or "object", got ' + typeof arguments[0])
      return false
  }

  setParameters(params)

  // Modal interactions
  var modal = getModal()

  return new Promise(function (resolve, reject) {
    // Close on timer
    if (params.timer) {
      modal.timeout = setTimeout(function () {
        sweetAlert.closeModal(params.onClose)
        reject('timer')
      }, params.timer)
    }

    // Get input element by specified type or, if type isn't specified, by params.input
    var getInput = function (inputType) {
      inputType = inputType || params.input
      switch (inputType) {
        case 'select':
        case 'textarea':
        case 'file':
          return getChildByClass(modal, swalClasses[inputType])
        case 'checkbox':
          return modal.querySelector('.' + swalClasses.checkbox + ' input')
        case 'radio':
          return modal.querySelector('.' + swalClasses.radio + ' input:checked') ||
            modal.querySelector('.' + swalClasses.radio + ' input:first-child')
        case 'range':
          return modal.querySelector('.' + swalClasses.range + ' input')
        default:
          return getChildByClass(modal, swalClasses.input)
      }
    }

    // Get the value of the modal input
    var getInputValue = function () {
      var input = getInput()
      if (!input) {
        return null
      }
      switch (params.input) {
        case 'checkbox':
          return input.checked ? 1 : 0
        case 'radio':
          return input.checked ? input.value : null
        case 'file':
          return input.files.length ? input.files[0] : null
        default:
          return params.inputAutoTrim ? input.value.trim() : input.value
      }
    }

    // input autofocus
    if (params.input) {
      setTimeout(function () {
        var input = getInput()
        if (input) {
          focusInput(input)
        }
      }, 0)
    }

    var confirm = function (value) {
      if (params.showLoaderOnConfirm) {
        sweetAlert.showLoading()
      }

      if (params.preConfirm) {
        params.preConfirm(value, params.extraParams).then(
          function (preConfirmValue) {
            sweetAlert.closeModal(params.onClose)
            resolve(preConfirmValue || value)
          },
          function (error) {
            sweetAlert.hideLoading()
            if (error) {
              sweetAlert.showValidationError(error)
            }
          }
        )
      } else {
        sweetAlert.closeModal(params.onClose)
        resolve(value)
      }
    }

    // Mouse interactions
    var onButtonEvent = function (event) {
      var e = event || window.event
      var target = e.target || e.srcElement
      var confirmBtn = getConfirmButton()
      var cancelBtn = getCancelButton()
      var targetedConfirm = confirmBtn === target || confirmBtn.contains(target)
      var targetedCancel = cancelBtn === target || cancelBtn.contains(target)

      switch (e.type) {
        case 'mouseover':
        case 'mouseup':
          if (params.buttonsStyling) {
            if (targetedConfirm) {
              confirmBtn.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.1)
            } else if (targetedCancel) {
              cancelBtn.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.1)
            }
          }
          break
        case 'mouseout':
          if (params.buttonsStyling) {
            if (targetedConfirm) {
              confirmBtn.style.backgroundColor = params.confirmButtonColor
            } else if (targetedCancel) {
              cancelBtn.style.backgroundColor = params.cancelButtonColor
            }
          }
          break
        case 'mousedown':
          if (params.buttonsStyling) {
            if (targetedConfirm) {
              confirmBtn.style.backgroundColor = colorLuminance(params.confirmButtonColor, -0.2)
            } else if (targetedCancel) {
              cancelBtn.style.backgroundColor = colorLuminance(params.cancelButtonColor, -0.2)
            }
          }
          break
        case 'click':
          // Clicked 'confirm'
          if (targetedConfirm && sweetAlert.isVisible()) {
            if (params.input) {
              var inputValue = getInputValue()

              if (params.inputValidator) {
                sweetAlert.disableInput()
                params.inputValidator(inputValue, params.extraParams).then(
                  function () {
                    sweetAlert.enableInput()
                    confirm(inputValue)
                  },
                  function (error) {
                    sweetAlert.enableInput()
                    if (error) {
                      sweetAlert.showValidationError(error)
                    }
                  }
                )
              } else {
                confirm(inputValue)
              }
            } else {
              confirm(true)
            }

          // Clicked 'cancel'
          } else if (targetedCancel && sweetAlert.isVisible()) {
            sweetAlert.closeModal(params.onClose)
            reject('cancel')
          }

          break
        default:
      }
    }

    var $buttons = modal.querySelectorAll('button')
    var i
    for (i = 0; i < $buttons.length; i++) {
      $buttons[i].onclick = onButtonEvent
      $buttons[i].onmouseover = onButtonEvent
      $buttons[i].onmouseout = onButtonEvent
      $buttons[i].onmousedown = onButtonEvent
    }

    // Closing modal by close button
    getCloseButton().onclick = function () {
      sweetAlert.closeModal(params.onClose)
      reject('close')
    }

    // Closing modal by overlay click
    sweetContainer.onclick = function (e) {
      if (e.target !== sweetContainer) {
        return
      }
      if (params.allowOutsideClick) {
        sweetAlert.closeModal(params.onClose)
        reject('overlay')
      }
    }

    var $confirmButton = getConfirmButton()
    var $cancelButton = getCancelButton()

    // Reverse buttons if neede d
    if (params.reverseButtons) {
      $confirmButton.parentNode.insertBefore($cancelButton, $confirmButton)
    } else {
      $confirmButton.parentNode.insertBefore($confirmButton, $cancelButton)
    }

    // Focus handling
    function setFocus (index, increment) {
      var focusableElements = getFocusableElements(params.focusCancel)
      // search for visible elements and select the next possible match
      for (var i = 0; i < focusableElements.length; i++) {
        index = index + increment

        // rollover to first item
        if (index === focusableElements.length) {
          index = 0

        // go to last item
        } else if (index === -1) {
          index = focusableElements.length - 1
        }

        // determine if element is visible
        var el = focusableElements[index]
        if (isVisible(el)) {
          return el.focus()
        }
      }
    }

    function handleKeyDown (event) {
      var e = event || window.event
      var keyCode = e.keyCode || e.which

      if ([9, 13, 32, 27].indexOf(keyCode) === -1) {
        // Don't do work on keys we don't care about.
        return
      }

      var $targetElement = e.target || e.srcElement

      var focusableElements = getFocusableElements(params.focusCancel)
      var btnIndex = -1 // Find the button - note, this is a nodelist, not an array.
      for (var i = 0; i < focusableElements.length; i++) {
        if ($targetElement === focusableElements[i]) {
          btnIndex = i
          break
        }
      }

      // TAB
      if (keyCode === 9) {
        if (!e.shiftKey) {
          // Cycle to the next button
          setFocus(btnIndex, 1)
        } else {
          // Cycle to the prev button
          setFocus(btnIndex, -1)
        }

        stopEventPropagation(e)
      } else {
        if (keyCode === 13 || keyCode === 32) {
          if (btnIndex === -1) {
            // ENTER/SPACE clicked outside of a button.
            if (params.focusCancel) {
              fireClick($cancelButton, e)
            } else {
              fireClick($confirmButton, e)
            }
          }
        } else if (keyCode === 27 && params.allowEscapeKey === true) {
          sweetAlert.closeModal(params.onClose)
          reject('esc')
        }
      }
    }

    states.previousWindowKeyDown = window.onkeydown
    window.onkeydown = handleKeyDown

    // Loading state
    if (params.buttonsStyling) {
      $confirmButton.style.borderLeftColor = params.confirmButtonColor
      $confirmButton.style.borderRightColor = params.confirmButtonColor
    }

    /**
     * Show spinner instead of Confirm button and disable Cancel button
     */
    sweetAlert.showLoading = sweetAlert.enableLoading = function () {
      show(getSpacer())
      show($confirmButton, 'inline-block')
      addClass($confirmButton, swalClasses.loading)
      addClass(modal, swalClasses.loading)
      $confirmButton.disabled = true
      $cancelButton.disabled = true
    }

    /**
     * Show spinner instead of Confirm button and disable Cancel button
     */
    sweetAlert.hideLoading = sweetAlert.disableLoading = function () {
      if (!params.showConfirmButton) {
        hide($confirmButton)
        if (!params.showCancelButton) {
          hide(getSpacer())
        }
      }
      removeClass($confirmButton, swalClasses.loading)
      removeClass(modal, swalClasses.loading)
      $confirmButton.disabled = false
      $cancelButton.disabled = false
    }

    sweetAlert.enableButtons = function () {
      $confirmButton.disabled = false
      $cancelButton.disabled = false
    }

    sweetAlert.disableButtons = function () {
      $confirmButton.disabled = true
      $cancelButton.disabled = true
    }

    sweetAlert.enableConfirmButton = function () {
      $confirmButton.disabled = false
    }

    sweetAlert.disableConfirmButton = function () {
      $confirmButton.disabled = true
    }

    sweetAlert.enableInput = function () {
      var input = getInput()
      if (!input) {
        return false
      }
      if (input.type === 'radio') {
        var radiosContainer = input.parentNode.parentNode
        var radios = radiosContainer.querySelectorAll('input')
        for (var i = 0; i < radios.length; i++) {
          radios[i].disabled = false
        }
      } else {
        input.disabled = false
      }
    }

    sweetAlert.disableInput = function () {
      var input = getInput()
      if (!input) {
        return false
      }
      if (input && input.type === 'radio') {
        var radiosContainer = input.parentNode.parentNode
        var radios = radiosContainer.querySelectorAll('input')
        for (var i = 0; i < radios.length; i++) {
          radios[i].disabled = true
        }
      } else {
        input.disabled = true
      }
    }

    // Set modal min-height to disable scrolling inside the modal
    sweetAlert.recalculateHeight = debounce(function () {
      var modal = getModal()
      var prevState = modal.style.display
      modal.style.minHeight = ''
      show(modal)
      modal.style.minHeight = (modal.scrollHeight + 1) + 'px'
      modal.style.display = prevState
    }, 50)

    // Show block with validation error
    sweetAlert.showValidationError = function (error) {
      var validationError = getValidationError()
      validationError.innerHTML = error
      show(validationError)

      var input = getInput()
      focusInput(input)
      addClass(input, 'error')
    }

    // Hide block with validation error
    sweetAlert.resetValidationError = function () {
      var validationError = getValidationError()
      hide(validationError)
      sweetAlert.recalculateHeight()

      var input = getInput()
      if (input) {
        removeClass(input, 'error')
      }
    }

    sweetAlert.getProgressSteps = function () {
      return params.progressSteps
    }

    sweetAlert.setProgressSteps = function (progressSteps) {
      params.progressSteps = progressSteps
      setParameters(params)
    }

    sweetAlert.showProgressSteps = function () {
      show(getProgressSteps())
    }

    sweetAlert.hideProgressSteps = function () {
      hide(getProgressSteps())
    }

    sweetAlert.enableButtons()
    sweetAlert.hideLoading()
    sweetAlert.resetValidationError()

    // inputs
    var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']
    var input
    for (i = 0; i < inputTypes.length; i++) {
      var inputClass = swalClasses[inputTypes[i]]
      var inputContainer = getChildByClass(modal, inputClass)
      input = getInput(inputTypes[i])

      // set attributes
      if (input) {
        for (var j in input.attributes) {
          if (input.attributes.hasOwnProperty(j)) {
            var attrName = input.attributes[j].name
            if (attrName !== 'type' && attrName !== 'value') {
              input.removeAttribute(attrName)
            }
          }
        }
        for (var attr in params.inputAttributes) {
          input.setAttribute(attr, params.inputAttributes[attr])
        }
      }

      // set class
      inputContainer.className = inputClass
      if (params.inputClass) {
        addClass(inputContainer, params.inputClass)
      }

      hide(inputContainer)
    }

    var populateInputOptions
    switch (params.input) {
      case 'text':
      case 'email':
      case 'password':
      case 'number':
      case 'tel':
        input = getChildByClass(modal, swalClasses.input)
        input.value = params.inputValue
        input.placeholder = params.inputPlaceholder
        input.type = params.input
        show(input)
        break
      case 'file':
        input = getChildByClass(modal, swalClasses.file)
        input.placeholder = params.inputPlaceholder
        input.type = params.input
        show(input)
        break
      case 'range':
        var range = getChildByClass(modal, swalClasses.range)
        var rangeInput = range.querySelector('input')
        var rangeOutput = range.querySelector('output')
        rangeInput.value = params.inputValue
        rangeInput.type = params.input
        rangeOutput.value = params.inputValue
        show(range)
        break
      case 'select':
        var select = getChildByClass(modal, swalClasses.select)
        select.innerHTML = ''
        if (params.inputPlaceholder) {
          var placeholder = document.createElement('option')
          placeholder.innerHTML = params.inputPlaceholder
          placeholder.value = ''
          placeholder.disabled = true
          placeholder.selected = true
          select.appendChild(placeholder)
        }
        populateInputOptions = function (inputOptions) {
          for (var optionValue in inputOptions) {
            var option = document.createElement('option')
            option.value = optionValue
            option.innerHTML = inputOptions[optionValue]
            if (params.inputValue === optionValue) {
              option.selected = true
            }
            select.appendChild(option)
          }
          show(select)
          select.focus()
        }
        break
      case 'radio':
        var radio = getChildByClass(modal, swalClasses.radio)
        radio.innerHTML = ''
        populateInputOptions = function (inputOptions) {
          for (var radioValue in inputOptions) {
            var id = 1
            var radioInput = document.createElement('input')
            var radioLabel = document.createElement('label')
            var radioLabelSpan = document.createElement('span')
            radioInput.type = 'radio'
            radioInput.name = swalClasses.radio
            radioInput.value = radioValue
            radioInput.id = swalClasses.radio + '-' + (id++)
            if (params.inputValue === radioValue) {
              radioInput.checked = true
            }
            radioLabelSpan.innerHTML = inputOptions[radioValue]
            radioLabel.appendChild(radioInput)
            radioLabel.appendChild(radioLabelSpan)
            radioLabel.for = radioInput.id
            radio.appendChild(radioLabel)
          }
          show(radio)
          var radios = radio.querySelectorAll('input')
          if (radios.length) {
            radios[0].focus()
          }
        }
        break
      case 'checkbox':
        var checkbox = getChildByClass(modal, swalClasses.checkbox)
        var checkboxInput = getInput('checkbox')
        checkboxInput.type = 'checkbox'
        checkboxInput.value = 1
        checkboxInput.id = swalClasses.checkbox
        checkboxInput.checked = Boolean(params.inputValue)
        var label = checkbox.getElementsByTagName('span')
        if (label.length) {
          checkbox.removeChild(label[0])
        }
        label = document.createElement('span')
        label.innerHTML = params.inputPlaceholder
        checkbox.appendChild(label)
        show(checkbox)
        break
      case 'textarea':
        var textarea = getChildByClass(modal, swalClasses.textarea)
        textarea.value = params.inputValue
        textarea.placeholder = params.inputPlaceholder
        show(textarea)
        break
      case null:
        break
      default:
        console.error('SweetAlert2: Unexpected type of input! Expected "text" or "email" or "password", "select", "checkbox", "textarea" or "file", got "' + params.input + '"')
        break
    }

    if (params.input === 'select' || params.input === 'radio') {
      if (params.inputOptions instanceof Promise) {
        sweetAlert.showLoading()
        params.inputOptions.then(function (inputOptions) {
          sweetAlert.hideLoading()
          populateInputOptions(inputOptions)
        })
      } else if (typeof params.inputOptions === 'object') {
        populateInputOptions(params.inputOptions)
      } else {
        console.error('SweetAlert2: Unexpected type of inputOptions! Expected object or Promise, got ' + typeof params.inputOptions)
      }
    }

    openModal(params.animation, params.onOpen)

    // Focus the first element (input or button)
    setFocus(-1, 1)

    // fix scroll
    sweetContainer.scrollTop = 0

    // Observe changes inside the modal and adjust height
    if (typeof MutationObserver !== 'undefined' && !swal2Observer) {
      swal2Observer = new MutationObserver(sweetAlert.recalculateHeight)
      swal2Observer.observe(modal, {childList: true, characterData: true, subtree: true})
    }
  })
}

// SweetAlert function
function sweetAlert () {
  // Copy arguments to the local args variable
  var args = arguments

  if (sweetAlert.isVisible()) {
    sweetAlert.close()
  }

  return modalDependant.apply(this, args)
}

/*
 * Global function to determine if swal2 modal is visible
 */
sweetAlert.isVisible = function () {
  var modal = getModal()
  return isVisible(modal)
}

/*
 * Global function for chaining sweetAlert modals
 */
sweetAlert.queue = function (steps) {
  queue = steps
  var modal = getModal()
  var resetQueue = function () {
    queue = []
    modal.removeAttribute('data-queue-step')
  }
  return new Promise(function (resolve, reject) {
    (function step (i, callback) {
      if (i < queue.length) {
        modal.setAttribute('data-queue-step', i)

        sweetAlert(queue[i]).then(function () {
          step(i + 1, callback)
        }, function (dismiss) {
          resetQueue()
          reject(dismiss)
        })
      } else {
        resetQueue()
        resolve()
      }
    })(0)
  })
}

/*
 * Global function for getting the index of current modal in queue
 */
sweetAlert.getQueueStep = function () {
  return getModal().getAttribute('data-queue-step')
}

/*
 * Global function for inserting a modal to the queue
 */
sweetAlert.insertQueueStep = function (step, index) {
  if (index && index < queue.length) {
    return queue.splice(index, 0, step)
  }
  return queue.push(step)
}

/*
 * Global function for deleting a modal from the queue
 */
sweetAlert.deleteQueueStep = function (index) {
  if (typeof queue[index] !== 'undefined') {
    queue.splice(index, 1)
  }
}

/*
 * Global function to close sweetAlert
 */
sweetAlert.close = sweetAlert.closeModal = function (onComplete) {
  var modal = getModal()
  removeClass(modal, 'show-swal2')
  addClass(modal, 'hide-swal2')

  // Reset icon animations
  var $successIcon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes.success)
  removeClass($successIcon, 'animate')
  removeClass($successIcon.querySelector('.tip'), 'animate-success-tip')
  removeClass($successIcon.querySelector('.long'), 'animate-success-long')

  var $errorIcon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes.error)
  removeClass($errorIcon, 'animate-error-icon')
  removeClass($errorIcon.querySelector('.x-mark'), 'animate-x-mark')

  var $warningIcon = modal.querySelector('.' + swalClasses.icon + '.' + iconTypes.warning)
  removeClass($warningIcon, 'pulse-warning')

  resetPrevState()

  // If animation is supported, animate
  if (animationEndEvent && !hasClass(modal, 'no-animation')) {
    modal.addEventListener(animationEndEvent, function swalCloseEventFinished () {
      modal.removeEventListener(animationEndEvent, swalCloseEventFinished)
      if (hasClass(modal, 'hide-swal2')) {
        hide(modal)
        removeClass(sweetContainer, swalClasses.in)
        removeClass(document.body, swalClasses.in)
        undoScrollbar()
        undoIOSfix()
      }
    })
  } else {
    // Otherwise, hide immediately
    hide(modal)
    removeClass(sweetContainer, swalClasses.in)
    removeClass(document.body, swalClasses.in)
    undoScrollbar()
    undoIOSfix()
  }
  if (onComplete !== null && typeof onComplete === 'function') {
    onComplete.call(this, modal)
  }
}

/*
 * Global function to click 'Confirm' button
 */
sweetAlert.clickConfirm = function () {
  getConfirmButton().click()
}

/*
 * Global function to click 'Cancel' button
 */
sweetAlert.clickCancel = function () {
  getCancelButton().click()
}

/**
 * Set default params for each popup
 * @param {Object} userParams
 */
sweetAlert.setDefaults = function (userParams) {
  if (!userParams) {
    throw new Error('userParams is required')
  }
  if (typeof userParams !== 'object') {
    throw new Error('userParams has to be a object')
  }

  extend(modalParams, userParams)
}

/**
 * Reset default params for each popup
 */
sweetAlert.resetDefaults = function () {
  modalParams = extend({}, defaultParams)
}

sweetAlert.version = '5.3.1'

if (typeof Promise === 'function') {
  Promise.prototype.done = Promise.prototype.done || function () { // eslint-disable-line
    return this.catch(function () {
      // Catch promise rejections silently.
      // https://github.com/limonte/sweetalert2/issues/177
    })
  }
} else {
  console.warn('SweetAlert2: Please inlude Promise polyfill BEFORE including sweetalert2.js if IE10+ support needed.')
}

module.exports = sweetAlert;
if (window.Sweetalert2) window.sweetAlert = window.swal = window.Sweetalert2;

redpajama_set_name: RedPajamaGithub


text:
Home » Europe » Man 'assaulted and kidnapped Bumble date for five days'
Man 'assaulted and kidnapped Bumble date for five days'
A man in Texas was arrested after he kidnapped his Bumble date and held her hostage without food and water for five days, prosecutors say.
Zachary Kent Mills, 21, was arrested after allegedly assaulting and kidnapping a victim on Christmas Eve. The harrowing story is detailed in court documents obtained by Metro.co.uk.
According to court documents, Mills matched with the victim using popular dating app Bumble. The criminal complaint against Mills says they began a 'romantic relationship,' but it does not say how long this relationship lasted.
On December 24, the victim agreed to meet him at his apartment complex in Spring, Texas.
The criminal complaint says Mills became aggressive when the victim refused his sexual advances, and began striking her with his fists and bite her on the neck and face. 'When the defendant's hands got tired from hitting her, he would grab a screwdriver and would strike her with the handle of the screwdriver causing serious bodily injury,' the document reads.
Each time the victim tried to leave the apartment, Mills would begin to assault her again. This lasted for five days, during which Mills allegedly didn't provide her with food or water and refused to let her leave.
The victim was eventually able to escape when Mills left the apartment to visit his father. The victim 'gathered up her clothes and ran out the door and contacted the first people who she came in contact with.'
The victim escaped on December 29. She was picked up by Harris County Constable's Office Deputies, who took her to Houston Methodist Spring Emergency Care Center.
She was admitted to the hospital with 'severe bruising to both eyes, bite marks, and cuts to both her throat and nose, and severe bruising to majority of her body.'
She eventually identified Mills by a driver's license photo.
Mills was released on bond set by a magistrate judge at $50,000. However, he was also restricted to a 24-hour home curfew at his residence. He is only allowed to leave to meet with his attorney, a doctor, or to court.
'It's important to know that there are two sides to this story,' his lawyer Chris Denuna told CNN. 'My client is presumed innocent as is afforded to him by the constitution and due process.'
Got a story? Get in touch with our news team by emailing us at [email protected] Or you can submit your videos and pictures here.
Follow Metro.co.uk on Twitter and Facebook for the latest news updates. You can now also get Metro.co.uk articles sent straight to your device. Sign up for our daily push alerts here.
Previous Previous post: The best oils for frying, according to a food scientist
Next Next post: Manhunt for brutal murderer on the run from open prison

redpajama_set_name: RedPajamaCommonCrawl


RESEARCH TRIANGLE PARK, N.C., Jan. 9 -- For a sixth consecutive year, the annual ESPN Winter X Games will be held at Buttermilk Mountain at Aspen, Colorado. This year, Implus Footcare's Yaktrax Brand of unique traction devices is proud to join the annual event as a partner on-site at Winter X Games 11. The Yaktrax team will be onsite at X Fest, a unique component of the X Games, featuring a sponsor village, live music, interactive parks, demos and more.
The 11th annual winter action sports competition will be held January 25 - January 28, featuring more than 250 athletes from across the globe competing for medals and prize money in the following sports: Skiing, Snowboard and Snowmobile. The event includes day and evening competitions and is free to the public.
"The Yaktrax brand has a very distinctive personality and has become the traction device of choice among outdoor winter sports enthusiasts around the world," said John Andrews, Vice President of Marketing for Implus Footcare. "The Winter X Games will give us an opportunity to introduce our Yaktrax brand to thousands of extreme winter sports fans and professional athletes as well. We look forward to using this extraordinary venue to leverage Yaktrax to a broader audience of consumers."
To learn more about the Winter X Games 11 go to www.Expn.com.
Named after the sure-footed Tibetan Yak, YAKTRAX stretch over everything from winter boots to jogging shoes. Once in place, a grid of skidlock steel coils give users the traction of the famed mountain sheep on hard-pack snow and ice. As you walk or jog, dozens of edges bite into snow and ice, providing stability and grip in all directions. Ideal for avoiding slips and spills on snow and ice, users can take their normal stride without fear of falling or risking injury. YAKTRAX is available at over 10,000 retail locations in over 20 countries. For more information, please visit www.YAKTRAX.com or www.implus.com.
Headquartered in North Carolina's Research Triangle Park, Implus is an innovative leader in the "below the ankle" categories of insoles, performance socks, shoe laces and shoe care. Implus' brands include Airplus(R), Sof Sole(R), apara(R) YAKTRAX(R) and Sof Comfort(R), and are distributed in over 50,000 retail outlets across North America and in 65 countries worldwide. For more information, please visit www.implus.com or call (800) 446-7587.


How to Conjugate Spanish Verbs ("How to Conjugate Spanish Verbs") operates howtoconjugatespanishverbs.com and may operate other websites. It is How to Conjugate Spanish Verbs's policy to respect your privacy regarding any information we may collect while operating our websites.
Like most website operators, How to Conjugate Spanish Verbs collects non-personally-identifying information of the sort that web browsers and servers typically make available, such as the browser type, language preference, referring site, and the date and time of each visitor request. How to Conjugate Spanish Verbs's purpose in collecting non-personally identifying information is to better understand how How to Conjugate Spanish Verbs's visitors use its website. From time to time, How to Conjugate Spanish Verbs may release non-personally-identifying information in the aggregate, e.g., by publishing a report on trends in the usage of its website.
How to Conjugate Spanish Verbs also collects potentially personally-identifying information like Internet Protocol (IP) addresses for logged in users and for users leaving comments on howtoconjugatespanishverbs.com blogs/sites. How to Conjugate Spanish Verbs only discloses logged in user and commenter IP addresses under the same circumstances that it uses and discloses personally-identifying information as described below, except that commenter IP addresses and email addresses are visible and disclosed to the administrators of the blog/site where the comment was left.
Certain visitors to How to Conjugate Spanish Verbs's websites choose to interact with How to Conjugate Spanish Verbs in ways that require How to Conjugate Spanish Verbs to gather personally-identifying information. The amount and type of information that How to Conjugate Spanish Verbs gathers depends on the nature of the interaction. For example, we ask visitors who sign up at howtoconjugatespanishverbs.com to provide a username and email address. Those who engage in transactions with How to Conjugate Spanish Verbs are asked to provide additional information, including as necessary the personal and financial information required to process those transactions. In each case, How to Conjugate Spanish Verbs collects such information only insofar as is necessary or appropriate to fulfill the purpose of the visitor's interaction with How to Conjugate Spanish Verbs. How to Conjugate Spanish Verbs does not disclose personally-identifying information other than as described below. And visitors can always refuse to supply personally-identifying information, with the caveat that it may prevent them from engaging in certain website-related activities.
How to Conjugate Spanish Verbs may collect statistics about the behavior of visitors to its websites. How to Conjugate Spanish Verbs may display this information publicly or provide it to others. However, How to Conjugate Spanish Verbs does not disclose personally-identifying information other than as described below.
How to Conjugate Spanish Verbs discloses potentially personally-identifying and personally-identifying information only to those of its employees, contractors and affiliated organizations that (i) need to know that information in order to process it on How to Conjugate Spanish Verbs's behalf or to provide services available at How to Conjugate Spanish Verbs's websites, and (ii) that have agreed not to disclose it to others. Some of those employees, contractors and affiliated organizations may be located outside of your home country; by using How to Conjugate Spanish Verbs's websites, you consent to the transfer of such information to them. How to Conjugate Spanish Verbs will not rent or sell potentially personally-identifying and personally-identifying information to anyone. Other than to its employees, contractors and affiliated organizations, as described above, How to Conjugate Spanish Verbs discloses potentially personally-identifying and personally-identifying information only in response to a subpoena, court order or other governmental request, or when How to Conjugate Spanish Verbs believes in good faith that disclosure is reasonably necessary to protect the property or rights of How to Conjugate Spanish Verbs, third parties or the public at large. If you are a registered user of an How to Conjugate Spanish Verbs website and have supplied your email address, How to Conjugate Spanish Verbs may occasionally send you an email to tell you about new features, solicit your feedback, or just keep you up to date with what's going on with How to Conjugate Spanish Verbs and our products. If you send us a request (for example via email or via one of our feedback mechanisms), we reserve the right to publish it in order to help us clarify or respond to your request or to help us support other users. How to Conjugate Spanish Verbs takes all measures reasonably necessary to protect against the unauthorized access, use, alteration or destruction of potentially personally-identifying and personally-identifying information.
If How to Conjugate Spanish Verbs, or substantially all of its assets, were acquired, or in the unlikely event that How to Conjugate Spanish Verbs goes out of business or enters bankruptcy, user information would be one of the assets that is transferred or acquired by a third party. You acknowledge that such transfers may occur, and that any acquirer of How to Conjugate Spanish Verbs may continue to use your personal information as set forth in this policy.


What better way to visit Paris than with quick access to more than 50 museums and monuments? You no longer need to wait, thanks to the Paris Museum Pass, as you get free unlimited admission without queuing for your favorite places!
This pass was great to freely discover Paris and its many, many museums and other landmarks without having to join groups or pay for private tours. Got the pass from their boutique; staff members were friendly, efficient and organized. Great job.


The unhealthy diet of Americans has led to an increase in number of chronic illnesses and obesity. These poor dietary patterns usually originate from early-developed eating habits of young and newly independent adults. In this literature review the health status and eating habits of college students will be discussed, along with the social factors promoting these behaviors; such as location of living, previous parental guidance with nutrition, and meal preparation. Misinformation appears to have the largest impact on the nutrition status of the college student, suggesting that a stronger emphasis on nutritional education and constant and/or direct exposure to nutrition information should be implemented on campus in order to promote healthier eating habits. This review also provides an analysis of successful collegiate nutrition education programs and suggests approaches to improve the delivery of accurate nutrition information to Grand Valley State University students.
Spalsbury, Marcy, "Suggested Approaches to Improving Nutrition Status of College Students: A Literature Review" (2013). Honors Projects. 196.


text:
Newsline - September 11, 1995
OMRI DAILY DIGEST
Vol. 1, No. 176, 11 September 1995
YELTSIN DENOUNCES NATO.
On the eve of a special session of the Duma to discuss the conflict in the former Yugoslavia, President Boris Yeltsin lashed out at NATO but also criticized Foreign Minister Andrei Kozyrev, international media reported on 8 August. Calling NATO's airstrikes on Bosnian Serb positions
"unacceptable," Yeltsin said Russia might send assistance other than humanitarian aid to Serbia if the airstrikes continued, and he renewed his call for an international conference on the Yugoslav conflict in Moscow in October. The president reiterated Russian opposition to NATO's expansion to the "borders of Russia," which he said would "light the fires of war all over Europe." By its actions in Bosnia, he said, NATO "showed what it is capable of." Anticipating criticism of Kozyrev, Yeltsin noted his "dissatisfaction," with the ministry, saying that if its work did not improve, he would draw "the appropriate conclusions." -- Scott Parrish
DUMA PASSES RESOLUTION ON YUGOSLAV CONFLICT.
At its special session on 9 September, the State Duma criticized
Yeltsin, Foreign Minister Andrei Kozyrev, and NATO, Russian and Western agencies reported. After a heated debate, during which extreme proposals to dispatch troops to Serbia and recall all ambassadors from NATO countries were discussed, the Duma passed a resolution calling on Yeltsin to fire Kozyrev, withdraw Russia from UN sanctions against rump Yugoslavia, impose a trade embargo against Croatia, and suspend Russian participation in NATO's Partnership for Peace program. The resolution, which is not binding on the president, passed 258-2 with 3 abstentions. Many liberal deputies boycotted the session. -- Scott Parrish
BRAWL ERUPTS IN DUMA.
A fistfight broke out during the Duma debate on Bosnia when Nikolai Lysenko, leader of the right-wing National-Republican Party of Russia, tore a 19th-century cross from the neck of dissident priest Gleb Yakunin of the Russia's Choice bloc, Russian media reported on 9 September. Liberal-Democratic Party leader Vladimir Zhirinovsky quickly joined the brawl, attacking deputy Yevgeniya Tishkovskaya, who was trying to defend Yakunin. Lysenko refused to return the cross to Yakunin, who was defrocked in 1993 after disobeying an Orthodox Church order not to run for parliament. Yakunin vowed to press robbery charges against Lysenko, according to ITAR-TASS. -- Laura Belin
UNION OF LABOR SELECTS CANDIDATES.
Russian United Industrial Party chairman Vladimir Shcherbakov, Federation of Independent Trade Unions leader Mikhail Shmakov, and Russian Union of Industrialists and Entrepreneurs president Arkadii Volskii were chosen to top the party list of the new electoral bloc "Trade Unions and Industrialists of Russia-Union of Labor," ITAR-TASS reported on 8 September. The group's creation deals another blow to the electoral prospects of Duma Speaker Ivan Rybkin, who has tried to recruit major trade union and industrial groups for his left-center electoral bloc. -- Laura Belin
UNION OF PATRIOTS HOLDS CONGRESS.
More than 20 groups, including the Union of Veterans and the All-Military Union, came together for the first congress of the Union of Patriots in Moscow, Russian media reported on 8 September. The movement's party list for December's parliamentary elections will be headed by three generals: All-Russian Officers' Assembly leader Vladislav Achalov, Russian National Assembly chairman Aleksandr Sterligov, and 1991 putschist Aleksandr Tizyakov, more recently affiliated with the Association of Industrialists and Entrepreneurs, according to Segodnya on 9 September. Sterligov said that all the candidates have passed blood-line checks to verify that they are of Russian descent, NTV reported on 10 September. -- Laura Belin
ACCUSATIONS OF CRIMINAL TIES SPLIT RUTSKOI'S DERZHAVA.
Former Vice President Aleksandr Rutskoi tried to restore confidence in his Derzhava party at its 9 September congress after eight prominent members left, claiming that, to secure financial support, Rutskoi had included criminals in his party list. Among those leaving were former USSR People's Deputy Col. Viktor Alksnis, Chairman of the Russian National Legal Center Mikhail Astafev, and Christian-Democrat leader Viktor Aksyuchits, NTV reported. The critics specifically attacked Viktor Kobelev, Vladimir Zhirinovsky's former campaign manager, who is now no. 2 on Derzhava's list, ITAR-TASS reported. Rutskoi withdrew the party's list from the Central Electoral Committee in order to review its members. The congress changed the movement's official name to Derzhava-Rutskoi. -- Robert Orttung
HIGH COURT JUSTICE UNDER FIRE FOR SPEAKING OUT ON FEDERATION COUNCIL . . .
Constitutional Court Chairman Vladimir Tumanov is being criticized for commenting on the court's possible decision on the law determining formation of the Federation Council. By appearing to support President Boris Yeltsin in this dispute with the parliament, Tumanov may have damaged his own reputation and the court's authority, Kommersant-Daily reported on 9 September. Tumanov had suggested that the law stipulating that the Federation Council be elected, which Yeltsin vetoed on 12 August, would have been found to be unconstitutional. Russian law prohibits judges from expressing their attitude toward cases they are considering. -- Robert Orttung
. . . BUT CASE MAY NOT MATTER.
Yeltsin announced on 8 September that he will sign a presidential decree on the formation of the parliament's upper house in the coming weeks, ITAR-TASS reported. The next Federation Council will be formed from representatives of the executive and legislative branches in Russia's 89 regions and republics and 4 or 5 representatives of the federal government. The current council has no deputies representing the federal government, and the innovation will allow Yeltsin to reappoint current Federation Council Speaker Vladimir Shumeiko, who has loyally supported the president's policies. -- Robert Orttung
ARMY CAN'T BUY ALL THE TANKS IT NEEDS.
The Ministry of Defense had planned to renew Russia's tank inventory completely by 2001 with modern tanks, but it cannot afford to, ITAR-TASS reported on 7 September, quoting the head of the ministry's Armor Department. Col.-Gen. Aleksandr Galkin said that the re-equipment scheme calls for 300 new tanks per year, but the military can only afford to buy between 60 and 80. He said the army has only 107 of the best new tanks, the T-90s, all stationed in Siberia. Reuters quoted Galkin as saying that 307 Russian tanks were destroyed by Chechen separatists. In a related story, the Sverdlovsk regional governor complained to ITAR-TASS on 7 September that the Uralvagonzavod plant in Nizhniy Tagil--which builds T-90s--has 350 modern tanks in its inventory that the government cannot afford to buy. He said that the factory cannot get permission to sell them to other customers. -- Doug Clarke
YELTSIN UNHAPPY WITH ILYUSHENKO.
In what could signal the end of the career of acting Procurator-General Aleksei Ilyushenko, Yeltsin said on 8 September that he is dissatisfied with the procurator's work and is unlikely to nominate him for the permanent position, Russian and Western agencies reported. Yeltsin made Ilyushenko procurator-general in December 1993, but the parliament twice refused to approve his appointment. Ilyushenko has been criticized for failing to solve the murders of prominent businessmen and journalists. The campaign against him in the media heated up this summer after he prosecuted the channel's popular puppet show "Kukly" for slander and tried to bring charges against an NTV journalist who interviewed a Chechen separatist leader. An NTV report noted that Yeltsin's criticism of Ilyushenko came only days after the latter closed the investigation into the bloody events of October 1993, blame for which he pinned equally on executive authorities and supporters of the Supreme Soviet. -- Penny Morvant
CRACKDOWN ON CORRUPTION PROMISED.
Interior Minister Anatolii Kulikov said on 9 September that the main aim of reform in his ministry is to fight official corruption and ensure the security of individuals. Kulikov said police were investigating 1,600 cases of links between criminal groups and the upper echelons of power and that the criminal world spent an estimated 30%-50% of its income on bribing state officials, Russian and Western agencies reported. Kulikov added that crime in Russia grew 5% in the first eight months of this year compared with the same period in 1994 but homicide is down 7%. -- Penny Morvant
YELTSIN URGES GENTLE EASING OF STRICT FINANCIAL POLICIES.
Yeltsin said in an 8 September press conference that the economy is showing signs of stabilization and, while strict financial policies should continue, the reins must be loosened to pay pensions and salaries, Russia and Western agencies reported the same day. The president signed a decree on 7 September ordering the Central Bank to allot 2 trillion rubles ($450 million) to clear pension arrears. At the conference, Yeltsin blamed the government for delays in paying pensions and salaries and claimed that there were resources available to remedy the problem. -- Thomas Sigel
POLICE IN ALMATY THREATEN ACTION OVER PAY.
Police in the Kazakh capital, Almaty, have threatened to take "exceptional action" starting 18 September if the government fails to pay their back wages and raise salaries, Karavan-Blitz reported on 5 September. According to the paper, an open letter to the government appeared on the front page of the Interior Ministry's newspaper Na strazhe on 31 August, describing the grievances of the police, who work 12-14 hours daily for 6,000 tenge ($100) a month. It is unclear what action police will take, as employees of internal-affairs agencies are forbidden to go on strike. Karavan-blitz quoted a spokesman for the Internal Affairs Ministry's personnel department as saying that, due to low wages, the number of police taking bribes is increasing; 1,500 people have been fired on that account this year alone. -- Bhavna Dave
KYRGYZ TRADE UNIONS DEMAND MINIMUM WAGE INCREASE.
Kyrgyzstan's Federation of Trade Unions has called on President Askar Akaev to raise the minimum wage immediately and increase benefits for workers, the Khabar news agency reported on 7 September. The union leaders termed the parliament's decision not to review minimum wages until the end of the year an "anti-popular measure," complaining that the government's promises and various decrees on raising wages have not been implemented. The federation proposed that funds for wage increases could be raised by cutting the republic's central and local administrative apparatus. -- Bhavna Dave
TURKMEN, UKRAINIAN, AND IRANIAN OFFICIALS MEET.
Building on talks held in Iran last April, the foreign ministers of Turkmenistan, Iran, and Ukraine began talks in the Turkmen capital, Ashgabat, on 9 September, Russian sources reported. Discussion is expected to focus on trilateral economic projects, such as development of the Caspian Sea's offshore oil field, construction of new oil and gas pipelines from Turkmenistan, and upgrading of existing pipelines. Ukraine is also looking to devise a payment system for Turkmen gas supplies, and Turkmenistan and Iran are interested in buying machine-building and instrument-engineering technology from Ukraine. -- Bruce Pannier
RUSSIA PRESSING ABKHAZIA TO COME TO TERMS WITH GEORGIA.
In a telephone conversation with Georgian leader Eduard Shevardnadze on 8 September, Russian President Boris Yeltsin pledged to take steps to restore Georgia's territorial integrity, Russian and Western agencies reported. Talks between Georgia and the breakaway region of Abkhazia broke down in Moscow on 1 September. On 7 September, Russian Deputy Foreign Minister Boris Pastukhov blamed the Abkhaz side for the failure of the talks and threatened to withdraw the 3,000 Russian peacekeepers who have policed the Abkhaz-Georgian border since October 1993. The Abkhaz leadership insists that Abkhaz sovereignty be recognized before talks can continue. Shevardnadze accused the Abkhaz of obstructing the talks in the hope that more sympathetic politicians will emerge from the December parliamentary elections in Russia. -- Peter Rutland
NEW CURRENCY FOR GEORGIA.
The president of the Georgian National Bank, Nodar Dzhavakhishvili, told Georgian Radio on 8 September that a new currency, the lari, will replace the temporary coupon later this year. The coupon fell from its 1993 introductory rate of 5,000 to the dollar to more than 2 million to the dollar at the end of 1994. In 1995, the government tightened monetary policy, stabilizing the value of the coupon at around 1.3 million to the dollar. This has prompted the IMF to offer a $157 million loan to back the new currency, which will be set at $0.77 per lari. -- Peter Rutland
NO PROGRESS IN NAGORNO-KARABAKH TALKS.
The latest round of talks in Moscow over the future of Nagorno-Karabakh, which began on 4 September, ended without resolution on 9 September, ITAR-TASS reported the same day. The "Minsk Group" of representatives from the OSCE, which is mediating the talks, will meet in Moscow on 11 September. On 9 September it was announced that UN Secretary-General Boutros Boutros-Ghali will send Undersecretary-General Aldo Ajello as a special envoy to the region. -- Peter Rutland
WALESA REGISTERS FIRST.
Polish President Lech Walesa was the first candidate to submit the 100,000 supporting signatures required for a place on the ballot for the 5 November elections, Rzeczpospolita reported. The deadline to submit supporting signatures expires on 28 September. Democratic Left Alliance leader Aleksander Kwasniewski and Freedom Union candidate Jacek Kuron are believed to be the only other candidates to have so far collected the 100,000 minimum. In other election news, former Broadcasting Council Chairman Marek Markiewicz on 8 September agreed to enter the presidential race, provided opinion polls indicate sufficient support for his candidacy by mid-October. -- Louisa Vinton
ZLOTY APPRECIATION SPARKS CONFLICT IN POLAND.
The value of the Polish zloty rose by 1% against most hard currencies on 8 September, amid renewed conflict between National Bank President Hanna Gronkiewicz-Waltz and Deputy Prime Minister and Finance Minister Grzegorz Kolodko. The National Bank criticized Kolodko for sparking speculative purchases of Treasury bills by suggesting the previous day that the Polish economy could withstand dramatic appreciation of the zloty. Kolodko argued that appreciation would work best to curb inflationary inflows of hard currency. The bank countered that the government should reduce import tariffs and allow exporters to retain hard-currency earnings, Rzeczpospolita reported. -- Louisa Vinton
DOMINANT CZECH PARTY CHOOSES ELECTION LEADERS.
The Executive Council of the Civic Democratic Party (ODS) met on 9 September to choose 14 leading politicians to spearhead the party's campaign for next year's parliamentary elections. Two politicians will lead the campaign in each of the Czech Republic's seven regions. Among the election leaders are Prime Minister Vaclav Klaus, six other cabinet ministers, the current chairman and a deputy chairman of the parliament, and Czech Ambassador to Slovakia Filip Sedivy. The list also includes two leading members of the Christian Democratic Party, which is due to merge with the ODS before the elections. -- Steve Kettle
SLOVAK PREMIER ON RELATIONS WITH HUNGARY.
Vladimir Meciar on 8 September addressed the parliament to discuss a 29 August meeting with his Hungarian counterpart, Gyula Horn, Narodna obroda and TASR reported. Meciar said the talks focused on the issue of the Gabcikovo-Nagymaros dam dispute, which was taken to the International Court of Justice in The Hague in 1993. Although the two sides are trying to reach a mutually acceptable agreement out of court, the case will remain before the court for now, Meciar said. Economic concerns--including the construction of a highway between Bratislava and Gyor, to be completed by late 1997--were also discussed. Meciar also said the controversial draft law on the state language will be discussed with the Council of Europe before being submitted to the parliament. Finally, the premier announced the Slovak-Hungarian treaty will be presented to the parliament for ratification in November. -- Sharon Fisher
UPDATE ON HUNGARIAN COALITION.
The two Hungarian coalition partners--the Hungarian Socialist Party and the Alliance of Free Democrats--have agreed to set up two working groups to define the norms of cooperation and to review certain provisions of the coalition agreement, which deal with government structure, institutional guarantees, and operational rules. Negotiations between the two partners ended last week with the Socialists, in particular, making many compromises (see OMRI Daily Digest, 7 September 1995). Some opposition parties have called the present political situation in Hungary a "government crisis" or the coalition's "loss of prestige." The government has commented that disputes within a government coalition are "natural." -- Zsofia Szilagyi
BELARUSIAN POLITICAL CRISIS CONTINUES.
Belarusian TV on 7 September quoted Leanid Sinitsyn, head of the president's administration, as saying the president and parliament agreed in May that the legitimacy of the legislature was questionable since its term had expired and that it could continue to meet only in cases of extraordinary events "such as war." Sinitsyn thus charged that the parliamentary session that began on 6 September was destabilizing and invalid. The deputies' decision to lower the minimum voter turnout requirement from 50% to 25% for elections to be valid was "detrimental" to the new parliament since it meant some deputies would have been elected under one set of regulations and others under another. He said the president agreed that a state cannot be without a legislature and was ready to take all necessary measures to have a new parliament elected--but not under new regulations. -- Ustina Markus
HEAD OF NATIONAL BANK OF BELARUS TO QUIT.
Radio Mayak on 9 September reported that head of the National Bank of Belarus Stanislau Bahdankevich has submitted his resignation. Bahdankevich said he was stepping down because "contradictory" banking legislation issued by the president's administration and the prime minister demanded that supervision of the commercial bank Belarusbanka cease and that the bank be united with the state bank Sberbank. Under Belarusian law, only the parliament can accept Bahdankevich's resignation. -- Ustina Markus
LATVIAN SAEIMA APPROVES REGULATIONS ON HUMAN RIGHTS BUREAU.
The Saeima has approved regulations on the Human Rights Bureau that were issued by the cabinet while the parliament was not in session, BNS reported on 8 September. The rules established an independent state institution that would consider residents' complaints about human rights violations. Chairman of the Saeima State Administration and Local Governments Committee Janis Lagzdins said the institution was already operating, although the Saeima had not confirmed its head. His committee had drafted an alternative bill that would have narrowed the functions of the bureau, but the Saeima rejected the draft. -- Saulius Girnius
LOW AUGUST INFLATION IN BALTIC STATES.
The Lithuanian Statistics Department announced that inflation fell from 2.7% in July to 0.4% in August, BNS reported on 7 September. The price of consumer goods and services rose by 3.3%, housing and energy by 2.6% and clothing by 2%, but the price of food fell by 0.6%. The Estonian Statistics Department reported that the consumer price index declined from 1.7% in July to 0.6% in August. The cost of goods in August increased by 0.8% (food products by 0.4% and manufactured goods by 1.5%) and services by 0.4%. The situation in Latvia was even more favorable, with the consumer price index in August falling by 0.3% from July, BNS reported on 8 September. The price of food decreased by 2%, with a 20% decrease for fruits and vegetables. The cost of medical services increased by 2.8%. -- Saulius Girnius
NATO HITS SERBS WITH CRUISE MISSILES.
International media on 10 September reported that 13 Tomahawk cruise missiles were launched from the USS Normandy in the Adriatic against the Bosnian Serb air defense system around Banja Luka. NATO air strikes were suspended for a few hours earlier in the day while UN commander General Bernard Janvier met with the Serbs' General Ratko Mladic. The latter again refused to agree to the UN's key demand that he take heavy weapons outside the 20 km exclusion zone around Sarajevo. He had earlier claimed that the artillery is necessary "to protect the Serbian population," the VOA said. This marks the first use of the missiles in the Yugoslav conflict, a step taken because piloted aircraft have had difficulty operating in the current bad weather conditions. A NATO spokesman denied Serbian charges that the use of the Tomahawks constituted an escalation. The extent of the damage the missiles caused is not yet clear. -- Patrick Moore
"BOSNIAN ALCHEMY."
This is how Nasa Borba on 11 September described the brief document signed in Geneva on 8 September by the foreign ministers of Croatia, Bosnia-Herzegovina, and rump Yugoslavia. The text is the result of weeks of shuttle diplomacy by U.S. Assistant Secretary of State Richard Holbrooke, who called it "an important milestone in the search for peace." The International Herald Tribune on 9 September also quoted him as saying that "significant differences exist between the sides." Among the unresolved points of contention is mutual diplomatic recognition, particularly that of Bosnia by rump Yugoslavia. -- Patrick Moore
SOMETHING FOR EVERYBODY?
The accord is sufficiently broad and vague as to allow mutually contradictory interpretations. The Bosnian government, for example, might stress the point that the country will remain one state, while the Serbs would point to the provision for "parallel special relationships" with neighboring countries. That clause opens the way for the Bosnian Serbs to have links to Belgrade similar to those the Croat-Muslim federation will have to Zagreb. Novi list on 11 September cited Oslobodjenje's paradoxical headline that "Bosnia [remains] whole in two parts." The agreement does not even begin to deal with the thorny issue of territorial divisions, except to take the Contact Group's 51-49% figure as a starting point. It also allows for the possibility that the results of "ethnic cleansing" will become permanent by stipulating that displaced persons may either go home or receive compensation for what they lost. -- Patrick Moore
CROATIA REMAINS FIRM ON EASTERN SLAVONIA.
Croatian Foreign Minister Mate Granic said in Geneva on 9 September that Serbia is trying to "buy time" and keep control of prosperous eastern Slavonia by not recognizing Croatia. Ranking diplomat Miomir Zuzul told news agencies that Zagreb wants a peaceful solution to the problem but that it is prepared to wait only two or three more months. Reuters reported the following day that there was no sign of Croatia or Serbia implementing an agreement to withdraw heavy weapons from the confrontation line there. Slobodna Dalmacija on 11 September quoted Health Minister Andrija Hebrang as saying that some 70% of the Croatian medical personnel, who fled Krajina following the Serbian conquest of it in 1991, now refuse to go back. Nasa Borba reported on the pilot project for Donji Lapac of the Serbian Community in Croatia's Commission for Human Rights. The aim is to encourage Krajina Serbs to return home, but the Serbs fear their property has been destroyed and that they will not enjoy full rights. -- Patrick Moore
ROMANIAN EXTREMIST PARTY WANTS "AUTHORITARIAN RULE."
Corneliu Vadim Tudor, leader of the extremist Greater Romania Party, told a press conference carried by Radio Bucharest on 8 September that one of his party's two slogans for the 1996 general elections will be "[Romania needs] two years of authoritarian rule." Tudor said it was not true that Romania's wartime dictator, Marshal Ion Antonescu, had been responsible for ordering massacres of Jews. On the contrary, he said, hundreds of thousands of Jews "owe him their lives" and it was "outrageous" for Jews to "claim from Romania restitution or compensation of billions of dollars for an invented Holocaust." Tudor also said that in view of the NATO strikes in Bosnia--which had transformed that organization, as well as the UN, into "executioners of the Serbian people and into murderers of children"--the Romanian people should be asked in a referendum whether they still wanted to join NATO, whose "hands are stained with the blood of Iraqi and Serbian infants." -- Michael Shafir
FIRST NATO MILITARY EXERCISE IN ROMANIA.
A NATO exercise involving 440 troops from Germany, Luxemburg, Holland, Turkey and the U.S. (from among member states) and Bulgaria, Slovakia, Hungary, and Romania (from among the signatories of the Partnership for Peace program) began on 10 September near the Transylvanian town of Sibiu. The exercise, the first of its kind in Romania, will last five days and simulate the setting up of peacekeeping units and extending humanitarian help, National Defense Minister Gheorge Tinca said in an interview with Radio Bucharest on 9 September. At a press conference in Sibiu, he said in response to a question about Russian President Boris Yeltsin's position on NATO enlargement that Moscow was entitled to its own opinions but that the issue concerns "the sovereign decision of Central European states that wish to be integrated into NATO structures." -- Michael Shafir
MOLDOVA WILL NOT JOIN NATO.
Moldova is taking part in the Partnership for Peace program but does not intend to join NATO structures because it is a neutral state, Foreign Minister Mihai Popov said at a press conference in Chisinau at the end of Latvian Foreign Minister Valdis Birkav's visit to Moldova. BASA-press reported on 8 September that Popov said Moldova "would not like to play the role of buffer between the two blocs and its security should not be damaged." In his opinion, the PFP program should involve rather than isolate Russia. Popov and Birkavs on 8 September signed a protocol on cooperation and consultations and initialed a treaty of friendship, Moldovan press agencies reported. -- Michael Shafir
RUSSIAN AMBASSADOR ON TROOP WITHDRAWAL FROM MOLDOVA.
Aleksandr Papkin, Russia's new ambassador to Moldova, told the Chisinau Russian-language daily Kishinyovskie Novosti that the countdown for the withdrawal of his country's troops from Moldova will begin only when the State Duma ratifies the withdrawal agreement. BASA-press on 9 September quoted Papkin as saying the government has already taken "some concrete steps" to reduce the contingent, although it was not legally obliged to do so before ratification of the agreement. He said the three-year timetable for the withdrawal was imposed "by natural factors" and that the "evacuation of munitions in a shorter period is impossible." -- Michael Shafir
UKRAINE JOINS TRANSDNIESTRIAN PEACE PROCESS.
Ukrainian Charge d'Affaires in Moldova Yevhen Levitsky told Infotag on 8 September that a representative of President Leonid Kuchma will participate in the Chisinau-Tiraspol negotiations scheduled for 13 September. Ukrainian Premier Yevhen Marchuk said at the end of a visit to Moldova last month that his country will take part in the peacekeeping process (See OMRI Daily Digest, 30 August 1995). Levitsky said Ukraine's participation has been approved by both sides in the conflict as well as by the Russian and OSCE mediators. -- Michael Shafir
BULGARIAN POLITICAL ROUNDUP.
The Union of Democratic Forces (SDS) on 8 September announced it will ask for a vote of no confidence in the government, Standart reported the following day. The SDS said it was responding to Prime Minister Zhan Videnov's refusal to dismiss Interior Minister Lyubomir Nachev and Transport Minister Stamen Stamenov, whom the opposition blames for the death of 14 soldiers in a road crash (see OMRI Daily Digest, 14 and 25 August 1995). In other news, about 15,000 people demonstrated in Sofia on 9 September to mark the 51st anniversary of the communist accession to power in 1944, which they described as the "victory over fascism," AFP reported the same day. Some 5,000 SDS supporters staged a demonstration to commemorate the victims of the communist regime. -- Stefan Krause
GREECE, RUSSIA ON BOSNIA.
Russian Foreign Minister Andrei Kozyrev on 8 September met with Greek Prime Minister Andreas Papandreou and Foreign Minister Karolos Papoulias in Thessaloniki, AFP reported the same day. Both sides criticized the NATO air strikes against the Bosnian Serbs and once again called for a political solution to the crisis. Kozyrev told a news conference that Russia and Greece will begin joint efforts to end the crisis. The three leaders also reached a verbal agreement to go ahead with the construction of a $1 billion oil pipeline from the Bulgarian Black Sea port of Varna to Alexandroupolis, in northern Greece, international agencies reported the same day. -- Stefan Krause
GREEK-MACEDONIAN UPDATE.
The foreign ministers of Greece and Macedonia, Karolos Papoulias and Stevo Crvenkovski, on 9 September left for New York, where they are expected to sign a bilateral agreement on 14 September, AFP reported. Before leaving Athens, Papoulias said the small number of problems to be settled are no obstacle to signing the accord. He described the agreement as "a historical accord...that at last frees [Greek] foreign policy." Greek media suggested that Greece will propose that the name issue be resolved by Macedonia's using two or even three names--one for internal use and one or two for international and Greek use. -- Stefan Krause
ROMANIAN DEFENSE MINISTER IN ALBANIA.
At the end of his two-day visit to Albania, Romanian Defense Minister Gheorghe Tinca was received by President Sali Berisha, Radio Bucharest announced on 9 September, citing ATA. Tinca and his Albanian counterpart, Safet Zhulali, signed a joint declaration on cooperation. Tinca said talks focused on the exchange of information about the two countries' armies, cooperation possibilities, participation in the Partnership for Peace program, and the two countries' membership in NATO. -- Michael Shafir and Fabian Schmidt
FORMER LEADER OF ALBANIAN YOUTH FORUM RELEASED FROM PRISON.
Arben Lika, former leader of the Albanian Youth Forum and parliamentary deputy for the Democratic Party, has been released from prison after serving about 10 months for smuggling cigarettes worth some $30,000 and forging documents, Koha Jone reported on 9 September. The 27-year-old Lika was arrested at the end of October 1994 and sentenced to ten years in prison by a Tirana court. The First Court of Appeal reduced his sentence to three years and Supreme Court Chief Judge Zef Brozi subsequently gave him a 14-month sentence. Koha Jone noted that there are no legal obstacles preventing Albania's youngest legislator from returning to the parliament. -- Fabian Schmidt
[As of 1200 CET]
Compiled by Susan Caskie and Jan Cleave
RFE/RL Archives