/*
	JavaScript / CSS Menu
	Copyright 2004 PW New Media
	
	Written by Paul Woodland, January 2004
	v1.0.0

	Part of MSMS Themes: "Standard Blue" and "Setup & Config App"
*/

var onSel = -1;
var selMax = 0;
var selMin = -1;
var clearT = null;
var clearTS = false;

function sel (e) {
	if (window.event) { 
		target = window.event.srcElement; 
	} else if (e) { 
		target = e.target; 
	} else return; 
	
	if (target.nodeType == 3) { 
		target = target.parentNode; 
	} 
	
	if (target.nodeName.toLowerCase() == "a") {
		target = target.parentNode; 
	}
 	
	if (clearTS) {
		window.clearTimeout(clearT);
		clearTS = false;
	}
	
	for (i = selMin; i <= selMax; i++) {
		var tUp = document.getElementById("_sel" + i);
		if (tUp == target)
			tUp.className = "selYes";								
		else
			tUp.className = "selNo";				
	}
}
		
function unsel (e) {
	clearT = window.setTimeout("unsel2();", 100);
	clearTS = true;
}

function unsel2 () {
	for (i = selMin; i <= selMax; i++) {
		var tUp = document.getElementById("_sel" + i);
		if (i == onSel)
			tUp.className = "selCur";								
		else
			tUp.className = "selNo";
				
	}
}

function makeLinks () {
	var allLinks = document.getElementsByTagName('td'); 
		
	for (var i=0;i<allLinks.length;i++) { 
		var lnk = allLinks[i]; 
		var itsID = 0;
		
		if (lnk.className == "selCur" || lnk.className == "selNo") {
			itsID = ++selMax;
			lnk.id = "_sel" + itsID;
							
			if (selMin == -1 || selMin > itsID) selMin = itsID;
			if (selMax == 0 || selMax < itsID) selMax = itsID;
			
			selAddEvent(lnk,'mousemove', sel); 
			selAddEvent(lnk,'mouseout', unsel); 
			
			if (lnk.className == "selCur")
				onSel = itsID;
			else
				lnk.className = "selNo";
			
			var allLinks2 = lnk.getElementsByTagName('a'); 
			for (var y=0;y<allLinks2.length;y++) { 
				var lnk = allLinks2[y]; 
				selAddEvent(lnk,'mousemove', sel); 
			}
		}
	} 
	
	var allInputs = document.getElementsByTagName('input'); 
		
	for (var i=0;i<allInputs.length;i++) { 
		if (allInputs[i].type == "text" || allInputs[i].type == "password") {
			selAddEvent(allInputs[i], "focus", highlightInput);
			selAddEvent(allInputs[i], "blur", unhighlightInput);
		}
	}
	
	var allInputs = document.getElementsByTagName('select'); 
		
	for (var i=0;i<allInputs.length;i++) { 
		selAddEvent(allInputs[i], "focus", highlightInput);
		selAddEvent(allInputs[i], "blur", unhighlightInput);
	}
}

function highlightInput (e) {
	if (window.event) { 
		target = window.event.srcElement; 
	} else if (e) { 
		target = e.target; 
	} else return; 
	
	if (target.className != "textboxErr")
		target.className = 'textboxSel';
}

function unhighlightInput (e) {
	if (window.event) { 
		target = window.event.srcElement; 
	} else if (e) { 
		target = e.target; 
	} else return; 
	
	target.className = 'textbox';
}
	



function w3links () {
	var w3l1 = document.getElementById("w3link1");
	if (w3l1) {
	    try {
	        //w3l1.style.opacity = 0.3;
			w3l1.style.filter = "gray alpha(opacity=30);";
			selAddEvent(w3l1,'mousemove',fadeIn);
			selAddEvent(w3l1,'mouseout',fadeOut);
		} catch (e) {}
	}
	
	var w3l2 = document.getElementById("w3link2");
	if (w3l2) {
	    try {
	        //w3l2.style.opacity = 0.3;
		    w3l2.style.filter = "gray alpha(opacity=30);";
			selAddEvent(w3l2,'mousemove',fadeIn);
			selAddEvent(w3l2,'mouseout',fadeOut);
		} catch (e) {}
	}
}

function fadeIn (e) {
	if (window.event) { 
		target = window.event.srcElement; 
	} else if (e) { 
		target = e.target; 
	} else return;

	target.style.filter = "alpha(opacity=" + target.filters.alpha.opacity + ")";
	nereidFade(target,100,1,5);
}

function fadeOut (e) {
	if (window.event) { 
		target = window.event.srcElement; 
	} else if (e) { 
		target = e.target; 
	} else return; 
	
	target.style.filter = "gray " + target.style.filter;
	nereidFade(target,30,50,5)
}


function selAddEvent(elm, evType, fn, useCapture) 
	// addEvent and removeEvent 
	// cross-browser event handling for IE5+,  NS6 and Mozilla 
	// By Scott Andrew 
	{ 
	if (elm.addEventListener){ 
		elm.addEventListener(evType, fn, useCapture); 
		return true; 
	} else if (elm.attachEvent){ 
		var r = elm.attachEvent("on"+evType, fn); 
		return r; 
	} 
}  



selAddEvent(window, "load", makeLinks);





/*
Gradual-Highlight Image Script II- 
By J. Mark Birenbaum (birenbau@ugrad.cs.ualberta.ca)
Permission granted to Dynamicdrive.com to feature script in archive
For full source to script, visit http://dynamicdrive.com
*/

nereidFadeObjects = new Object();
nereidFadeTimers = new Object();

/* object - image to be faded (actual object, not name);
 * destop - destination transparency level (ie 80, for mostly solid)
 * rate   - time in milliseconds between trasparency changes (best under 100)
 * delta  - amount of change each time (ie 5, for 5% change in transparency)
 */

function nereidFade(object, destOp, rate, delta){
if (!document.all)
return
    if (object != "[object]"){  //do this so I can take a string too
        setTimeout("nereidFade("+object+","+destOp+","+rate+","+delta+")",0);
        return;
    }
        
    clearTimeout(nereidFadeTimers[object.sourceIndex]);
    
    diff = destOp-object.filters.alpha.opacity;
    direction = 1;
    if (object.filters.alpha.opacity > destOp){
        direction = -1;
    }
    delta=Math.min(direction*diff,delta);
    object.filters.alpha.opacity+=direction*delta;

    if (object.filters.alpha.opacity != destOp){
        nereidFadeObjects[object.sourceIndex]=object;
        nereidFadeTimers[object.sourceIndex]=setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
    } else {
	//	if (destOp == 100)
//			object.style.filter = "alpha(opacity=100);";
			
    }
}

