
var XMLHttpRequestObject = false;

if (window.XMLHttpRequest)
{
    XMLHttpRequestObject = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
    XMLHttpRequestObject = new ActiveXObject('Microsoft.XMLHTTP');
}

function getData(dataSource, divID)
{
    if(XMLHttpRequestObject)
    {
        var obj = document.getElementById(divID);
        XMLHttpRequestObject.open('GET', dataSource);
        XMLHttpRequestObject.onreadystatechange = function()
        {
            if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
            {
                obj.innerHTML = XMLHttpRequestObject.responseText;
            }
        }
        XMLHttpRequestObject.send(null);
    }
}

function getDataPOST(dataSource,requestData)
{
    if(XMLHttpRequestObject)
    {       
        SetDivBusyPosition();
        document.getElementById('divBusy').style.display = 'block';
//        XMLHttpRequestObject.open('POST', dataSource);
//        XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        dataSource += '?' + requestData;
        XMLHttpRequestObject.open('GET', dataSource);
        XMLHttpRequestObject.onreadystatechange = function()
        {
            if (XMLHttpRequestObject.readyState == 4)
            {
                if (XMLHttpRequestObject.status == 200)
                {
                    processXmlReturned(XMLHttpRequestObject.responseText);
                }
                else
                {
                    alert('Error '+XMLHttpRequestObject.status);
                }
                document.getElementById('divBusy').style.display = 'none';
            }
        }
        XMLHttpRequestObject.send(null);
//        XMLHttpRequestObject.send(requestData);
    }
}

function getDataPOSTGraph1(dataSource,requestData)
{
    if(XMLHttpRequestObject)
    {
        SetDivBusyPosition();
        document.getElementById('divBusy').style.top = document.documentElement.scrollTop;
        document.getElementById('divBusy').style.display = 'block';
        XMLHttpRequestObject.open('POST', dataSource);
        XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        XMLHttpRequestObject.onreadystatechange = function()
        {
            if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
            {
                document.getElementById('divBusy').style.display = 'none';
                ShowGraphh(XMLHttpRequestObject.responseText);                
            }
        }
        XMLHttpRequestObject.send(requestData);

    }
}

function ShowGraphh(sCacheAddress)
    {
	    var width = 700;
	    var height = 500;

	    var intLeft = (screen.availWidth - width)/2;
	    var intTop = (screen.availHeight - height)/2;

	    var strFeatures = 'dialogWidth:' + width + 'px;dialogHeight: ' + height + 'px;';
	    strFeatures += 'edge: Raised; status: yes; scrollbars: yes; resizable: no; ';
	    strFeatures += 'dialogLeft: ' + intLeft + 'px;dialogTop: ' + intTop + 'px;';
	    strFeatures += 'status: No; help: Yes; resizable: Yes;';
	    var GraphPath = 'Graph1.aspx?CacheAddress='+sCacheAddress;

	    window.showModalDialog(GraphPath,'',strFeatures);
    }    
    
function getDataPOSTGraph2(dataSource,requestData)
{
    if(XMLHttpRequestObject)
    {
        SetDivBusyPosition();
        document.getElementById('divBusy').style.display = 'block';
        XMLHttpRequestObject.open('POST', dataSource);
        XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        XMLHttpRequestObject.onreadystatechange = function()
        {
            if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
            {
                document.getElementById('divBusy').style.display = 'none';
                ShowGraphh2(XMLHttpRequestObject.responseText);
            }
        }
        XMLHttpRequestObject.send(requestData);
    }
}

function ShowGraphh2(sCacheAddress)
    {
        //Updated by Ig on 20071002.
        
	    var width = 750;
	    var height = screen.availHeight;

        //alert('screen.availWidth = ' + screen.availWidth + ' : screen.availHeight = ' + screen.availHeight);
        
	    var intLeft = (screen.availWidth - width)/2;
	    var intTop = (screen.availHeight - height)/2;

	    var strFeatures = 'dialogWidth:' + width + 'px;dialogHeight: ' + height + 'px;';
	    strFeatures += 'edge: Raised; status: No; scrollbars: Yes; resizable: No; ';
	    strFeatures += 'dialogLeft: ' + intLeft + 'px;dialogTop: ' + intTop + 'px;';
    	
	    var GraphPath = 'Graph2_Holder.aspx?CacheAddress='+sCacheAddress;
	    GraphPath += '&Age1='+document.getElementById('cboAge_1').options[document.getElementById('cboAge_1').selectedIndex].text;
	    GraphPath += '&Age2='+document.getElementById('cboAge_2').options[document.getElementById('cboAge_2').selectedIndex].text;
	    GraphPath += '&Gen1='+document.getElementById('cboTitle_1').value;
	    GraphPath += '&Gen2='+document.getElementById('cboTitle_2').value;
	    //GraphPath += '&Years='+document.getElementById('cboInstallmentyears').value;
	    GraphPath += '&InstallmentPayback='+document.getElementById('optInstallment').checked;
//	    alert(GraphPath);
	    window.showModalDialog(GraphPath,'',strFeatures);
    }    

function getDataPOSTSummary(dataSource,requestData)
{
    if(XMLHttpRequestObject)
    {
        SetDivBusyPosition();
        document.getElementById('divBusy').style.display = 'block';
        XMLHttpRequestObject.open('POST', dataSource);
        XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        XMLHttpRequestObject.onreadystatechange = function()
        {
            if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
            {
                document.getElementById('divBusy').style.display = 'none';
                ViewSummary(XMLHttpRequestObject.responseText);
            }
        }
        XMLHttpRequestObject.send(requestData);
    }
}

function ViewSummary(sCacheAddress)
    {
	    var width = 700;
	    var height = 550;

	    var intLeft = (screen.availWidth - width)/2;
	    var intTop = (screen.availHeight - height)/2;

	    var strFeatures = 'dialogWidth:' + width + 'px;dialogHeight: ' + height + 'px;';
	    strFeatures += 'edge: Raised; status: yes; scrollbars: yes; resizable: no; ';
	    strFeatures += 'dialogLeft: ' + intLeft + 'px;dialogTop: ' + intTop + 'px;';
	    strFeatures += 'status: No; help: Yes; resizable: Yes;';
    	
	    var GraphPath = 'Summary.aspx?CacheAddress='+sCacheAddress;
	    GraphPath += '&Age1='+document.getElementById('cboAge_1').options[document.getElementById('cboAge_1').selectedIndex].text;
	    GraphPath += '&Age2='+document.getElementById('cboAge_2').options[document.getElementById('cboAge_2').selectedIndex].text;
	    window.showModalDialog(GraphPath,'',strFeatures);
    }    

function prepRequestForPOST()
{
    window.event.cancelBubble = true;
    var strPostData = 'REQ_DATA=<REQ><SID>'+document.getElementById('txtSID').value+'</SID>';
    strPostData += '<AGE1>'+document.getElementById('cboAge_1').options[document.getElementById('cboAge_1').selectedIndex].text+'</AGE1>';
    if (document.getElementById('cboAge_2').value == '1000')
    {
        strPostData += formatToXml('Age2','cboAge_2');
    }
    else
    {
        strPostData += '<AGE2>'+document.getElementById('cboAge_2').options[document.getElementById('cboAge_2').selectedIndex].text+'</AGE2>';
    }
    strPostData += formatToXml('Name1','txtName_1');
    strPostData += formatToXml('Name2','txtName_2');
    strPostData += formatToXml('Gender1','cboTitle_1');
    strPostData += formatToXml('Gender2','cboTitle_2');
    strPostData += formatToXml('EntitelPercentage1','cboAge_1');
    strPostData += formatToXml('EntitelPercentage2','cboAge_2');
    strPostData += formatToXml('PropertyValue','txtPropVal');
    strPostData += formatToXml('BorrowingRequired','txtBorrow');
    strPostData += formatToXml('PropGrowthLow','cboPropGrowthLow');
    strPostData += formatToXml('PropGrowthHigh','cboPropGrowtHigh');
    strPostData += formatToXml('TopUpReqAmnt','txtTopUpReqExpAmnt');
    strPostData += formatToXml('TopUpYear','cboTopUpYear');
    strPostData += formatToXml('InterestRate','txtInterestRate');
    strPostData += formatToXml('FurtherLoanYear','cboFurtherLoanYear');
    strPostData += formatToXml('ExtraLoanReq','txtExtraLoanReq');
    //alert(document.getElementById('chkInitiationFee').checked);
    strPostData += '<INCLUDEINITIATIONFEE>' + document.getElementById('chkInitiationFee').checked + '</INCLUDEINITIATIONFEE>';
    //strPostData += formatToXml('InstallmentPayback','cboInstallmentPayback');
    //strPostData += formatToXml('InstallmentYears','cboInstallmentYears');
    strPostData += '<LUMPSUM>' + document.getElementById('optLumpsum').checked + '</LUMPSUM>';
    strPostData += '<INSTALLMENTOPTION>' + document.getElementById('optInstallment').checked + '</INSTALLMENTOPTION>';
    strPostData +='</REQ>';

    return strPostData.toUpperCase();
}

function formatToXml(ParamName,ElemId)
{
    var strValue = '';
    var objCurElem = document.getElementById(ElemId);
    
    if (objCurElem.tagName == 'SELECT')
    {
        strValue = objCurElem.options[objCurElem.selectedIndex].value;
    }
    else
    {
        if (!(ElemId == 'txtName_1' || ElemId == 'txtName_2'))
        {
            re = /[A-Za-z,]/g;
            strValue = objCurElem.value.replace(re,'');
        }
        else
        {
            strValue = objCurElem.value;
        }
    }

    if (strValue == '')
    {
        strValue = 0;
    }
    
    var strFormattedData = '<'+ParamName+'>'+strValue+'</'+ParamName+'>';
    
    return strFormattedData;
}

function processXmlReturned(xmlReturned)
{
    // create the XML object
    objXmlDoc = new ActiveXObject("Msxml2.DOMDocument");
    
    // load the return into an XML data island

    objXmlDoc.loadXML(xmlReturned);
    
    document.getElementById('txtPropVal').minval = objXmlDoc.getElementsByTagName("dblMinCalculatedPropertyValue").item(0).text;
    document.getElementById('txtPropVal').maxval = objXmlDoc.getElementsByTagName("dblMaxCalculatedPropertyValue").item(0).text;
    
    document.getElementById('txtPropVal').value = objXmlDoc.getElementsByTagName("InputPropertyAmount").item(0).text;
    
    document.getElementById('txtBorrow').minval = objXmlDoc.getElementsByTagName("dblMinCalculatedLoanValue").item(0).text;
    document.getElementById('txtBorrow').maxval = objXmlDoc.getElementsByTagName("dblMaxCalculatedLoanValue").item(0).text;

    document.getElementById('txtMibExFees').value = objXmlDoc.getElementsByTagName("dblMaxInitialBorrowingAmountInclFees").item(0).text;
    document.getElementById('txtTotLoanAmntIncFee').value = objXmlDoc.getElementsByTagName("dblReqInitialBorrowingAmountInclFees").item(0).text;
    document.getElementById('txtTotAmntPaid').value = objXmlDoc.getElementsByTagName("dblReqInitialBorrowingAmountExFees").item(0).text;
    
    fnEnableDisable(document.getElementById('txtBorrow'),document.getElementById('txtMibExFees').value,objXmlDoc.getElementsByTagName("InputBorrowAmount").item(0).text);
    
    document.getElementById('txtTopUpReqExpAmnt').minval = objXmlDoc.getElementsByTagName("dblMinCalculatedTopUpValue").item(0).text;
    document.getElementById('txtTopUpReqExpAmnt').maxval = objXmlDoc.getElementsByTagName("dblMaxCalculatedTopUpValue").item(0).text;
    
    document.getElementById('txtMetExFees').value = objXmlDoc.getElementsByTagName("dblTopUpExpressAmountMaxInclFees").item(0).text;
    document.getElementById('txtTotTopUpInclFees').value = objXmlDoc.getElementsByTagName("dblTopUpExpressAmountReqInclFees").item(0).text;
    document.getElementById('txtTotTopUpExFees').value = objXmlDoc.getElementsByTagName("dblTopUpExpressAmountReqExFees").item(0).text;
    
    fnEnableDisable(document.getElementById('txtTopUpReqExpAmnt'),document.getElementById('txtMetExFees').value,objXmlDoc.getElementsByTagName("InputTopUpAmount").item(0).text);
    
    document.getElementById('txtExtraLoanReq').minval = objXmlDoc.getElementsByTagName("dblMinCalculatedFutherAdvanceValue").item(0).text;
    document.getElementById('txtExtraLoanReq').maxval = objXmlDoc.getElementsByTagName("dblMaxCalculatedFutherAdvanceValue").item(0).text;

    document.getElementById('txtExtraLoanMax').value = objXmlDoc.getElementsByTagName("dblMaxFurtherAdvanceInclFees").item(0).text;
    document.getElementById('txtExtraLoanExclFees').value = objXmlDoc.getElementsByTagName("dblFurtherAdvanceReqExFees").item(0).text;
    document.getElementById('txtExtraLoanInclFees').value = objXmlDoc.getElementsByTagName("dblFurtherAdvanceReqInclFees").item(0).text;
    
    fnEnableDisable(document.getElementById('txtExtraLoanReq'),document.getElementById('txtExtraLoanMax').value,objXmlDoc.getElementsByTagName("InputFurtherAdvanceAmount").item(0).text);
    
    //document.getElementById('chkInitiationFee').checked = Boolean(objXmlDoc.getElementsByTagName("IncludeInitiationFee").item(0).text.toLowerCase());
    //document.getElementById('txtInstallmentAmount').value = objXmlDoc.getElementsByTagName("dblInstallmentAmount").item(0).text;
}

function fnEnableDisable(ObjToDisable,ValToCompare,ValToRender)
{
        ValToCompare = parseFloat(ValToCompare.replace('R ',''));
        ObjToDisable.disabled = (ValToCompare == 0);
        if (ObjToDisable.disabled)
        {
            ObjToDisable.value = '';
        }
        else
        {
            ObjToDisable.value = ValToRender;
        }
}

function runCalculator()
{
        var intCurPage = parseInt(document.getElementById('hidCurStep').value);

        switch (intCurPage)
        {
           case 1:
                ObjToCompare = document.getElementById('txtPropVal');
                var pp = parseFloat(document.getElementById('cboAge_1').value);
                var mm = 50000/(pp/100);
                if (mm > parseFloat(ObjToCompare.minVal))
                {
                    ObjToCompare.minVal = mm;
                }
                strParamName = 'PROPERTY VALUE';
                break;
           case 2:
                ObjToCompare = document.getElementById('txtBorrow');
                strParamName = 'INITIAL BORROWING AMOUNT';
                break;
           case 3:
                break;
           case 4:
                ObjToCompare = document.getElementById('txtTopUpReqExpAmnt');
                strParamName = 'TOP-UP EXPRESS FACILITY AMOUNT';
                break;
        }
}

function SetDivBusyPosition ()
{ //2008-02-06 to ensure that the busy image is always visible to the user
    if (document.documentElement.scrollTop == 0)
    {
        document.getElementById('divBusy').style.top = '200px';
    }
    else
    {
        document.getElementById('divBusy').style.top = document.documentElement.scrollTop;
    }
}