// \Template34\default.js
	function TemplateInit () {
		parseStylesheets();
		PNGPatch();
	}
	var TemplatePath = sTmplPath;	// external var (see Functions.asp)
	var AgentImg = new Image ();
	var MastheadBG = new Image ();
	AgentImg.src = TemplatePath + "images/spacer.gif"; // "../../images/spacer.gif";
	MastheadBG.src = TemplatePath + "images/spacer.gif";
	function GetObjRef (id) {
		if (document.getElementById) {
			return document.getElementById (id);
		}
		else if (document.all) {
			return document.all[id];
		}
		return null;
	}
	
	var isPNGPatched = false;
	function PNGPatch () {
		if (isPNGPatched == false && document.all) {
			var imagesToPatch = ["AgentImg","MastheadBG"];
			for (var i=0; i<imagesToPatch.length; i++) {
				var objImg = GetObjRef (imagesToPatch[i]);
				if (objImg && document.all) {
					var oldSrc = objImg.src;
					objImg.src = TemplatePath + "images/spacer.gif"; // "../../images/spacer.gif";
					objImg.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + oldSrc + "',sizingMethod='image')";
				}
			}
			isPNGPatched = true;
		}
	}

	var CSSBuffer, doc = window.document;

function parseStylesheets() {
        var rules, sheet, sheets = doc.styleSheets;
        var bufferIndex = sheets.length;
        var head = doc.getElementsByTagName('head')[0];
        var buffer = doc.createElement('style');

        buffer.setAttribute('media', 'screen');
        buffer.setAttribute('type', 'text/css');
        head.appendChild(buffer);
        CSSBuffer = sheets[bufferIndex];

        for(var i=0; i<sheets.length -1; i++) {
                sheet = sheets[i];
                if(!sheet.media || sheet.media == 'screen') {
                        rules = sheet.rules;
                        for(var j=0; j<rules.length; j++) {
                                parseCSSRule(rules[j]);
                        }
                }
        }
}
        function parseCSSRule(rule) {
                var select = rule.selectorText, style = rule.style.cssText;
                if(!select || !style || select.indexOf(':hover') < 0) return;
                var newSelect = select.replace(/\:hover/g, '.onHover');
                CSSBuffer.addRule(newSelect, style);

                var affected = select.replace(/\:hover.*$/g, '');
                var elements = getElementsBySelect(affected);
                for(var i=0; i<elements.length; i++) {
                        if(elements[i].nodeName == 'A') continue;
                        new HoverElement(elements[i]);
                }
        }

/**
 *      HoverElement
 *      -------------------------
 *      applies the hover
 */

function HoverElement(element) {
        if(element.isHoverElement) return;
        element.isHoverElement = true;
        element.attachEvent('onmouseover',
                function() { element.className += ' onHover'; });
        element.attachEvent('onmouseout',
                function() { element.className = element.className.replace(/onHover/g, ''); });
}

/**
 *      domFinder
 *      -----------------------------------
 *      returns list of elements based on css selector
 */

function getElementsBySelect(rule) {
        var nodeList = [doc], sets = rule.split(' ');
        for(var i=0; i<sets.length; i++) {
                nodeList = domFinder.filterNodes(sets[i], nodeList);
        }       return nodeList;
}

var domFinder = {
        findNodes:function(tag, docs) {
                var res, nodes = [];
                for(var i=0; i<docs.length; i++) {
                        res = docs[i].getElementsByTagName(tag);
                        for(var j=0; j<res.length; j++) nodes[nodes.length] = res[j];
                }       return nodes;
        },

        filterNodes:function(select, docs) {
                var filtered = [], nodes,rule,atr,s = (/#|\./).exec(select);
                if(!s) return this.findNodes(select, docs);
                nodes = this.findNodes((rule = select.split(s))[0], docs);
                atr = (s == '#')? 'id':'className';
                for(var i=0; i<nodes.length; i++) {
                        if(new RegExp('(^|\\s)' +  rule[1] + '(\\s|$)').exec(nodes[i][atr]))
                                filtered[filtered.length] = nodes[i];
                }       return filtered;
        }
}

function toggle(theDiv) {
			//alert("toggle function")
			hideToggle ();
		  var elem = document.getElementById(theDiv);
    	  elem.style.display = "block"; 
	}
	function hideToggle () {
		/*
		document.getElementById("MemberCenter").style.display="none";
		document.getElementById("MortgageCalculator").style.display="none";
		document.getElementById("PropertySearch").style.display="none";
		document.getElementById("PropertiesNearYou").style.display="none";
		document.getElementById("RequestInformation").style.display="none";
		*/
		hideElem("HomeContentRow1")
		hideElem("HomeContentRow2")
		hideElem("HomeContentRow3")
		hideElem("HomeContentRow4")
		hideElem("HomeContentRow5")	
	}
	
	function hideElem(elemId){	// extension
		var elem = document.getElementById(elemId);
		if (elem)
			elem.style.display="none"
	}

/* START: Top Nav */
var currentHoverNav = null;
var lastShownMenus = [];
function GetObjRef (id) {
        return document.getElementById (id);
}
function GetChildren (obj) {
        return obj.childNodes;
}

function Nav_OnMouseOver (obj, e) {
    if (!e) {
            e = window.event;
    }
    if (e) {
        var children = GetChildren (obj);
        var subNav = null;
        var c = children.length;
        for (var i=0; i<c; i++) {
                if (children[i].id && children[i].id.indexOf (obj.id) > -1) {
                        subNav = children[i];
                }
        }
        currentHoverNav = obj;
        currentHoverNav.className = 'Link';
        Nav_HideMenu ();
        if (subNav) {
            subNav.style.display = "block";
            var SelectToBeHidden = GetObjRef ("QuickFindSelect");
            if (SelectToBeHidden) {
                    SelectToBeHidden.style.display = "none";
            }
            objectHeight = obj.offsetHeight + 1;
            subNav.style.top = objectHeight + "px";
            subNav.style.left = obj.offsetLeft + "px";
            c = lastShownMenus.length;
            var isInLastShownMenus = false;
            for (var i=0; i<c; i++) {
                    if (lastShownMenus[i] == subNav) {
                            isInLastShownMenus = true;
                    }
            }
            if (isInLastShownMenus == false) {
                    lastShownMenus[c] = subNav;
            }
        }
        e.cancelBubble = true;
    }
    return false;
}

function Nav_OnMouseOut (obj, e) {

    if (!e) {
            e = window.event;
    }
    if (e) {
            currentHoverNav = null;
            setTimeout ("Nav_HideMenu ()", 2000);
            e.cancelBubble = true;
            obj.className = 'LinkUp';
    }

    return false;
}
function Nav_OnMouseOutCurrent (obj, e) {

    if (!e) {
            e = window.event;
    }
    if (e) {
            currentHoverNav = null;
            setTimeout ("Nav_HideMenu ()", 2000);
            e.cancelBubble = true;
    }

    return false;
}

function SubNav_OnMouseOver (obj, e) {
    if (!e) {
            e = window.event;
    }
    if (e) {
            currentHoverNav = obj;
            e.cancelBubble = true;
    }
    return false;
}

function Nav_HideMenu () {
    if (currentHoverNav != null) {
        var c = lastShownMenus.length - 1;
        for (var i=c; i>=0; i--) {
            if (lastShownMenus[i] && lastShownMenus[i].id.indexOf (currentHoverNav.id) < 0) {
                lastShownMenus[i].style.display = "none";
                var SelectToBeHidden = GetObjRef ("QuickFindSelect");
                if (SelectToBeHidden) {
                        SelectToBeHidden.style.display = "block";
                }
                lastShownMenus[i] = null;
            }
        }
    }
    else {
        var c = lastShownMenus.length - 1;
        for (var i=c; i>=0; i--) {
            if (lastShownMenus[i] != null) {
                lastShownMenus[i].style.display = "none";
                var SelectToBeHidden = GetObjRef ("QuickFindSelect");
                if (SelectToBeHidden) {
                        SelectToBeHidden.style.display = "block";
                }
                lastShownMenus[i] = null;
            }
        }
    }
}
/* END: Top Nav */	
