        var uniqueIdsHash = new Array();
        var currentOpenDiv = null;
    
    
        function openWindow(link)
        {
            var w  = window.open(link);
            w.focus();
            return false;
        }
    
        function getLink(url, text, className)
        {
            var ret = '<li><a href="' + url + '" onclick="return popUp(this,\'toolbar=yes,scrollbars=yes,location=yes,directories=yes,status=yes,menubar=yes,resizable=yes\',\'npr\');" class="' + className + '">' + text + '</a></li>';
        
            //var ret = '<a href="javascript:void(0);" onclick="openWindow(\'' + url + '\');" class="' + className + '">' + text + '</a>';
            return ret;
        }
    
        function toggleEcommerceDiv(uniqueId, index, title, type)
        {           
            var amazonVendorLinks = document.getElementById('AmazonOnlyVendorLinks' + uniqueId  + '_' + index);
            var VendorLinks = document.getElementById('VendorLinks' + uniqueId + '_' + index);
            
            // show pop up window first
            var ecommerceDiv = document.getElementById("ecommerceDiv" + uniqueId + '_' + index);
            
            if(ecommerceDiv != null)
            {
	            if (currentOpenDiv != null && currentOpenDiv != ecommerceDiv)
	            {
	                currentOpenDiv.className= currentOpenDiv.className.replace("openDiv", "closeDiv");
	            }
	            
	            if (ecommerceDiv.className.indexOf("closeDiv") != -1)
	            {
	                ecommerceDiv.className = ecommerceDiv.className.replace("closeDiv", "openDiv");
	                currentOpenDiv = ecommerceDiv;
	            }
	            else
	            {
	                ecommerceDiv.className = ecommerceDiv.className.replace("openDiv", "closeDiv");
	                currentOpenDiv = null;
	            }
            }

            if ((amazonVendorLinks != null || VendorLinks != null) && uniqueId != -1 && uniqueIdsHash[uniqueId + '_' + index] == null)
            {
                if((amazonVendorLinks != null && amazonVendorLinks.innerHTML == null) || (VendorLinks != null && VendorLinks.innerHTML == null))
                {
                    showLoad(uniqueId, index);
                }    

                var url = "/templates/XMLQuery/AmazonLink.php?UPC=" + uniqueId + "&text=Amazon.com &raquo;&className=buyLink1";
                
                var vendorCodesRequester = getRequester();
                vendorCodesRequester.open("GET", url, true);
                
                vendorCodesRequester.onreadystatechange=function() {
                
                    var isAmazonOnly = document.getElementById('AmazonOnlyVendorLinks' + uniqueId  + '_' + index) != null;

                    if (vendorCodesRequester.readyState == 4 && vendorCodesRequester.status == 200)
                    {
                        response  = vendorCodesRequester.responseXML.documentElement;

                        var displayLinksSpan = null;

                        if (isAmazonOnly)
                        {
                            displayLinksSpan = document.getElementById('AmazonOnlyVendorLinks' + uniqueId + '_' + index);
                        }
                        else
                        {
                            displayLinksSpan = document.getElementById('VendorLinks' + uniqueId + '_' + index);
                        }

                        if (displayLinksSpan != null)
                        {
                            displayLinksSpan.innerHTML = "";

                            amazonLinks = response.getElementsByTagName("Amazon");
                            if (amazonLinks[0] != null && amazonLinks[0] != undefined && amazonLinks.length == 1 && amazonLinks[0].getElementsByTagName("link-npr").length > 0)
                            {
                                if (isAmazonOnly)
                                {
                                    // different link for World Cafe
                                    var link_url = amazonLinks[0].getElementsByTagName("link-wxpn")[0].firstChild.data;
                                    displayLinksSpan.innerHTML += getLink(link_url, 'Amazon.com &raquo;', 'buyLink1'); 
                                }   
                                else
                                {
                                    var link_url = amazonLinks[0].getElementsByTagName("link-npr")[0].firstChild.data;
                                    displayLinksSpan.innerHTML += getLink(link_url, 'Amazon.com &raquo;', 'buyLink1');
                                }                       
                            }
                            else if (amazonLinks[0] != null && amazonLinks[0] != undefined)
                            {
                                if (isAmazonOnly)
                                {
                                    // different link for World Cafe
                                    var link_url = amazonLinks[0].getElementsByTagName("link-query-wxpn")[0].firstChild.data + title.replace(/ /g,'+');
                                    displayLinksSpan.innerHTML += getLink(link_url, 'Amazon.com &raquo;', 'buyLink1'); 
                                }
                                else
                                {
                                    var link_url = amazonLinks[0].getElementsByTagName("link-query-npr")[0].firstChild.data + title.replace(/ /g,'+');
                                    displayLinksSpan.innerHTML += getLink(link_url, 'Amazon.com &raquo;', 'buyLink1'); 
                                }
                            }

                            if(amazonLinks[0] != null && amazonLinks[0] != undefined && amazonLinks.length == 1 && amazonLinks[0].getElementsByTagName("link-amazon-dl").length > 0)
                            {
                                var link_url = amazonLinks[0].getElementsByTagName("link-amazon-dl")[0].firstChild.data;
                                displayLinksSpan.innerHTML += getLink(link_url, 'Amazon MP3 &raquo;', 'buyLink1');
                            }


                            // for future iteration of itunes. Does not do fuzzy search for more than one result
                            itunesLinks = response.getElementsByTagName("iTunes");
                            if (itunesLinks.length == 1)
                            {
                                var link_url = itunesLinks[0].getElementsByTagName("link")[0].firstChild.data;
                                displayLinksSpan.innerHTML += getLink(link_url, 'iTunes &raquo;', 'buyLink3'); 
                            }
                        }
                        
                        stopLoad(uniqueId, index);
                    }
                    else
                    {
                        // ignore, regretfully. User doesn't need to know about this kind of problem. No easy way to inform developers.
                    }
                }
                
                vendorCodesRequester.send(null);
                uniqueIdsHash[uniqueId + '_' + index] = "on";   
            }
        }
        
        // browser independent way of getting XMLRequestObject
        function getRequester()
        {
            var requester = null;
        
            try
            {
                requester = new XMLHttpRequest();
            }
            catch (error)
            {
                 try
                 {
                   requester = new ActiveXObject("Microsoft.XMLHTTP");
                 }
                 catch (error)
                 {
                   return null;
                 }
            }
            
            return requester;
        }       


        function showLoad (uniqueId, index) {
            var wrapid = '#load2_'+ uniqueId + '_' + index;
            $(wrapid).show();
        }
        function stopLoad(uniqueId, index){
            var wrapid = '#load2_'+ uniqueId + '_' + index;
            $(wrapid).hide();
        }
        
        
    