YAHOO.namespace ('threadscore');

YAHOO.namespace ('threadscore.data');

YAHOO.threadscore.data.formatDate = function (elCell,oRecord,oColumn,oData) {
  var days = { 0:'Sun', 1:'Mon', 2:'Tue', 3:'Wed', 4:'Thu', 5:'Fri', 6:'Sat' };
  var months = { 0:'Jan', 1:'Feb', 2:'Mar', 3:'Apr', 4:'May', 5:'Jun', 6:'Jul', 7:'Aug', 8:'Sep', 9:'Oct', 10:'Nov', 11:'Dec' };
  var dow = days[oData.getDay()];
  var mon = months[oData.getMonth()];
  elCell.innerHTML = dow + " " + oData.getDate()  + " " + mon + " " + oData.getFullYear();  
}

  YAHOO.threadscore.data.parseDate = function ( oData ) {
    var parts=oData.split('-');
    var date=new Date();
    date.setFullYear(parts[0]);
    date.setMonth(parts[1]-1);
    date.setDate(parts[2]);
    return date;

  }



YAHOO.threadscore.data.formatPrice = function (elCell,oRecord,oColumn,oData) {
  elCell.innerHTML = "&pound;" + oData;  
}


YAHOO.threadscore.data.formatShortString = function (elCell,oRecord,oColumn,oData) {
  elCell.innerHTML = oData.substring(0,35);  
}


YAHOO.namespace ('threadscore.slidingwindow');

YAHOO.threadscore.slidingwindow.SlidingWindow = function (elementName,className, windowContainer, slideWidth) {
	this.box = elementName+'Items';
	this.boxEl = YAHOO.util.Dom.get(this.box);
	this.className = className || elementName+'Item';
	this.windowContainer = YAHOO.util.Dom.get(windowContainer) || this.boxEl.parentNode;
	var items = YAHOO.util.Dom.getElementsByClassName(this.className, null, this.boxEl);
	this.width = items[0].offsetWidth;
	
	this.maxWidth = 0;
	for (var i = 0; i < items.length; i++)
		this.maxWidth += items[i].offsetWidth;
	
	this.movedBy = 0;
	
	this.windowSize = Math.floor(this.windowContainer.offsetWidth / this.width);
	this.slideWidth = slideWidth || this.windowSize ;
	
	if (YAHOO.util.Dom.get(elementName+'slideLeft') && YAHOO.util.Dom.get(elementName+'slideRight')) {
		YAHOO.util.Event.on(elementName+'slideLeft', 'click', function(e) { 
			if (!this.slideLeft()) {
				YAHOO.util.Dom.addClass(elementName+'slideLeft', 'inactive');
			}
			
			YAHOO.util.Dom.removeClass(elementName+'slideRight', 'inactive');
			YAHOO.util.Event.stopEvent(e);
		}, null, this);
		
		YAHOO.util.Event.on(elementName+'slideRight', 'click', function(e) {
			if (!this.slideRight()) {
				YAHOO.util.Dom.addClass(elementName+'slideRight', 'inactive');
			}
			
			YAHOO.util.Dom.removeClass(elementName+'slideLeft', 'inactive');
			YAHOO.util.Event.stopEvent(e);
		}, null, this);
	}
}

YAHOO.threadscore.slidingwindow.SlidingWindow.prototype = {
	slideBy: function(delta) {
		var anim = new YAHOO.util.Motion(
			this.box, 
			{points: {by: [delta, 0]}}, 
			0.9, 
			YAHOO.util.Easing.easeBoth
		);

		anim.animate();
	},
	
	slideLeft: function() {
		if (this.movedBy >= this.slideWidth*this.width) {
			this.slideBy(this.slideWidth*this.width);
			this.movedBy -= this.slideWidth*this.width;
		}
		
		return (this.movedBy >= this.slideWidth*this.width);
	},
	
	slideRight: function() {
		if (this.movedBy < this.maxWidth - this.slideWidth*this.width) {
			this.slideBy(-this.slideWidth*this.width);
			this.movedBy += this.slideWidth*this.width;
		}

		return (this.movedBy < this.maxWidth - this.slideWidth*this.width);
	}
}

