// extra method for prefilled fields
$.validator.addMethod("is_changed" ,function (value,elem) {
	var el = $(elem);
	return  el.hasClass('changed') || el.hasClass('focus') && el.val()!='';
},$.validator.messages['required']); 

function footernewsletter(ref) {
	if (!ref.elements.subscribe[0].checked) ref.action = $(ref).attr('unaction');
	return true;
}
function customShowErrors() {
	$.each(this.errorList, function(i,el) {
		if (el.element.nodeName=='TEXTAREA') {
			$(el.element).parent().addClass('error');
		}
	});
	$.each(this.successList, function(i,el) {
		if (el.nodeName=='TEXTAREA') {
			$(el).parent().removeClass('error');
		}
	});
	this.defaultShowErrors.call( this, this.errorMap, this.errorList );
}
$(document).ready(function() {
	var $menu = $('ul.sf-menu').superfish({
		delay: 350,
		onBeforeShow: function() {
			this.parent().parent().children('li').each(function(i) { $(this).css('z-index',100-i); });
			if (!this.attr("fixed")) {
				var w = this.width();
				this.width(w);
				this.attr("fixed",w);
				this.children('li').each(function() {					
					$(this).width(w).css('float','left');
				});
				if (typeof(box)!='undefined' && this.length) {
					curvyCorners(box, this[0]);
				}
			}
			if ( !this.hasClass('mainsub') ) {
				var offset =  this.parent().parent().offset();
				if (offset) {
					var space_left = offset.left-$(document).scrollLeft();
					if ( space_left + this.parent().parent().width() + this.width() > $(window).width() ) {
						this.css({left:2-this.attr("fixed"),top:-6});
					} else {
						this.css({left:this.parent().parent().width()-2,top:-6});
					}
				}
			}
		}
	});
	$menu.find("ul").each(function(i){
		$(this).hover(
			function(){ $(this).parent("li").children("a").addClass("pcurrent"); },
			function(){ $(this).parent("li").children("a").removeClass("pcurrent"); }
		);
	});	

	/* mouse-hand */
	$('input[type=submit],input[type=button],input[type=reset]').css('cursor','pointer');
	
	/* Fix Contact Form Textarea Focus */
	$("textarea").not('.dummy')
		.each(function() {
			var el = $(this);
			el.after('<div class="textarea"></div><label for="'+$(this).attr('name')+'" generated="true" class="error" style="display: none; "></label>').next().append('<div class="top"></div>').append(el).append('<div class="bottom"></div>');
		})
		.focus(function() {$(this).parent().addClass("focus");})
		.blur(function() {$(this).parent().removeClass("focus");});
	$('.stdform .field input')		
		.focus(function() {$(this).addClass("focus");})
		.blur(function() {$(this).removeClass("focus");});		

	$("#footerWidgets .validate_form input[type=text]").addClass('textInput');

	/* Using ToggleVal Plugin to make the text in textInput forms toggle */
	$("#footerWidgets .validate_form input[type=text],#footerWidgets .validate_form textarea, #newsletter input[type=text], .search input[type=text]").toggleVal({ focusClass: 'focus', changedClass: 'changed' });
	$("input.toggleval[required=true],textarea.toggleval[required=true],input.toggleval[validate*=required:true],textarea.toggleval[validate*=required:true]").each(function() {
		var val = $(this).attr('validate');
		val = val ? ','+val : '';
		$(this).attr('validate','is_changed:true'+val);
	});
		
	/* Using customInput plugin make a custom looking radio and checkbox */
	$('input').customInput();
	$('.custom-checkbox input, .custom-radio input').css({'left':'-9999px'});
	
	$("#searchform").validate();
	$("#footer #newsletter form").validate();

	/* Remove the scrolbars from textarea in Opeara  */
	if($.browser.opera) $("textarea").css("overflow","hidden");
	
	$(".midden-links a").each(function(i,el) {
		if ( i%3 ) {
			$(this).addClass('margin');
		} else {
			$(this).addClass('clear');
		}
	});
	$(".atlist:last tr:last .atlist_item").css('border','none');

    // Dock initialize
    if (typeof($.fn.Fisheye)!='undefined') {
		$('#dock').Fisheye(
			{
				maxWidth: 40,
				items: 'a',
				itemsText: 'span',
				container: '.dock-container',
				itemWidth: 30,
				proximity: 40,
				valign: 'bottom',
				halign : 'center'
			}
		);
	}
	$.getJSON('/jqajax/', {jqajax: "feed_twitter#get_feed",xajaxargs: { feed: 'Highq twitter', return_json: 1 } }, function (data) { if (data && data.status ) { setUpdate(data.data); } } );
});
function setRows( sel, cnt ) {
	// geef iedere 0e een clear om rijen te krijgen
	$(sel).each(function(i) { 
		if ( (i % cnt)==0 ) {
			$(this).before('<div style="clear:left"></div>').css({'margin-left':'0'});
		}
	});
}
function setUpdate( data ) {
	if ( data && data[0] && data[0].text ) {
		var str = '';
		for (var i=0; i<data.length; i++){
			var username = data[i].user.screen_name;
			var status = data[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
				return '<a 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>';
			});
			if (i==0) $('#twitterline').html(status);
			str += '<li><span>'+status+'</span> <a href="http://twitter.com/'+username+'/statuses/'+data[i].id+'">'+relative_time(data[i].created_at)+'</a></li>';
		}
		$('#footerWidgets #twitter_update_list').html(str);
	}
}
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);

	if (delta < 60) {
		return 'less than a minute ago';
	} else if(delta < 120) {
		return 'about a minute ago';
	} else if(delta < (60*60)) {
		return (parseInt(delta / 60)).toString() + ' minutes ago';
	} else if(delta < (120*60)) {
		return 'about an hour ago';
	} else if(delta < (24*60*60)) {
		return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
	} else if(delta < (48*60*60)) {
		return '1 day ago';
	} else {
		return (parseInt(delta / 86400)).toString() + ' days ago';
	}
}

