var CS = CS || {};  
CS.home = CS.home || {};

var delayTime = 7000;
var autoPlay = true;
var workPos = 0;
var currentWorkPos = 0;
CS.home.speed = 600;
var speedAlpha = 300;
var strPicContainer;
var itemsPerView = 3;

window.log = function () {
	log.history = log.history || [];
	log.history.push(arguments);
	if (this.console) {
		console.log(Array.prototype.slice.call(arguments));
	}
};

window.addEvent('domready', function() {
	
	CS.registerSubnav();
	CS.registerHomeWidget();
	CS.registerInvestorWidget();
	CS.registerTerritory();
});

CS.parseNumber = function (str) {	
	return parseInt( str.toString().replace(/[^\d\.]/g,'') );
};

CS.registerTerritory = function() {
	
	if( $('territory_map') != undefined ) {
		$('territory_map').getElements('li').addEvents({
			'mouseenter': function(){
				$$('.territory_map_popup_'+CS.parseNumber(this.id)).setStyle( 'display','inline');
			},
			'mouseleave': function(){
				$$('.territory_map_popup_'+CS.parseNumber(this.id)).setStyle( 'display','none');
			}
		});
		$$('.territory_map_section').addEvents({
			'mouseenter': function(e){
				pos = this.getCoordinates( $('territory_map') );
				//pos = CS.locate( e, this, $('territory_map') );
				//$$('.territory_map_popup_'+CS.parseNumber(this.id)).setStyles( {'display':'inline', 'left':pos.x+'px', 'top':pos.y+'px'} );
				$$('.territory_map_popup_'+CS.parseNumber(this.id)).setStyles( {'display':'inline', 'left':pos.left+pos.width/2+100+'px', 'top':pos.top+pos.height/2-200+'px'} );
				//$$('.territory_map_popup_'+CS.parseNumber(this.id)).setStyle( 'display','inline');
				
			},
			'mouseleave': function(){
				$$('.territory_map_popup_'+CS.parseNumber(this.id)).setStyle( 'display','none');
			}
		});
		$$('.territory_map_popup').addEvents({
			'mouseenter': function(){
				this.setStyle( 'display','inline');
			}, 
			'mouseleave': function(){
				this.setStyle( 'display','none');
			}
		});
	} 
};

CS.locate = function( event, obj, rel ){
	var win = {'x': rel.getWidth(), 'y': rel.getHeight()};
	var scroll = {'x': rel.getScrollLeft(), 'y': rel.getScrollTop()}; 
	var posRel = rel.getCoordinates( window );
	var tip = {'x': parseInt(posRel.x,10), 'y': parseInt(posRel.y,10)};
	var prop = {'x': 'left', 'y': 'top'};
	var position = {};
	for (var z in prop){
		var pos = event.client[z];
		if ((pos + tip[z] - scroll[z]) > win[z]) pos = event.client[z] - tip[z];
		position[z] = pos;
		//obj.setStyle(prop[z], pos);
	};
	return position;
};

CS.registerSubnav = function() {
	
	if( $defined( $('nav') ) ) {
		$('nav').getElements('li.primary_nav').addEvents({
			'mouseenter': function(){
				if( this.getElement('ul') != undefined ) {
					this.getElement('ul').setStyle( 'display','inline');
					this.getElement('a').addClass( 'selected' );
				}
			},
			'mouseleave': function(){
				if( this.getElement('ul') != undefined )
					this.getElement('ul').setStyle( 'display','none');
					this.getElement('a').removeClass( 'selected' );
			}
		});
	}
};

CS.registerInvestorWidget = function() {
	
	if( $('investor_box') != undefined ) {
		$('investor_box').getElements('div.investor_box_top').addEvent('click', function(){
			this.getParent().toggleClass( 'investor_box_open' );
		});
	}
};

CS.registerHomeWidget = function() {
	
	if( $('home_widget') != undefined ) {		
		$('home_widget_tab_back').addEvent( 'click', showWorkPrev );
		$('home_widget_tab_next').addEvent( 'click', showWorkNext );
		
		numPics 		= $$('.home_widget_item').length;
		picWidth		= 278;
		strPicContainer	= "home_widget_items";
		$( strPicContainer ).setStyle( 'left','0' );
		if( autoPlay && numPics > 3 )
			nextWork.delay( delayTime );
		else {
			$( strPicContainer ).tween( 'left','0' );
			$('home_widget_tab_back').hide();
			$('home_widget_tab_next').hide();
		}
	}
};

function nextWork() {
	
	if( autoPlay ) {
		currentWorkPos = workPos;	
		workPos++;
		
		if( workPos > numPics - itemsPerView ) {
			workPos = 0;
			$( strPicContainer ).set('tween', {duration: speedAlpha, onComplete: function(){			
				$( strPicContainer ).set('tween', {onComplete: null});	
				showWork( currentWorkPos, workPos );
			}});
			$( strPicContainer ).tween( 'opacity', 0 );	
		}
		else {			
			setThumbs( currentWorkPos, workPos );			
			showWork( currentWorkPos, workPos );
		}
	}
}


function setThumbs( i, next ) {
	
	if( $defined( $('project_thumb_' + i) ) ) {
		$('project_thumb_' + i).removeClass('selected');
		$('project_thumb_' + next).addClass('selected');
	}
}


function showWork( i, next ) {

	$( strPicContainer ).set('tween', {duration: CS.home.speed, onComplete: function(){
		$( strPicContainer ).set('tween', {onComplete: null});
		$( strPicContainer ).set('tween', {duration: speedAlpha, onComplete: function(){			
			$( strPicContainer ).set('tween', {onComplete: null});	
			nextWork.delay( delayTime );
		}});			
		$( strPicContainer ).tween( 'opacity', 1 );
	}});
	$( strPicContainer ).tween( 'left','-' + (next * picWidth) + 'px' );
}	

function showWorkClick( i ) {
	
	autoPlay = false;
	setThumbs( workPos, i );	
	showWork( workPos, i );
	workPos = i;
}


function showWorkPrev() {
	
	autoPlay 		= false;
	currentWorkPos 	= workPos;	
	workPos--;
	
	if( workPos < 0 ) {
		workPos = numPics-itemsPerView;
		$( strPicContainer ).set('tween', {duration: speedAlpha, onComplete: function(){			
			$( strPicContainer ).set('tween', {onComplete: null});	
			showWork( currentWorkPos, workPos );
		}});
		$( strPicContainer ).tween( 'opacity', 0 );	
	}
	else {
		setThumbs( currentWorkPos, workPos );			
		showWork( currentWorkPos, workPos );
	}
		
	
}


function showWorkNext() {
	
	autoPlay 		= false;	
	currentWorkPos 	= workPos;	
	workPos++;
	
	if( workPos > numPics-itemsPerView ) {
		workPos = 0;
		$( strPicContainer ).set('tween', {duration: speedAlpha, onComplete: function(){			
			$( strPicContainer ).set('tween', {onComplete: null});	
			showWork( currentWorkPos, workPos );
		}});
		$( strPicContainer ).tween( 'opacity', 0 );	
	}
	else {
		setThumbs( currentWorkPos, workPos );			
		showWork( currentWorkPos, workPos );
	}	
}
