﻿function formatMoney_NO(val) {
    var tmp = formatMoney("NO", val);
    return tmp;
}

function formatMoney(regionCode, value) {
    switch (regionCode) {    
        case "GB":
            newVal = formatMoneyForDisplay(value, ".", ",", "\u20AC ", false);
            break;

        case "SE":
            newVal = formatMoneyForDisplay(value, " ", ",", " kr", true);
            break;

        case "NO":
            newVal = formatMoneyForDisplay(value, " ", ",", "kr ", false);
            break;
            
        case "DK":
            newVal = formatMoneyForDisplay(value, " ", ",", "kr ", false);
            break;

        case "DE":
            newVal = formatMoneyForDisplay(value, ".", ",", " \u20AC", true);
            break;

        case "ES":
            newVal = formatMoneyForDisplay(value, ".", ",", "\u20AC", true);
            break; 
            
        case "FI":
            newVal = formatMoneyForDisplay(value, ".", ",", "\u20AC", true);
            break;

        case "PL":
            newVal = formatMoneyForDisplay(value, " ", ",", "<span class='plnSymbol'> PLN</span>", true);
            break;

        case "IT":
            newVal = formatMoneyForDisplay(value, ".", ",", "\u20AC", false);
            break;

        default:
            newVal = formatMoneyForDisplay(value, ".", ",", " \u20AC", true);
            break;            
    }
    
    return newVal;
}

// formatMoneyForDisplay
// Formats a currency value for display on screen.
// REG - 25/10/11
// Params;
// 			val 				- The price value to convert for display.
//			thousandSeparator 	- The symbol to use as thousand separator
//			decimalSeparator	- The symbol to use as a decimal separator.
//			currencySymbol		- The currency symbol or string for the region.
//			symbolAfterValue	- True/False - displays the currency symbol after/before the value.
//
function formatMoneyForDisplay(val,thousandSeparator, decimalSeparator, currencySymbol, symbolAfterValue) {
    splitVal = val.toString().split(".", 2);
    
    decimalOfVal = "";    
    
    if (splitVal[1] != "undefined") {
        decimalOfVal = getDecimal(val);
        decimalOfVal = decimalSeparator + splitVal[1];

        if (decimalOfVal.length <= 2)
            decimalOfVal = decimalOfVal + "0";
    }
    
    val = splitVal[0] + ""; 

    newVal = "";

	// Insert a thousand separator if needed.
    for (i = val.length - 1; i >= 0; i--) {
        newVal = val.substring(i, i + 1) + newVal;
        if ((val.length - i) % 3 == 0 && i != 0)
            newVal = thousandSeparator + newVal;
    }
	
	// Add the currency symbol.
    if (symbolAfterValue) {
        if (decimalOfVal != decimalSeparator + "00") {
            // Symbol after value.
            newVal = newVal + decimalOfVal + currencySymbol;
        }
        else {
            newVal = newVal + currencySymbol;
        }
    } else {
        if (decimalOfVal != decimalSeparator + "00") {
            // Symbol before value
            newVal = currencySymbol + newVal + decimalOfVal;
        }
        else {
            newVal = currencySymbol + newVal;
        }
    }

    return newVal;
}

function formatPercentage(Val) {
    splitPoint = Val.indexOf(".");
    newVal = Val.substring(0, splitPoint) + "%";    
    return newVal;
}

function getDecimal(Val) {
	var tmp = (Math.round(Val * 100) / 100).toFixed(2);
	splitVal = tmp.toString().split(".", 2);
	return splitVal[1].substring(0, 2);
}

function getCurrencySymbol(regionCode) {
    switch (regionCode) {
        case "GB":
            return "£";
            break;

        case "SE":
            return "kr";
            break;

        case "NO":
            return "kr";
            break;

        case "DK":
            return "kr";
            break;

        case "DE":
            return "€";
            break;

        case "ES":
            return "€";
            break;

        case "FI":
            return "€";
            break;

        case "PL":
            return "zl";
            break;

        default:
            return "€";
            break;
    }
}
