function setAddresses()
{
    var ele = document.getElementById('bookmark1');
    setAddress(ele);
    var ele = document.getElementById('bookmark1Icon');
    setAddress(ele);
    var ele = document.getElementById('bookmark2');
    setAddress(ele);
    var ele = document.getElementById('bookmark2Icon');
    setAddress(ele);
    var ele = document.getElementById('bookmark3');
    setAddress(ele);
    var ele = document.getElementById('bookmark3Icon');
    setAddress(ele);
    var ele = document.getElementById('bookmark4');
    setAddress(ele);
    var ele = document.getElementById('bookmark4Icon');
    setAddress(ele);
    var ele = document.getElementById('bookmark5');
    setAddress(ele);
    var ele = document.getElementById('bookmark5Icon');
    setAddress(ele);
    var ele = document.getElementById('bookmark6');
    setAddress(ele);
    var ele = document.getElementById('bookmark6Icon');
    setAddress(ele);
    var ele = document.getElementById('bookmark7');
    setAddress(ele);
    var ele = document.getElementById('bookmark7Icon');
    setAddress(ele);
    var ele = document.getElementById('bookmark8');
    setAddress(ele);
    var ele = document.getElementById('bookmark8Icon');
    setAddress(ele);
    var ele = document.getElementById('bookmark9');
    setAddress(ele);
    var ele = document.getElementById('bookmark9Icon');
    setAddress(ele);

//    for (i=0;i<10;i++) 
//    {

//        var ele = document.getElementById('bookmark' + i);
//        if (ele) 
//        {
//            setAddress(ele);
//        }
//    }
    
    var addrEle = document.getElementById('bookmarkIntro');
    addrEle.setAttribute('href', null);
    addrEle.style.display = 'none';
}

function setAddress(linkEle)
{
    if (linkEle==null) {return;}
    
    var addrEle = document.getElementById('bookmarkIntro');
    
    var addr = addrEle.getAttribute('href');
    var scheme = addrEle.getAttribute('scheme');
    var path = addrEle.getAttribute('path');
    var host = addrEle.getAttribute('host');
    
    var linkBase = linkEle.getAttribute('linkBase');
    var linkTitle = linkEle.getAttribute('linkTitle');
    
    if ((addr.match('^'+scheme) == null) || (addr.match('^'+scheme) != scheme)) // addr doesnt start with scheme
    {   
        if ((addr.match('^'+path) == null) || (addr.match('^'+path) != path)) // addr doesnt start with path
        {
            addr = path + addr;
        }

        if ((addr.match('^'+host) == null) || (addr.match('^'+host) != host)) // addr doesnt start with host
        {
            addr = host + addr;
        }

        addr = scheme + "://" + addr;
    }
    
    addr = format(linkBase, urlEncode(addr), linkTitle); 
    linkEle.setAttribute('href', addr);      
    
}

// implement our own url encode since we cant be sure that 
// the user's browser has javascript 1.5 or higher (encodeURI is in 1.5)
function urlEncode(plaintext)
{
    if ((plaintext==null) || (plaintext==''))
    {
        return;
    }
    
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    //alert( "Unicode Character '" + ch + "' cannot be encoded using standard URL encoding.\n" + "(URL encoding only supports 8-bit characters.)\n" + "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	return encoded;
}

// javascript version of C# style string.Format(str, [args]);
function format(str)
{
  for(i = 1; i < arguments.length; i++)
  {
    str = str.replace('{' + (i - 1) + '}', arguments[i]);
  }

  return str;
}
