try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}
// default
var SiteManager = {
	_MessageTarget : null,				//Cached object for the logging of messages
	_MessageTargetId : 'Messages',		//ID of the object that should be the _MessageTarget
	logger : null,
	configChangeTarget : "/r/"+SM_portal.activeSiteID+"/p/myproweb/config",

	log : function(s) {
		if(this.logger !== null)	YAHOO.log(s);
		//else if(window.console && console.log) console.log(s);
	},
	error : function(s) {
		this.log(s);
	},
	sendConfigChange: function(type, details) {
		var url = this.configChangeTarget + '?type=' + type;
		for(key in details) {
			url += '&' + key + '=' + details[key];
		}
		var callback = {
			success: function() {},
			failure: function() {},
			argument: {}
		};
		SiteManager.log('Sending ' + type + ' config change to the server');
		YAHOO.util.Connect.asyncRequest('GET', url, callback);
	}
};
SiteManager.Dom = {
	openWindow: function(url, options) {
		window.open(url);
	}
}

SiteManager.Css = {
	getSizeInt : function(pxVal) {
		var retVal = pxVal;
		if(typeof(retVal) == 'string') retVal = (retVal.replace(/px/i, '') * 1);
		return retVal;
	}
}
SiteManager.Util = {
	getTimestamp : function() {
		return new Date().getTime();
	}
}
SiteManager.toggleWiki = function(nodeid, button, makeWikiText, removeWikiText) {
	var node = document.getElementById(nodeid);
	if(node['wikified']) {
		SiteManager.unwikify(nodeid);
		if(button && button.nodeName && button.nodeName.toLowerCase() == 'input') button.value = makeWikiText;
		else if(button && button.nodeName) button.innerHTML = makeWikiText;
	} else {
		SiteManager.wikify(nodeid);
		if(button && button.nodeName && button.nodeName.toLowerCase() == 'input') button.value = removeWikiText;
		else if(button && button.nodeName) button.innerHTML = removeWikiText;
	}
}
SiteManager.wikify = function(nodeid) {
	var node = document.getElementById(nodeid);
	if(node && window.wikiWords && window.wikiWords.length) {
		var contents = node.innerHTML;
		var parts, word, re, href, linkText;
		for(var i = 0; i < wikiWords.length; i ++) {
			word = href = '';
			if(wikiWords[i].indexOf(':') > 0) {
				parts = wikiWords[i].split(':');
				word = parts[0];
				for(var j = 1; j < parts.length; j ++) {
                                        if(j > 1) href += ':';
                                        if ((parts[j].indexOf("r/pweb/")>0) && SM_portal.activeSiteID != "pweb") {
                                                parts[j] = parts[j].replace('r/pweb/','r/'+SM_portal.activeSiteID+'/');
                                        }                                        
					href += parts[j];
				}
			} else {
				word = wikiWords[i];
				href = '/r/'+SM_portal.activeSiteID+'/p/pweb/searchResults?csvT=' + escape(word) + '&x=0&y=0';
			}
			re = '([^<\w(?:=")/])(' + word + '\\w*)', 'ig';
			re = new RegExp(re);
			linkText = '<a class="wikiLink" href="' + href + '">$2</a>';
			contents = contents.replace(re, '$1' + linkText);
		}
		node.innerHTML = contents;
		node.wikified = true;
	}
}
SiteManager.unwikify = function(nodeid) {
	var node = document.getElementById(nodeid);
	if(node && window.wikiWords && window.wikiWords.length) {
		var as = node.getElementsByTagName('a');
		for(var i = as.length - 1; i >= 0; i --) {
			if(as[i].className == 'wikiLink') {
				text = document.createTextNode(as[i].innerHTML);
				as[i].parentNode.insertBefore(text, as[i]);
				as[i].parentNode.removeChild(as[i]);
			}
		}
		node.innerHTML = node.innerHTML.replace(/<a class="wikiLink" href="[^"]+">$1<\/a>/ig, '$1');
		node.wikified = false;
	}
}

Array.prototype.contains = function(val) {
  var retVal = false;
  for(var i = 0; i < this.length; i ++) {
	if(this[i] == val) { retVal = true; break; }
  }
  return retVal;
}
if(!window.console) window.console = { log: function(s) {}, error: function(s) {}};