﻿///Begin Extension for outerHTML in Mozilla

if (!document.all) {
    HTMLElement.prototype.outerHTML
    setter = function(str) {
        var r = this.ownerDocument.createRange();
        r.setStartBefore(this);
        var df = r.createContextualFragment(str);
        this.parentNode.replaceChild(df, this);
        return str;
    };

    HTMLElement.prototype.outerHTML
    getter = function() {
        return getOuterHTML(this)
    };

    function getOuterHTML(node) {
        var str = "";
        var empties = ["IMG", "HR", "BR", "INPUT"];

        switch (node.nodeType) {
            case 1: // ELEMENT_NODE
                str += "<" + node.nodeName;
                for (var i = 0; i < node.attributes.length; i++) {
                    if (node.attributes.item(i).nodeValue != null) {
                        str += " "
                        str += node.attributes.item(i).nodeName;
                        str += "=\"";
                        str += node.attributes.item(i).nodeValue;
                        str += "\"";
                    }
                }

                if (node.childNodes.length == 0 && empties.getIndexOf(node.nodeName) > 0)
                    str += ">";
                else {
                    str += ">";
                    str += node.innerHTML;
                    str += "</" + node.nodeName + ">"
                }
                break;

            case 3:  //TEXT_NODE
                str += node.nodeValue;
                break;

            case 4: // CDATA_SECTION_NODE
                str += "<![CDATA[" + node.nodeValue + "]]>";
                break;

            case 5: // ENTITY_REFERENCE_NODE
                str += "&" + node.nodeName + ";"
                break;

            case 8: // COMMENT_NODE
                str += "<!--" + node.nodeValue + "-->"
                break;
        }

        return str;
    }

    function Array_getIndexOf(el) {
        var index = -1;

        for (var i = 0; i < this.length; i++) {
            if (this[i] == el) {
                index = i;
                break;
            }
        }

        return index;
    }

    Array.prototype.getIndexOf = Array_getIndexOf;
}

///End Extension for outerHTML in Mozilla

function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g, '');
    var curSymbol = ''; //'€ ';
    
    if (isNaN(num)) num = '0';

    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();

    if (cents < 10) cents = '0' + cents;

    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));

    return (((sign) ? '' : '-') + curSymbol + num.replace(',', '.') + ',' + cents).replace('.', ',');
}