/**
 * @package WordPress
 * @subpackage Accelerator
 */

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();

});

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 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+$/, '');
};