////////////////////////////
//
//	Written by Josh Pangell
//	Collective Perception
//	2008
//
////////////////////////////

document.getElementsByClassName = function(clsName){

	var retVal = new Array();
	var elements = document.getElementsByTagName("*");

	for(var i = 0;i < elements.length;i++){
		if(elements[i].className.indexOf(" ") >= 0){
			var classes = elements[i].className.split(" ");

			for(var j = 0;j < classes.length;j++){
				if(classes[j] == clsName){
					retVal.push(elements[i]);
				}
			}

		}else if(elements[i].className == clsName){
			retVal.push(elements[i]);
		}
	}
	return retVal;
}
/////////////////////////////////////////////////////////////////////////////////////////////////
var intransition = false;
/////////////////////////////////////////////////////////////////////////////////////////////////
	if(!Array.indexOf){
	    Array.prototype.indexOf = function(obj){
	        for(var i=0; i<this.length; i++){
	            if(this[i]==obj){
	                return i;
	            }
	        }
	        return -1;
	    }
	}
/////////////////////////////////////////////////////////////////////////////////////////////////
function feedAnchor(anchorLink) {
	//url = anchorLink.split("anchor");
	//console.log(url[0]+' / '+url[1]);
	//scrollto("item_"+url[1]);
	url = "item_"+anchorLink;
	setTimeout('scrollto(url)',200);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
var timer;
var lastT;
function scrollto(obj) {
	var t=0;	
	var pad = 35;
	var strTop = document.getElementById(obj).style.top;
	if(strTop=="") doscroll(0,getScrollHeight(),0);
	else {
		pxPos = strTop.indexOf("px");
		targetYPos = parseInt(strTop.substring(0, pxPos)) - pad;
		var y = getScrollHeight(); //document[getDocElName()].scrollTop;
		clearTimeout(timer);
		
		//alert(getScrollHeight()+' / '+targetYPos+' / '+y);
		doscroll(targetYPos,y,t);
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function doscroll(targetYPos,y,t) {
	var speed = 6;
	var diff = targetYPos - y;
	var steps = diff/(speed*speed);
	t += (t+steps)/diff;
	newY = (t==1) ? y+diff : y + (diff * (-Math.pow(2, -20 * t/1) + 1));
	if(t) window.scrollTo(0, newY);
	
	if(t >= 1 || lastT == t || !t) clearTimeout(timer);
	else timer=setTimeout("doscroll("+targetYPos+","+y+","+t+")",1);
	
	lastT = t;
	//console.log(t+' / '+lastT);
	
	return false;
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function getDocElName(){
	if(document.compatMode && document.compatMode == "CSS1Compat") return "documentElement";
	else return "body";
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function handle(delta) {
	clearTimeout(timer);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function wheel(event){
	var delta = 0;
	if (!event) event = window.event;
	if (event.wheelDelta) {
		delta = event.wheelDelta/120; 
		if (window.opera) delta = -delta;
	} else if (event.detail) {
		delta = -event.detail/3;
	}
	if (delta)	handle(delta);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
/* Initialization code. */
if (window.addEventListener)
	window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;


/////////////////////////////////////////////////////////////////////////////////////////////////
function di(id,name){
	if (document.images) document.images[id].src=eval(name+".src");
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function getadmin(url) {
	document.location.href=url+"/admin";
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function closeadmin(url) {
	parent.document.location="/"+url;
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function cargoToolset(doshow) {
	if(doshow) {
		$("#toolset").css("display","block");
		$("#toolsetframe").remove();
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function getnext(limit) {
	if(!intransition) {
		var this_spot = parseInt(document.getElementById('this_spot').value);
		this_spot++;
		if(this_spot >= (pid_list.length-1)) this_spot = 0;
		if(this_spot%limit == 0 && this_spot >= 0) changePage(Math.ceil((this_spot+1)/limit),limit);
		
		$.historyLoad(pid_list[this_spot]);
	}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function detectBrowser() {
	var browser=navigator.appName;
	var b_version=navigator.appVersion;
	var version=parseFloat(b_version);
	return browser;
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function getScrollHeight() {
    var y;
    if (self.pageYOffset) {
        y = self.pageYOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {
        y = document.documentElement.scrollTop;
    } else if (document.body) {
        y = document.body.scrollTop;
    }
    return parseInt(y);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function truncateText(trunc,len) {
	if (trunc.length > len) {
		trunc = '...'+trunc.substring(trunc.length, trunc.length-len);
	}
	return trunc;
}

/////////////////////////////////////////////////////////////////////////////////////////////////
function stripslashes( str ) {
    return (str+'').replace(/\0/g, '0').replace(/\\([\\'"])/g, '$1');
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function testIE() {
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) return true;
	else return false;
}
/////////////////////////////////////////////////////////////////////////////////////////////////

	toolset_admin=new Image();
 	toolset_admin.src="/_gfx/toolset-admin.png";
	toolset_admin_o=new Image();
 	toolset_admin_o.src="/_gfx/toolset-admin-over.png";
	
	toolset_follow=new Image();
 	toolset_follow.src="/_gfx/toolset-follow.png";
	toolset_follow_o=new Image();
 	toolset_follow_o.src="/_gfx/toolset-follow-over.png";
	
	toolset_follow_pair=new Image();
 	toolset_follow_pair.src="/_gfx/toolset-follow-pair.png";
	toolset_follow_pair_o=new Image();
 	toolset_follow_pair_o.src="/_gfx/toolset-follow-pair-over.png";
	
	toolset_follow_on=new Image();
 	toolset_follow_on.src="/_gfx/toolset-follow-on.png";
	toolset_follow_on_o=new Image();
 	toolset_follow_on_o.src="/_gfx/toolset-follow-on-over.png";
