﻿var cmErrorMessage = "";

function getEvent(e)
{
	/* W3C/MSIE conflict. window.event is non-standard. */
	return e ? e : window.event;
}

function getEventTarget(e)
{
	var target;
											
	if (e.target)
	{
		target = e.target;
	}
	else if (e.srcElement)
	{
		target= e.srcElement;
	}
											
	return target;
}

function isChildOf(element, ancestor)
{
	while (element.parentNode)
	{
		if (element.parentNode == ancestor)
		{
			return true;
		}

		element = element.parentNode;
	}

	return false;
}

function getElementPagePosition(obj)
{
	

	/* taken (almost verbatim) from http://quirksmode.org/js/findpos.html */
	var coords = new Object();                                                                                
	coords["x"] = 0;
	coords["y"] = 0;
										
	if (obj.offsetParent)
	{
		do {
			coords["x"] += obj.offsetLeft;
			coords["y"] += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
							
	return coords;
}



function ratesToggle(ElemId)
{
	var headerDiv = document.getElementById(ElemId);
	var anchors = headerDiv.getElementsByTagName("a");
	var showHide = anchors[0].getElementsByTagName("span")[0];
	var detailsId = ElemId.replace("Header", "Detail");

	if (document.getElementById(detailsId).style.display == "block")
	{
		document.getElementById(detailsId).style.display = "none";
		showHide.innerHTML = showHide.innerHTML.replace("Hide ", "Show ");
		headerDiv.className = "ratesHeaderCollapsed";
	}
	else
	{
		document.getElementById(detailsId).style.display = "block";
		showHide.innerHTML = showHide.innerHTML.replace("Show ", "Hide ");
		headerDiv.className = "ratesHeaderExpanded";
	}	
}

function faqSetup()
{
	var dds = document.getElementsByTagName("dd");
	var dts = document.getElementsByTagName("dt");

	for (var i=0; i<dds.length; i++)
	{
		dds[i].style.display = "none";
		dds[i].collapsed = true;

		dts[i].childNodes[0].onclick = faqToggle;
		dts[i].childNodes[0].definition = dds[i];

		/* put a click event handler on the whole DT, so the icon can also be clickable */
		dts[i].onclick = faqToggleDT;
	}

	/* If someone links with a local anchor, open up the corresponding definition */
	var parts = window.location.toString().split("#")


	/* add event handlers to the section titles (h2 elements) */
	document.getElementById("section1").childNodes[0].onclick = faqSectionToggle;
	document.getElementById("section2").childNodes[0].onclick = faqSectionToggle;

	/* set styling for headers */
	document.getElementById("section1").childNodes[0].className = "headerExpanded";
	document.getElementById("section2").childNodes[0].className = "headerCollapsed";

	/* set styling for definition lists */
	document.getElementById("section1").getElementsByTagName("dl")[0].collapsed = false;
	document.getElementById("section2").getElementsByTagName("dl")[0].collapsed = true;
	document.getElementById("section2").getElementsByTagName("dl")[0].style.display = "none";


	if (parts.length == 2 && parts[1] != "")
	{
		var def = document.getElementById(parts[1]).parentNode.childNodes[0].definition;
		def.collapsed = false;		
		def.style.display = "block";		

		var target = document.getElementById(parts[1]);

		if (isChildOf(target, document.getElementById("section1")))
		{
			document.getElementById("section1").childNodes[0].className = "headerExpanded";
			document.getElementById("section1").getElementsByTagName("dl")[0].collapsed = false;
		}

		if (isChildOf(target, document.getElementById("section2")))
		{
			document.getElementById("section2").childNodes[0].className = "headerExpanded";
			document.getElementById("section2").getElementsByTagName("dl")[0].collapsed = false;
			document.getElementById("section2").getElementsByTagName("dl")[0].style.display = "block";
		}
	}
	else
	{
		/* default to the first FAQ being open */
		dds[0].style.display = "block";
		dds[0].collapsed = false;
		dts[0].className = "expanded";
	}
}

function faqToggle(e)
{
	var target = getEventTarget(getEvent(e));
	
	var def = target.definition;

	if (def.collapsed == true)
	{
		def.collapsed = false;
		def.style.display = "block";

		target.parentNode.className = "expanded";		
	}
	else
	{
		def.collapsed = true;
		def.style.display = "none";

		target.parentNode.className = "";
	}
}

function faqToggleDT(e)
{
	var target = getEventTarget(getEvent(e));

	if (target.tagName.toString().toLowerCase() == "dt")
	{
		var def = target.childNodes[0].definition;

		if (def.collapsed == true)
		{
			def.collapsed = false;
			def.style.display = "block";

			target.className = "expanded";
		}
		else
		{
			def.collapsed = true;
			def.style.display = "none";

			target.className = "";
		}
	}
}

function faqSectionToggle(e)
{
	var target = getEventTarget(getEvent(e));	

	var items = target.parentNode.getElementsByTagName("dl")[0];	

	if (items.collapsed == true)
	{
		items.collapsed = false;		
		items.style.display = "block";
		target.className = "headerExpanded";
	}
	else
	{
		items.collapsed = true;		
		items.style.display = "none";
		target.className = "headerCollapsed";
	}
}

function popAssumptions(State, Vanity)
{
	var url = "/Assumptions.aspx?state=" + State + "&vanity=" + Vanity;

	window.open(url, "assumptions", 'scrollbars=1,toolbar=0,location=0,resizable=1,menubar=0,width=720,height=700');

	return false; 
}

function showLanguagePopup(LanguageImage)
{
	var img = document.getElementById(LanguageImage.id);
	
	var pop = document.getElementById("languagePop");
	pop.style.left = img.offsetLeft + 100 + "px";
	pop.style.top = img.offsetTop + 5 + "px";
	pop.style.display = "block";
	pop.innerHTML = LanguageImage.id;
}


function pseudoDefaultButton(e)
{
	var evt = e || window.event;
}

function showAllFAQAnswers()
{
	var dds = document.getElementsByTagName("dd");
	
	for (var i = 0; i< dds.length; i++)
	{
		dds[i].style.display = "block";
	}

	var dls = document.getElementsByTagName("dl");
	
	for (var i = 0; i< dls.length; i++)
	{
		dls[i].collapsed = false;
		dls[i].style.display = "block";
	}
	
	document.getElementById("section1").childNodes[0].className = "headerExpanded";
	document.getElementById("section2").childNodes[0].className = "headerExpanded";
}

function getOuterHTML(object) 
    {
        /* firefox doesn't support outerHTML */
        var element;
        if (!object) return null;
        element = document.createElement("div");
        element.appendChild(object.cloneNode(true));
        return element.innerHTML;
    }

function analyzeAnchors()
{
    var anchors = document.getElementsByTagName("a");

    document.write("Anchors analysis<hr/>");
    document.write("Anchor count: " + anchors.length);

    var uniqueNames = new Object();

    document.write("<xmp>");
    for (var i = 0; i<anchors.length; i++)
    {
        if (anchors[i]["name"] == "")
        {
            document.write("\nUnnamed link:\t" + getOuterHTML(anchors[i]));
        }
    }

    for (var i = 0; i<anchors.length; i++)
    {
        if (uniqueNames[anchors[i]["name"]])
        {
            document.write("\nDuplicate name:\t" + getOuterHTML(anchors[i]));
        }
        else
        {
            uniqueNames[anchors[i]["name"]] = 1;
        }
    }

    document.write("\nEND\n</xmp>");
}

function createCMError(errorMessage) 
{
	try
	{
		var pageId;

		var lines = errorMessage.split("\n");

		for (i = 0; i < lines.length; i++)
		{
			if (lines[i].length > 1)
			{
				var parts = lines[i].split("|");

				//alert("Coremetrics Error:\n page: " + parts[0] + "\nCode: " + parts[1] + "\nMessage: " + parts[2]);
				
				switch (parts[0])
				{
					case "searchform":
						pageId = "MHE:Tool:Mortgage:MLO;Search_Error";
						break;
					case "contactme":
						pageId = "MHE:Tool:Mortgage:MLO;Contact_Me";
						break;
				}
								
				cmCreateCustomError(pageId, null, null, null, parts[1], "MHE:Tool:Mortgage:MLO", parts[2]);
				//alert("after");
			}
		}
    }
    catch (exception) 
	{
		//alert(exception);
    }
}

function popWinBare(URL, Width, Height)
{
	var config = 'scrollbars=0,toolbar=0,location=0,menubar=0,width=' + Width.toString() + ',height=' + Height.toString();
	window.open(URL, "bare", config);
}

function showPopUpDiv(triggerId, divId, left, top)
{
	if (window["lastPopId"] != null)
	{
		/* make sure the last popup is hidden */
		document.getElementById(window["lastPopId"]).style.display = "none";
	}
		
	var pop = document.getElementById(divId);
	pop.style.display = "block";
	pop.style.left = left.toString() + "px";
	pop.style.top = top.toString() + "px";

	pop["triggerId"] = triggerId;


	var divs = pop.getElementsByTagName("div");
	var anchors = divs[0].getElementsByTagName("a");
	anchors[0].focus();

	window["lastPopId"] = divId;

//	alert(pop["triggerId"]);
}

function hidePopUpDiv(divId)
{
	var pop = document.getElementById(divId);

	var triggerId = pop["triggerId"];

	//alert(triggerId);

	pop.style.display = "none";
	//alert(document.getElementById(triggerId));


	document.getElementById(pop["triggerId"]).focus();
}        
