﻿// JScript File
var validDateMin = new Date("1970/01/01");
var validDateMax = new Date("2079/12/31");

//window.history.forward(1);

function AttachEvent(obj,evt,fnc,useCapture){
	// modified: 02.07.2006 -CL added code to test for non-null object
	if (!useCapture) {
	    useCapture=false;
	}
	if ((obj) && (obj.addEventListener)){
		obj.addEventListener(evt,fnc,useCapture);

		return true;
	} else if ((obj) && (obj.attachEvent)) {
	    return (obj.attachEvent("on"+evt,fnc)!=null?true:false);
	} else {
		if (obj) {
			MyAttachEvent(obj,evt,fnc);
			obj['on'+evt]=function(){ MyFireEvent(obj,evt) };
			return true;
		}
	}
	return false;
}
 
function DetachEvent(obj,evt,fnc,useCapture){
	if (!useCapture) {
	    useCapture=false;
	}
	if ((obj) && (obj.addEventListener)){
		obj.removeEventListener(evt,fnc,useCapture);
		return true;
	} else if ((obj) && (obj.attachEvent)) {
	    return (obj.detachEvent("on"+evt,fnc)!=null?true:false);
	} else {
		if (obj) {
			MyDetachEvent(obj,evt,fnc);
			obj['on'+evt]=function(){ MyFireEvent(obj,evt) };
			return true;
		}
	}
	return false;
} 

//The following are for browsers like NS4 or IE5Mac which don't support either
//attachEvent or addEventListenerfunction MyAttachEvent(obj,evt,fnc){
function MyAttachEvent(obj,evt,fnc){
	if (!obj.myEvents) obj.myEvents={};
	if (!obj.myEvents[evt]) obj.myEvents[evt]=[];
	var evts = obj.myEvents[evt];
	evts[evts.length]=fnc;
}

function MyDetachEvent(obj,evt,fnc){
    if (obj.myEvents)
    {
        if (obj.myEvents[evt])
        {
	        var evts = obj.myEvents[evt];
	        evts.length = 0;
	    }
	}
}

function GetCompanyFields(Desc)
{
    WebForm_DoCallback('__Page',Desc,UpdateFields,"",null,true);
}

function UpdateFields(fieldNameValuePairs)
{
    var fieldNameValuePairsArray = new Array();
    fieldNameValuePairsArray = fieldNameValuePairs.split("|");
    var onePair;
    var onePairArray = new Array(2);
    var tempField;
    for (loop=0; loop < fieldNameValuePairsArray.length; loop++)
    {
        onePair = fieldNameValuePairsArray[loop];
        //alert('onePair=' + onePair);
        onePairArray = onePair.split("=");
        tempField = document.getElementById("ctl00_MainContent_FormView1_" + onePairArray[0]);
        if (tempField != null)
        {
            assignValue(tempField, onePairArray[1]);
        } else if ( document.getElementById("ctl00_MainContent_" + onePairArray[0]) != null ) {
            tempField = document.getElementById("ctl00_MainContent_" + onePairArray[0]);
            assignValue(tempField, onePairArray[1]);
        }
    }
    // added to bind controls after function called
    try { 
        UpdateFieldsComplete();
    } catch (e) {
    }
}

// added to determine if a function exists prior to running it
// does not function well in i.e. perhaps not conforming to standards
function isFun(object) {
    return typeof(object) == 'function';
}

function assignValue(field, value) {
    //alert('assignValue(' + field.type + ', ' + value + ')');
    switch(field.type) {
    case 'checkbox':
        if ( value == "True" ) {
            field.checked = true;
        } else {
            field.checked = false;
        }
        break;
    case 'label':
        field.innerHTML = value;
        break;
//        field.onchange();
    case 'select-one':
    case 'select-multiple':
    // special case will work on code if needed later
    case 'textarea':
    case 'password':
    case 'text':
    case 'hidden': field.value = value;
                   break;
    default:
        field.innerHTML = value;
    }
}
function assignValueToId(fieldId,value){
    var field = document.getElementById('ctl00_MainContent_FormView1_' + fieldId);
    if ( field != null ) {
        assignValue(field,value);
    } else {
        field = document.getElementById('ctl00_MainContent_' + fieldId);
        if ( field != null ) {
            assignValue(field,value);
        }
    }
}
var panes = new Array();
function selectTab(containerId, defaultTabId) {
    if ( document.getElementById(containerId) != null ) {
        panes[containerId] = new Array();
        var maxHeight = 0; var maxWidth = 0;
        var container = document.getElementById(containerId);
        var paneContainer = container.getElementsByTagName("div")[0];
        var paneList = paneContainer.childNodes;
        for (var i=0; i < paneList.length; i++ ) {
			var pane = paneList[i];
			if (pane.nodeType != 1) { continue };
			if (pane.offsetHeight > maxHeight) maxHeight = pane.offsetHeight;
			if (pane.offsetWidth  > maxWidth ) maxWidth  = pane.offsetWidth;
			panes[containerId][pane.id] = pane;
			pane.style.display = "none";
        }
        paneContainer.style.height = maxHeight + "px";
        paneContainer.style.width  = maxWidth + "px";
        document.getElementById(defaultTabId).onclick();
    }
}


function showPane(paneId, activeTab) {
    // make tab active class
    // hide other panes (siblings)
    // make pane visible
    if ( typeof(document.getElementById(paneId)) != 'undefined') {  
        for (var con in panes) {
            activeTab.blur();
            activeTab.className = "tab-active";
            if (panes[con][paneId] != null) { // tab and pane are members of this container
                  var pane = document.getElementById(paneId);
                  pane.style.display = "block";
                  var container = document.getElementById(con);
                  var tabs = container.getElementsByTagName("ul")[0];
                  var tabList = tabs.getElementsByTagName("a")
                  for (var i=0; i<tabList.length; i++ ) {
                    var tab = tabList[i];
                    if (tab != activeTab) tab.className = "tab-disabled";
                  }
                  for (var a in panes[con]) {
                        //pane = panes[con][a];
                        if ( a != paneId) {
//							alert('grabbing by id'+a);
							pane = document.getElementById(a);
							if (pane == undefined) continue;
							if (pane.id == paneId) continue;
							pane.style.display = "none"
						}
                  }
            }
        }
  }
  return false;    
}

function showPaneWithFocus(paneId, activeTab, fieldToFocus)
{
    showPane(paneId, activeTab);
    for ( var x=0; x<document.forms[0].elements.length;x++ ) 
    {
        if (document.forms[0].elements[x].id == fieldToFocus)
        {
            document.forms[0].elements[x].focus();
            try { document.forms[0].elements[x].select(); } catch (exception) { }
            break;
        }
    }
}

function validateDateNorm(inputName,e) {
    var inputButton = document.getElementById( inputName + 'Image' );
    var inputField = document.getElementById( inputName + 'TextBox' );
    var fieldDate = new Date(inputField.value);
    if ( inputField.value != '' && (isNaN(fieldDate) || fieldDate > validDateMax || fieldDate < validDateMin ) ) {
        alert('Invalid date entered. Format is MM/DD/YYYY in the range (' + (validDateMin.getMonth()+1) + '/' + validDateMin.getDate() + '/' + validDateMin.getFullYear() + ' - ' + (validDateMax.getMonth()+1) + '/' + validDateMax.getDate() + '/' + validDateMax.getFullYear() + '). Try again.');
        inputField.value='';
        e = null;
        inputField.focus();
        inputButton.click();
    } else {
        if ( inputField.value != "" ) {
            inputField.value = (fieldDate.getMonth()+1) + '/' + fieldDate.getDate() + '/' + fieldDate.getFullYear();
        }
    }
}

function validateDateNormSpecial(inputName,e) {
//    if (!e) var e = window.event;
//    alert(this);
    var inputField = document.getElementById( inputName );
    var inputButton = document.getElementById( inputName + 'Image' );
    var fieldDate = new Date(inputField.value);
    if ( inputField.value != '' && (isNaN(fieldDate) || fieldDate > validDateMax || fieldDate < validDateMin ) ) {
        alert('Invalid date entered. Format is MM/DD/YYYY in the range (' + (validDateMin.getMonth()+1) + '/' + validDateMin.getDate() + '/' + validDateMin.getFullYear() + ' - ' + (validDateMax.getMonth()+1) + '/' + validDateMax.getDate() + '/' + validDateMax.getFullYear() + '). Try again.');
        inputField.value = '';
        inputField.focus();
    } else {
        if ( inputField.value != "" ) {
            inputField.value = (fieldDate.getMonth()+1) + '/' + fieldDate.getDate() + '/' + fieldDate.getFullYear();
        }
    }
}

function validateDateShort(inputName,e) {
    var inputButton = document.getElementById( inputName + 'Image' );
    var inputField = document.getElementById( inputName + 'TextBox' );
    var dateArray = inputField.value.split('/',2);
    // month is dateArray[0]-1 because of wierd javascript behavior where months start at 0
    var fieldDate = new Date(dateArray[1],dateArray[0]-1,1);
    if ( inputField.value != '' && (isNaN(fieldDate) || fieldDate > validDateMax || fieldDate < validDateMin ) ) {
        alert('Invalid date entered. Format is MM/YYYY in the range (' + (validDateMin.getMonth()+1) + '/' + validDateMin.getFullYear() + ' - ' + (validDateMax.getMonth()+1) + '/' + validDateMax.getFullYear() + '). Try again.');
        inputField.value='';
        e = null;
        inputField.focus();
        inputButton.click();
    } else {
        if ( inputField.value != "" ) {
            inputField.value = (fieldDate.getMonth()+1) + '/' + fieldDate.getFullYear();
        }
    }
}

function callCalendar(inputName) {
    var inputButton = inputName + 'Image';
    var inputField = inputName + 'TextBox';
    alert(inputButton + ' ' + inputField);
	Calendar.setup( { inputField : inputField, ifFormat : "%m/%d/%Y", eventName: 'click', button : inputButton });
	eval('AttachEvent(document.getElementById(\'' + inputField + '\'),\'blur\',function () { validateDateNorm(\'' + inputName + '\',this) },true)');
};
function callCalendarSpecial(inputName) {
    var inputButton = inputName + 'Image';
    var inputField = inputName;
	Calendar.setup( { inputField : inputField, ifFormat : "%m/%d/%Y", eventName: 'click', button : inputButton });
	eval('AttachEvent(document.getElementById(\'' + inputField + '\'),\'blur\',function (e) { validateDateNormSpecial(\'' + inputName + '\',e) },true)');
//	AttachEvent(document.getElementById(inputField),'blur',function(e) { if (!e) var e = window.event; validateDateNormSpecial(this.id,e); }, false);
//	AttachEvent(document.getElementById(inputField),'blur',validateDateNormSpecial, false);
}
function callCalendarSHORT(inputName) {
    var inputButton = inputName + 'Image';
    inputField = inputName + 'TextBox';
	Calendar.setup( { inputField : inputField, ifFormat : "%m/%Y", eventName: 'click', button : inputButton });
	eval('AttachEvent(document.getElementById(\'' + inputField + '\'),\'blur\',function () { validateDateShort(\'' + inputName + '\') },false)');
};    
function MDM_openHelpWindow(theKeyword)
{ 
	// Note: The MiracleForTheWeb part is added during development and should not see production.
	var theURL = "/Members/Screens/ShowHelp.aspx?kw=" + theKeyword;
//	var theURL = "/MiracleForTheWeb/Members/Screens/ShowHelp.aspx?kw=" + theKeyword;
  var _W=window.open(theURL,'MFTW','width=755,height=465,scrollbars=no');
	  _W.focus();
      _W.moveTo(50,50); 
} 

function SetFocusToFirst()
{
    for ( var x=0; x<document.forms[0].elements.length;x++ ) {
        // alert(document.forms[0].elements[x].id + ':' + document.forms[0].elements[x].type);
        if ((( document.forms[0].elements[x].type == 'text' ) ||
             ( document.forms[0].elements[x].type == 'textarea' )) && 
            (!(document.forms[0].elements[x].disabled)) &&
            (document.forms[0].elements[x].style.display != "none") && 
// for whatever reason this was causing problems so commented it out if we run across objects using this
//  methodology we should change them over anyway
//            ((''+document.forms[0].elements[x].style.visibility) != "hidden") 
            (document.forms[0].elements[x].className != "numericTextDisabled")
            ) 
        {
            //alert(document.forms[0].elements[x].id);
            //    alert(document.forms[0].elements[x].className);
            if ( document.forms[0].elements[x].className != 'inputtextDisabled' ) {
                try  {
                    document.forms[0].elements[x].focus();
                    document.forms[0].elements[x].select();
                } catch (exception) { }
            }
            break;
        }    
    }
}

function DelayedSetFocus()
{
//    var loanNumberSection = document.getElementById('LoanNumberContainer');
//    var boxTitleSection = document.getElementById('boxTitle');
    //alert(loanNumberSection);
    //alert(boxTitleSection);
    //alert(boxTitleSection.offsetHeight);
//    if ((boxTitleSection != null) && (loanNumberSection != null))
//        loanNumberSection.style.height = boxTitleSection.offsetHeight + 'px';
    //alert(loanNumberSection.style.height);
    setTimeout("SetFocusToFirst()", 1);
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function MM_findObj(n, d) { //v4.01
    var p,i,x;  
    if(!d) 
    d=document; 
    if ((p=n.indexOf("?"))>0&&parent.frames.length) 
    {
        d=parent.frames[n.substring(p+1)].document; 
        n=n.substring(0,p);
    }
    if (!(x=d[n])&&d.all) 
        x=d.all[n]; 
    for (i=0;!x&&i<d.forms.length;i++) 
        x=d.forms[i][n];
    for (i=0;!x&&d.layers&&i<d.layers.length;i++) 
        x=MM_findObj(n,d.layers[i].document);
    if (!x && d.getElementById) 
        x=d.getElementById(n); 
    return x;
}

function MM_showHideLayers() 
{ //v6.0
    var i,p,v,obj,args=MM_showHideLayers.arguments;
    for (i=0; i<(args.length-2); i+=3) 
        if ((obj=MM_findObj(args[i]))!=null) 
        { 
            v=args[i+2];
            if (obj.style) 
            { 
                obj=obj.style; 
                v = (v=='show')?'visible':(v=='hide')?'hidden':v; 
            }
            obj.visibility=v; 
        }
}

function MM_swapImgRestore() 
{ //v3.0
    var i,x,a=document.MM_sr; 
    for (i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) 
        x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; 
    document.MM_sr=new Array; 
    for(i=0;i<(a.length-2);i+=3)
    if ((x=MM_findObj(a[i]))!=null)
    {
        document.MM_sr[j++]=x; 
        if(!x.oSrc) 
            x.oSrc=x.src; 
        x.src=a[i+2];
    }
}

AttachEvent(window, 'load', DelayedSetFocus, false);

function selectField(e) {
    var targ;
    if (!e) var e = window.event;
    if (e.target) targ = e.target; else if (e.srcElement) targ = e.srcElement;
    if ( targ.select != null ) targ.select();
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    return false;
}

if (document.forms[0])
{
    for( var x=0; x<document.forms[0].elements.length; x++ ) {
        if ( document.forms[0].elements[x].type == 'text' ) {
            AttachEvent(document.forms[0].elements[x], 'focus', selectField, false);
        }
    }
}

