/*
* www.websolvers.com | Your internet strategy partners
* Designed and developed by Websolvers. � 2009 Websolvers Inc. All rights reserved.
* 
* jqscripts.js - Contains all jquery scripts.
* 
*/

<!--

$(document).ready(function(){
	
	/*------------------------------------------------------
	//open links in new window (for xhtml strict validation)
	//------------------------------------------------------*/
	
	$('a').click(function(){
		if($(this).attr('rel') == 'external'){
			this.target = "_blank";
		}
	});
	
	/*--------------------------------------
	//indicator script for main navigation
	//--------------------------------------*/
	
	var bodyClass = $('body').attr('class');
	
	if(bodyClass){;
		$('span.' + bodyClass).css({
		'background-attachemnent' : 'fixed',
		'background-image' : 'url(/images/top.navcontainerwrapp.indicator.gif)',
		'background-position' : 'center 35px',
		'background-repeat' : 'no-repeat'
		});
	}
	
	/*------------------------------------
	//leave active nav item with tiled bg
	//------------------------------------*/
	
	var nav_children = $('.navigation_ul').children();
	var nav_children_a = $(nav_children).children();
	var nav_children_span = $(nav_children_a).children();
	
	var nav_array = new Array();
	var nav_array_smallcase = new Array();
	var nav_array_dash = new Array();
	
	for(x = 0; x < nav_children_span.length; x++){
		nav_array[x] = $(nav_children_span[x]).html();
		nav_array_smallcase[x] = nav_array[x].toLowerCase();
		nav_array_dash[x] = nav_array_smallcase[x].replace(' ', '-');
		$(nav_children_a[x]).addClass(nav_array_dash[x]);
	}
	
	if (bodyClass) {
		$('.navigation_ul a.' + bodyClass).css({
			'background-image': 'url(../images/top.navcontainer.rollovertile.gif)',
			'background-position': 'top',
			'background-repeat': 'repeat-x',
			'color': '#ffffff'
		});
	}
	
	
	/*--------------------------------------------
	//positioning the sub navigation to its parent
	//--------------------------------------------*/
	
	//targeting subnavigation span class
	var navClass = $('.navigation_ul');
	var navLists = $(navClass).children();
	var navLinks = $(navLists).children();
	var navSpan = $(navLinks).children();
	
	//assign global vars
	var i = 0;
	var xVal;
	
	//if body class matches nav class, break then position according to where value of i stops
	while(i < navSpan.length){
		var currClass = $(navSpan[i]).attr('class');
		if(bodyClass == currClass){
			xVal = 90 * (i + 1) - 45;	
			break;
		}
		i++;
	}
		
	$('.subpage_secondary_ul').css({'left' : xVal + 'px'});
	
	/*----------------------------------------------------------------------
	//removing border for first element in secondary and footer navigations
	//----------------------------------------------------------------------*/
	
	$('.secondary_a:first, .subnav_a:first, .footernav_a:first').css({'border-left' : 'none'});
	
	/*-----------------------------------------
	//main cta on home page, fade cycle effect
	//-----------------------------------------*/
	
	//only one image for initial site launch
	
	$('#main_cta').innerfade({
		animationtype: 'fade',
		speed: 1000,
		timeout: 8000,
		type: 'sequence',
		containerheight: 280
	});
	
	$('.text_wrapp').innerfade({
		animationtype: 'fade',
		speed: 1000,
		timeout: 8000,
		type: 'sequence',
		containerheight: 280
	});
	
	/*---------------------------------------------------------------------
	//rollover effect for home callouts, sub callouts, and portfolio items
	//---------------------------------------------------------------------*/
	
	$('.home_callout_inner').hover(function() {
		var parent = $(this).parent();
		var children = $(this).children();
		$(parent).animate({backgroundColor:'#eaf1f6'}, 500);
		$(children[1]).fadeTo(500, 0);
	},function() {
	    var parent = $(this).parent();
		var children = $(this).children();
		$(parent).animate({backgroundColor:'#F3F6F8'}, 500);
		$(children[1]).fadeTo(500, 100);
	});
	
	$('.sub_callout_inner').hover(function(){
		$(this).animate({backgroundColor:'#eaf1f6'}, 500);
	}, function(){
		$(this).animate({backgroundColor:'#ffffff'}, 500);
	});
	
	$('.portfolio_items_inner .imgUp').css({'opacity' : '0'});
	
	$('.portfolio_items_inner a').hover(function(){
		var parent = $(this).parent();
		var secondParent = $(parent).parent();
		var children = $(this).children();
		$(this).css({'cursor' : 'pointer'});
		$(secondParent).animate({backgroundColor:'#eaf1f6'}, 500);
		if ($.browser.msie) {
			$(children).fadeTo('slow', .5);
		}
		else {
			$(children).fadeTo('slow', 1);
		}
	}, function(){
		var parent = $(this).parent();
		var secondParent = $(parent).parent();
		var children = $(this).children();
		$(secondParent).animate({backgroundColor:'#F3F6F8'}, 500);
		$(children).fadeTo('slow', 0);
	});
	
	$('.home_callout_inner').click(function() {
		window.location = $(this).find("a").attr("href"); return false;
	});
	$('.sub_callout_inner').click(function() {
		window.location = $(this).find("a").attr("href"); return false;
	});
	
	/*---------------------------
	//twitter/ticker fade effect
	//---------------------------*/
	
	var feedClasses = $('.twitter_feed');
	$(feedClasses[0]).nextAll().css({'display' : 'none'});
	
	var e = 0;
	$.timer(10000, function(timer){
		
		$(feedClasses[e]).fadeTo('slow', 0, function(){
			e++;
			if(e >= 5){
				e = 0;
				$(feedClasses[0]).fadeTo('slow', 1);
				$(feedClasses[0]).nextAll().css({'display' : 'none'});
			}
			$(feedClasses[e]).prev().css({'display' : 'none'});
			$(feedClasses[e]).css({'display' : 'inline'});
			$(feedClasses[e]).fadeTo('slow', 1);
		});
	});
	
	
	
	/*---------------------------
	//twitter/right region loads
	//---------------------------*/
	
	switch(bodyClass){
	case 'about-us':
	  var twitter_account = 'mcerto';
	  var feed_count = 5;
	  break;
	case 'news':
	  var twitter_account = 'websolvers';
	  var feed_count = 5;
	  break;
	default:
		var twitter_account = 'websolvers';
		var feed_count = 1;
	}
	
	$.getJSON("http://twitter.com/status/user_timeline/"+twitter_account+".json?count="+feed_count+"&callback=?", 
		function(data){ 
			$.each(data, function(i,item){ 
					//create links to any urls or @replies in a tweet 
					var new_text = item.text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, 
			
					function(url) { 
					return '<a rel="nofollow" href="'+url+'">'+url+'</a>'; 
					}).replace(/\B@([_a-z0-9]+)/ig, 
					function(reply) { 
					return reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>'; 
					
				}); 
				
				var rel_time = relative_time(item.created_at);
				
				//push tweet to the page and make it clickable 
				$('#twitter_right_block ul').append('<li>'+new_text+'<span class="tweetDate"><span class="posted">posted: </span>'+rel_time+'</span></li>').click(function () { window.location = 'http://twitter.com/websolvers/status/'+item.id; });
				
			} 
		) 
	});
	
	/*-----------------------------------------------------------
	//subpage, content stretch for callouts that are not visable
	//-----------------------------------------------------------*/
	
	var sub_callouts = $('#content_callouts').children();
	if(sub_callouts.length <= 0){
		$('#subcontent_copy').css({
			'width' : '100%'
		});
	}
	
	/*---------------------------------------------------------------
	//jquery lightbox effect, triggered upon portfolio items clicked
	//---------------------------------------------------------------*/
	
	$(function() {
		$('.portfolio_items_inner a').lightBox({
	   		fixedNavigation:true
	  	});
		
	});
	
	/*---------------------------------------------------------------
	//Flickr stream parsing via rss reed
	//---------------------------------------------------------------*/
	
	
	/*$('div.flickrWrapp').find('p:first').css({'display' : 'none'});
	$('div.flickrWrapp a').attr({rel: "external"});
	$('div.flickrWrapp img').css({'width' : 45,
								  'height' : 45})*/
	
});


/*---------------------------------------------------------------
//Function Declarations
//---------------------------------------------------------------*/

//used to format time stamps
function relative_time(time_value) { //Makes the time thing happen
	
	var values = time_value.split(" ");
	time_value = values[1] + " " + values[2] + ", " + values[5];
	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);
	
	var r = '';
	if (delta < 60) {
	r = 'a minute ago';
	} else if(delta < 120) {
	r = 'couple of minutes ago';
	} else if(delta < (45*60)) {
	r = (parseInt(delta / 60)).toString() + ' minutes ago';
	} else if(delta < (90*60)) {
	r = 'an hour ago';
	} else if(delta < (24*60*60)) {
	r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
	} else if(delta < (48*60*60)) {
	r = '1 day ago';
	} else {
	r = (parseInt(delta / 86400)).toString() + ' days ago';
	}
	
	return r;
} 




//-->