﻿<!--//--><![CDATA[//><!--
sfHover = function() {
    var mNavEls = document.getElementById("mNav").getElementsByTagName("LI");
    var gNavEls = document.getElementById("gNav").getElementsByTagName("LI");
	attachHover(mNavEls, 'sfhover');
	attachHover(gNavEls, 'sfhover');
}
attachHover = function(els, hoverClass) {
	for (var i=0; i<els.length; i++) {
        els[i].onmouseover=function() {
	        this.className+=" "+hoverClass;
        }
        els[i].onmouseout=function() {
	        this.className=this.className.replace(new RegExp(" "+hoverClass+"\\b"), "");
        }
	}
}

addIcons = function() {
    if (document.getElementById) {
    
        // add bookmark and font sizing tools...
        var toolsTop = document.getElementById("page_tools_top");
        if (toolsTop) {
        
            // add buttons...
            var toolsInner = "<ul>";
            toolsInner += "<li><a href='#' title='Add Bookmark' id='btn_add_bookmark'><img src='/res/img/btn_bookmark.gif' alt='Add Bookmark' width='97' height='18' /></a></li>";
            toolsInner += "<li class='text'>Text</li>";
            toolsInner += "<li id='btn_decrease_font'></li>";
            toolsInner += "<li id='btn_increase_font'></li>";
            toolsInner += "</ul>";
            toolsTop.innerHTML = toolsInner;
            
            // add bookmark click handler...
            document.getElementById("btn_add_bookmark").onclick = function() {
                var pageTitle = "Ziegler :: Investment Banking, Asset Management, Personal Investing";
                if (window.sidebar) {
                    // firefox
                    window.sidebar.addPanel(pageTitle, document.location.href, "");
                } else if (window.opera && window.print) {
                    // opera
	                var linker = document.createElement('a');
	                linker.setAttribute("href", document.location.href);
	                linker.setAttribute("title", pageTitle);
	                linker.setAttribute("rel", "sidebar");
	                linker.click();
                } else if (window.external) { 
                    // ie
                    window.external.AddFavorite(document.location.href, pageTitle);
                }
            }
        }
        
        // print and email page tools...
        var toolsBottom = document.getElementById("page_tools_bottom");
        if (toolsBottom) {
        
            // add buttons...
            var toolsInner = "<ul>";
            toolsInner += "<li><a href=\"#\" title=\"Print Page\" id=\"btn_print_page\"><img src=\"/res/img/btn_print.gif\" alt=\"Print Page\" width=\"66\" height=\"18\" /></a></li>";
            toolsInner += "<li><a href=\"#\" title=\"Email Page\" id=\"btn_email_page\"><img src=\"/res/img/btn_email.gif\" alt=\"Email Page\" width=\"66\" height=\"18\" /></a></li>";
            toolsInner += "</ul>";
            toolsInner += "<div class='pg_tools_email' id='emailPageContainer' style='display: none;'><form action='/' method='get'><label for='txtEmailAddress'>To</label><br/><input id='txtEmailAddress' type='text' value='Email Address' name='txtEmailAddress' size='19'/><br/><label for='txtFromName'>From</label><br/><input id='txtFromName' type='text' value='Your Name' name='txtFromName' size='19'/><br /><label for='txtEmailPageMsg'>Message</label><br /><textarea id='txtEmailPageMsg' rows='3' cols='20' name='txtEmailPageMsg'></textarea><input id='btn_send_email' name='btn_send_email' type='button' value='Send' name='Send'/><input type='button' id='btnCancelEmailPage' name='btnCancelEmailPage' value='Cancel' name='cancel'/></form><div id='emailPageReceipt'></div></div>";
            toolsBottom.innerHTML = toolsInner;
            
            // print page click handler...
            document.getElementById("btn_print_page").onclick = function() {
                window.print();
            }
            
            // email page click handler...
            document.getElementById("btn_email_page").onclick = function() {
            
                // display the form...
                if (document.getElementById("emailPageContainer")) {
                    document.getElementById("emailPageContainer").style.display = "block";
                    document.getElementById("btn_send_email").style.display = "inline";
                    document.getElementById("btnCancelEmailPage").value = "Cancel";
                    document.getElementById("emailPageReceipt").innerHTML = "";
                }

                // email address focus handler...
                document.getElementById("txtEmailAddress").onfocus = function() {
                    document.getElementById("txtEmailAddress").value = "";
                }
                // from name focus handler...
                document.getElementById("txtFromName").onfocus = function() {
                    document.getElementById("txtFromName").value = "";
                }

                // send email click handler...
                document.getElementById("btn_send_email").onclick = function() {
                
                    var emailAddress = document.getElementById("txtEmailAddress");
                    var fromName = document.getElementById("txtFromName");
                    var emailPageMsg = document.getElementById("txtEmailPageMsg");

                    if (emailAddress.value.length == 0 || emailAddress.value.toUpperCase() == "EMAIL ADDRESS") {
                        alert("You must provide an email address.");
                        emailAddress.focus();
                        return false;
                    }
                    if (fromName.value.length == 0 || fromName.value.toUpperCase() == "YOUR NAME") {
                        alert("You must provide your name.");
                        fromName.focus();
                        return false;
                    }
                    if (emailPageMsg.value.length == 0) {
                        alert("You must provide a message.");
                        emailPageMsg.focus();
                        return false;
                    }
                    var xmlHttpRequest = createXMLHttpRequest();
                    if (xmlHttpRequest == null) {
                        alert("Your browser does not support this feature.");
                    }

                    var ajaxUrl = "/ajax/EmailPage.aspx?to=" + escape(document.getElementById("txtEmailAddress").value) + "&from=" + escape(document.getElementById("txtFromName").value) + "&msg=" + escape(document.getElementById("txtEmailPageMsg").value) + "&url=" + escape(document.location.href) + "&pageTitle=" + escape(document.title);
                    xmlHttpRequest.open("GET", ajaxUrl, true);

                    xmlHttpRequest.onreadystatechange = function() {
                        try {
                            if(xmlHttpRequest.readyState == 4) {
                                if(xmlHttpRequest.status == 200) {
                                    document.getElementById("emailPageReceipt").innerHTML = "<br />Your email has been sent.";
                                    document.getElementById("btn_send_email").style.display = "none";
                                    document.getElementById("btnCancelEmailPage").value = "Close";
                                } else {
                                    document.getElementById("emailPageReceipt").innerHTML = "An error occurred:" + xmlHttpRequest.status + " " + xmlHttpRequest.statusText;
                                }
                            }
                        } catch(e) { 
                            // suppress..
                            xx = 1;
                        }
                    }

                    try {
                        // Send the Method Data
                        xmlHttpRequest.send(null);
                    } catch(e) { 
                        alert("An error occurred while sending the page."); 
                    }
                }
                
                // cancel email page event handler...
                document.getElementById("btnCancelEmailPage").onclick = function() {
                    document.getElementById("txtEmailAddress").value = "Email Address";
                    document.getElementById("txtFromName").value = "Your Name";
                    document.getElementById("txtEmailPageMsg").value = "";
                    document.getElementById("emailPageContainer").style.display = "none";
                }
                
            }
        }
        
    }
}

stylesheet = new function() {
	
	this.set = function(title) {
		var i, a, main;
		for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
			if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
				a.disabled = true;
				if(a.getAttribute("title") == title) a.disabled = false;
			}
		}
	}

	this.get = function() {
		var i, a;
		for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
			if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
		}
		return null;
	}

}

fontSizer = new function() {

	var defaultSize=0;

	this.sizes = new Array(null, 'larger', 'largest');
	
	this.decreaseElmId = "btn_decrease_font";
	this.increaseElmId = "btn_increase_font";
	this.decreaseActiveHTML = "<a href='' onclick='fontSizer.decrease();return false;' title='Decrease Text Size'><img src='/res/img/btn_text_minus.gif' alt='Decrese Text Size' title='' width='17' height='18' /></a>";
	this.increaseActiveHTML = "<a href='' onclick='fontSizer.increase();return false;' title='Increase Text Size'><img src='/res/img/btn_text_plus.gif' alt='Increase Text Size' title='' width='17' height='18' /></a>";
	this.decreaseInactiveHTML = "<img src='/res/img/btn_text_minus_inactive.gif' alt='' title='' width='17' height='18' />";
	this.increaseInactiveHTML = "<img src='/res/img/btn_text_plus_inactive.gif' alt='' title='' width='17' height='18' />";

	this.decrease = function(step) {
		if (!step) step=1;
		this.setSize(this.getSize()-step);
	}
	this.increase = function(step) {
		if (!step) step=1;
		this.setSize(this.getSize()+step);
	}
	this.setSize = function(size) {
		if (size<0) size=0;
		if (size>(this.sizes.length-1)) size=(this.sizes.length-1);
		stylesheet.set(this.sizes[size]);
		this.drawButtons();
		cookie.create('s',Number(size));
	}
	this.getSize = function() {
		var title = stylesheet.get();
		var size = findKey(this.sizes, title);
		return size;
	}
	this.store = function() {
		var size = this.getSize();
		cookie.create('s',Number(size));
	}
	this.drawButtons = function() {
		var currentSize = this.getSize();
		var decreaseElm = document.getElementById(this.decreaseElmId);
		var increaseElm = document.getElementById(this.increaseElmId);
		if (currentSize>0) {
			decreaseElm.innerHTML = this.decreaseActiveHTML;
		} else {
			decreaseElm.innerHTML = this.decreaseInactiveHTML;
		}
		if (currentSize<(this.sizes.length-1)) {
			increaseElm.innerHTML = this.increaseActiveHTML;
		} else {
			increaseElm.innerHTML = this.increaseInactiveHTML;
		}
	}
	
	this.init = function() {
		var sCookie = cookie.read("s");
		var initSize = sCookie ? sCookie : defaultSize;
		this.setSize(Number(initSize));
	}

}

// store the current size
window.onunload = function(e) {
	fontSizer.store();
}

// HELPER FUNCTIONS -----------------------------------------------------


// simple ajax call..
function createXMLHttpRequest() {
    if(window.XMLHttpRequest) {
        try { 
            xmlHttpRequest = new XMLHttpRequest();
        } catch(e) { return null; }
    } else if(window.ActiveXObject) {
        try {
            xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) { return null; }
        }
    } else return null;
    return xmlHttpRequest;
}

// finds a key that contains the value
function findKey(arrayHaystack, valueNeedle) {
	for (var i=0; i<arrayHaystack.length; i++) {
		if (arrayHaystack[i]==valueNeedle) return i;
	}
	return null;
}

// cookie read/write object
var cookie = new function() {
	this.create = function(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	}
	this.read = function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}
}

sfHover();
addIcons();
fontSizer.init();
//--><!]]>