﻿var ddlObject, tbInvestering, ddlLease, ddlLooptijd, ddlRestwaarde
var lblObject, lblInvestering, lblVariabelen

function SetObjects(ddlObjectId, tbInvesteringId, ddlLeaseId, ddlLooptijdId, ddlRestwaardeId)
{
    ddlObject = GetObject(ddlObjectId, 'select');
    tbInvestering = GetObject(tbInvesteringId, 'input');
    ddlLease = GetObject(ddlLeaseId, 'select');
    ddlLooptijd = GetObject(ddlLooptijdId, 'select');
    ddlRestwaarde = GetObject(ddlRestwaardeId, 'select');
}

function GetObject(id, objtype)
{
    var arr = document.getElementsByTagName(objtype);
    var obj;
    for (i=0;i<arr.length;i++)
    {
        if (arr[i].id == id)
        {
            obj = arr[i];
        }
    }
    return obj;
}

function SetLabels(lblObjectId, lblInvesteringId, lblVariableId)
{
    lblObject = GetObject(lblObjectId,'span');
    lblInvestering = GetObject(lblInvesteringId,'span');
    lblVariabelen = GetObject(lblVariableId,'span');

    if (ddlObject.value == '0')
    {
        lblObject.style.display = 'block';
        lblInvestering.style.display = 'none';
        lblVariabelen.style.display = 'none';
    }
    else
    {
        if (tbInvestering.value == '')
        {
            lblObject.style.display = 'none';
            lblInvestering.style.display = 'block';
            lblVariabelen.style.display = 'none';
        }
        else
        {
            lblObject.style.display = 'none';
            lblInvestering.style.display = 'none';
            lblVariabelen.style.display = 'block';
        }
    }
}

function ObjectChange(ddlObjectId, tbInvesteringId, ddlLeaseId, ddlLooptijdId, ddlRestwaardeId, lblObjectId, lblInvesteringId, lblVariableId)
{
    SetObjects(ddlObjectId, tbInvesteringId, ddlLeaseId, ddlLooptijdId, ddlRestwaardeId);
    SetLabels(lblObjectId, lblInvesteringId, lblVariableId);
    
    var leaseValue = ddlLease.value;
    var looptijdValue = ddlLooptijd.value;
    var restwaardeValue = ddlRestwaarde.value;
    var investering = tbInvestering.value;
    
    LC_SetDdlItems(ddlLease, '/Templates/Addon/leasecalculatorprocess.aspx?action=lease&objectid=' + ddlObject.value + '&leaseid=' + ddlLease.value + '&looptijdid=' + ddlLooptijd.value);
    //if(leaseValue == "")
    //{
        leaseValue = ddlLease.value;
    //}
    LC_SetDdlItems(ddlLooptijd, '/Templates/Addon/leasecalculatorprocess.aspx?action=looptijd&objectid=' + ddlObject.value + '&leaseid=' + leaseValue + '&looptijdid=' + ddlLooptijd.value + '&investering=' + investering);
    looptijdValue = ddlLooptijd.value;
    
    LC_SetDdlItems(ddlRestwaarde, '/Templates/Addon/leasecalculatorprocess.aspx?action=restwaarde&objectid=' + ddlObject.value + '&leaseid=' + leaseValue + '&looptijdid=' + ddlLooptijd.value + '&investering=' + investering);
    restwaardeValue = ddlRestwaarde.value;
    
    LC_SetDdlValue(ddlLease, leaseValue);
    LC_SetDdlValue(ddlLooptijd, looptijdValue);
    LC_SetDdlValue(ddlRestwaarde, restwaardeValue);
    
    LC_Berekening(ddlObject.value, tbInvestering.value, ddlLease.value, ddlLooptijd.value, ddlRestwaarde.value);
}

function LeaseChange(ddlObjectId, tbInvesteringId, ddlLeaseId, ddlLooptijdId, ddlRestwaardeId)
{
    SetObjects(ddlObjectId, tbInvesteringId, ddlLeaseId, ddlLooptijdId, ddlRestwaardeId);
   
    var looptijdValue = ddlLooptijd.value;
    var restwaardeValue = ddlRestwaarde.value;
    var investering = tbInvestering.value;

    LC_SetDdlItems(ddlLooptijd, '/Templates/Addon/leasecalculatorprocess.aspx?action=looptijd&objectid=' + ddlObject.value + '&leaseid=' + ddlLease.value + '&looptijdid=' + ddlLooptijd.value + '&investering=' + investering);
    LC_SetDdlValue(ddlLooptijd, looptijdValue);
    
    LC_SetDdlItems(ddlRestwaarde, '/Templates/Addon/leasecalculatorprocess.aspx?action=restwaarde&objectid=' + ddlObject.value + '&leaseid=' + ddlLease.value + '&looptijdid=' + ddlLooptijd.value + '&investering=' + investering);
    LC_SetDdlValue(ddlRestwaarde, restwaardeValue);
    
    LC_Berekening(ddlObject.value, tbInvestering.value, ddlLease.value, ddlLooptijd.value, ddlRestwaarde.value);
}

function LooptijdChange(ddlObjectId, tbInvesteringId, ddlLeaseId, ddlLooptijdId, ddlRestwaardeId)
{
    SetObjects(ddlObjectId, tbInvesteringId, ddlLeaseId, ddlLooptijdId, ddlRestwaardeId);
   
    var restwaardeValue = ddlRestwaarde.value;
    var investering = tbInvestering.value;
    LC_SetDdlItems(ddlRestwaarde, '/Templates/Addon/leasecalculatorprocess.aspx?action=restwaarde&objectid=' + ddlObject.value + '&leaseid=' + ddlLease.value + '&looptijdid=' + ddlLooptijd.value + '&investering=' + investering);
    LC_SetDdlValue(ddlRestwaarde, restwaardeValue);
    
    LC_Berekening(ddlObject.value, tbInvestering.value, ddlLease.value, ddlLooptijd.value, ddlRestwaarde.value);
}

function InvesteringChange(ddlObjectId, tbInvesteringId, ddlLeaseId, ddlLooptijdId, ddlRestwaardeId, lblObjectId, lblInvesteringId, lblVariableId)
{
    SetObjects(ddlObjectId, tbInvesteringId, ddlLeaseId, ddlLooptijdId, ddlRestwaardeId);
    SetLabels(lblObjectId, lblInvesteringId, lblVariableId)
    
    LC_Berekening(ddlObject.value, tbInvestering.value, ddlLease.value, ddlLooptijd.value, ddlRestwaarde.value);
}

function RestwaardeChange(ddlObjectId, tbInvesteringId, ddlLeaseId, ddlLooptijdId, ddlRestwaardeId)
{
    SetObjects(ddlObjectId, tbInvesteringId, ddlLeaseId, ddlLooptijdId, ddlRestwaardeId);
    
    LC_Berekening(ddlObject.value, tbInvestering.value, ddlLease.value, ddlLooptijd.value, ddlRestwaarde.value);
}

function LC_Berekening(objectId, investering, leasevormId, looptijdId, restwaardeId)
{
    var _prijspermaand = GetObject('LC_PrijsPerMaand','div');
    var _afsluitprovisie = GetObject('LC_Afsluitprovisie','div');
    var _slottermijn = GetObject('LC_Slottermijn', 'div');
    var _koopoptie = GetObject('LC_Koopoptie', 'div');
    var _trSlottermijn = GetObject('rowSlottermijn', 'tr');
    
    if (tbInvestering.value.length > 0 && Page_IsValid && ddlObject.value != '0' && ddlLooptijd.value.length > 0 && ddlRestwaarde.value.length > 0)
    {
        var arr = ddlObject.id.split('_');
        var idpart = ''
        for(i=0;i<arr.length - 1;i++)
        {
            idpart += arr[i] + '_';
        }
        
        if(navigator.appVersion.indexOf("MSIE 6.0") == -1 )
        {
            GetObject(idpart + 'imgMaandtermijn','img').src = '/art/radertje.gif';
        }
        if (_afsluitprovisie)
        {
            if(navigator.appVersion.indexOf("MSIE 6.0") == -1 )
            {
                GetObject(idpart + 'imgAfsluit','img').src = '/art/radertje.gif';
            }
        }
        
        var afsluitprec = GetObject('hidAfsluitProvisie','input').value;
        var _values = loadTextSync('/Templates/Addon/leasecalculatorprocess.aspx?action=berekening&objectid=' + objectId + '&leaseid=' + leasevormId + '&looptijdid=' + looptijdId + '&restwaardeid=' + restwaardeId + '&investering=' + investering + '&ap=' + afsluitprec).split('|');

        if(_values[0] == "maximaal bedrag")
        {
            _prijspermaand.innerHTML = ' -';
            _slottermijn.innerHTML = ' -';
            _koopoptie.innerHTML = ' -';
            tbInvestering.value = 'maximaal 4.500.000 toegestaan';
        }
        else if(_values[0] == "minimaal bedrag")
        {
            _prijspermaand.innerHTML = ' -';
            _slottermijn.innerHTML = ' -';
            _koopoptie.innerHTML = ' -';
            tbInvestering.value = 'minimaal 10.000 toegestaan';
        }
        else if (_values[0].length <= 2)
        {
            _prijspermaand.innerHTML = ' -';
            _slottermijn.innerHTML = ' -';
            _koopoptie.innerHTML = ' -';
        }
        else
        {
            _prijspermaand.innerHTML = ' € ' + _values[0];
            if (_afsluitprovisie)
            {
                _afsluitprovisie.innerHTML = ' € ' + _values[1];
                if(navigator.appVersion.indexOf("MSIE 6.0") == -1 )
                {
                    GetObject(idpart + 'imgAfsluit','img').src = '/art/help_btn.png';
                }
            }
            var slottermijn = _values[2];
            var koopoptie = _values[3];
            
            _slottermijn.innerHTML = ' € ' + slottermijn;
            _koopoptie.innerHTML = ' € ' + koopoptie;
            
            _trSlottermijn.style.display = '';
            if(restwaardeId == 1 && leasevormId == 2) _trSlottermijn.style.display = 'none';
        }
        if(navigator.appVersion.indexOf("MSIE 6.0") == -1 )
        {
            GetObject(idpart + 'imgMaandtermijn','img').src = '/art/help_btn.png';
        }
    }
    else
    {
        _trSlottermijn.style.display = 'none';
        _prijspermaand.innerHTML = '-';
        _slottermijn.innerHTML = '-';
        _koopoptie.innerHTML = '-';
        if (_afsluitprovisie)
        {
            _afsluitprovisie.innerHTML = '-';
        }
    }
}

function LC_SetDdlValue(ddl,waarde)
{
    var _index = ddl.options.length;
    var _setValue = false;
	for (i = _index; i >= 0; i--)
	{
	   if(ddl.options[i])
	   {
           if (ddl.options[i].value == waarde)
           {
              _setValue = true;
           }
       }
	}
	if (_setValue)
	{
	    ddl.value = waarde;
	}
}

function LC_SetDdlItems(ddl,url)
{
    //alert(items);
    // Animated gif laten zien
    var img = GetObject(ddl.id.replace('ddl','img'),'img')
    if (img)
    {
        img.src = '/art/radertje.gif';
    }
    
    var items = loadTextSync(url);
    var arr = items.split('|');
    
    // alle items verwijderen
	var _index = ddl.options.length;
	for (i = _index; i >= 0; i--)
	{
		ddl.options[i] = null;
	}

    // items toevoegen
    var counter = 0;
	for (i = 0;i < arr.length;i++)
	{
	    if (arr[i].length > 0)
	    {
	        var arritem = arr[i].split('#');
		    ddl.options[counter] = new Option(arritem[1], arritem[0]);
		    counter++;
		}
	}
	
	if (img)
    {
        img.src = '/art/help_btn.png';
    }
}

function showObjecten(tbShow, divToShow)
{
    var obj = GetObject(tbShow,'input');
	var curleft = 0;
	var curtop = 0;
	
	if (GetObject('TB_closeWindowButton', 'a'))
	{
        if (obj.offsetParent) 
        {
            var stop = false;
            curleft = obj.offsetLeft;
            curtop = obj.offsetTop;
            while (obj = obj.offsetParent) 
            {
                if(obj.id == 'leaseCalculator' || (!document.all && obj.tagName == 'DIV'))
                {
                    stop = true;
                }
                if(!stop)
                {
	                curleft += obj.offsetLeft;
	                curtop += obj.offsetTop;
                }
            }
        }
	}
    else
    {
        if (obj.offsetParent) 
        {
	        curleft = obj.offsetLeft;
	        curtop = obj.offsetTop;
	        while (obj = obj.offsetParent) 
	        {
		        curleft += obj.offsetLeft;
		        curtop += obj.offsetTop;
	        }
        }
    }

    GetObject(divToShow,'div').style.position = 'absolute';
    GetObject(divToShow,'div').style.top = (curtop + 5) + 'px';
    GetObject(divToShow,'div').style.left = (curleft + 140) + 'px';
    GetObject(divToShow,'div').style.display = '';
}

function showHelp(imgShow, divToShow)
{
    var obj = GetObject(imgShow,'img');
	var curleft = 0;
	var curtop = 0;
	
	if (GetObject('TB_closeWindowButton', 'a'))
	{
        if (obj.offsetParent) 
        {
            var stop = false;
            curleft = obj.offsetLeft;
            curtop = obj.offsetTop;
            while (obj = obj.offsetParent) 
            {
                if(obj.id == 'leaseCalculator' || (!document.all && obj.tagName == 'DIV'))
                {
                    stop = true;
                }
                if(!stop)
                {
	                curleft += obj.offsetLeft;
	                curtop += obj.offsetTop;
                }
            }
        }
	}
    else
    {
        if (obj.offsetParent) 
        {
	        curleft = obj.offsetLeft;
	        curtop = obj.offsetTop;
	        while (obj = obj.offsetParent) 
	        {
		        curleft += obj.offsetLeft;
		        curtop += obj.offsetTop;
	        }
        }
    }
	
    GetObject(divToShow,'div').style.position = 'absolute';
    GetObject(divToShow,'div').style.top = curtop + 5;
    if (document.all)
    {
        GetObject(divToShow,'div').style.left = curleft + 25;
    }
    else
    {
        GetObject(divToShow,'div').style.left = curleft + 15;
    }
    GetObject(divToShow,'div').style.display = '';
}
function hideHelp(divToHide)
{
    GetObject(divToHide,'div').style.display = 'none';
}

function getXmlHttpPrefix() 
{
    if (getXmlHttpPrefix.prefix)
	    return getXmlHttpPrefix.prefix;
	
    var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
    var o;
    for (var i = 0; i < prefixes.length; i++) {
	    try {
		    // try to create the objects
		    o = new ActiveXObject(prefixes[i] + ".XmlHttp");
		    return getXmlHttpPrefix.prefix = prefixes[i];
	    }
	    catch (ex) {};
    }
	
    throw new Error("Could not find an installed XML parser");
}

// XmlHttp factory
function XmlHttp() {}

XmlHttp.create = function () {
    try {
	    if (window.XMLHttpRequest) {
		    var req = new XMLHttpRequest();
			
		    // some versions of Moz do not support the readyState property
		    // and the onreadystate event so we patch it!
		    if (req.readyState == null) {
			    req.readyState = 1;
			    req.addEventListener("load", function () {
				    req.readyState = 4;
				    if (typeof req.onreadystatechange == "function")
					    req.onreadystatechange();
			    }, false);
		    }
			
		    return req;
	    }
	    if (window.ActiveXObject) {
		    return new ActiveXObject(getXmlHttpPrefix() + ".XmlHttp");
	    }
    }
    catch (ex) {}
    // fell through
    throw new Error("Your browser does not support XmlHttp objects");
};

function loadTextSync(sUri) 
{
   var xmlHttp = XmlHttp.create();
   var async = false;
   xmlHttp.open("GET", sUri, async);
   xmlHttp.send(null);
   return xmlHttp.responseText; // responseText : String
}

