//*****************************************************************************
// Do not remove this notice.
//
// Copyright 2001 by Mike Hall.
// See http://www.brainjar.com for terms of use.
//
// Modified by Trevor Mihalski, MortgageBot, LLC
//
//*****************************************************************************

// Determine browser and version.

function Browser(){

  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

var browser = new Browser();

// Global object to hold drag information.

var dragObj = new Object();
dragObj.zIndex = 0;

// Global popup iterator
var divCount = -1;

function dragStart(event, id){

  var el;
  var x, y;

  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Save starting positions of cursor and element.

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = -800 + "px";
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = -800 + "px";

  // Update element's z-index.

  //dragObj.elNode.style.zIndex = ++dragObj.zIndex;
  dragObj.elNode.style.zIndex = getNextPopupPosition();

  // Capture mousemove and mouseup events on the page.

  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event){

  var x, y;

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Move drag element by the same amount the cursor has moved.

  dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";

  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function dragStop(event) {

  // Stop capturing mousemove and mouseup events.

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
  }

}

function findPosX(obj){

  var curleft = 0;
  if (obj.offsetParent)
  {
    while (obj.offsetParent)
        {
            curleft += obj.offsetLeft;
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;

}

function findPosY(obj){

    var curtop = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curtop += obj.offsetTop;
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;

}

function jsPopup_show(id, parentId){

    thisToolTip = document.getElementById(id);
    thisParent = document.getElementById(parentId);

    var popUpType = id.substr(0,id.indexOf('_')); // not needed after popup code restructure

    var popUpPositionId = getNextPopupPosition();

    thisToolTip.style.left = popUpPositionId*20 + "px";
    thisToolTip.style.top = popUpPositionId*20 + "px";
    thisToolTip.style.zIndex = popUpPositionId;

    // snap floating div x over to link posX minus half div width minus an additional distance so it doesn't overlap the parent link
    // snap floating div y over to link posY

	// commented out 6-18-07 because of restructure of div display (now cascading view, not aligned with row)
    /*if (popUpType == "jsPopup"){
    	thisToolTip.style.left = findPosX(thisParent) - thisToolTip.offsetWidth/2 - 120 + "px"; // x
    	thisToolTip.style.top = findPosY(thisParent) + "px"; // y
    }else if (popUpType == "jsAPRPopup"){
    	thisToolTip.style.left = findPosX(thisParent) - thisToolTip.offsetWidth/2 - 104 + "px"; // x
    	thisToolTip.style.top = findPosY(thisParent) + "px"; // y
    }else if (popUpType == "jsLenderPopup1"){
    	thisToolTip.style.left = findPosX(thisParent) - thisToolTip.offsetWidth/2 + 275 + "px"; // x
    	thisToolTip.style.top = findPosY(thisParent) + "px"; // y
    }else if (popUpType == "jsLenderPopup2"){
    	thisToolTip.style.left = findPosX(thisParent) - thisToolTip.offsetWidth/2 + 180 + "px"; // x
    	thisToolTip.style.top = findPosY(thisParent) + "px"; // y
    }else if (popUpType == "jsLenderPopup3"){
        thisToolTip.style.left = findPosX(thisParent) - thisToolTip.offsetWidth/2 + 180 + "px"; // x
    	thisToolTip.style.top = findPosY(thisParent) + "px"; // y
    }else if (popUpType == "jsPopupAbout"){
    	thisToolTip.style.left = findPosX(thisParent) - thisToolTip.offsetWidth/2 + 180 + "px"; // x
    	thisToolTip.style.top = 200 + "px"; // y
    }else if (popUpType == "jsPopupWhy"){
	thisToolTip.style.left = findPosX(thisParent) - thisToolTip.offsetWidth/2 + 180 + "px"; // x
	thisToolTip.style.top = 300 + "px"; // y
    }else if (popUpType == "jsPopupLenders"){
	thisToolTip.style.left = findPosX(thisParent) - thisToolTip.offsetWidth/2 + 180 + "px"; // x
	thisToolTip.style.top = 400 + "px"; // y
    }else if (popUpType == "jsPopupHelp"){
    	thisToolTip.style.left = findPosX(thisParent) - thisToolTip.offsetWidth/2 + 360 + "px"; // x
    	thisToolTip.style.top = 100 + "px"; // y
    }*/

    thisToolTip.style.visibility = 'visible';

}

function jsPopup_hide(id){

    thisToolTip = document.getElementById(id);
    thisToolTip.style.visibility = 'hidden';
    // snap floating div x back over to 0
    thisToolTip.style.left = -1000 + "px"; // x
    // snap floating div y back over to 0
    thisToolTip.style.top = -1500 + "px"; // y
    
    }

function getNextPopupPosition(){

	if (divCount == 20){
		divCount = -1;
	}
	divCount++;
	//alert("divCount"+ divCount);
	return divCount;
}

function CallServerSideCode(originalValue){

	//document.body.style.cursor = 'wait';
	CallServer(originalValue);

}

function ReceivedValueFromServerSideCode(arg, context){

	var dataArr =new Array();
	dataArr = arg.split('|');
	//alert(dataArr[0]);
	//alert(dataArr[1]);
	//alert(dataArr[2]);
	if (dataArr[2] != ""){
		document.getElementById(dataArr[0]).innerHTML = dataArr[2];
		   //document.body.style.cursor = 'default';
		   jsPopup_show(dataArr[0],dataArr[1]);

	}

	//return document.getElementById(dataArr[0]),document.getElementById(dataArr[1]);

}

function DisplayPopUp(url,windowName,w,h,hasToolbar,hasDirectories,isResizable,hasStatus,isScrollable){

	var strParams = String("width="+w+","+"height="+h+","+"toolbar="+hasToolbar+","+"directories="+hasDirectories+","+"resizable="+isResizable+","+"status="+hasStatus+","+"scrollbars="+isScrollable);
	window.open(url,windowName,strParams);

}

function DisplaySearchingPopup(){



	// "turn off" all divs
	var x = document.getElementsByTagName('div');
	for (var i=0;i<x.length;i++){
		x[i].style.visibility = 'hidden';
	}

	// "turn on" preloader div
	if(document.getElementById("divPreloader"))
	document.getElementById("divPreloader").style.visibility = "visible";

	document.body.scrollLeft = 0 +"px";
	document.body.scrollTop = 0 +"px";

	document.body.style.overflow = "hidden";

	if (document.all){
		document.documentElement.style.overflow = "hidden";
		document.documentElement.scrollTop = 0 +"px";
	}

}