
// TagCount object  (file: TagCount.js.php)
// Version 1.1, modified by Jon to add Array contains method to fix IE balking at .indexOf.
Array.prototype.contains = function (element) {
	for (var elementCounter = 0; elementCounter < this.length; elementCounter++) {
		if (this[elementCounter] == element) {
			return true;
		}
	}
	return false;
}
function TagCount() {

  // private variables
  var keepZeros  = false;       // bool

  // public variables
  this.tags       = new Array;
  this.lexias     = new Object;  // format: this.lexias['tagName'] = ##
  this.documents  = new Object;  // format: this.documents['tagName'] = ##
  this.idFromTag  = new Object;  // format: this.idFromTag['tagName'] = ##

  // public functions

  this.addTag = function (tagName, numLexias, numDocuments, tagId) {
  	if ( this.tags.contains(tagName) ) return;  // no duplicates
  	this.tags.push(tagName);
    if (keepZeros) {
      this.lexias[tagName] = (null == numLexias) ? 0 : numLexias;
      this.documents[tagName] = (null == numDocuments) ? 0 : numDocuments;
    } else {
      if (null != typeof(numLexias) && numLexias > 0) this.lexias[tagName] = numLexias;
      if (null != typeof(numLexias) && numLexias > 0) this.documents[tagName] = numDocuments;
    }
    if (typeof(tagId) == 'number') {
    	tagId = parseInt(tagId);
    	this.idFromTag[tagName] = tagId;
    }
 	if (keepZeros || this.lexias[tagName] || this.documents[tagName]) return true;
    return false;
  }

  this.zeros = function (bool) {
    keepZeros = (true == bool) ? true : false;
    var x;
    if (!keepZeros) {
      for (x in this.lexias) {
        if (this.lexias[x] == 0) delete this.lexias[x];
      }
      for (x in this.documents) {
        if (this.documents[x] == 0) delete this.documents[x];
      }
    }
  }

  this.makeAlphabetical = function() {
  	 this.tags.sort(function(x,y){
      var a = String(x).toUpperCase();
      var b = String(y).toUpperCase();
      if (a > b)
         return 1
      if (a < b)
         return -1
      return 0;
     });  // case insensitive
  }

  this.getNumLexias = function (tagName) {
    return (this.lexias[tagName]) ? this.lexias[tagName] : false;
  }

  this.getNumDocuments = function (tagName) {
    return (this.documents[tagName]) ? this.documents[tagName] : false;
  }

  this.getTagFromId = function (tagId) {
  	 tagId = parseInt(tagId);
  	 for (var a in this.idFromTag) {
  	 	if (parseInt(this.idFromTag[a]) == tagId) {
  	 		return a;
  	 	}
  	 }
  	 return false;
  }

  this.getIdFromTag = function (tagName) {
  	 return (typeof(this.idFromTag[tagName]) != 'undefined') ? this.idFromTag[tagName] : false;
  }

  this.addAmountToLexias = function (tagName, myNum) {
    if (this.lexias[tagName] || this.addTag(tagName)) {
      if (null == myNum) myNum = 1;
      if (this.lexias[tagName]) this.lexias[tagName] = this.lexias[tagName] + myNum;
    }
  }

  this.addAmountToDocuments = function (tagName, myNum) {
    if (this.documents[tagName] || this.addTag(tagName)) {
      if (null == myNum) myNum = 1;
      if (this.documents[tagName]) this.documents[tagName] = this.documents[tagName] + myNum;
    }
  }

} // end object

// add content to object
var numTaggedWith = new TagCount();

numTaggedWith.addTag('accessed', 1, 1, 387);
numTaggedWith.addTag('adaptable', 1, 1, 1628);
numTaggedWith.addTag('adoption', 1, 1, 1172);
numTaggedWith.addTag('aggression', 5, 1, 1213);
numTaggedWith.addTag('agreement', 1, 1, 1152);
numTaggedWith.addTag('aims', 1, 1, 1150);
numTaggedWith.addTag('ancestors', 1, 1, 275);
numTaggedWith.addTag('anthropology', 1, 1, 1159);
numTaggedWith.addTag('Apple', 1, 1, 1641);
numTaggedWith.addTag('appropriated', 1, 1, 287);
numTaggedWith.addTag('archiving', 1, 1, 1154);
numTaggedWith.addTag('art', 3, 2, 265);
numTaggedWith.addTag('artifacts', 1, 1, 1074);
numTaggedWith.addTag('asymmetries', 1, 1, 1680);
numTaggedWith.addTag('attributes', 1, 1, 1215);
numTaggedWith.addTag('Australia', 1, 1, 1698);
numTaggedWith.addTag('beating', 1, 1, 1216);
numTaggedWith.addTag('behaviour', 4, 1, 1214);
numTaggedWith.addTag('boundaries', 1, 1, 255);
numTaggedWith.addTag('bridging', 1, 1, 1158);
numTaggedWith.addTag('Buddhism', 2, 2, 1627);
numTaggedWith.addTag('canon', 1, 1, 1208);
numTaggedWith.addTag('cartographies', 1, 1, 1231);
numTaggedWith.addTag('cellular', 1, 1, 1235);
numTaggedWith.addTag('ceremonies', 1, 1, 1151);
numTaggedWith.addTag('collaboration', 4, 3, 105);
numTaggedWith.addTag('collaborations', 1, 1, 256);
numTaggedWith.addTag('collaborative', 1, 1, 260);
numTaggedWith.addTag('collections', 1, 1, 98);
numTaggedWith.addTag('communicating', 1, 1, 1238);
numTaggedWith.addTag('communicative', 1, 1, 1225);
numTaggedWith.addTag('community', 2, 1, 7);
numTaggedWith.addTag('comparative', 2, 2, 271);
numTaggedWith.addTag('conceptualizing', 1, 1, 1160);
numTaggedWith.addTag('Congo', 1, 1, 1699);
numTaggedWith.addTag('constitution of self', 1, 1, 307);
numTaggedWith.addTag('consumers', 1, 1, 273);
numTaggedWith.addTag('contact zone', 1, 1, 1692);
numTaggedWith.addTag('control', 6, 3, 736);
numTaggedWith.addTag('copying', 1, 1, 1199);
numTaggedWith.addTag('corporations', 2, 1, 1644);
numTaggedWith.addTag('creativity', 3, 2, 257);
numTaggedWith.addTag('cults', 1, 1, 1202);
numTaggedWith.addTag('cultures', 1, 1, 143);
numTaggedWith.addTag('defect', 1, 1, 8);
numTaggedWith.addTag('deity', 1, 1, 1201);
numTaggedWith.addTag('deployment', 1, 1, 1694);
numTaggedWith.addTag('descent', 1, 1, 284);
numTaggedWith.addTag('design', 4, 2, 249);
numTaggedWith.addTag('developers', 1, 1, 90);
numTaggedWith.addTag('difference', 1, 1, 903);
numTaggedWith.addTag('digital', 2, 1, 80);
numTaggedWith.addTag('discourse', 1, 1, 471);
numTaggedWith.addTag('dispersed', 1, 1, 263);
numTaggedWith.addTag('diverse', 1, 1, 1685);
numTaggedWith.addTag('diversity', 1, 1, 905);
numTaggedWith.addTag('don', 1, 1, 292);
numTaggedWith.addTag('drives', 1, 1, 1218);
numTaggedWith.addTag('ecologies', 1, 1, 552);
numTaggedWith.addTag('economy', 1, 1, 1046);
numTaggedWith.addTag('elder', 1, 1, 278);
numTaggedWith.addTag('emerge', 1, 1, 279);
numTaggedWith.addTag('emergence', 3, 3, 283);
numTaggedWith.addTag('emergent', 2, 2, 276);
numTaggedWith.addTag('emulation', 2, 1, 1652);
numTaggedWith.addTag('Enlightenment', 1, 1, 1690);
numTaggedWith.addTag('environments', 1, 1, 330);
numTaggedWith.addTag('Eva Hesse', 1, 1, 1661);
numTaggedWith.addTag('everyday', 1, 1, 233);
numTaggedWith.addTag('everywhere', 1, 1, 1163);
numTaggedWith.addTag('facilitate', 1, 1, 1141);
numTaggedWith.addTag('fear', 1, 1, 1664);
numTaggedWith.addTag('focused', 1, 1, 1232);
numTaggedWith.addTag('footnote', 1, 1, 295);
numTaggedWith.addTag('forcing', 1, 1, 1219);
numTaggedWith.addTag('forestry', 1, 1, 1239);
numTaggedWith.addTag('free', 1, 1, 579);
numTaggedWith.addTag('freedom', 1, 1, 1220);
numTaggedWith.addTag('fundamental', 1, 1, 1681);
numTaggedWith.addTag('gallery', 1, 1, 258);
numTaggedWith.addTag('gender', 1, 1, 1233);
numTaggedWith.addTag('geographic', 1, 1, 1143);
numTaggedWith.addTag('gkisedtanamoogk', 1, 1, 1240);
numTaggedWith.addTag('grassroots', 1, 1, 761);
numTaggedWith.addTag('hacks', 2, 1, 1636);
numTaggedWith.addTag('hamlet', 1, 1, 277);
numTaggedWith.addTag('hardware', 1, 1, 1645);
numTaggedWith.addTag('Harrison', 1, 1, 312);
numTaggedWith.addTag('hierarchical', 1, 1, 691);
numTaggedWith.addTag('highlights', 1, 1, 1147);
numTaggedWith.addTag('history', 1, 1, 1662);
numTaggedWith.addTag('humans', 1, 1, 1098);
numTaggedWith.addTag('husbands', 1, 1, 1217);
numTaggedWith.addTag('immoral', 1, 1, 1223);
numTaggedWith.addTag('India', 1, 1, 1700);
numTaggedWith.addTag('indigenous', 8, 5, 144);
numTaggedWith.addTag('influenced', 1, 1, 396);
numTaggedWith.addTag('initiation', 2, 2, 261);
numTaggedWith.addTag('initiatives', 1, 1, 1165);
numTaggedWith.addTag('innovation', 2, 1, 48);
numTaggedWith.addTag('inserted', 1, 1, 1167);
numTaggedWith.addTag('intellectual property', 1, 1, 270);
numTaggedWith.addTag('investigate', 1, 1, 1234);
numTaggedWith.addTag('Ken Burns', 1, 1, 1663);
numTaggedWith.addTag('kinship', 2, 1, 1671);
numTaggedWith.addTag('knowledge', 2, 1, 666);
numTaggedWith.addTag('landscapes', 1, 1, 1164);
numTaggedWith.addTag('law', 1, 1, 206);
numTaggedWith.addTag('Leach', 1, 1, 311);
numTaggedWith.addTag('legitimacy', 1, 1, 1221);
numTaggedWith.addTag('legitimate', 1, 1, 1224);
numTaggedWith.addTag('literacy', 1, 1, 461);
numTaggedWith.addTag('local', 2, 1, 1689);
numTaggedWith.addTag('Locke', 1, 1, 267);
numTaggedWith.addTag('mantra', 1, 1, 1205);
numTaggedWith.addTag('manuscript', 3, 1, 1200);
numTaggedWith.addTag('manuscripts', 1, 1, 1155);
numTaggedWith.addTag('mapping', 3, 1, 379);
numTaggedWith.addTag('maps', 2, 2, 1145);
numTaggedWith.addTag('Mauss', 1, 1, 314);
numTaggedWith.addTag('media', 3, 2, 81);
numTaggedWith.addTag('Michelangelo Buonarroti', 1, 1, 1660);
numTaggedWith.addTag('Microsoft', 2, 1, 1642);
numTaggedWith.addTag('mobility', 1, 1, 1112);
numTaggedWith.addTag('mobilization', 1, 1, 1157);
numTaggedWith.addTag('modernity', 1, 1, 1236);
numTaggedWith.addTag('monks', 2, 1, 1192);
numTaggedWith.addTag('museum', 5, 2, 1647);
numTaggedWith.addTag('museums', 1, 1, 99);
numTaggedWith.addTag('NASA', 1, 1, 1643);
numTaggedWith.addTag('networks', 2, 2, 204);
numTaggedWith.addTag('online', 1, 1, 377);
numTaggedWith.addTag('open-source', 1, 1, 300);
numTaggedWith.addTag('openness', 2, 2, 1069);
numTaggedWith.addTag('ownership', 1, 1, 269);
numTaggedWith.addTag('paleontology', 1, 1, 1659);
numTaggedWith.addTag('Papua New Guinea', 3, 3, 268);
numTaggedWith.addTag('participates', 1, 1, 1241);
numTaggedWith.addTag('participatory', 1, 1, 1170);
numTaggedWith.addTag('partnership', 2, 2, 1153);
numTaggedWith.addTag('peaked', 1, 1, 1195);
numTaggedWith.addTag('performance', 1, 1, 456);
numTaggedWith.addTag('person', 1, 1, 315);
numTaggedWith.addTag('personhood', 1, 1, 316);
numTaggedWith.addTag('phones', 2, 2, 1237);
numTaggedWith.addTag('prayer', 2, 1, 1203);
numTaggedWith.addTag('preservation', 4, 2, 100);
numTaggedWith.addTag('printing', 3, 2, 1156);
numTaggedWith.addTag('producer', 1, 1, 264);
numTaggedWith.addTag('prototypes', 1, 1, 1148);
numTaggedWith.addTag('purchaser', 1, 1, 296);
numTaggedWith.addTag('random', 1, 1, 1639);
numTaggedWith.addTag('recitation', 5, 1, 1191);
numTaggedWith.addTag('recited', 1, 1, 1206);
numTaggedWith.addTag('recognition', 1, 1, 262);
numTaggedWith.addTag('reconfigurable', 1, 1, 1629);
numTaggedWith.addTag('relates', 1, 1, 1161);
numTaggedWith.addTag('relation', 1, 1, 987);
numTaggedWith.addTag('repetition', 1, 1, 1204);
numTaggedWith.addTag('researcher', 3, 3, 1171);
numTaggedWith.addTag('ritual', 1, 1, 1670);
numTaggedWith.addTag('ritually', 1, 1, 1198);
numTaggedWith.addTag('science', 1, 1, 266);
numTaggedWith.addTag('scientists', 1, 1, 259);
numTaggedWith.addTag('sculptures', 1, 1, 1651);
numTaggedWith.addTag('self', 1, 1, 305);
numTaggedWith.addTag('shaped', 1, 1, 1207);
numTaggedWith.addTag('shiwi', 1, 1, 1144);
numTaggedWith.addTag('shrine', 1, 1, 1196);
numTaggedWith.addTag('sign', 1, 1, 304);
numTaggedWith.addTag('sociality', 4, 3, 1226);
numTaggedWith.addTag('software', 4, 2, 92);
numTaggedWith.addTag('SPIN', 1, 1, 759);
numTaggedWith.addTag('storytelling', 1, 1, 418);
numTaggedWith.addTag('Strathern', 1, 1, 313);
numTaggedWith.addTag('subversive', 1, 1, 1168);
numTaggedWith.addTag('subvert', 1, 1, 1625);
numTaggedWith.addTag('symmetry', 1, 1, 1691);
numTaggedWith.addTag('tag', 1, 1, 46);
numTaggedWith.addTag('teaching', 1, 1, 366);
numTaggedWith.addTag('teachings', 2, 1, 1193);
numTaggedWith.addTag('technologies', 2, 1, 286);
numTaggedWith.addTag('technology', 3, 1, 1408);
numTaggedWith.addTag('texts', 7, 3, 493);
numTaggedWith.addTag('textual', 1, 1, 506);
numTaggedWith.addTag('time', 2, 1, 1658);
numTaggedWith.addTag('totemic', 1, 1, 285);
numTaggedWith.addTag('trade mark', 2, 1, 301);
numTaggedWith.addTag('trader', 2, 1, 288);
numTaggedWith.addTag('transaction', 3, 1, 274);
numTaggedWith.addTag('transactions', 2, 1, 272);
numTaggedWith.addTag('transactive', 1, 1, 1162);
numTaggedWith.addTag('translation', 2, 1, 1197);
numTaggedWith.addTag('tribal', 1, 1, 662);
numTaggedWith.addTag('usage', 1, 1, 406);
numTaggedWith.addTag('user', 1, 1, 628);
numTaggedWith.addTag('value', 9, 1, 133);
numTaggedWith.addTag('video', 1, 1, 52);
numTaggedWith.addTag('videolink', 1, 1, 1242);
numTaggedWith.addTag('violence', 7, 1, 731);
numTaggedWith.addTag('violent', 1, 1, 1222);
numTaggedWith.addTag('web', 1, 1, 624);
numTaggedWith.addTag('Web 2.0', 1, 1, 1646);
numTaggedWith.addTag('website', 1, 1, 116);
numTaggedWith.addTag('wider', 1, 1, 1142);
numTaggedWith.addTag('wireless', 1, 1, 1169);
numTaggedWith.addTag('worship', 2, 1, 1194);
numTaggedWith.addTag('www', 1, 1, 1149);
