function $dge(id) {
	return document.getElementById(id);
}

var mouseouts = new Array();
function nukemouseout(ent) {
	if (!mouseouts[ent]) {
		mouseouts[ent] = $dge(ent+'div').getAttribute('onmouseout');
	}
	$dge(ent+'div').setAttribute('onmouseout', null);
}

function getmouseback(ent) {
	$dge(ent+'div').setAttribute('onmouseout', mouseouts[ent]);
	if (!mouseouts[ent]) {
		alert('oh shit');
	}
}

function showmenu(ent) {
	var opac = 1;//0.35;
	var oleft = 0;
	var thediv = 'm'+ent+'div';
	$dge(thediv).style.display = 'block';
	$dge(thediv).style.left = ($dge(ent+'anchor').offsetLeft+oleft)+'px';
	hidemenu(ent);
	$dge(thediv).focus();
}

function hidemenu(skipent) {
	for (var i in breadcrumbs) {
		var otherent = breadcrumbs[i];
		if (otherent == skipent) continue;
		if (!$dge('m'+otherent+'div')) continue; //alert(otherent+'div');
		$dge('m'+otherent+'div').style.display = 'none';
	}
}

function setOpacity(ent,opac) {
	
}

//Pre-Load Images
function preload(imgObj,imgSrc) {
	if (document.images) {
		eval(imgObj+' = new Image()')
		eval(imgObj+'.src = "'+imgSrc+'"')
	}
}	

//Image Roll-Overs
function imageSwap(imgName,imgObj) {
	if (document.images) {
		if (document.layers && layer!=null) eval('document.'+layer+'.document.images["'+imgName+'"].src = '+imgObj+'.src')
		else document.images[imgName].src = eval(imgObj+".src")
	}
}

function resizebody(maxwidth) {
	var mydiv = $dge("maincontent");
	var curr_pad = mydiv.style.marginRight;
	curr_pad = curr_pad.replace(/px/i, '');
	if (document.body.clientWidth > maxwidth) {
		new_pad = document.body.clientWidth - maxwidth;
		mydiv.style.marginRight = "25%"; // new_pad+"px";
	}
}

function resizebodyx(width) {
	var mydiv = $dge("maincontent");
	mydiv.style.marginRight = width;
}

function getWindowHeight() {
  var windowHeight = 0;
	
  if (typeof(window.innerHeight) == 'number')
    windowHeight = window.innerHeight;
	
  else {
		
    if (document.documentElement && document.documentElement.clientHeight)
      windowHeight = document.documentElement.clientHeight;
		
    else {
      if (document.body && document.body.clientHeight)
        windowHeight = document.body.clientHeight; }; };
				
  return windowHeight;
};

function heightfix () {
	var nd = $dge("thenavdiv").offsetHeight;
	var md = $dge("themaindiv").offsetHeight;
	var qd = $dge("themaindivbottom").offsetHeight;
	// var v = document.thenavdiv.offsetHeight;
	if (nd > md) {
		// alert(nd+' > '+md);
		$dge("themaindiv").style.height = (nd-(qd+22))+"px";
		// alert($dge("themaindiv").style.height);
	} else {
		$dge("bottomone").style.marginLeft = (196-24)+"px";
	}
}

function showDiv() {
	if (document.getElementById) { // DOM3 = IE5, NS6
		$dge('hideShow').style.visibility = 'visible';
	} else {
		if (document.layers) { // Netscape 4
			document.hideShow.visibility = 'visible';
		} else { // IE 4
			document.all.hideShow.style.visibility = 'visible';
		}
	}
}

function switchad() {
	if (document.getElementById) { // DOM3 = IE5, NS6
		$dge('hideShow').style.visibility = 'visible';
	} else {
		if (document.layers) { // Netscape 4
			document.hideShow.visibility = 'visible';
		} else { // IE 4
			document.all.hideShow.style.visibility = 'visible';
		}
	}
}

function greyout(theform,thesubmit) {
	theform.thesubmit.value="Wait...";
	theform.thesubmit.disabled=true;
	theform.thesubmit.className='disabled';
}

function expandmain(expandpic) {
	if (document.getElementById) { // DOM3 = IE5, NS6
		$dge('wrapper').style.width = 'auto';
		$dge('expandpic').style.visibility = 'hidden';
	} else {
		alert('Your browser is too old for this feature.');
	}
}

function dobreadnav(navurl,text) {
	$dge('middiv').style.paddingLeft = '300px';
	$dge('middiv').innerHTML = '<b>Please Wait...</b>';
	$dge('maincontent').innerHTML = '<p class="big grn">Loading <i>'+text+'</i></p>'; // <br><img src="/site-icons/rev.gif">
	$dge('maincontent').style.height = '800px';
	window.location.href = navurl;
}

function killtach() {
	alert('ok');
}

function gonuts(numnuts,thisid,light,waitelement,nutelement,nutspec,nutrate,nuthalf,nutzero,nutnorm) {
	numnuts *= 20;
	var voteurl = '/pages/_/rate/'+thisid+'/'+numnuts+'?nc='+Math.random()/10;
	//alert(voteurl);
	var req;
	try	{
		// Firefox, Opera, Safari
		req = new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				alert('Your browser is not IE 5 or higher, or Firefox or Safari or Opera');
			}
		}
	}
	req.open("GET", voteurl, true);
	req.send(null);
	req.onreadystatechange = function () {
		if (req.readyState == 4 && req.status == 200) {
			shownuts(req.responseText,nutelement,light,waitelement,nutspec,nutrate,nuthalf,nutzero,nutnorm);
		} else if (req.readyState == 4 && req.status != 200) {
			$dge(nutelement).innerHTML = 'ERROR';
			return true;
		} else {
			waitnuts(waitelement);
		}
	}

	return true;
}

function waitnuts(waitelement) {
	$dge(waitelement).innerHTML = 'Wait...';
}

function shownuts(input,nutelement,light,waitelement,nutspec,nutrate,nuthalf,nutzero,nutnorm) {
	var inputdata = input.split(',');
	var rating = inputdata[0];
	var numvotes = inputdata[1];
	var element = $dge(nutelement);
	if (rating < 0) {
		element.innerHTML = 'ERROR';
		return true;
	}
	var pct = Math.round(rating);
	rating /= (100/5);
	var flr = Math.floor(rating);
	var ratingdelta = rating - flr;
	for (var i = 0; i <= 5; i++) {
		var thisnut = $dge(nutspec+i);
		thisnut.setAttribute('onclick', null);
		thisnut.setAttribute('onmouseover', null);
		thisnut.setAttribute('onmouseout', null);
		if (i == 0 && rating == 0) { // article is rated 0, show 0 nut
			thisnut.setAttribute('src', nutzero);
		} else if (i == 0 && rating != 0) { // on the 0th nut, higher than 0 rate, hide 0 nut
			thisnut.style.display = 'none';
		} else if (ratingdelta > 0.74 && i == flr+1) {
			thisnut.setAttribute('src', nutrate);
		} else if (ratingdelta > 0.35 && i == flr+1) {
			thisnut.setAttribute('src', nuthalf);
		} else if (i > flr) {
			//thisnut.style.display = 'none';
			thisnut.setAttribute('src', nutnorm); 
		} else {
			thisnut.setAttribute('src', nutrate);
		}
	}
	var vt = (numvotes == 1) ? ' vote.' : ' votes.';
	$dge(light).innerHTML = 'Thanks.';
	$dge(waitelement).innerHTML = 'Avg '+pct+'% from '+numvotes+vt;
}

function lightnuts(numnuts,light,nutspec,nutrate) {
	for (var i = 1; i <= numnuts; i++) {
		$dge(nutspec+i).setAttribute("src", nutrate);
		//alert(nutspec+i);
	}
	$dge(light).innerHTML = numnuts+'/5 nuts.';
	return true;
}

function offnuts(numnuts,light,nutspec,nutnorm) {
	for (var i = 1; i <= 5; i++) {
		$dge(nutspec+i).setAttribute("src", nutnorm);
	}
	$dge(light).innerHTML = '';
	return true;
}

function nonuts(light) {
	$dge(light).innerHTML = '0/5 nuts.';
	return true;
}

function startrate() {
	var r = $dge('rateruler');
	
}

function stoprate() {
	var r = $dge('rateruler');
}

function ScrollToElement(theElement){

	var selectedPosX = 0;
	var selectedPosY = 0;
	
	while (theElement != null) {
		selectedPosX += theElement.offsetLeft;
		selectedPosY += theElement.offsetTop;
		theElement = theElement.offsetParent;
	}
	
	window.scrollTo(selectedPosX,selectedPosY);

}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}



