String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
};
function MXferClass() {
    this.includeVars();
}

MXferClass.prototype.GotoCurrentCart = function() {
    this.SubmitMXfer(encodeURI("<Materials/>"), GetUId());
};

MXferClass.prototype.AddVSItemToCart = function(sku) {
    //alert('called addvsitemtocart');

        // parse query string and set value to areaid, productid and qty attribute
        // and call SubmitSingleXfer()
        // var areaId = getQueryVariable('labelid');
        // var productId = getQueryVariable('productid');
        // var qty = getQueryVariable('qty');
        var frmName = "form_" + sku;
        var frm = document.getElementById(frmName);
        if (typeof (frm) != "undefined") {
            frm = jQuery(frm);
        }
        if (frm.length == 1) {
            var areaId = frm.children("input[name='labelid']").val();
            var productId = frm.children("input[name='productid']").val();
            var qty = jQuery('#' + frmName + " * input[name='qty']").val();
            if (typeof (qty) == "undefined") {
                qty = "1";
            }
            var sMaterial = this.BuildMaterialNode(productId, areaId, qty);
            if (sMaterial != "") {
                var sXML = element("Materials", sMaterial, "");
                sXML = encodeURI(sXML);
                this.SubmitMXfer(sXML, GetUId());
            }
            else {
                alert('error building materials');
            }
        }
        else {
            alert('Fail to add item ' + sku + ' to shopping cart, please re-enter.');
        }
};
MXferClass.prototype.SubmitMXfer = function(MXferDoc, UId) {
    //alert('submitxfer called');
    if (MXferDoc != "") {
        var sXML = "";
        var newform = document.createElement("form");
        newform.id = "submissionform";
        var e1 = document.createElement("input");
        e1.id = "MXferDoc";
        e1.name = e1.id;
        e1.value = MXferDoc;
        newform.appendChild(e1);
        e1 = document.createElement("input");
        e1.id = "fldLang";
        //e1.value = MXferDoc;
        newform.appendChild(e1);
        e1 = document.createElement("input");
        e1.id = "productBuyUid";
        e1.name = e1.id;
        e1.value = UId;
        newform.appendChild(e1);
        e1 = document.createElement("input");
        e1.id = "forward";
        e1.name = e1.id;
        e1.value = "multipleitemtransfer";
        newform.appendChild(e1);
        e1 = document.createElement("input");
        e1.id = "destPage";
        e1.name = e1.id;
        e1.value = "product";
        newform.appendChild(e1);
        newform.style.display = "none";
        document.body.appendChild(newform);
        var PriceCode = Newport.pricecode;
        var pathEAX = Newport.eaxpath;
        newform.method = "POST";
        if (PriceCode == "US" || PriceCode === null) {
            //submit to SAP cart.
            newform.action = pathEAX;
            newform.submit();
        }
        else {
            //submit to SAP cart.
            newform.action = Newport.offline_cart_add_url;
            newform.submit();
        }
    }
    else {
        alert('Please add item to cart with quantity');
    }
};
MXferClass.prototype.includeVars = function() {
    if (typeof (Newport) == "undefined" || typeof ("Newport.application_root_url") == "undefined") {
        var rootdomain = domainfrommatchingsrc(document, "mxfer.js");
        var script_filename = rootdomain + "virtual/js-global.aspx?r=" + Math.random();
        var html_doc = document.getElementsByTagName('head').item(0);
        if (typeof (html_doc) == "undefined") {
            html_doc = document.body;
        }
        var js = document.createElement('script');
        js.setAttribute('language', 'javascript');
        js.setAttribute('type', 'text/javascript');
        js.setAttribute('src', script_filename);
        html_doc.appendChild(js);
    }
    //alert("includevars called.");
};
//returns calling source url, up to first "/" past double "//"'s
MXferClass.prototype.domainfrommatchingsrc = function(topelement, src) {
    //document.write("*");
    for (var i = 0; i < topelement.childNodes.length; i++) {
        var z = topelement.childNodes[i];
        if (z.nodeName != "SCRIPT") {
            if (z.hasChildNodes()) {
                var test = this.domainfrommatchingsrc(z, src);
                if (test != '') {
                    return test;
                }
            }
        }
        else {
            var l = z.src.toLowerCase();
            //document.write(l);
            if (l.length > src.length + 1) {
                //test if filename matches
                if (l.substring(l.length - src.length - 1) == "/" + src.toLowerCase()) {
                    var rx = new RegExp("(\[a-zA-Z]+):(\d+)?//[^/]+/");
                    var result = z.src.match(rx);
                    if (result === null) {
                        return "/";
                    }
                    else {
                        return result[0];
                    }
                }
            }
        }
    }
    return '';
};

MXferClass.prototype.BuildMaterialNode = function(sItemID, areaId, qty) {
    var nodeMaterial = "";
    //var txtItem = Ext.get(eleText);
    var sElement = "";
    // build xml nodes
    //var areaId = txtItem.getAttributeNS("", "areaId");
    if (IsNumeric(qty) > 0 && qty != "0") {
        sElement += element("Name", sItemID, "") + "\n";
        sElement += element("AreaID", areaId, "") + "\n";
        sElement += element("Quantity", qty, "") + "\n";
        nodeMaterial = element("Material", sElement, "") + "\n";
        sElement = "";
    }
    return nodeMaterial;
};


var MXfer;

jQuery(document).ready(function() {
    MXfer = new MXferClass;
    //alert("MXfer created.");
}
)
