﻿/************************************************************
*
*  TL Master.js
*
*  Do not modify this file.  Website specific JS should be in Site.js or in a page-specific JS file.
*  
************************************************************/

addEventHandler("load", window_load, window);

var signatureBoxes = new Array();
var continueButton;
var completedCheckbox;
var dataEnrolled;
var btnSubmitCompletedPackage = null;
var inputs = new Array();
var dataDeclined;
var rblDirectDepositEnrollmentRadioButtons = new Array();

function clearMe(e)
{
    var target = e.srcElement || e.target;
    if(!target.isChanged)
    {
       target.value="";
    }
    else
    
    target.isChanged=true;
    
}
function window_load(e)
{
    
	inputs = document.getElementsByTagName("input");
	var textareas = document.getElementsByTagName("textarea");
	var images = document.getElementsByTagName("img");
	//
	//Hook up keypressed events for all textbox inputs
	//
	var targetTxt=document.getElementById("ctl00_sendPageControl_tbTargetAddress");
	
	if(targetTxt)
	{
	    targetTxt.isChanged=false;
	    addEventHandler("focus",clearMe,targetTxt);
	}
	for (var i = 0;i<inputs.length;i++)
	{
		if (inputs[i].type == "text")
		{
			//check the input as it goes in
			addEventHandler("keypress", sanitize, inputs[i]);
			
			//and check the input as it goes out
			addEventHandler("change", sanitizeOnChange, inputs[i]);
		}
	}
	
	//
	//Hook up onChange events for all textarea inputs
	//
	for (var i = 0;i<textareas.length;i++)
	{
		addEventHandler("change", sanitizeOnChange, textareas[i]);
	}
	addEventHandler("keypress",noPostBack,window);
    
    for(var i=0; i<inputs.length;i++)
    {
        var id = inputs[i].id;
        id = id.toLowerCase();
        if(id.indexOf("signature")>=0)
        {
            signatureBoxes.push(inputs[i]);
            addEventHandler("click",validateSignaturesGlobalFunc,inputs[i]);
        }
        else if((id.indexOf("insertbutton")>=0)||(id.indexOf("updatebutton")>=0))
        {
            continueButton = inputs[i];
        }
        else if (id.indexOf("btnsubmitcompletedpackage") >= 0 && btnSubmitCompletedPackage == null)
        {
            btnSubmitCompletedPackage = inputs[i];
        }
        else if (id.indexOf("dataenrolled") >= 0)
        {
            dataEnrolled = inputs[i];
            addEventHandler("click", dataEnrolled_Checked, inputs[i]);
        }
        else if (id.indexOf("datadeclined") >= 0)
        {
            dataDeclined = inputs[i];
            addEventHandler("click", dataDeclined_Checked, inputs[i]);
        }
    }
    validateSignaturesGlobalFunc(null);
    dataEnrolled_Checked(null);
    
    //
    //  Hook up onBlur event on any required text inputs that are not covered by masks.
    //
    for (var i = 0; i < inputs.length; ++i)
    {
        var currentId = inputs[i].id;
        currentId = currentId.toLowerCase();
        if (currentId.indexOf("required") >= 0)
        {
            addEventHandler("blur", CheckRequiredTextInput, inputs[i]);
        }
    }
	 
     //hook up any anchor tags with the css class popUp
     var anchors = document.getElementsByTagName("a");
     
     for(var i=0; i<anchors.length; i++)
     {
        var className= anchors[i].className;
       
        if(className)
        {
            if(className.indexOf("popUp")>=0)
            {
                
                addEventHandler("click",popUpLink,anchors[i]);
            }
        }
     }
     
     for (var i = 0; i < images.length; ++i)
     {
        id = images[i].id;
        id = id.toLowerCase();
        if (id.indexOf("imgcompletecheckbox") >= 0)
        {
            completedCheckbox = images[i];
            addEventHandler("click", imgCompleteCheckbox_Clicked, completedCheckbox);
            break;
        }
     }
     
    // call the site window onLoad function if it exists
    if (typeof Site_Window_Load == 'function')
    {
        Site_Window_Load(e);
    }
    // call the page-specific window onLoad function if it exists
    if (typeof Page_Window_Load == 'function')
    {
        Page_Window_Load(e);
    }
	 
}//window_load
function popUpLink(e)
{
     var tgt = e.srcElement || e.target;
     window.open(tgt.href,'RMIPopUp','');
     cancelEventDefault(e);
}

function validateSignaturesGlobalFunc(e)
{
  var enableBtn;
  enableBtn=true;
  if(continueButton)
  {
      for(var i=0; i<signatureBoxes.length;i++)
      {
        var cb = signatureBoxes[i];
      
         enableBtn = enableBtn && cb.checked;
      }
      continueButton.disabled=!enableBtn;
    }
}
function noPostBack(e)
{
    if (e.keyCode != 13) {return;}
    cancelEventDefault(e);
}

//Called on EVERY keypress event for EVERY text input
function sanitize(e)
{
    /*IE uses keycode on this event
    Firefox uses charcode for characters, keycode for the arrow keys etc.
    IE doesn't register a key press event for the arrow keys, but firefox uses
    the keycode 39 for the right arrow.  That matches the charcode 39 for the apostraphe
    making the arrow key throw the alert error in firefox.*/
    if(typeof e.isChar != undefined)
	{	    
	    if(e.charCode==0)
	    {
	        return;
	    }
	}
	
	var code = e.charCode || e.keyCode;
	var match = String.fromCharCode(code).match(/[<>']/);
	
	if (match)
	{
		XBElem.prototype.cancelEventDefault(e);
		alert("Invalid character. " + match[0] + " is not allowed.");
	}
}

function sanitizeOnChange(e)
{
	var tgt = e.srcElement || e.target;
	/*NOTE: THE ONLY USE FOR TEXT AREAS ON A STATIC SITE IS TO SEND COMMENTS TO THE WEBMASTER.  THERE IS
	NO DATA ACCESS SO WE ARE ALLOWING THE '*/
	var reBaddies = new RegExp("[<>]", "g");
	var match = tgt.value.match(reBaddies);
	var baddies = "";
	tgt.value = tgt.value.replace(reBaddies, "");
	
	if (match)
	{
		for (var i = 0;i<match.length;i++)
		{
			if (baddies.indexOf(match[i]) == -1)
			{
				baddies += "\n" + match[i];
			}
		}
		
		alert("The following characters are not allowed and have been removed: " + baddies);
	}
}

//ctl00_ContentPlaceHolder1_formview1_rfv_
function CheckRequiredTextInput(e)
{    
    // Get the text from the arguments sent in.
    var text = e.Value;
    
    //alert(e.srcElement.id);
    //alert(e.type);
    
//    if (TrimString(text) == "")
//    {
//        // Not valid. Print error message and focus on the text box.
//        //document.getElementById("ctl00_ContentPlaceHolder1_formview1_rfv_" + e.id)
//        //oSrc.focus();
//    }
}

var checkedImageUrl = "Images/CompleteStep.gif";
var uncheckedImageUrl = "Images/IncompleteStep.gif";
function imgCompleteCheckbox_Clicked(e)
{
    var imgSrc = completedCheckbox.src;
    imgSrc = imgSrc.toLowerCase();
    if (imgSrc.indexOf("incomplete") >= 0)
    {
        // Display the checked image.
        completedCheckbox.src = checkedImageUrl;
        btnSubmitCompletedPackage.disabled = false;
    }
    else
    {
        completedCheckbox.src = uncheckedImageUrl;
        btnSubmitCompletedPackage.disabled = true;
    }
}

function dataEnrolled_Checked(e)
{
    if (dataEnrolled != null)
    {
        var directDepositRows = document.getElementsByTagName("tr");
        for (var i = 0; i < directDepositRows.length; ++i)
        {
            if (directDepositRows[i].className == "directDepositCanHide")
            {
                if (dataEnrolled.checked)
                {
                    // Show everything.
                    directDepositRows[i].style.visibility = "visible";
//                    directDepositRows[i].style.display = "table-row";
                }
                else
                {
                    // Hide everything.
                    directDepositRows[i].style.visibility = "hidden";
//                    directDepositRows[i].style.display = "none";
                }
            }
        }
    }
}




function ValidatePage(source, args)
{
    for (var i = 0; i < Page_Validators.length; ++i)
    {
        if (Page_Validators[i].id.indexOf("custom_ValidatePage") >= 0) break;
        ValidatorValidate(Page_Validators[i]);
        if (!Page_Validators[i].isvalid)
        {
            args.IsValid = false;
            alert("Please make sure you have filled out all required information and that all dates are correct.");
            return;
        }
    }
    
    args.IsValid = true;
}