/* THE SKATEBOARD LURK */

// global sifr settings
var rockwell 		= { src: 'http://skatelurk.com/files/rockwell.swf' };
var sifrPageTitle ={	
	selector: 	'.green_18px',
	css: [
				'.sIFR-root { font-size: 18px; color: #96ca49; text-transform: uppercase; leading: 0; }',
				'a { color: #96ca49; text-decoration: none; }',
				'a:hover { color: #96ca49; text-decoration: underline; }',
				'.color_2 { color: #8c8b85; }'
	],
	ratios: 	[6, 1.66, 8, 1.53, 9, 1.39, 10, 1.34, 15, 1.29, 21, 1.25, 22, 1.22, 27, 1.24, 29, 1.21, 34, 1.22, 41, 1.21, 45, 1.2, 46, 1.21, 59, 1.2, 68, 1.19, 69, 1.2, 96, 1.19, 97, 1.18, 102, 1.19, 103, 1.18, 107, 1.19, 108, 1.18, 112, 1.19, 114, 1.18, 116, 1.19, 120, 1.18, 121, 1.19, 1.18],
	wmode: 		'transparent',
	offsetTop:	-4,
	tuneHeight: -12
};

var sifrLurkerNames = {
	selector: 	'.white_14px',
	css: [
				'.sIFR-root { color: #ffffff; font-size: 14px; leading: 0; }',
				'a { color: #ffffff; text-decoration: none; }',
				'a:hover { color: #ffffff; text-decoration: underline; }'				
	],
	ratios: 	[6, 1.66, 8, 1.53, 9, 1.39, 10, 1.34, 15, 1.29, 21, 1.25, 22, 1.22, 27, 1.24, 29, 1.21, 34, 1.22, 41, 1.21, 45, 1.2, 46, 1.21, 59, 1.2, 68, 1.19, 69, 1.2, 96, 1.19, 97, 1.18, 102, 1.19, 103, 1.18, 107, 1.19, 108, 1.18, 112, 1.19, 114, 1.18, 116, 1.19, 120, 1.18, 121, 1.19, 1.18],
	wmode: 		'transparent',
	offsetTop:	-4,
	tuneHeight: -8
};



/* BEGIN MAIN LURK OBJECT */
if( typeof(Lurk) == "undefined"){
	Lurk = {
		/* handles switching of the views.  from grid to list */
		viewSwitch:function(mode){
			if(mode == 'grid') {
				$('.view_list').css('cursor', 'pointer');
				$('.view_grid').css('cursor', 'default');
				$('.view_list').bind('click', function(e) {
					Lurk.viewSwitch('list');
				});		
				$('.view_grid' ).unbind('click', function(e) {
					Lurk.viewSwitch('grid');
				});		
				$('.view_grid').addClass('active');
				$('.view_list').removeClass('active');
				this.viewGrid();		
			} else if(mode == 'list'){		
				$('.view_list').css('cursor','default');
				$('.view_grid').css('cursor','pointer');		
				$('.view_list').unbind('click',function(e) {
					Lurk.viewSwitch('list');
				});		
				$('.view_grid' ).bind('click', function(e) {
					Lurk.viewSwitch( 'grid' );
				});		
				$('.view_grid').removeClass('active');
				$('.view_list').addClass('active');		
				this.viewList();
			}	
		},
		/* animate the transition from grid view to list view */
		viewList:function(){
			$('#tweets > li').not('.clear_fix').animate({'width':'660px'},1000);
			setTimeout(function(){$('.extraTweets').fadeIn(750);},1000);
			//setTimeout( 'sifrRedraw()', 1750 );			
		},
		/* animate the transitions from list view to grid view */
		viewGrid:function(){
			$('.extraTweets').fadeOut(750)
			setTimeout(function(){$('#tweets > li').not('.clear_fix').animate({'width':'200px'},1000);},750);
			//setTimeout( 'sifrRedraw()', 1750 );	
		},
		/* handles redrawing sifr text on screen */
		sifrDrawTitles:function(font, element){
			window.sIFR.replace(font,element );
		},
		/* main navigation handler */ 
		nav:function(){
			//highlight the selected filter state
			var current_url = window.location.pathname.split('/');		
			if(current_url.length > 4){ 
				
				try{				
					var direction_arr = current_url[6].split(':');
					//direction_arr[1] == current direction for pagination
					var sort_arr = current_url[5].split(':');
					// sort_arr[1] == current pagination sort param
					$('#filter').children('option').each(function(){
						if(($(this).attr('direction') == direction_arr[1]) && ($(this).attr('sort') == sort_arr[1])){
						//	alert('match');
							$(this).attr({selected:'selected'}); 				
						}
					});
				} catch (err){
					// do nothing b/c there isn't any filtered result.
				}
			}			
			$('#filter').change(function(){ 
				if($("#filter option:selected").attr('value') != 'false'){ 		
					var action = $("#filter option:selected").attr('action');			
					var controller = $("#filter option:selected").attr('controller');			
					var direction = $("#filter option:selected").attr('direction');			
					var sort = $("#filter option:selected").attr('sort');			
					var page = $("#filter option:selected").attr('page');						
					var loc = 'http://skatelurk.com/'+controller+'/'+action+'/page:'+page+'/sort:'+sort+'/direction:'+direction;				
					window.location = loc;
					return false;
				}
				return false;
			}); 
		},
		init:function(){
			this.viewSwitch('grid');
			this.nav();
					
			// global sIFR properties
			//window.sIFR.useStyleCheck 	= true;
			//window.sIFR.fixHover = true;
			//window.sIFR.fitExactly = true;
			//window.sIFR.repaintOnResize = true;
			//window.sIFR.activate(rockwell);
			//this.sifrDrawTitles(rockwell, sifrLurkerNames);
			//this.sifrDrawTitles(rockwell, sifrPageTitle);
		}
	};
}  // END LURK OBJECT //
/* ******************************************************************************************************************************************** */

/*



sIFR.replace( rockwell, );


*/




/* ******************************************************************************************************************************************** */
/* BEGIN UTILITY NAMESPACE */
if( typeof(Lurk.Utils) == "undefined"){
	Lurk.Utils = {
		ucwords:function(str){
			return (str+'').replace(/^(.)|\s(.)/g, function ( $1 ) { return $1.toUpperCase( ); } );
		},
		linkify:function(s){
			var entities = {
				'"' : '&quot;',
				'&' : '&amp;',
				'<' : '&lt;',
				'>' : '&gt;'
			};        
			return s.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/g, function(m) {
				return m.link(m);
			}).replace(/(^|[^\w])(@[\d\w\-]+)/g, function(d, m1, m2) {
				return m1 + '@<a href="http://twitter.com/' + m2.substr(1) + '">' + m2.substr(1) + '</a>';
			}).replace(/"&<>/, function (m) {
				return entities[m];
			});
		},
		relative_time:function(time_value) {
			var values = time_value.split(" "),
				parsed_date = Date.parse(values[1] + " " + values[2] + ", " + values[5] + " " + values[3]),
				date = new Date(parsed_date),
				relative_to = (arguments.length > 1) ? arguments[1] : new Date(),
				delta = parseInt((relative_to.getTime() - parsed_date) / 1000),
				r = '';
			function formatTime(date) {
				var hour = date.getHours(),
					min = date.getMinutes() + "",
					ampm = 'AM';            
				if (hour == 0) {
					hour = 12;
				} else if (hour > 12) {
					hour -= 12;
					ampm = 'PM';
				}
				if (min.length == 1) {
					min = '0' + min;
				}            
				return hour + ':' + min + ' ' + ampm;
			}      
			function formatDate(date) {
				var ds = date.toDateString().split(/ /),
					mon = ds[1],
					day = ds[2],
					dayi = parseInt(day),
					year = date.getFullYear(),
					thisyear = (new Date()).getFullYear(),
					th = 'th';
				// anti-'th' - but don't do the 11th, 12th or 13th
				if ((dayi % 10) == 1 && day.substr(0, 1) != '1') {
					th = 'st';
				} else if ((dayi % 10) == 2 && day.substr(0, 1) != '1') {
					th = 'nd';
				} else if ((dayi % 10) == 3 && day.substr(0, 1) != '1') {
					th = 'rd';
				}
				
				if (day.substr(0, 1) == '0') {
					day = day.substr(1);
				}
				
				return mon + ' ' + day + th + (thisyear != year ? ', ' + year : '');
			}
			delta = delta + (relative_to.getTimezoneOffset() * 60);
	
			if (delta < 5) {
				r = 'less than 5 seconds ago';
			} else if (delta < 30) {
				r = 'half a minute ago';
			} else if (delta < 60) {
				r = 'less than a minute ago';
			} else if (delta < 120) {
				r = '1 minute ago';
			} else if (delta < (45*60)) {
				r = (parseInt(delta / 60)).toString() + ' minutes ago';
			} else if (delta < (2*90*60)) { // 2* because sometimes read 1 hours ago
				r = 'about 1 hour ago';
			} else if (delta < (24*60*60)) {
				r = 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
			} else {
				if (delta < (48*60*60)) {
					r = formatTime(date) + ' yesterday';
				} else {
					r = formatTime(date) + ' ' + formatDate(date);
					// r = (parseInt(delta / 86400)).toString() + ' days ago';
				}
			}
			return r;
	    },
		dump:function(arr,level) {
			var dumped_text = "";
			if(!level) level = 0;
			
			//The padding given at the beginning of the line.
			var level_padding = "";
			for(var j=0;j<level+1;j++) level_padding += "    ";
			
			if(typeof(arr) == 'object') { //Array/Hashes/Objects 
				for(var item in arr) {
					var value = arr[item];
					
					if(typeof(value) == 'object') { //If it is an array,
						dumped_text += level_padding + "'" + item + "' ...\n";
						dumped_text += dump(value,level+1);
					} else {
						dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
					}
				}
			} else { //Stings/Chars/Numbers etc.
				dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
			}
			return dumped_text;
		}
	};
}

/* initialize the site on document ready */
$(document).ready( function() {							  
	Lurk.init();
});	


/* GOOGLE ANALYTICS */
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
try {
	var pageTracker = _gat._getTracker("UA-210890-7");
	pageTracker._trackPageview();
}catch(err){}