	function resetField(e,o){
		if(o.firstTime){return}
		o.firstTime=true
		o.value=""
	}
		
	function openPage(id) {		
		var id = id + "Page";
		var s = "nok";
				
		var nid = new Array();		
		if (id == 'tagsPage') {
				nid[0] = "bookmarksPage";
				nid[1] = "networkPage";
				nid[2] = "inboxPage";
				nid[3] = "settingsPage";
		} else if (id == 'bookmarksPage') {
				nid[0] = "tagsPage";
				nid[1] = "networkPage";
				nid[2] = "inboxPage";
				nid[3] = "settingsPage";
				
				var sb = document.getElementById("searchbox");

				sb.style.visibility = "hidden";
				sb.style.display = "none";
		} else if (id == 'inboxPage') {
				nid[0] = "tagsPage";
				nid[1] = "networkPage";
				nid[2] = "bookmarksPage";
				nid[3] = "settingsPage";
		} else if (id == 'networkPage') {
				nid[0] = "tagsPage";
				nid[1] = "bookmarksPage";
				nid[2] = "inboxPage";
				nid[3] = "settingsPage";
		} else if (id == 'settingsPage') {
				nid[0] = "tagsPage";
				nid[1] = "bookmarksPage";
				nid[2] = "inboxPage";
				nid[3] = "networkPage";
		}
		
		for (x in nid) {
			var nidp = document.getElementById(nid[x]);
			nidp.style.visibility = 'hidden';
			nidp.style.position = 'absolute';
			nidp.style.display = 'none';
		}

		var idp = document.getElementById(id);
		idp.style.visibility = 'visible';
		idp.style.display = 'block';
		idp.style.position = 'relative';

		scroll(0,0);
	}

	function updateHash(hash){
		parent.location.hash = hash;
	}

	function removeSearch() {
		document.getElementById("livesearch").style.display = 'none';
		document.getElementById("livesearch").style.visibility = 'hidden';
		document.getElementById("tagfade").style.visibility = "hidden";
		document.getElementById("tagfade").style.display = "none";
	}

	function openSubPage(id,u,d,n,t) {
		var id = id;
		var oldid = "";

		switch(id){    
			case "setup": var nid=new Array("about");
			pageTracker._trackPageview('/settings/about');
			updateHash("S/setup");
			break;
			case "about": var nid=new Array("setup");
			pageTracker._trackPageview('/settings/setup');
			updateHash("S/about");
			break;
			case "yours": var nid=new Array("popular","recent","add","bookmarklet");
			removeSearch();
			showBookmarks('bookmarks',0);
			updateHash("B/yours");
			pageTracker._trackPageview('/navigation/bookmarks');
			break;
			case "popular": var nid=new Array("recent","yours","add","bookmarklet");
			removeSearch();
			showBookmarks('popular');
			updateHash("B/popular");
			pageTracker._trackPageview('/navigation/popular');
			break;
			case "recent": var nid=new Array("yours","popular","add","bookmarklet");
			removeSearch();
			showBookmarks('recent');
			updateHash("B/recent");
			pageTracker._trackPageview('/navigation/recent');
			break;
			case "add": var nid=new Array("yours","popular","recent","bookmarklet");
			removeSearch();
			showBookmarks('add','',u,d,n,t);
			updateHash("B/add");
			pageTracker._trackPageview('/navigation/add');
			break;
			case "urladded": var nid=new Array("yours","popular","recent","bookmarklet");
			id = "add";
			showBookmarks('urladded');
			updateHash("B/urladded");
			pageTracker._trackPageview('/navigation/urladded');
			break;
			case "bookmarklet": var nid=new Array("add","yours","popular","recent");
			showBookmarks('bookmarklet');
			updateHash("B/bookmarklet");
			pageTracker._trackPageview('/navigation/bookmarklet');
			break;
			case "alpha": var nid=new Array("size");
			updateHash("T/alpha");
			showMyTags('alpha');
			pageTracker._trackPageview('/navigation/tagsalpha');
			break;
			case "size": var nid=new Array("alpha");
			showMyTags('size');
			updateHash("T/size");
			pageTracker._trackPageview('/navigation/tagsbysize');
			break;
			case "bookmarksnetwork": var nid=new Array("network","fans");
			showNetwork('bookmarksnetwork');
			updateHash("N/bookmarksnetwork");
			pageTracker._trackPageview('/navigation/bookmarksnetwork');
			break;
			case "network": var nid=new Array("bookmarksnetwork","fans");
			showNetwork('network');
			updateHash("N/network");
			pageTracker._trackPageview('/navigation/network');
			break;
			case "fans": var nid=new Array("bookmarksnetwork","network");
			showNetwork('fans');
			updateHash("N/fans");
			pageTracker._trackPageview('/navigation/fans');
			break;
			case "inbox": var nid=new Array("subscriptions");
			showNetwork('inbox');
			updateHash("I/inbox");
			pageTracker._trackPageview('/navigation/inbox');
			break;
			case "subscriptions": var nid=new Array("inbox");
			showNetwork('subscriptions');
			updateHash("I/subscriptions");
			pageTracker._trackPageview('/navigation/subscriptions');
			break;
			case "search": var nid=new Array("popular","recent","add","bookmarklet");
			updateHash("B/search");
			showBookmarks('bookmarks',0);
			var x = document.getElementById("searchbox");
			x.style.visibility = "visible";
			x.style.display = "block";
			x.style.position = "relative";
			document.getElementById("searchfield").focus();
			pageTracker._trackPageview('/search');
			id = "yours";
			oldid="search";
			break;
		}
		

		for (x in nid) {
			var nidp = document.getElementById(nid[x]);
			nidp.style.visibility = 'hidden';
			nidp.style.position = 'absolute';
			nidp.style.display = 'none';
			
			if (nid[x] == "bookmarklet") {
				// nothing
			} else {
				var nidpp = nid[x] + "menu";
				nidpp = document.getElementById(nidpp);
				nidpp.style.fontWeight = 'normal';
			}
		}

		var idp = document.getElementById(id);
		if (id == "bookmarklet") {
		 // nothing
		} else {

		var idpp = id + "menu";
			idpp = document.getElementById(idpp);
			idpp.style.fontWeight = 'bold';
		}
		idp.style.visibility = 'visible';
		idp.style.display = 'block';
		idp.style.position = 'relative';
		
		if (oldid !== "search") {
			document.getElementById("searchbox").style.visiblity = 'hidden';
			document.getElementById("searchbox").style.display = 'none';
		}
						
		scroll(0,0);
	}
	

	function showSearch(s) {
		var s = s;
			
		if (s !== "ok") {
			openPage("bookmarks");
			openSubPage("yours");
		} else {
			openSubPage("yours");
		}
		
		updateHash("B/search/");
		
		var x = document.getElementById("searchbox");
		
//		if (x.style.visibility !== "visible") {
			x.style.visibility = "visible";
			x.style.display = "block";
			x.style.position = "relative";
//		} else {
//			x.style.visibility = "hidden";
//			x.style.display = "none";
//			x.style.position = "absolute";
//		}
		
		document.getElementById("searchfield").focus();
	}

	function showLinksFromUser(username) {
		openPage("network");
		openSubPage("bookmarksnetwork");
		showResult(username,'network');
		updateHash("N/bookmarksnetwork/" + username);
		pageTracker._trackPageview('/navigation/bookmarksnetwork/' + username);
	}
	
	function showTags(tag) {
		openPage("bookmarks");
		openSubPage("yours");
		showResult(tag,'tags');
		updateHash("B/yours/" + tag);
		pageTracker._trackPageview('/navigation/yours/' + tag);
	}	

	function addUrl(u,d,n,t) {
		removeBlock("tagfade");
		openPage("bookmarks");
		openSubPage("add",u,d,n,t);
		updateHash("B/add");
		pageTracker._trackPageview('/navigation/add');
	}	
	
	function resetSearch() {
		var x = document.getElementById("searchfield");
		x.value='';
		showResult('','ok');
		showBookmarks();
		updateHash("B/yours");
		pageTracker._trackPageview('/navigation/yours');
	}
	
	function orient() {
		switch(window.orientation){    
			case 0: document.getElementById("orient_css").href = "CSS/layout_portrait.css"; 
			break;
			case -90: document.getElementById("orient_css").href = "CSS/layout_landscape.css";  
			break;
			case 90: document.getElementById("orient_css").href = "CSS/layout_landscape.css";  
			break;
		}
		scroll(0,0);
	}
	
	function firstVisit() {
		openPage('settings');
		openSubPage('setup');

		var nav = document.getElementById('settingsNav');
		nav.style.visibility = 'hidden';
		nav.style.display = 'none';
	}

	function removeBlock(id) {
		var idp = document.getElementById(id);
		idp.style.visibility = "hidden";
	    idp.style.display = "none";
	    if (id == "tagfade") {
	    	showResult('');
			updateHash("B/yours");
	    }
	    if (id == "bookmarksfromuserfade") {
	    	showResult('','network');	    	
			updateHash("N/bookmarksnetwork");
	    }
	    if (id == "searchbox") {
//	    	showBookmarks('bookmarks',0);
			updateHash("B/yours");
	    }
	}


// QUERYSTRING CLASS

/* Client-side access to querystring name=value pairs
	http://adamv.com/dev/javascript/qslicense.txt
*/
/* 
    ------------------------------------------------------------------------
    Modified by Danie Bruwer  2008/08/06
    http://dotnet.org.za/danieb    
    ------------------------------------------------------------------------
    Original File :
    http://adamv.com/dev/javascript/querystring
    Client-side access to querystring name=value pairs
	Version 1.3
	28 May 2008	
	License (Simplified BSD):
	http://adamv.com/dev/javascript/qslicense.txt	
*/
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	this.keys = new Array();
	this.path = (qs && qs.indexOf('?') > 0) ? qs.split('?')[0] : location.protocol +location.host + location.pathname;
	
	if (qs == null) qs = location.search.substring(1, location.search.length);	
	if (qs.length == 0) return;
	if (qs.indexOf('?') > 0)
	    qs = qs.split('?')[1];

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
			
		this.keys[i] = name;
		this.params[name] = value;
	}		
}

Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}
Querystring.prototype.set = function(key, value) {
    value = encodeURI(value);
	this.params[key] = value;
	var index = this.indexOfKey(key);
	if(index < 0)	
	    this.keys[this.keys.length] = key;	
}
Querystring.prototype.indexOfKey = function(key) {
	for (var i = 0; i < this.keys.length; i++) 
    {
        if(this.keys[i] == key)
            return i;
    }
    return -1;
}
Querystring.prototype.remove = function(key) {
	var index = this.indexOfKey(key);
	if(index >= 0)
	{
	    this.params[key] = null;
	    this.keys.splice(index,1);
	    return true;
	}
	return false;
}
Querystring.prototype.toString = function() {
    var ret = "";
    for (var i = 0; i < this.keys.length; i++) 
    {
        if(this.keys[i])
            ret += ((i == 0) ? "?" : "&") + this.keys[i] + "=" + this.params[this.keys[i]];
    }
    return ret;
}
Querystring.prototype.getAbsolutePath = function() {
    return this.path;
}
Querystring.prototype.toAbsoluteUrl = function() {
   return this.path + this.toString();
}

Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}



// QUERYSTRING CLASS 2

	function PageQuery(q) {
		if(q.length > 1) this.q = q.substring(1, q.length);
		else this.q = null;
		this.keyValuePairs = new Array();
		if(q) {
			for(var i=0; i < this.q.split("&").length; i++) {
			this.keyValuePairs[i] = this.q.split("&")[i];
			}
		}
		this.getKeyValuePairs = function() { return this.keyValuePairs; }
		this.getValue = function(s) {
		for(var j=0; j < this.keyValuePairs.length; j++) {
			if(this.keyValuePairs[j].split("=")[0] == s)
			return this.keyValuePairs[j].split("=")[1];
			}
		return false;
		}
		this.getParameters = function() {
		var a = new Array(this.getLength());
		for(var j=0; j < this.keyValuePairs.length; j++) {
			a[j] = this.keyValuePairs[j].split("=")[0];
			}
		return a;
		}
		this.getLength = function() { return this.keyValuePairs.length; }
	}
		
	function Querystring2(key){
		var page = new PageQuery(window.location.search);
		return unescape(page.getValue(key));
	}
	
	function checkQuerystring(un) {
		if (Querystring2('action') == 'add') {
			openSubPage('add',Querystring('u'),Querystring('d'),'','');
		} else if (Querystring2('action') == 'urladded') {
			openSubPage('urladded');
		} else {
			showBookmarks('bookmarks',0);
			if (un.length > 0) {
				pageTracker._trackPageview('/users/' + un);
			}
		}
	}
	
	function replaceQueryString(url2,param,value) {
    	var re = new RegExp("([?|&])" + param + "=.*?(&|$)","i");
	    if (url2.match(re))
    	    return url2.replace(re,'$1' + param + "=" + value + '$2');
	    else if (url2.indexOf("?") == -1)
    	    return url2 + '?' + param + "=" + value;
	    else
    	    return url2 + '&' + param + "=" + value;
	}

	function checkHash(un) {
	
		var theHash = location.hash;
		
		if (theHash == "") {
			var qs = new Querystring();
			var action = qs.get("action");
			var url = qs.get("u");
			var desc = qs.get("d");
			
			if (action == 'add') {
				openSubPage('add',url,desc,'','');
			} else if (action == 'urladded') {
				openSubPage('urladded');
			} else {
				showBookmarks('bookmarks',0);
				if (un.length > 0) {
					pageTracker._trackPageview('/users/' + un);
				}
			}
		}

		if (theHash.search("#") !== -1) {
			theHash = theHash.replace("#","");
		}
		
		var hashContent1 = theHash.split("/",1);
		var theHash2 = theHash.replace(hashContent1 + "/","");
		var hashContent2 = theHash2.split("/",1);
		var theHash3 = theHash2.replace(hashContent2,"");
		var theHash3 = theHash3.replace("/","");
		var hashContent3 = theHash3.split("/",1);
		
		switch (hashContent1.toString()) {
			case 'S':
			openPage("settings");
			openSubPage(hashContent2.toString());
			break;
			case 'B':
			if (hashContent3.toString() !== "") {
				if (hashContent2.toString() == "yours") {
					if (hashContent3.toString() == "system:unfiled") {
						showResult('Untagged bookmarks','unfiled');
					} else {
						showTags(hashContent3.toString());				
					}
				} else if (hashContent2.toString() == "search") {
					showResult(hashContent3.toString(),'');
				}
			} else {
				openPage("bookmarks");
				openSubPage(hashContent2.toString());
			}
/*			if (hashContent3.toString() !== "") {
				if (hashContent3.toString() == "system:unfiled") {
					showResult('Untagged bookmarks','unfiled');
				} else {
					showTags(hashContent3.toString());				
				}
			} else {
				openPage("bookmarks");
				openSubPage(hashContent2.toString());
			} */
			break;
			case 'T':
			openPage("tags");
			openSubPage(hashContent2.toString());	
			break;
			case 'N':
			if (hashContent3.toString() !== "") {
				showLinksFromUser(hashContent3.toString());
			} else {
				openPage("network");
				openSubPage(hashContent2.toString());	
			}
			break;
			case 'I':
			openPage("inbox");
			openSubPage(hashContent2.toString());
			break;
		}
	}
