﻿// JScript File

function GetIEVersion()
{
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
	{
		//test for MSIE x.x;
		var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number;
		if (ieversion>=8)
		{
			return 8;
		}
		else if (ieversion>=7)
		{
			return 7;
		}
		else if (ieversion>=6)
		{
			return 6;
		}
		else if (ieversion>=5)
		{
			return 5;
		}
	}
	else
	{
		return -1;
	}
}
        
function DoNothing(){}

function setFieldOnOpenerForm(ControlId, val)
{
    window.opener.document.getElementById(ControlId).value = val;
}

function GetPosition(Element)
{
    var coordinates=new Array(2)
    var xPos = 0;
    var yPos = 0;
    while( Element != null )
    {
        yPos += Element.offsetTop;
        xPos += Element.offsetLeft;
        Element = Element.offsetParent;
    }
    coordinates[0] = xPos;
    coordinates[1] = yPos;
    
    return coordinates;
}

function RepositionElementById(BaseElementId, ElementToBeMovedId, MoveLeft, MoveTop)
{
	var ElementToBeMoved = document.getElementById(ElementToBeMovedId);
	var BaseElement = document.getElementById(BaseElementId);
    if(ElementToBeMoved != null && BaseElement != null)
    {
		var xPos = 0;
		var yPos = 0;
		var coordinates = GetPosition(BaseElement);
		xPos = coordinates[0] + MoveLeft;
		yPos = coordinates[1] + MoveTop;
		ElementToBeMoved.style.left = xPos + 'px';
		ElementToBeMoved.style.top = yPos + 'px';
    }
}


function RepositionElement(Element, IdOfElementToBeMoved, MoveLeft, MoveTop)
{
    var browser = navigator.appName;
    var xPos = 0;
    var yPos = 0;
    var coordinates = GetPosition(Element);
    xPos = coordinates[0] + MoveLeft;
    yPos = coordinates[1] + MoveTop;
    ElementToBeMoved = document.getElementById(IdOfElementToBeMoved);
    if (browser=="Netscape")
    {
        ElementToBeMoved.style.left = xPos + 'px';
        ElementToBeMoved.style.top = yPos + 'px';
    }
    else if (browser=="Microsoft Internet Explorer")
    {
        ElementToBeMoved.style.posLeft =  xPos;
        ElementToBeMoved.style.posTop = yPos;
    }
    window.scroll(xPos,yPos)
    //alert(xPos + " | " + yPos);
}

function AddTitles(DropDown, TitleList, OffSet)
{
    iLoop = OffSet;
    for (x in TitleList)
    {
        var Title = TitleList[x];
        DropDown.options[iLoop].title = Title;
        iLoop++;
    }
    return true;
}

function ShowHideTwoDivs(DivContentShowId, DivContentHideId)
{
    var DivContentShow = document.getElementById(DivContentShowId);
    var DivContentHide = document.getElementById(DivContentHideId);
    if(DivContentShow != null && DivContentHide != null)
    {
		DivContentShow.style.display = "block";
		DivContentHide.style.display = "none";
    }
}


function ChangeTabs(HiddenTabId, DivPreFix, LinkPreFix, SelectedTab, TabCount)
{
    for (TabLoop = 1; TabLoop <= TabCount; TabLoop++)
    {
		
        var TabDiv = document.getElementById(DivPreFix + TabLoop);
        var TabLink = document.getElementById(LinkPreFix + TabLoop);
        if(TabLink != null)
        {
            TabLink.className = "";
            if(TabLoop == SelectedTab)
            {
                TabLink.className += " on";
            }
        }
        
        if(TabLoop == SelectedTab)
        {
			TabDiv.style.display="block";
            document.getElementById(HiddenTabId).Value = TabLoop;
        }
        else
        {
            TabDiv.style.display="none";
        }
    }
}

function clearDefault(control, defaultValue) {
  if (control.value==defaultValue) control.value = "";
}

function SelectAllCheckboxes(CheckBoxSelectAll, CheckBoxList, Total)
{
    for (var i = 0; i < Total; i++)
    {
        var CheckBox = document.getElementById(CheckBoxList + '_' + i);
        
        if(CheckBox.type=="checkbox")
        {
            CheckBox.checked = CheckBoxSelectAll.checked;
        }
    }
}

function SetDropDownIndex(value, control)
{
    for (f = 0; f < document.forms.length; f++)
    {
        var elements = document.forms[f].elements;
        for (e = 0; e < elements.length; e++)
        {
            if (elements[e].id.indexOf(control) > 0)
            {
                var options = elements[e].options;
                for(o = 0; o < options.length; o++)
                {
                    if(options[o].value == value)
                    {
                        options[o].selected = true;
                    }
                }
            }
        }
    }
}

function ScrollToElementPosition(ControlId)
{
    var Element = document.getElementById(ControlId);
    var coordinates = GetPosition(Element);
    xPos = coordinates[0];
    yPos = coordinates[1];
    window.scrollTo(0,yPos);
}


function ShowHide(ElementToToggleId, curobj)
{
    ElementToToggle = document.getElementById(ElementToToggleId);
    if(ElementToToggle != null)
    {
        if(HasClassName(ElementToToggle, "ExpandContent"))
        {
            RemoveClassName(ElementToToggle, "ExpandContent");
            AddClassName(ElementToToggle, "CollapseContent");
            curobj.className = "Control ExpandImage";
        }
        else
        {
            RemoveClassName(ElementToToggle, "CollapseContent");
            AddClassName(ElementToToggle, "ExpandContent");
            curobj.className = "Control CollapseImage";
        } 
    }
}

function ShowHideTitle(ElementToToggleId, ImageObjId)
{
    ElementToToggle = document.getElementById(ElementToToggleId);
    ImageObj = document.getElementById(ImageObjId);
    if(ElementToToggle != null)
    {
        if(HasClassName(ElementToToggle, "ExpandContent"))
        {
            RemoveClassName(ElementToToggle, "ExpandContent");
            AddClassName(ElementToToggle, "CollapseContent");
            ImageObj.className = "Control ExpandImage";
        }
        else
        {
            RemoveClassName(ElementToToggle, "CollapseContent");
            AddClassName(ElementToToggle, "ExpandContent");
            ImageObj.className = "Control CollapseImage";
        } 
    }
}


function AddClassName(objElement, strClass, blnMayAlreadyExist)
{

   // if there is a class
   if ( objElement.className )
      {

      // the classes are just a space separated list, so first get the list
      var arrList = objElement.className.split(' ');

      // if the new class name may already exist in list
      if ( blnMayAlreadyExist )
         {

         // get uppercase class for comparison purposes
         var strClassUpper = strClass.toUpperCase();

         // find all instances and remove them
         for ( var i = 0; i < arrList.length; i++ )
            {

            // if class found
            if ( arrList[i].toUpperCase() == strClassUpper )
               {

               // remove array item
               arrList.splice(i, 1);

               // decrement loop counter as we have adjusted the array's contents
               i--;

               }

            }

         }

      // add the new class to end of list
      arrList[arrList.length] = strClass;

      // add the new class to beginning of list
      //arrList.splice(0, 0, strClass);
      
      // assign modified class name attribute
      objElement.className = arrList.join(' ');

      }
   // if there was no class
   else
      {

      // assign modified class name attribute      
      objElement.className = strClass;
   
      }

}


function RemoveClassName(objElement, strClass)
{

   // if there is a class
   if ( objElement.className )
      {

      // the classes are just a space separated list, so first get the list
      var arrList = objElement.className.split(' ');

      // get uppercase class for comparison purposes
      var strClassUpper = strClass.toUpperCase();

      // find all instances and remove them
      for ( var i = 0; i < arrList.length; i++ )
         {

         // if class found
         if ( arrList[i].toUpperCase() == strClassUpper )
            {

            // remove array item
            arrList.splice(i, 1);

            // decrement loop counter as we have adjusted the array's contents
            i--;

            }

         }

      // assign modified class name attribute
      objElement.className = arrList.join(' ');

      }
   // if there was no class
   // there is nothing to remove

}

function HasClassName(objElement, strClass)
{

   // if there is a class
   if ( objElement.className )
      {

      // the classes are just a space separated list, so first get the list
      var arrList = objElement.className.split(' ');

      // get uppercase class for comparison purposes
      var strClassUpper = strClass.toUpperCase();

      // find all instances and remove them
      for ( var i = 0; i < arrList.length; i++ )
         {

         // if class found
         if ( arrList[i].toUpperCase() == strClassUpper )
            {
                return true;
            }

         }
         return false;

      }
    else
    {
        return false;
    }

}


function ShowHideControl(Control, show)
{
    if(Control != null)
    {
        if(show)
        {
            Control.style.display="block";
        }
        else
        {
            Control.style.display="none";
        }
    }
}

function ShowHideByControlId(ControlId, show)
{
	var Control = document.getElementById(ControlId);
    if(Control != null)
    {
        if(show)
        {
            Control.style.display="block";
        }
        else
        {
            Control.style.display="none";
        }
    }
}

function SubmitPayPayForm()
{
	for (i = 0; i < document.forms.length; i++)
	{
		if(document.forms[i].id = 'PayPalForm')
		{
			document.forms[i].submit();
		}
	}
	
}

function BuildDateString(Position, DatePassed, DayPosition, MonthPosition, YearPosition)
{
	var ResultBuildDateString = "";
	if(DayPosition == Position)
	{
		ResultBuildDateString += DatePassed.getDate();
	}
	if(MonthPosition == Position)
	{
		ResultBuildDateString += (DatePassed.getMonth() + 1);
	}
	if(YearPosition == Position)
	{
		ResultBuildDateString += DatePassed.getFullYear();
	}
	return ResultBuildDateString;
}

function LocaleDateToString(DatePassed, DateSeparator, DayPosition, MonthPosition, YearPosition)
{
	var ResultLocaleDateToString = "";
	ResultLocaleDateToString += BuildDateString(0, DatePassed, DayPosition, MonthPosition, YearPosition);
	ResultLocaleDateToString += DateSeparator;
	ResultLocaleDateToString += BuildDateString(1, DatePassed, DayPosition, MonthPosition, YearPosition);
	ResultLocaleDateToString += DateSeparator;
	ResultLocaleDateToString += BuildDateString(2, DatePassed, DayPosition, MonthPosition, YearPosition);
	return ResultLocaleDateToString;
	
}

function LocaleMonthYearToString(DatePassed, DateSeparator)
{
	var ResultLocaleMonthYearToString = "";
	ResultLocaleMonthYearToString += (DatePassed.getMonth() + 1);
	ResultLocaleMonthYearToString += DateSeparator;
	ResultLocaleMonthYearToString += DatePassed.getFullYear();
	return ResultLocaleMonthYearToString;
}

function LocaleStringToDate(DatePassed, DateSeparator, DayPosition, MonthPosition, YearPosition)
{	
	var ReturnedDate = new Date();
	try
	{
		var ArStDate = DatePassed.split(DateSeparator, 3);
		var iDay = 0;
		var iMonth = 0;
		var iYear = 0;
		
		for (var i = 0; i < ArStDate.length; i++)
		{
			if(i == DayPosition)
			{
				if(ArStDate[i].substring(0,1) == "0")
				{
					iDay = parseInt(ArStDate[i].substring(1,2));
				}
				else
				{
					iDay = parseInt(ArStDate[i]);
				}
			}
			if(i == MonthPosition)
			{
				if(ArStDate[i].substring(0,1) == "0")
				{
					iMonth = parseInt(ArStDate[i].substring(1,2));
				}
				else
				{
					iMonth = parseInt(ArStDate[i]);
				}

				iMonth = iMonth - 1;
			}
			if(i == YearPosition)
			{
				iYear = parseInt(ArStDate[i]);
			}
		}
		
		ReturnedDate.setFullYear(iYear,iMonth,iDay)
		if(
			(ReturnedDate.getFullYear()!=parseInt(iYear,10))
			||(ReturnedDate.getMonth()!=parseInt(iMonth,10))
			||(ReturnedDate.getDate()!=parseInt(iDay,10)))
		{
			ReturnedDate = new Date();
		}		
	}
	catch(err)
	{
		ReturnedDate = new Date();
	}
	return ReturnedDate;
}

function ShowAddSchoolAreYouSure(HiddenControlIdsAndId)
{
	var ArParts = HiddenControlIdsAndId.split("|", 3);
	var HiddenFieldSchoolId = ArParts[0];
	var HiddenFieldShowWarningId = ArParts[1];
	var ValueId = ArParts[2];
	if( HiddenFieldSchoolId != null && HiddenFieldShowWarningId != null && ValueId != null)
	{
		var HiddenFieldSchool = document.getElementById(HiddenFieldSchoolId);
		var HiddenFieldShowWarning = document.getElementById(HiddenFieldShowWarningId);
		
		if(HiddenFieldSchool != null && HiddenFieldShowWarning != null)
		{
			HiddenFieldSchool.value = ValueId;
			if(HiddenFieldShowWarning.value == "true")
			{
				ShowAddSchoolPopup();
			}
		}
		else
		{
			alert("ShowAddSchoolAreYouSure: error1: " + HiddenFieldSchoolId + "|" + HiddenFieldShowWarning);
		}
	}
	else
	{
		alert("ShowAddSchoolAreYouSure: error2");
	}
}

function PreExcludeChildFromPlan(CheckBoxIncludedInPlan, HiddenFieldChildId, HiddenFieldUrlId, ChildId, Url, DivPartialPageUpdateMessageID, SessionReference, IncludedText)
{
	if(!CheckBoxIncludedInPlan.checked)
	{
		CheckBoxIncludedInPlan.checked = !CheckBoxIncludedInPlan.checked;
		ShowExcludePopup();		
		var HiddenFieldChild = document.getElementById(HiddenFieldChildId);
		if(HiddenFieldChild != null)
		{
			HiddenFieldChild.value = ChildId;
		}
	}
	else
	{
		var DivPartialPageUpdateMessage = document.getElementById(DivPartialPageUpdateMessageID);
		if(DivPartialPageUpdateMessage != null)
		{
			SetChildIncludedInPlan(Url, DivPartialPageUpdateMessageID, ChildId, SessionReference, IncludedText);
		}
		
	}
}
  
function ShowDeleteLumpSum(HiddenControlId, ValueId)
{
	var HiddenControl = document.getElementById(HiddenControlId);
		
	if(HiddenControl != null)
	{
		HiddenControl.value = ValueId;
		ShowDeletePopup();
	}
	else
	{
		alert("ShowDeletePopup: error1")
	}

}

function ShowDeleteSavingHoliday(HiddenControlId, ValueId)
{
	var HiddenControl = document.getElementById(HiddenControlId);
		
	if(HiddenControl != null)
	{
		HiddenControl.value = ValueId;
		ShowDeleteSavingHolidayPopup();
	}
	else
	{
		alert("ShowDeletePopup: error1")
	}

}

function ValidateDateFromDropDownList(DropDownListDateMonthId, DropDownListDateYearId, HiddenDateId)
{
	var DropDownListDateMonth = document.getElementById(DropDownListDateMonthId);
	var DropDownListDateYear = document.getElementById(DropDownListDateYearId);
	var HiddenDate = document.getElementById(HiddenDateId);

	if(	DropDownListDateMonth != null
	&& DropDownListDateYear != null
	&& HiddenDate != null )
	{
		var ArStDate = HiddenDate.value.split("|", 2)
		var iYearToCompare = ArStDate[0];
		var iMonthToCompare = ArStDate[1];
		iMonthToCompare --;
		var dtDateToCompare = new Date();
		dtDateToCompare.setFullYear(iYearToCompare,iMonthToCompare,1);
		dtDateToCompare.setHours(0,0,0,0);
		
		var iMonth = GetSelectedItem(DropDownListDateMonth);
		iMonth --;
		var iYear = GetSelectedItem(DropDownListDateYear);
		var dtDateToTest = new Date();
		dtDateToTest.setFullYear(iYear,iMonth,1);
		dtDateToTest.setHours(0,0,0,0);
		return (dtDateToTest <= dtDateToCompare);
	}
	else
	{
		alert('error: ValidateDateFromDropDownList '
		 + ' | ' + DropDownListDateMonthId
		 + ' | ' + DropDownListDateYearId
		 + ' | ' + HiddenDateId);
	}
	
}

function ValidateDateRangeFromDropDownList(DropDownListDateMonthId, DropDownListDateYearId, HiddenDateFromId, HiddenDateToId)
{
	var DropDownListDateMonth = document.getElementById(DropDownListDateMonthId);
	var DropDownListDateYear = document.getElementById(DropDownListDateYearId);
	var HiddenDateFrom = document.getElementById(HiddenDateFromId);
	var HiddenDateTo = document.getElementById(HiddenDateToId);

	if(	DropDownListDateMonth != null
	&& DropDownListDateYear != null
	&& HiddenDateFrom != null 
	&& HiddenDateTo != null)
	{

		var ArDateFrom = HiddenDateFrom.value.split("|", 2)
		var ArDateTo = HiddenDateTo.value.split("|", 2)
			
		var iYearFrom = ArDateFrom[0];
		var iMonthFrom = ArDateFrom[1];
		
		var iYearTo = ArDateTo[0];
		var iMonthTo = ArDateTo[1];
		
		iMonthFrom --;
		iMonthTo --;
		
		var dtDateFrom = new Date();
		dtDateFrom.setFullYear(iYearFrom,iMonthFrom,1);
		dtDateFrom.setHours(0,0,0,0);
		
		var dtDateTo = new Date();
		dtDateTo.setFullYear(iYearTo,iMonthTo,1);
		dtDateTo.setHours(0,0,0,0);

		var iMonth = GetSelectedItem(DropDownListDateMonth);
		iMonth --;
		var iYear = GetSelectedItem(DropDownListDateYear);
		var dtDateToTest = new Date();
		dtDateToTest.setFullYear(iYear,iMonth,1);
		dtDateToTest.setHours(0,0,0,0);

		var blResult = false;
		
		if(dtDateToTest >= dtDateFrom && dtDateToTest <= dtDateTo)
		{
			blResult = true;
		}
		return blResult;
	}
	else
	{
		alert('error: ValidateDateRangeFromDropDownList');
	}
	
}

function GetSelectedItem(DropDownList)
{
	for (i=0; i < DropDownList.length;i++)
	{
		if(DropDownList.options[i].selected)
		{
			return DropDownList.options[i].value;
		}
	}
}

function PopulateControlFromDropDown(DropDownList, ControlToPopulateId)
{
	var ControlToPopulate = document.getElementById(ControlToPopulateId);
	ControlToPopulate.value = GetSelectedItem(DropDownList);
}

function ToggleGraph(DropDownList, GraphControlsToToggle)
{
	var SelecedValue = GetSelectedItem(DropDownList);
	for (i = 0; i < GraphControlsToToggle.length; i++)
	{
		var Control = document.getElementById(GraphControlsToToggle[i]);
		if(Control != null)
		{
			ShowHideControl(Control, false);
			if(Control.id == SelecedValue)
			{
				ShowHideControl(Control, true);
			}
		}
	}
}

function MakeTermlyCost(objAnnual, objTermly)
{
	var TextBoxAnnual = document.getElementById(objAnnual);
	var TextBoxTermly = document.getElementById(objTermly);
	
	if(TextBoxAnnual.value != null && 
	   TextBoxAnnual.value != ""){
		try	{
			var t = parseFloat(TextBoxAnnual.value) / 3;
			if(!isNaN(t)){
				TextBoxTermly.value = t.toFixed(2);
			}else{
				TextBoxTermly.value = "";
			}
		}
		catch(err)
		{
			TextBoxTermly.value = "";	
		}
	}
	else{
		TextBoxTermly.value = "";
	}
}

function MakeAnnualCost(objAnnual, objTermly)
{
	var TextBoxAnnual = document.getElementById(objAnnual);
	var TextBoxTermly = document.getElementById(objTermly);
	
	if(TextBoxTermly.value != null && 
	   TextBoxTermly.value != ""){
		try{
			var t = parseFloat(TextBoxTermly.value) * 3;
			if(!isNaN(t)){
				TextBoxAnnual.value = t.toFixed(2);
			}else{
				TextBoxAnnual.value = "";
			}
			
		}
		catch(err)
		{
			TextBoxAnnual.value = "";
		}
	}
	else{
		TextBoxAnnual.value = "";
	}
}
