//jquery color plugin -- http://stackoverflow.com/questions/190560/jquery-animate-backgroundcolor
(function(d){d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(f,e){d.fx.step[e]=function(g){if(!g.colorInit){g.start=c(g.elem,e);g.end=b(g.end);g.colorInit=true}g.elem.style[e]="rgb("+[Math.max(Math.min(parseInt((g.pos*(g.end[0]-g.start[0]))+g.start[0]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[1]-g.start[1]))+g.start[1]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[2]-g.start[2]))+g.start[2]),255),0)].join(",")+")"}});function b(f){var e;if(f&&f.constructor==Array&&f.length==3){return f}if(e=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(f)){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3])]}if(e=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(f)){return[parseFloat(e[1])*2.55,parseFloat(e[2])*2.55,parseFloat(e[3])*2.55]}if(e=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(f)){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}if(e=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(f)){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}if(e=/rgba\(0, 0, 0, 0\)/.exec(f)){return a.transparent}return a[d.trim(f).toLowerCase()]}function c(g,e){var f;do{f=d.curCSS(g,e);if(f!=""&&f!="transparent"||d.nodeName(g,"body")){break}e="backgroundColor"}while(g=g.parentNode);return b(f)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]}})(jQuery);

function someElements(max) {
	max = typeof(max) != 'undefined' ? max : 5;
	max = Math.floor(Math.random()*max);
	for(i=0;i<max;i++){
	$('body').append('<a href="#" class="tag" style="opacity:.8; width:'+Math.round(20+Math.random()*80)+';">&nbsp;</a>');
	}

}

$.fn.fixBroken = function(){
	return this.each(function(){
		var tag = $(this);
		var alt_img = 'img/favicon-missing.png';
		tag.error(function() { // this adds the onerror event to images
			tag.attr("src",alt_img); // change the src attribute of the image
			return true;
		});
	});
};

function logClick(addressIn,actionIn) {
        new Image().src='http://northportsevs.com/alive/log.php?address='+addressIn+'&action='+actionIn;
}
function logMouseover(addressIn,actionIn) {
	$.post('http://northportsevs.com/alive/log.php?callback=?',{ address: addressIn, action: actionIn },function(data){console.log(data);}, 'jsonp');
}

function colorShift(target,num) {
	if (num==null) num = 1;
	var opacity = eval($(target).css('opacity'));
	var colorsregex = /\d+/gi
	var colors = $(target).css('background-color').match(colorsregex);
	var rgbmod = ['0','0','4'];
	colors[0] = 255; //Math.min(eval(colors[0])+(rgbmod[0]*num),255);
	colors[1] = 255; //Math.max(eval(colors[1])-(rgbmod[1]*num),0);
	colors[2] = Math.min(eval(colors[2])-(rgbmod[2]*num),255);
	//opacity = opacity + .01;
	//$(target).css('opacity', opacity);
	$(target).animate({'background-color': 'rgb('+colors[0]+','+colors[1]+','+colors[2]+')'},500);
}
function opacityShift(target,num) {
	var userAction;
	if (num==null) {
		num = 1;
		userAction = 1;
	}
	var opacity = eval($(target).css('opacity'));
	opacity = Math.min(opacity+(.01*num),1);
	if (userAction) {
		$(target).animate({'opacity':opacity+.1},10) .animate({'opacity':opacity},50);	
	} else {
		$(target).animate({'opacity':opacity},500);			
	}
}
function decorateLinks(clickScale,mouseoverScale) {
	var clickScale = clickScale ? clickScale : 1;
	var mouseoverScale = mouseoverScale ? mouseoverScale : 1;
	$.getJSON('http://northportsevs.com/alive/read.php?callback=?', function(data) {
		$.each(data, function(i,item) {
			curLink = $('a[href="'+item.address+'"]');
			if (curLink[0]) {
				colorShift(curLink,parseInt(item.clicks*clickScale));
				opacityShift(curLink,parseInt(item.mouseovers*mouseoverScale));
			}			
		});
	});
}

$(document).ready(function() {
	$('.favicon').fixBroken();
	$('.tag').mousedown(function(event){
		address = $(this).attr('href');
		logClick(address,'click');
		colorShift(event.target);
		if($(this).attr('href')=='#') return false;
	});
	if (!mobile) {
		$('.tag').mouseover(function(event) {
			logMouseover($(this).attr('href'),event.type);
			opacityShift(event.target);
		});
	}
});

