
function start_nocfader(number) { // puts a delay then starts the fading.
	yay = setTimeout("nocfader('hottest_fader', " + number + ");", 4000);
}

function nocfader(label, number) {
	if (typeof window['fadecount'] == 'undefined' ) { // global to remember which one we're on.  it's global ('window') so it sticks.
        window['fadecount'] = 0;
    }
	
	if (document.getElementById('hottest_fader' + window['fadecount']).style.opacity = 1) {
		if ((window['fadecount'] + 1) < number) {
			for (count=0; count < number; count++) if (count != (window['fadecount'] + 1)) {
				fade(label + count, 'out', 500);
				fade('selector_active' + count, 'out', 500);		
			}
			
			fade(label + (window['fadecount'] + 1), 'in', 500);
			fade('selector_active' + (window['fadecount'] + 1), 'in', 500);
		}
		else {
			for (count=1; count < number; count++) {
				fade(label + count, 'out', 500);
				fade('selector_active' + count, 'out', 500);
			}
			
			fade(label + '0', 'in', 500);
			fade('selector_active' + '0', 'in', 500);
			window['fadecount'] = -1;
		}
		
		
		
		window['fadecount']++;
		yay = setTimeout("nocfader('"+label+"', '"+number+"');",10000);
	}
}



function changepic(thumb_id, jpeg_name, image_count) {	
	if (typeof window['counter' + thumb_id] == 'undefined' ) { // the variable will be "counter" plus the thumb id.  if doens't exist, make it.  it's global ('window') so it sticks.
        window['counter' + thumb_id] = 1;
    }
	
	if (image_count > 1) {
		document.getElementById(thumb_id).src = jpeg_name + window['counter' + thumb_id] + ".jpg";		
		if (window['counter' + thumb_id] == image_count) window['counter' + thumb_id] = 0;
		window['counter' + thumb_id]++;
		wam = setTimeout("changepic('"+thumb_id+"', '"+jpeg_name+"', "+image_count+");",700);
	}
}



function viewpic(image) {
	dawindow2=window.open(image,'pic',config='height=550,width=900,toolbar=no,menubar=no,scrollbars=1,resizable,location=no,directories=no,status=no');
}


function setCookie(name, value, expires, path, domain)
{
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "; path=/") +
        ((domain) ? "; domain=" + domain : "");
}

var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};


function turn_advanced_mode(which) {
	if (which == 'on') which = 'inline';
	else which = 'none';
	//if (!document.getElementsByClassName) return false; 
	var links = getElementsByClassName("advanced_mode");
	for (var i=0; i < links.length; i++) {
		links[i].style.display = which;
	}
	return true;
}	


var TimeToFade = 250.0;

function fade(what_to_fade, direction, thetime)
{
	window['im_fading_man'] = 1;
	if (thetime > 0) TimeToFade = thetime;
	var element = document.getElementById(what_to_fade);
  if(element == null) return;
   
	if(element.FadeState == null) {
		if(element.style.opacity == null || element.style.opacity == '' || element.style.opacity == '1') {
			element.FadeState = 2;
		}
		else {
			element.FadeState = -2;
		}
	}
   
	if (element.FadeState == 1 || element.FadeState == -1) { // 1 or -1 means currently fading.
		element.FadeState = element.FadeState == 1 ? -1 : 1; // reverse the direction
		element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
		direction = direction == 'in' ? 'out' : 'in';
	}
	else {
		// element.FadeState = element.FadeState == 2 ? -1 : 1;  // fadestate 1: fading up.  -1 fading down.  2 faded up -2 faded down
		if (direction == 'in') {
			if (element.style.display !='none') return;
			element.style.opacity = 0; // start it at 0 opacity so it can fade in..
			element.style.filter = 'alpha(opacity = 0)';
			element.style.display='inline';
			
		}
		if (direction == 'out')	{			
			if (element.style.display == 'none') return;
			element.FadeState = -1; // make it permanently just go in one direction, and not toggle like above was doing. this line makes if fade out (-1)
		}
		else element.FadeState = 1; // if we are fading in, make fade state 1 which means fading in.
		element.FadeTimeLeft = TimeToFade;
		setTimeout("animateFade(" + new Date().getTime() + ",'" + what_to_fade + "','" + direction + "','" + thetime + "')", 0);
	} 
}

function animateFade(lastTick, what_to_fade, direction, thetime) {  
	if (thetime > 0) TimeToFade = thetime;
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;
	
	var element = document.getElementById(what_to_fade);
	
 
	if(element.FadeTimeLeft <= elapsedTicks) {
		if (direction == 'out') {
			element.style.opacity = '0'; // return to max opacity (but we're gonna display=none anyway)
			element.style.filter = 'alpha(opacity = 0)';
			element.FadeState = -2;
			element.style.display='none';
		}
		else {
			element.style.opacity = '1'; // return to max opacity (but we're gonna display=none anyway)
			element.style.filter = 'alpha(opacity = 100)';
			element.FadeState = 2;
		}
	return;
	}
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/TimeToFade;
  if(element.FadeState == 1) newOpVal = 1 - newOpVal;


  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
  
  setTimeout("animateFade(" + curTick + ",'" + what_to_fade + "','" + direction + "','" + thetime + "')", 33);
}










/* AJAX Star Rating : v1.0.3 : 2008/05/06 */
/* http://www.nofunc.com/AJAX_Star_Rating/ */

function $(v,o) { return((typeof(o)=='object'?o:document).getElementById(v)); }
function $S(o) { return((typeof(o)=='object'?o:$(o)).style); }
function agent(v) { return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); }
function abPos(o) { var o=(typeof(o)=='object'?o:$(o)), z={X:0,Y:0}; while(o!=null) { z.X+=o.offsetLeft; z.Y+=o.offsetTop; o=o.offsetParent; }; return(z); }
function XY(e,v) { var o=agent('msie')?{'X':event.clientX+document.documentElement.scrollLeft,'Y':event.clientY+document.documentElement.scrollTop}:{'X':e.pageX,'Y':e.pageY}; return(v?o[v]:o); }

star={};

star.moveit=function(e,o,which_star_set,width,height) {
	if(star.stop || isNaN(star.stop)) { star.stop=0;
		document.onmousemove=function(e) { var n=star.num;    
			var p=abPos($('star'+n)), x=XY(e), oX=x.X-p.X, oY=x.Y-p.Y; star.num=which_star_set;
			if(oX<1 || oX>width || oY<0 || oY>height) {
				star.stop=1; star.revert();
			}        
			else {
				document.getElementById('current_stars'+which_star_set).style.display='none';
				if(oX/width*5 > 4) oX = 100 * width/100;
				else if(oX/width*5 > 3) oX = 80 * width/100;
				else if(oX/width*5 > 2) oX = 60 * width/100;
				else if(oX/width*5 > 1) oX = 40 * width/100;
				else if(oX/width*5 > .3) oX = 20 * width/100;
				else oX = 0;
				$S('moving_stars'+n).width=oX+'px';
				$('value_holder'+n).innerHTML=Math.round(oX/width*100);
			}
		}
	}
}

star.update=function(e,which_star_set, media_type, media_id) {
	var n=star.num, v=parseInt($('value_holder'+n).innerHTML);
	
	// Provide the XMLHttpRequest class for IE 5.x-6.x:
	if( typeof XMLHttpRequest == "undefined" ) XMLHttpRequest = function() {
	  try { return new ActiveXObject("Msxml2.XMLHTTP.6.0") } catch(e) {}
	  try { return new ActiveXObject("Msxml2.XMLHTTP.3.0") } catch(e) {}
	  try { return new ActiveXObject("Msxml2.XMLHTTP") } catch(e) {}
	  try { return new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {}
	  throw new Error( "This browser does not support XMLHttpRequest." )
	};

	
    $('current_stars'+which_star_set).title=v;
    req=new XMLHttpRequest(); req.open('GET','/rate_this/rating_type/3/vote/'+(v/20)+'/media_type/'+media_type+'/media_id/'+media_id, false); req.send(null);   
	fade('star_holder' + which_star_set, 'out');   
	fade('confirmation_holder' + which_star_set, 'in');
	

}

star.revert=function() {
	var n=star.num, v=parseInt($('current_stars'+n).title);
	document.getElementById('current_stars'+n).style.display='block';
    $S('moving_stars'+n).width=0; // Math.round(v*84/100)+'px'
    $('value_holder'+n).innerHTML=(v>0?Math.round(v):'');    
    document.onmousemove='';
}

star.num=0;






var _version = 'Pre 1.2'; 
var unself
if (_version != '1.2') {
    window.onerror = new Function("return true;");
}
        var isNS = (navigator.appName == "Netscape");
        var isMacIE = ( (navigator.userAgent.indexOf("IE 4") > -1) && (navigator.userAgent.indexOf("Mac")  > -1) );
        var layerRef = (isNS) ? "document" : "document.all";
        var styleRef = (isNS) ? "" : ".style";
        var isDynamic = 1;

var activeMenu = 0;


function activateMenu(menuLayerRef) {
var lightsout
    if (isDynamic && activeMenu != menuLayerRef) {
        if (activeMenu) hideMenu("menu" + activeMenu); 
        menuID = "menu" + menuLayerRef;
        activeMenu = menuLayerRef;
        showMenu(menuID)
    }
}
function showMenu(layerID) {
	document.getElementById(layerID).style.visibility = 'visible';
}
function hideMenu(layerID) {
	document.getElementById(layerID).style.visibility = 'hidden';
}
// check if there's a menu active
function turnOff() {
    if (activeMenu) {
        menuID = "menu" + activeMenu;
        hideMenu(menuID);
        activeMenu = 0;
    }
}
// kills menu on clickup
function init() {
    if (isDynamic) {
        if (isNS) {
            document.captureEvents(Event.mouseup);
        }
        document.onmouseup = turnOff;
    }
}
// this function needs to be called from the sub menus DIV
function hideMe() {
    if (activeMenu) {
        menuID = "menu" + activeMenu;
        hideMenu(menuID);
        activeMenu = 0;
    }
}

function timer(offon)  {
if (offon == 0)	{
    unself = setTimeout('turnOff()', 400);
    }
if (offon ==1)	{
	clearTimeout(unself);
	}
}