/**
 * jsbwe
 * capsuled javascript functions
 *
 * @author Willehad Grafenhorst <grafenhorst@sunbeam-berlin.de>
 * @lastmodified 2011-03-22
 */

var jsbwe = {

	version: "1.0",

	/**
	 * initializes subroutines
	 */
	init: function() {
          this.imgslide.init();
          this.tabcontrol.init();
	},

	/**
	 * the image-slider
	*/
	imgslide: {
		container: '#img-items',
		framediv: '#showviewframe',
		slidediv: '#img-slide',
		
		xPos: 0,
        iWidthArray: new Array(),
        ix: 0,
        cWidth: 0,
        fWidth: 0,
        slideDir: '',
          
		init: function()  {
		    if (!$(this.container))
		        return false;
		
			this.xPos = 0;
			var itw = 0;
			this.ix = 0;
			
			this.checkWidth();
			
			if (this.cWidth == 0) {
				$(this.slidediv).hide();
			} else {
				$(this.container).css('width', this.cWidth);
				$(this.container).css('left', this.xPos);
			}
			
			this.fWidth = $(this.framediv).width();
			
			$('#next').mouseover(function() {
				jsbwe.imgslide.moveSlide('next');
			});
			$('#next').mouseout(function() {
				jsbwe.imgslide.slideDir = '';
			});
			$('#prev').mouseover(function() {
				jsbwe.imgslide.moveSlide('prev');
			});
			$('#prev').mouseout(function() {
				jsbwe.imgslide.slideDir = '';
			});
			jsbwe.imgslide.setButtons();
		},
		setButtons: function() {
			if ((jsbwe.imgslide.xPos >= (jsbwe.imgslide.fWidth - jsbwe.imgslide.cWidth)) && (jsbwe.imgslide.cWidth > 0))
				$('#prev').css('visibility', 'visible');
	     	else
				$('#prev').css('visibility', 'hidden');
	     	   
			if (jsbwe.imgslide.ix > 0)
				$('#next').css('visibility', 'visible');
			else
				$('#next').css('visibility', 'hidden');
			
			if (jsbwe.imgslide.slideDir != '') {
				window.setTimeout(function() {
					jsbwe.imgslide.moveSlide(jsbwe.imgslide.slideDir)
				}, 400);
			}
		},
        checkWidth: function() {
			var itms = $(jsbwe.imgslide.container).children();
			var i = 0;
			itms.each(function() {
				var itw = this.clientWidth; 
				jsbwe.imgslide.cWidth += itw;
				jsbwe.imgslide.iWidthArray[i] = itw;
				i++;
			});
		},
		moveSlide: function(dir) {
			this.slideDir = dir;
			var newPos;
			if (this.slideDir == 'next') {
				if (this.ix > -1) {
					this.ix--;    
				}
				if (this.ix == 0) {
					this.slideDir = '';
				}
				var itw = this.iWidthArray[this.ix];
				this.xPos += itw;
				newPos = this.xPos;
			} else if (this.slideDir == 'prev') {
				itw = this.iWidthArray[this.ix];
				this.xPos -= itw;
				this.ix++;
				if (this.xPos <= (this.fWidth - this.cWidth)) {
					newPos = (this.fWidth - this.cWidth);
					this.slideDir = '';	
				} else {
					newPos = this.xPos;
				}
			}
			//if (this.slideDir != '') {
				$(this.container).animate(
						{left: newPos+'px'}, 1000, this.setButtons
				);
			//}
		}
	},
	
	/**
	 * the tab-control
	*/
	tabcontrol: {
		headId: 'tabhead',
		init: function() {
			if (!$('li[id*='+this.headId+']'))
		        return false;
		        
			$('li[id*='+this.headId+']').click(function() {
				var str = this.id;
				var ix = str.substring(str.indexOf('-')+1);
				jsbwe.tabcontrol.changeTab(ix);
				return false;
			});
			jsbwe.tabcontrol.changeTab('0');
		},
		changeTab: function(ix) {
			$('div[id*=tab]').hide();
			$('li[id*='+this.headId+']').removeClass('tabs-selected');
			
			
			if (ix == 0) {
				for (var i=1; i<4; i++) {
					tabDiv = $('div#tab-'+i);
					if (tabDiv.length > 0) {
						ix = i;
						break;
					}
				}
			}	
			$('div#tab-'+ix).show();
			$('li#'+this.headId+'-'+ix).addClass('tabs-selected');
		}
	}		
};

// init and bind
$(document).ready(function() {
	jsbwe.init();
});

