/**
 * @package WordPress
 * @subpackage Accelerator
 */
// EN liten kommentar till för filstorpekens skull!
var atTweet = 0;
var tweets;

jQuery(document).ready(function($) {

	convertEmails();

	$("A[rel='external']").attr("target", "_blank"); // Sätter target="_blank" för rel="external"
	$("A").focus(function(){ $(this).blur(); }); // Sätter blur() på alla länkar vid focus()
	$("A[href$='.pdf']").addClass("pdf");

	p2pMenu("#mainMenu");
	p2pMenu("#subMenu");
	
	getQuote();
	if(jQuery(".home #tweet-box").length) getTweets();

});

function p2pMenu(m){
	var $ = jQuery;
	$(m + " LI").each(function(){
		if(jQuery(".current_page_parent", this).length){
			$(this).addClass("current_page_ancestor");
			var cl = this;
			while($("LI .current_page_parent", cl).length){
				$("LI", cl).addClass("current_page_ancestor");
				cl = $("LI", cl);
			}
		}
	});
}
function getTweets(){
	var s = document.createElement('script');
	//var usr = "from:accelerator";
	s.setAttribute("type","text/javascript");
	//s.setAttribute("src", "http://search.twitter.com/search.json?q="+usr+"&callback=showTweets&rpp=20&lang=all");
	s.setAttribute("src", "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=Accelerator&callback=showTweets&lang=all&count=5&include_rts=1");
	document.getElementsByTagName("head")[0].appendChild(s);
}
function showTweets(t){
	tweets = t;
	var users = {"Accelerator" : "Accelerator" }

	tf = function(){
		// Vi vill nog ladda om sökresultatet efter en viss tid...
		atTweet = atTweet >= tweets.length ? 0 : atTweet;
		var at = jQuery(t).get(atTweet);
		while(! at || at.in_reply_to_user_id > 0){ atTweet++; at = jQuery(tweets).get(atTweet); if(!at) break;} // Vill inte ha replies då de inte säger så mycket i sig själva.
		// Kolla så att nästa tweet inte är samma som aktuell. Försök då välja plucera som användare om en av dem.
		if(at && at.text){
			var str = "<p class=\"tweet\">"+ formatTweetStr(at.text) +"</p>";
			str += "<p class=\"tweet-info\"><span><a href=\"http://twitter.com/accelerator\">Accelerator</a><br /></span>"+ makeTime(at.created_at.replace(/^\w+ (\w+) (\d+) ([\d:]+) \+0000 (\d+)$/, "$1 $2 $4 $3 UTC")) +" sedan</p>";
			
			jQuery("#tweet-box P").fadeOut(2400, function(){
				jQuery("#tweet-box").html(str);
				jQuery("#tweet-box P").fadeIn(2400);
			});
			atTweet++;
		}
	}

	tf();
	setInterval("tf()", 12000);
}
function formatTweetStr(str){
	//Länkar klickbara
	str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.-]*(\?\S+)?)?)?)/gm,'<a href="$1" target="_blank">$1</a>');

	//Användare
	str = str.replace(/([^\w])\@([\w\-]+)/gm,'$1@<a href="http://twitter.com/$2" target="_blank">$2</a>');

	//Hash-taggar
	//str = str.replace(/([^\w])\#([\w\-]+)/gm,'$1<a href="http://twitter.com/search?q=%23$2" target="_blank">#$2</a>');

	return str;
}
function makeTime(ts){
	var cd = new Date();
	var ct = cd.getTime();
	var tsd = Date.parse(ts);
	var tdiffs = ct - tsd;
	var tdiff = new Date(tdiffs);
	tdiffs = tdiffs / 1000;

	if((tdiffs / 60) > 1){
		if((tdiffs / 3600) > 1){
			if((tdiffs / 86400) > 1){
				strDiff = Math.round(tdiffs / 86400) + " dag" + (Math.round(tdiffs / 86400) == 1 ? "" : "ar");
			}
			else strDiff = Math.round(tdiffs / 3600) + " timm" + (Math.round(tdiffs / 3600) == 1 ? "e" : "ar");
		}
		else strDiff = Math.round(tdiffs / 60) + " minut" + (Math.round(tdiffs / 60) == 1 ? "" : "er");
	} else strDiff = "mindre än 1 minut";

	return strDiff;
}


function getQuote(){
	var s = document.createElement('script');
	s.setAttribute("type","text/javascript");
	s.setAttribute("src", template_directory + "/aktiekurs.php?callback=showQuote");
	document.getElementsByTagName("head")[0].appendChild(s);
}
function showQuote(t){
	setTimeout(function(){
		if(Num.fromString(t.Prices.NextToLastQuote) > 0) plusminus = Num.toString((((Num.fromString(t.Prices.LatestQuote)/Num.fromString(t.Prices.NextToLastQuote))-1)*100),2);
		else plusminus = 0;
		jQuery("#share").css("background-image", "none");
		jQuery("#share :nth-child(1) *").html(t.Prices.BidPrice);
		jQuery("#share :nth-child(2) *").html(t.Prices.AskPrice);
		jQuery("#share :nth-child(3) *").html(t.Prices.LatestQuote + " ("+ plusminus +"%)");
		jQuery("#share LI").show();
	}, 1000);
}

function convertEmails(){
	var spans = document.getElementsByTagName("span");
	var numSpans = spans.length;
	for(var i = 0; i < numSpans; i++){
		if(spans[i] && spans[i].className == "epost"){
			var at = new RegExp("\\(snabel\-a\\)", "i");
			var punkt = new RegExp("\\(punkt\\)", "ig");
			var contact = spans[i].firstChild.data.split("|");

			if (contact.length == 2) {
				var address = contact[1].replace(at, "@").replace(punkt, ".");
               	var theLink = document.createElement("A");
               	theLink.setAttribute("href", "mailto:" + address);
               	theLink.className = "email";
               	theLink.appendChild(document.createTextNode(contact[0]));
               	spans[i].replaceChild(theLink, spans[i].firstChild);
			}
			else {
				var address = spans[i].firstChild.data.replace(at, "@").replace(punkt, ".");
				var theLink = document.createElement("A");
				theLink.setAttribute("href", "mailto:" + address);
				theLink.className = "email";
				theLink.appendChild(document.createTextNode(address));
				spans[i].replaceChild(theLink, spans[i].firstChild);
			}
		}
	}
}

Num = {
inDSep : ".",
inTSep : ",",

outDSep : ",",
outTSep : " ",


setInSeparators : function(dSep /*, tSep = false */) {
this.inDSep = arguments[0];
if (arguments.length == 2) this.inTSep = arguments[1];
},

setOutSeparators : function(dSep /*, tSep = false */) {
this.outDSep = arguments[0];
if (arguments.length == 2) this.outTSep = arguments[1];
},

fromString : function(_num) {
var out, parts;
parts = String(_num).split(this.inTSep).join("").split(this.inDSep);
if (parts.length == 2) {
out = parseFloat(parts[0].replace(/[\D]/g,"") + "." + parts[1].replace(/[\D]/g,""));
}
else {
out = parseInt(parts[0].replace(/[\D]/g,""));
}
if (/^\-/.test(_num)) {
out = -out;
}
return out;
},

toString : function (_num, _dec) {
var out, isNegative, parts, i, j;

out = "";
isNegative = 0;

// Dela _num på .
parts = String(_num).trim().split(".");

if (/^\-/.test(parts[0])) { // Talet är negativt
isNegative = 1;
}
// Lägg till tusen-separator
for (i = parts[0].length-1, j = 1; i >= isNegative; i--, j++) {
out = parts[0].charAt(i) + out;
if (!(j%3)) { out = this.outTSep + out; }
}

// Plocka bort eventuellt tillagt inledande blanksteg
out = out.trim();

// "Oändligt" antal decimaler
if (isNaN(_dec) && parts.length > 1) {
out += this.outDSep + parts[1];
}
else if (_dec > 0) {
// avrunda till _dec antal decimaler...
var decimals = "";
var start = 0;
if (parts.length > 1) {
if (!isNaN(parts[1].charAt(_dec-1)) && !isNaN(parts[1].charAt(_dec)) && parts[1].charAt(_dec) > 4) {
var last;
last = parts[1].charAt(_dec-1);
decimals = parts[1].substr(0,_dec-1)+(++last);
}
else {
decimals = parts[1].substr(0,_dec);
}
start = parts[1].length;
}
for (var i = start; i < _dec; i++) {
decimals += "0";
}
out += this.outDSep + decimals;
}
if (isNegative) {
out = "-" + out;
}
return out;
},

convertString : function(_num, _dec) {
_num = this.fromString(_num);
return this.toString(_num, _dec);
}
};

String.prototype.trim = function() {
a = this.replace(/^\s+/, '');
return a.replace(/\s+$/, '');
};
