﻿//var beregnerUrl = '/beregnselv/BeregnProx.asmx'; 
var beregnerUrl = '/sitecore%20modules/Web/CalcProx/BeregnProx.asmx'; 

function GetValueSubstitute(object)
{
    var obj=document.getElementById(object);
    return obj.value;
}

function GetInput(inputid)
{
	var idsplit = inputid.split(":");
	if (idsplit.length>1)
	{
		if (idsplit[1]=="Date")
		{
			return GetValueSubstitute(idsplit[0]+'_dd')+'\\'+GetValueSubstitute(idsplit[0]+'_mm')+'\\'+GetValueSubstitute(idsplit[0]+'_yyyy');
		}
		if (idsplit[1]=="Radio")
		{
			for (var i=0;;++i)
			{
				var id=idsplit[0]+'_'+i.toString();
				if (document.getElementById(id).checked)
				{
					var value=GetValueSubstitute(id);
					if (value)
						return value;
				}
			}
			return '';
		}
		if (idsplit[1]=="Amount")
		{
			return '\'' + GetValueSubstitute(idsplit[0]);
		}
	}
	return GetValueSubstitute(idsplit[0]);
}
function GetContent(node)
{
    var result=node.text;
    if (result)
        return result;
    return node.textContent;
}
function callbackFailure(request)
{
    DisplayError('<b>Desværre!</b><p></p>Vi kan ikke udføre beregningen i øjeblikket.<br>Det skyldes muligvis fejl i systemet.<br /><div style="display:none">' + request.status + '<br />' + request.statusText + '</div>');
}
function callbackException(request, exception)
{
    DisplayError('<b>Desværre!</b><p></p>Vi kan ikke udføre beregningnen i øjeblikket.<br>Det skyldes muligvis fejl i systemet.<div style="display:none">'+exception.toString()+'</div>');
}
function callbackSuccess(request, inputidarray, outputidarray) {
  
    var dom = request.responseXML;
    var result = dom.lastChild.firstChild.firstChild.firstChild;
    
    var errorMsg = GetContent(result.firstChild);    
    if (result.childNodes.length<outputidarray.length
     || errorMsg.substring(0,6)=='&nbsp;'
	 || errorMsg.substring(0,4)=='Fejl'
	 || errorMsg == 'Det er en ugyldig beregning'
	 || errorMsg == '-2146826273')
    {
        DisplayError(errorMsg);
        return;
    }
    DisplayOutput(result, inputidarray, outputidarray);
}
function FormatOutput(value, type)
{
    if (type=='Date')
    {
        var months=['','januar','februar','marts','april','maj','juni','juli','august','september','oktober','november','december'];
        var dateParts=value.split('\\');
        return parseInt(dateParts[0],10).toString()+'.&nbsp;'+months[parseInt(dateParts[1],10)]+'&nbsp;'+dateParts[2];
    }
    if (type=='Amount')
	{
		return parseFloat(value.replace(/\'/,'')).toLocaleString(10).replace(/,00$/,'');
        //return parseFloat(value).toLocaleString(10).replace(/,00$/,'');
	}
	
    return value;
}
function DisplayOutput(result, inputidarray, outputidarray)
{
    for (var i=0;i<inputidarray.length;++i)
    {
	    var idsplit = inputidarray[i].split(":");
        var elem=$j('#'+idsplit[0]+'_ud');
        if (elem)
            elem.html( FormatOutput(GetInput(inputidarray[i]),idsplit[1]));         
    }
    for (var i=0;i<outputidarray.length;++i)
    {
	    var idsplit = outputidarray[i].split(":");
        var elem=$j('#'+idsplit[0]);
        if (elem)
            elem.html ( FormatOutput(GetContent(result.childNodes[i]),idsplit[1]));
    }

    $j('#progress').hide();
    $j('#error').hide();
    $j('#output').show();
    $j('#calculateButton').show();
    $j('#menberegner').bgiframe();
}
function DisplayError(error)
{
    $j('#errorText').html(error);
    $j('#progress').hide();
    $j('#error').show();
    $j('#output').hide();
    $j('#calculateButton').show();

}

function Beregn(artId, typeId, alderId, forskudId, pensionalderId, form4Id, form5Id, form6Id, form7Id, form8Id, inputids, outputids) 
{
    var soapRequest = '<?xml version="1.0" encoding="utf-8"?>';
    soapRequest += '<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" >';
    soapRequest += '<Body>';
    soapRequest += '<Beregn xmlns="http://tempuri.org/">';
    soapRequest += '<artId>'+artId+'</artId>';
    soapRequest += '<typeId>'+typeId+'</typeId>';
    soapRequest += '<alderId>'+alderId+'</alderId>';
    soapRequest += '<forskudId>'+forskudId+'</forskudId>';
    soapRequest += '<pensionalderId>'+pensionalderId+'</pensionalderId>';
    soapRequest += '<form4Id>'+form4Id+'</form4Id>';
    soapRequest += '<form5Id>'+form5Id+'</form5Id>';
    soapRequest += '<form6Id>'+form6Id+'</form6Id>';
    soapRequest += '<form7Id>'+form7Id+'</form7Id>';
    soapRequest += '<form8Id>'+form8Id+'</form8Id>';
    soapRequest += '<valueList>';
    var inputidarray = inputids.split(',');
    for (var i=0;i<inputidarray.length;++i)
    {
        soapRequest += '<anyType xsi:type="xsd:string">'+GetInput(inputidarray[i])+'</anyType>';
    }
    soapRequest += '</valueList>';
    soapRequest += '</Beregn>';
    soapRequest += '</Body>';
    soapRequest += '</Envelope>';

    var nsuri = 'http://tempuri.org';
    var methodName = 'Beregn';
    var soapAction = '"' + nsuri + '/' + methodName + '"';

    $j('#progress').show();
    $j('#output').hide();
    $j('#error').hide();
    $j('#calculateButton').hide();

    var ajaxRequest = new Ajax.Request(beregnerUrl,
        {   method: 'post',
            contentType: 'text/xml',
            requestHeaders: [
                'SOAPAction', soapAction
                ],
            postBody: soapRequest,
            onSuccess: function(request) {callbackSuccess(request, inputidarray, outputids.split(','));},
            onFailure: function(request) {callbackFailure(request);},
            onException: function(request, exception) {callbackException(request, exception);},
            dummy: null
        });
              
}



function fieldHider2()  {
    var cutoffDate = new Date();

    cutoffDate.setFullYear(1993, 0, 1); 

    var Y = document.getElementById('skadedato_yyyy').value;  
    var M = document.getElementById('skadedato_mm').value -1;  
    var D = document.getElementById('skadedato_dd').value;   

    var selectedDate = new Date();
    selectedDate.setFullYear(Y, M, D);

    var koen_div = document.getElementById("koen_div");
    var koen_1  = document.getElementById("koen_1");
    var koen_0  = document.getElementById("koen_0");
    var koen_result  = document.getElementById("koen_result");

    if (selectedDate >= cutoffDate) {    
        koen_1.checked = true;
        koen_0.checked = false;
        koen_div.style.display = "none";    
        koen_result.style.display = "none";    
    }
    else{
        koen_1.checked = false;
        koen_0.checked = true;
        koen_div.style.display = "";
        koen_result.style.display = "";
    }
}
