﻿function writeDate(){var months=["January","February","March","April","May","June","July","August","September","October","November","December"];var time=new Date();document.write(months[time.getMonth()] + " " + time.getDate() + ", " + time.getFullYear());}
function hideDiv() {if (document.getElementById) {document.getElementById('hideshow').style.visibility = 'hidden'; } else { if (document.layers) {document.hideshow.visibility = 'hidden'; } else { document.all.hideshow.style.visibility = 'hidden'; }}} 
function showDiv() { if (document.getElementById) { document.getElementById('hideshow').style.visibility = 'visible'; } else { if (document.layers) { document.hideshow.visibility = 'visible'; } else { document.all.hideshow.style.visibility = 'visible'; }}} 
var sfh = function() {var sfE = document.getElementById("nav").getElementsByTagName("li"); for (var i=sfE.length-1; i >= 0; i--) {	sfE[i].onmouseover=function() { this.className+=" sfh"; }; sfE[i].onmouseout=function() { this.className=this.className.replace(new RegExp(" sfh\\b"), ""); }; 	sfE[i].style.zIndex=900;}}; 
// BEGIN MODALBOX  //
/* ModalBox - The pop-up window thingie with AJAX, based on prototype and script.aculo.us. Copyright Andrey Okonetchnikov (andrej.okonetschnikow@gmail.com), 2006-2007 All rights reserved. VERSION 1.6.0 Last Modified: 12/13/2007 */
	
// END MODAL BOX//
function relative_time(time_value) {
    var values = time_value.split(" ");
    time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
    var parsed_date = Date.parse(time_value);
    var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
    var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
    delta = delta + (relative_to.getTimezoneOffset() * 60);

    if (delta < 60) {
        return 'less than a minute ago';
    } else if (delta < 120) {
        return 'about a minute ago';
    } else if (delta < (60 * 60)) {
        return (parseInt(delta / 60)).toString() + ' minutes ago';
    } else if (delta < (120 * 60)) {
        return 'about an hour ago';
    } else if (delta < (24 * 60 * 60)) {
        return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
    } else if (delta < (48 * 60 * 60)) {
        return '1 day ago';
    } else {
        return (parseInt(delta / 86400)).toString() + ' days ago';
    }
}

function twitterCallback2(twitters, area) {
    var statusHTML = "";
    for (var i = 0; i < twitters.length; i++) {
        statusHTML += '<li><a href="http://twitter.com/' + twitters[i].user.screen_name + '/status/' +twitters[i].id + '" target="_blank">' + twitters[i].text + '</a><div class="tiny">(' +
					  relative_time(twitters[i].created_at) +
					  ')</div></li>';
    }

    $(area + '-twitter').innerHTML = '<ul style="margin:top:1px;">' + statusHTML + '</ul>';
	$(area + '-twitter').slideDown({ duration: 2 });
}

function twitterCallbackAmber(twitters){
	twitterCallback2(twitters,'amber');	

}

function twitterCallbacknewpaltzpd(twitters){
	twitterCallback2(twitters,'newpaltzpd');	
}

function twitterCallbackTwitterHeader(twitters){
   var statusHTML = "";
    for (var i = 0; i < twitters.length; i++) {
        statusHTML += '<li>';
        var regx='http://[a-z0-9./]*';
        var link=twitters[i].text.match(regx);
        if(!link){
         link='http://twitter.com/' + twitters[i].user.screen_name + '/status/' +twitters[i].id;
        }
        statusHTML += '<a href="'+ link +'" target="_blank">' + twitters[i].text + '</a><div class="tiny">(' +
					  relative_time(twitters[i].created_at) +
					  ')</div></li>';
    }
    $('newsticker').innerHTML = '<ul>' + statusHTML + '</ul>';    
    $('newpaltzpd-twitter').innerHTML = '<ul>' + statusHTML + '</ul>';
  //  Effect.BlindDown($('newpaltzpd-twitter'));
    new Newsticker('newsticker', images);
	
}
if(typeof Widget == "undefined") Widget = {};
Widget.Blender = Class.create();
Widget.Blender.prototype = {
	initialize: function(img, list, options) {
		this.img = $(img);
		this.list = list;
		this.options = Object.extend({
			id: this.img.id
		}, options || {});
		this.index = 0;
		this.container = $('imgstuff');
		this.loadedObserver = this.loaded.bind(this);
		this.nextObserver = this.next.bind(this);
		this.stopped = true;
		setTimeout(this.start.bind(this), 2.5 * 1000);
	},
	start: function() {		
		this.stopped = false;
		this.next();
	},
	next: function() {
		if(this.oldImg) {
			this.container.removeChild(this.oldImg);
		}
		this.oldImg = this.img;
		if(this.stopped || this.list.length == 0) {
			return;
		}
		++this.index;
		if(this.index >= this.list.length) {
			this.index = 0;
		}
		this.img = new Element("img");
		this.img.observe("load", this.loadedObserver);
		this.img.src = this.list[this.index];
	},
	loaded: function() {
		this.img.stopObserving("load", this.loadedObserver);		
		this.img.setOpacity(0);
		this.container.appendChild(this.img);
		this.img.setStyle({ position: "absolute", top: this.container.getStyle("padding-top"), left: this.container.getStyle("padding-left") });
		
		new Effect.Opacity(this.oldImg, { duration: 2.5, from: 1.0, to: 0.0, queue: { scope: this.options.id } });
		new Effect.Opacity(this.img, { duration: 2.5, from: 0.0, to: 1.0, queue: { scope: this.options.id } });
		this.timeout = setTimeout(this.nextObserver, 5000);
	}
};
var Blender = Widget.Blender;

Widget.Newsticker  = Class.create();
Widget.Newsticker.prototype = {
	initialize: function(ul)
	{
		// Get elements
		this.interval = 10000;
		this.container = $(ul);
		this.messages  = $A(this.container.getElementsByTagName("li"));
		this.number_of_messages = this.messages.length;
		if (this.number_of_messages == 0)
		{
			this.showError();
			return false;
		}
		this.current_message = 0;
		this.previous_message = null;		
		this.hideMessages();
		this.showMessage();
		// Install timer
		this.timer = setInterval(this.showMessage.bind(this), this.interval);
  	},
	showMessage: function()
	{
		Effect.BlindDown(this.messages[this.current_message]);
		setTimeout(this.fadeMessage.bind(this), this.interval-2000);
		if (this.current_message < this.number_of_messages-1)
		{
			this.previous_message = this.current_message;
			this.current_message = this.current_message + 1;
		} else {
			this.current_message = 0;
			this.previous_message = this.number_of_messages - 1;
		}
	},
	fadeMessage: function()
	{
		Effect.BlindUp(this.messages[this.previous_message]);
	},
	hideMessages: function()
	{
		this.messages.each(function(message)
		{
			Element.hide(message);
		})
	},
	toggle: function()
	{
		Effect.BlindUp(this.container, 1000);
	},
	showError: function()
	{
		if (this.container.getElementsByTagName("ul").length == 0)
		{
			this.list = document.createElement("ul");
			this.container.appendChild(this.list);
		} else {
			this.list = this.container.getElementsByTagName("ul")[0];
		}
		this.errorMessage = document.createElement("li");
		this.errorMessage.className = "error";
		this.errorMessage.innerHTML = "Could not retrieve data";
		this.list.appendChild(this.errorMessage);
	}
}
var Newsticker = Widget.Newsticker;
