
Element.addMethods({
  moveup: function(element) {
    var element = $(element)
    var previous = element.previous()

    if(previous) {
      var next = element.next()

      if(!next) {
        element.removeClassName('last')
        previous.addClassName('last')
      }
    
      if(!previous.previous()) {
        previous.removeClassName('first')
        element.addClassName('first')
      }

      element.parentNode.insertBefore(element, previous)
    }
  },
  movedown: function(element) {
    var element = $(element)
    var next = element.next()

    if(next) {
      var previous = element.previous()

      if(!previous) {
        element.removeClassName('first')
        next.addClassName('first')
      }

      if(!next.next()) {
        next.removeClassName('last')
        element.addClassName('last')
      }
      element.parentNode.insertBefore(element, element.next().next())
    }
  }
})




function to_swf(element_name,args){    
    var banner = (navigator.appName.indexOf("Microsoft")!=-1 ? window : document)[element_name]    
    banner.SetVariable('link1', args);
}


function char_counter(value_field, counter_element, max_length) {
  var value_field = $(value_field);
  var counter_element = $(counter_element);
  var update_count_function = function() { counter_element.innerHTML = 'осталось ' + (max_length-value_field.value.length) + ' символов'; }
  value_field.observe('keypress', update_count_function)
  value_field.observe('keyup', update_count_function)
  update_count_function();
}




function checkSpam(text,spam_alert) {
	var linksCount = 0;
	text.scan(/http\:\/\//, function() { linksCount = linksCount + 1 })
	
	if(linksCount >= 3) {
		alert(spam_alert);
		return false;
	}
	
	return true;
}




// Clock

function padZeros(s, n) {
  s = ''+s;
  while(s.length<n)
    s = '0'+s;
  return s;
}


Inflector = {
  ordinalize: function(number) {
    if (11 <= parseInt(number) % 100 && parseInt(number) % 100 <= 13) {
      return number + "th";
    } else {
      switch (parseInt(number) % 10) {
        case  1: return number + "st";
        case  2: return number + "nd";
        case  3: return number + "rd";
        default: return number + "th";
      }
    }
  }
}

function ordinalize(number) {
  return Inflector.ordinalize(number);
}

function setupClock(timeSelector,locale) {
  var timeElement = $$(timeSelector).first()
  var updateClock
 if  (locale=='ru'){
    MONTHNAMES = ['Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря'];
    DAYNAMES = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
    updateClock = function() {
    var d = new Date()
    if (d.getYear() > 1000) {
      timeElement.innerHTML = "" + DAYNAMES[d.getDay()] + ", " + d.getDate() + " " + MONTHNAMES[d.getMonth()] + ", " + (d.getYear()) + "<var>" + d.getHours() + ":" + padZeros(d.getMinutes(), 2) + "</var>"
    } else {
      timeElement.innerHTML = "" + DAYNAMES[d.getDay()] + ", " + d.getDate() + " " + MONTHNAMES[d.getMonth()] + ", " + (1900+d.getYear()) + "<var>" + d.getHours() + ":" + padZeros(d.getMinutes(), 2) + "</var>"
    }

  }

 }else{
    MONTHNAMES = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
    DAYNAMES = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];

    updateClock = function() {
    var d = new Date()
    if (d.getYear() > 1000) {
      timeElement.innerHTML = "" + DAYNAMES[d.getDay()] + ", " + MONTHNAMES[d.getMonth()] + " the " + Inflector.ordinalize(d.getDate()) + ", " + (d.getYear()) + "<var>" + d.getHours() + ":" + padZeros(d.getMinutes(), 2) + "</var>"
    } else {
      timeElement.innerHTML = "" + DAYNAMES[d.getDay()] + ", " + MONTHNAMES[d.getMonth()] + " the " + Inflector.ordinalize(d.getDate()) + ", " + (1900+d.getYear()) + "<var>" + d.getHours() + ":" + padZeros(d.getMinutes(), 2) + "</var>"
    }

  }
 }


  updateClock()
  setInterval(updateClock, 1000)
}

function mooveRightWeather(elem) {
   var tableImages = $(elem)   
   var shift = 166
  if (tableImages.offsetLeft < 0)
           {
             if (tableImages.offsetLeft >= -100) { shift = -tableImages.offsetLeft  }
            new Effect.Move(elem, { x: shift, y: 0 },{queue:{ position: 'end', scope: 'galery', limit: 1 }});
           }
 return false;
}

function mooveLeftWeather(elem) {
   var tableImages = $(elem)
    var shift = -166
if ((tableImages.offsetWidth + tableImages.offsetLeft) > 166)
        {
        //var delta =  (tableImages.offsetWidth + tableImages.offsetLeft - 160)
        //if (delta <= 160) { shift = -delta}
        new Effect.Move(elem, { x: shift, y: 0 },{queue:{ position: 'end', scope: 'galery', limit: 1 }});
        }

 return false;
}