(function($){
	
	//Set Twitter feed
	
	$.getJSON('http://twitter.com/status/user_timeline/dynamicact.json?count=3&callback=?', function(data){
		$.each(data, function(index, item){
			$('#twitter').append('<div class="tweet"><p>' + item.text.linkify() + '</p><p><strong>' + relative_time(item.created_at) + '</strong></p></div>');
			$('#twitter a').attr('target', '_blank');
		});
	
	});
	
	//Set relative time e.g. posted 2 hours ago
	function relative_time(time_value) {
	  var values = time_value.split(" ");
	  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
	  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;
	}
	
	//Turn tweeted links into links
	String.prototype.linkify = function() {
		return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
			return m.link(m);
		});
	};
	
	//Add class to links containing a PDF
	$('a[href$=".pdf"]').addClass('pdf');
	
	$.fn.slider = function() {
		$.inAnimation = false;
		
		$(window).bind("load", function(){
			if ($('#topDisplay .activeslide').length == 0)
			$('#topDisplay div:first').addClass('activeslide');
			$('#topDisplay div:last').addClass('prevslide');
		});
	};
	
	//Randomise the photo order
	$.fn.shuffle = function() {
		return this.each(function(){
			var items = $(this).children().clone(true);
			return (items.length) ? $(this).html($.shuffle(items)) : this;
		});
	}
	
	$.shuffle = function(arr) {
		for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
		return arr;
	}
	
	$('#next').click(function() {
		nextslide();
	});
	
	$('#prev').click(function() {
		prevslide();
	});
	
	if ($('#topDisplay div').length < 2) {
		$('#prev, #next').hide();
	}

	
	$('#topDisplay').shuffle().slider();
	
	$('#paytype').hide();
  $('#direct').click(function(){
            //show the hidden div
            $('#paytype').slideDown("slow");
      });
	   $('#paypal').click(function(){ 
	     
            //otherwise, hide it
            $('#paytype').slideUp("slow");
		      });
	
		$("#register").validate({
            rules: {
				fname: {required:true},
				lnam: { required: true},
                city: { required: true},
				state: { required: true },
				email: { required:true, email: true},
				username: {	required: true},
				password: { required:true},
				payment: { required:true }
            },
            messages: {
				fname: { required: "Please enter your first name" },
				lname: { required: "Please enter your last name" },
				city: { required: "Please enter city" },
				state: { required: "Please select state" },
				email: {	required: "Please Enter Email Address",email: "Invalid Email Address"	},
				username: { required: "Please enter username" },
				password: { required: "Please enter password" },
				payment: { required: "Select payment mode" }
            }
        });
	
	// validate signup form on keyup and submit
        $("#login").validate({
            rules: {
				username: {	required: true},
				password: { required:true}
            },
            messages: {
				username: { required: "Please enter username" },
				password: { required: "Please enter password" } 
            }
        });
	
})(jQuery);

	//Slideshow Next Slide
	function nextslide() {
		if($.inAnimation) return false;
		else $.inAnimation = true;
		
		$('#topDisplay .slide').css('left', '900px');
		$('#topDisplay .activeslide').css('left', 0);
		
	    var currentslide = $('#topDisplay .activeslide');
	    currentslide.stop().animate({'left': '-900px'}, 1000, 'easeInOutExpo').removeClass('activeslide');
		
	    if ( currentslide.length == 0 ) currentslide = $('#topDisplay div:last');
			
	    var nextslide =  currentslide.next().length ? currentslide.next() : $('#topDisplay div:first');
	    var prevslide =  nextslide.prev().length ? nextslide.prev() : $('#topDisplay div:last');
		
		$('#topDisplay .prevslide').removeClass('prevslide');
		prevslide.addClass('prevslide');
		
	    nextslide.stop().animate({'left': 0}, 1000, 'easeInOutExpo', function(){$.inAnimation = false;}).addClass('activeslide');
	}
	
	//Slideshow Previous Slide
	function prevslide() {
		if($.inAnimation) return false;
		else $.inAnimation = true;
		
		$('#topDisplay .slide').css('left', '-900px');
		$('#topDisplay .activeslide').css('left', 0);
		
	    var currentslide = $('#topDisplay .activeslide');
	    currentslide.stop().animate({'left': '900px'}, 1000, 'easeInOutExpo').removeClass('activeslide');
		
	    if ( currentslide.length == 0 ) currentslide = $('#topDisplay div:first');
			
	    var nextslide =  currentslide.prev().length ? currentslide.prev() : $('#topDisplay div:last');
	    var prevslide =  nextslide.next().length ? nextslide.next() : $('#topDisplay div:first');
		
		$('#topDisplay .prevslide').removeClass('prevslide');
		prevslide.addClass('prevslide');
		
	    nextslide.stop().animate({'left': 0}, 1000, 'easeInOutExpo', function(){$.inAnimation = false;}).addClass('activeslide');
	}
	
	
	
