﻿//var beregnerUrl = '/beregnselv/BeregnProx.asmx'; 
var beregnerUrl = '/sitecore%20modules/Web/CalcProx/BeregnProx.asmx'; 


function AddNumbers(id,from,to,step,prefixZero)
{
	var element = $(id);
	var min,max;
	if (from<to)
	{
		min=from;
		max=to;
	}
	else
	{
		min=to;
		max=from;
	}				
	for (var i=from;i>=min && i<=max;i+=step)
	{
  	var day = document.createElement('option');
		day.text = i.toString();
		day.innerText = i.toString();
		if (i<10 && prefixZero)
		  day.value = '0'+i.toString();
		else
			day.value = i.toString();
		element.appendChild(day);
	}
}
function AddDays(id)
{
	AddNumbers(id,1,31,1,true);
}
function AddMonths(id)
{
	AddNumbers(id,1,12,1,true);
}
function AddYears(id,from)
{
	var thisYear=(new Date()).getFullYear();
	if (!(from))
		from = thisYear - 100;
	AddNumbers(id,thisYear,from,-1);
}
function GetInput(inputid)
{
	var idsplit = inputid.split(":");
	if (idsplit.length>1)
	{
		if (idsplit[1]=="Date")
		{
			return $F(idsplit[0]+'_dd')+'\\'+$F(idsplit[0]+'_mm')+'\\'+$F(idsplit[0]+'_yyyy');
		}
		if (idsplit[1]=="Radio")
		{
			for (var i=0;;++i)
			{
				var id=idsplit[0]+'_'+i.toString();
				if ($(id))
				{
					var value=$F(id);
					if (value)
						return value;
				}
				else
					return '';
			}
		}
		if (idsplit[1]=="Amount")
		{
			return '\'' + $F(idsplit[0]);
		}
	}
	return $F(idsplit[0]);
}
function GetContent(node)
{
    var result=node.text;
    if (result)
        return result;
    return node.textContent;
}
function callbackFailure(request)
{DisplayError("Error is: "+request.responseText);
    //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=$(idsplit[0]+'_ud');
        if (elem)
            elem.innerHTML = FormatOutput(GetInput(inputidarray[i]),idsplit[1]);
    }
    for (var i=0;i<outputidarray.length;++i)
    {
	    var idsplit = outputidarray[i].split(":");
        var elem=$(idsplit[0]);
        if (elem)
            elem.innerHTML = FormatOutput(GetContent(result.childNodes[i]),idsplit[1]);
    }
    $('progress').hide();
    $('input').hide();
    $('error').hide();
    $('output').show();
}
function DisplayError(error)
{
    $('error').innerHTML = error;
    $('progress').hide();
    $('input').show();
    $('error').show();
    $('output').hide();
}

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 + '"';
    $('progress').show();
    $('input').hide();
    $('error').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 fieldHider()  {
    var cutoffDate = new Date();
	cutoffDate.setFullYear(1999, 5, 30); 
 
    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 tr = document.getElementById("rowBeforeCutoffYesNo");
	var erhvervsevnetab = document.getElementById("erhvervsevnetab");
	var tab1 = document.getElementById("tab_1");
 

    if (selectedDate > cutoffDate) {    
        tab1.checked = true;
	erhvervsevnetab.style.display = "none";
        tr.style.display = "none";    
	}
    else{
	tab1.checked = false;
	erhvervsevnetab.style.display = "";
	tr.style.display = "";
    }
}




