//var app = Sys.Application;
var loanBehavior ;
var leaseBehavior;
var lastMenuItemClicked = '';
var parAnim;
var seqAnim;

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function setActiveMenuItem(type){
	//Sys.Debug.trace('Current Type: ' + type);
    if(type == 'lease')
    {
	    document.getElementById('rowBilasamningur').className = 'selectedIndividualCalculator';
        document.getElementById('rowBilalan').className = '';
    }
    else if(type == 'loan')
    {
        document.getElementById('rowBilasamningur').className = '';
        document.getElementById('rowBilalan').className = 'selectedIndividualCalculator';
    }
}

function clearMenuItems()
{
	    document.getElementById('rowBilasamningur').className = '';
        document.getElementById('rowBilalan').className = '';
}

function toggleField(element)
{
	if ((element.className == 'dropdownfieldFake') || (element.className == 'dropdownfieldFakeGreen') || (element.className == 'dropdownfieldFake red'))
	{
		element.className = 'dropdownfieldFakeActive';
		element.getElementsByTagName('div')[0].style.display = 'block';
	}
	else
	{	
		element.className = 'dropdownfieldFake';
		element.getElementsByTagName('div')[0].style.display = 'none';
	}
}

function toggleFieldGreen(element)
{
	if (element.className.indexOf('dropdownfieldFakeGreen') > -1)
	{
		element.className = element.className.replace('dropdownfieldFakeGreen', 'dropdownfieldFakeActive');
		element.getElementsByTagName('div')[0].style.display = 'block';
	}
	else
	{	
		element.className = element.className.replace('dropdownfieldFakeActive', '') + ' dropdownfieldFakeGreen';
		element.getElementsByTagName('div')[0].style.display = 'none';
	}
}

function showField(element)
{
	element.className = 'dropdownfieldFakeActive';
	element.getElementsByTagName('div')[0].style.display = 'block';
}

function showHideDropMenu(element, isVisible)
{
    if(isVisible)
    {
        if(element.className == 'dropdownfieldFake')
        {
            element.className = 'dropdownfieldFakeActive';
        }
        
        if(element.className == 'dropdownfieldFakeActive')
        {
            element.className = 'dropdownfieldFake';
        }
        
        if(element.className == 'dropdownfieldFakeGreen')
        {
            element.className = 'dropdownfieldFakeGreenActive';
        }
        
        if(element.className == 'dropdownfieldFakeGreenActive')
        {
            element.className = 'dropdownfieldFakeGreen';
        }
        
        element.getElementsByTagName('div')[0].style.display = 'block';
    }
    else
    {
        if(element.className == 'dropdownfieldFake')
        {
            element.className = 'dropdownfieldFakeActive';
        }
        
        if(element.className == 'dropdownfieldFakeActive')
        {
            element.className = 'dropdownfieldFake';
        }
        
        if(element.className == 'dropdownfieldFakeGreen')
        {
            element.className = 'dropdownfieldFakeGreenActive';
        }
        
        if(element.className == 'dropdownfieldFakeGreenActive')
        {
            element.className = 'dropdownfieldFakeGreen';
        }
        element.getElementsByTagName('div')[0].style.display = 'none';
    }
}

function setValueAndHideDropMenu(element, value, setReturnValue)
{        
    if (value == null)
    {
        value = element.innerHTML;
    }
    
    if (element.parentNode.parentNode.parentNode.parentNode.getElementsByTagName('input').length > 0) // To compensate for the extra container div surrounding the myntkorfur dropdown
    {
        element.parentNode.parentNode.parentNode.parentNode.getElementsByTagName('input')[0].value = value;
        element.parentNode.parentNode.parentNode.getElementsByTagName('p')[0].innerHTML = element.innerHTML;
        if (setReturnValue)
            showHideDropMenu(element.parentNode.parentNode.parentNode, false);
    }
    else
    {
        element.parentNode.parentNode.parentNode.parentNode.parentNode.getElementsByTagName('input')[0].value = value;
        element.parentNode.parentNode.parentNode.parentNode.getElementsByTagName('p')[0].innerHTML = element.innerHTML;
        if (setReturnValue)
            showHideDropMenu(element.parentNode.parentNode.parentNode.parentNode, false);    
    }
    
    if ((setReturnValue != null) && (setReturnValue))
    {
        return false;
    }
}

function setValue(value, target)
{
	document.getElementById(target).value = value;
	document.getElementById(target + 'Span').innerHTML = value;
	Sys.Debug.trace(document.getElementById(target+'Span').innerHTML);
	Sys.Debug.trace('Current value: ' + document.getElementById(target).value);
}

function playFadeInCalcBox1(header, type)
{
    lastMenuItemClicked = header;
	setActiveMenuItem(type);
    var target = document.getElementById('calcBox1');
    var sedillForm = document.getElementById('sedillForm');

    target.className = 'calcbox1';
    Sys.Debug.trace('Sedill form playFadeInCalcBox1: ' + sedillForm.style.display);
    
    if(sedillForm.style.display == 'block' && !isLiveAnimation())
    {
        closeSedillForm();
        Sys.Debug.trace('Sedill form playFadeInCalcBox1: ' + document.getElementById('sedillForm').display);
    }

    
    seqAnim = new AjaxControlToolkit.Animation.SequenceAnimation(target, 0.25, 25);
    seqAnim.add(new AjaxControlToolkit.Animation.FadeInAnimation(target,0.25, 25, 0, 1, true));
    target.style.display = 'block';
    seqAnim.play();
    
    
    seqAnim.onEnd = function cleanup(){
        $get('calcBox1Heading').innerHTML = lastMenuItemClicked + ' <a href="javascript:playFadeOutBoxAnimation();"><img src="/_layouts/avantcustom/images/close_button_greenbg.gif" alt="loka glugga" class="closebutton" /></a>';
        document.getElementById('calcBox1').style.backgroundColor = 'Transparent';
        document.getElementById('calcBox1').style.filter = '';
   	document.getElementById('RightMenuCalc').style.display = 'block';
        document.getElementById('calcBox1').className = 'calcbox1 pngtransparent';
        document.getElementById('iKaupverd').focus();
    }
}

function playFadeInCalcBox2()
{

    var elemInnborgun = document.getElementById('innborgun');
    var elemKaupverd = document.getElementById('iKaupverd');
	
	var ok = true;
	var error = 'Athugið innslátt á kaupverði og innborgun';
	
	if ((!validateNumeric(elemInnborgun)) || (elemInnborgun.value == ''))
	{
        ok = false;	
	}
	
	if ((!validateNumeric(elemKaupverd)) || (elemKaupverd.value == ''))
	{
        ok = false;
	}
	
	if ((ok) && (parseInt(elemKaupverd.value.replace(/\./ig,'')) < 100000))
	{
	    ok = false;
	    error = 'Lágmarks kaupverð er 100.000 kr.';
	}	
	
	if ((ok) && (parseInt(elemInnborgun.value.replace(/\./ig,'')) >= parseInt(elemKaupverd.value.replace(/\./ig,''))))
	{
	    ok = false;
	    error = 'Innborgun verður að vera lægri en kaupverð';
	}
	
	if ((ok) && ((parseInt(elemKaupverd.value.replace(/\./ig,'')) - parseInt(elemInnborgun.value.replace(/\./ig,''))) > 2500000))
	{
	    ok = false;
	    error = 'Hámarks lánsfjárhæð er 2.500.000 kr.';
	}

	if ((ok) && (document.getElementById('lanstimiSpan').innerHTML  == ''))
	{
	    ok = false;
	    error = 'Athugið að velja lánstíma';
	}
	
	if(ok)
	{
	    document.getElementById('innborgunlabel').style.color = '';
	    document.getElementById('kaupverdlabel').style.color = '';
	    document.getElementById('errors').style.display = 'none';
	    
	    getData();
        
	    Sys.UI.DomElement.setLocation($get('calcBox1'),0, 0);
        
        var popUpBox1 = document.getElementById('calcBox1');
        var popUpBox2 = document.getElementById('calcBox2');
        
        popUpBox2.style.display = 'block';
        popUpBox2.style.filter = '';
        popUpBox2.className = 'calcbox2';
        
        try { popUpBox2.style.opacity = 100; }
        catch(e){}
        
        var moveAnim = new AjaxControlToolkit.Animation.MoveAnimation(popUpBox1, 0.25, 25, -210, 0, true, 'px');
        moveAnim.play();
        
        //var fadeInAnim = new AjaxControlToolkit.Animation.FadeInAnimation(popUpBox2, 0.25, 25, 0, 1, true)        
        //fadeInAnim.play();
         
        moveAnim.onEnd = function cleanup(){
            document.getElementById('calcBox2').style.backgroundColor = 'Transparent';
            document.getElementById('calcBox2').className = 'calcbox2 pngtransparent';
            document.getElementById('calcBox2').style.filter = '';
        }
    }
    else
    {
        document.getElementById('errors').innerHTML = error;
        document.getElementById('errors').style.display = 'block';
    }
}

function playFadeOutBoxAnimation()
{
    Sys.Debug.trace('Playing close animation');
    var popUpBox1 = document.getElementById('calcBox1');
    var popUpBox2 = document.getElementById('calcBox2');
    var rightMenuCalc = document.getElementById('RightMenuCalc');
    
    popUpBox1.className = 'calcbox1';    
    popUpBox2.className = 'calcbox2';

    
    
    seqAnim = new AjaxControlToolkit.Animation.ParallelAnimation(popUpBox1, 0.25, 25);
    seqAnim.add(new AjaxControlToolkit.Animation.FadeOutAnimation(popUpBox1,0.25,25, 0, 1, true));
    seqAnim.add(new AjaxControlToolkit.Animation.FadeOutAnimation(popUpBox2,0.25,25, 0, 1, true));
    seqAnim.play();
    seqAnim.onEnd = function cleanup(){
        Sys.UI.DomElement.setLocation($get('calcBox1'),0, 0);
        
        popUpBox1.style.display = 'none';
        popUpBox2.style.display = 'none';
	rightMenuCalc.style.display = 'none';
        
        clearMenuItems();
    }
}

function closeSedillForm()
{
    Sys.Debug.trace('Playing close sedill animation');
    var target = document.getElementById('sedillForm');
    
    parAnim = new AjaxControlToolkit.Animation.ParallelAnimation(target, 0.25, 23);
    parAnim.add(new AjaxControlToolkit.Animation.FadeOutAnimation(target,0.25,25, 0, 1, true));
    //parAnim.add(new AjaxControlToolkit.Animation.MoveAnimation(target, 0.25, 25, 680, 309, true, 'px'));
    //parAnim.add(new AjaxControlToolkit.Animation.ResizeAnimation(target, 0.25, 25, 1, 1, 'px'));

    parAnim.play();
    
    parAnim.onEnd = function cleanup(){
	var sedillForm = document.getElementById('parentbtnSedill');
	sedillForm.className = 'sedillForsida';
        document.getElementById('sedillForm').display = 'none';
        $get('sedillForm').style.width = '1px';
        $get('sedillForm').style.height = '1px';
        Sys.Debug.trace('Sedill form: ' + document.getElementById('sedillForm').display);
        Sys.Debug.trace('Sedill closed and hidden');
    }
    
    //Sys.UI.DomElement.setLocation($get('sedillForm'),210, 441);
    Sys.Debug.trace('Sedill form: ' + document.getElementById('sedillForm').display);
}

function openSedillForm()
{
    //document.getElementById('animationLink').disbled = true;
    Sys.Debug.trace('Sedill form: ' + document.getElementById('sedillForm').display);
    Sys.Debug.trace('Playing open animation');
    var target = $get('sedillForm');
    target.style.display = 'block';
    target.style.width = '680px';
    target.style.height = '314px';
    parAnim = new AjaxControlToolkit.Animation.ParallelAnimation(target, 0.25, 23);
    parAnim.add(new AjaxControlToolkit.Animation.FadeInAnimation(target,0.25,25, 0, 1, true));
    //parAnim.add(new AjaxControlToolkit.Animation.MoveAnimation(target, 0.25, 25, -680, -309, true, 'px'));
    //parAnim.add(new AjaxControlToolkit.Animation.ResizeAnimation(target, 0.25, 25, 680, 314, 'px'));
    parAnim.play();

    parAnim.onEnd = function cleanup2(){
    	var sedillForm = document.getElementById('parentbtnSedill');
	sedillForm.className = 'sedillForsida sedillselected';
    }
   
   
}

function playAnimation()
{
    var sedillForm = document.getElementById('sedillForm');
    Sys.Debug.trace(sedillForm.style.display);
    
    if(sedillForm.style.width == '680px' && !isLiveAnimation())
    {
        closeSedillForm();
    }
    else if (!isLiveAnimation())
    {
        openSedillForm();
    }
}

function resetAnimation()
{
    if(parAnim != undefined && parAnim.isPlaying)
    {
        parAnim.stop();
        parAnim.dispose();
        //Sys.UI.DomElement.setLocation($get('sedillForm'),210, 441);
    }
}

function isLiveAnimation()
{
    var returnValue = false;
    if(parAnim != undefined && parAnim.isPlaying)
    {
        returnValue = true;
    }
    return returnValue; 
}

function openCalulator(sender,args)
{
    var objLocation = Sys.UI.DomElement.getLocation(this);
    Sys.Debug.trace(objLocation.y);
    var location = Sys.UI.DomElement.getLocation($get("RightMenuCalc"));
    Sys.Debug.trace(location.y);
    //Sys.UI.DomElement.setLocation($get("RightMenuCalc"),objLocation.x-225, objLocation.y -60);
}

function setActiveFieldset(element)
{
	Sys.Debug.trace('setting acticve element ' + element);
	document.getElementById('part1').style.className = '';
	Sys.Debug.trace('1');
	document.getElementById('part2').style.className = '';
	Sys.Debug.trace('2');
	document.getElementById('part3').style.className = '';
	Sys.Debug.trace('3');
	document.getElementById(element).style.className = 'selected';
	Sys.Debug.trace('4');
	Sys.Debug.trace('Active part ' + element + ' ' + document.getElementById(element).style.className);
}

function getSedillApplication()
{
    if(validateSedill() == true)
    {
	    var sedillTegund = document.getElementById('sedillTegund').value;
	    var sedillArgerd = document.getElementById('sedillArgerd').value;
	    var sedillKennitala = document.getElementById('sedillKennitala').value;	
    	
	    var url = '/einstaklingar/reiknivelar/Pages/SaektuumSedil.aspx?sedillTegund=' + sedillTegund + '&sedillArgerd=' + sedillArgerd + '&sedillKennitala=' + sedillKennitala;

	    window.location = url;
	}
}

function validateSedill()
{
    var elementTegund = document.getElementById('sedillTegund');
    var elementArgerd = document.getElementById('sedillArgerd');
    var elementKennitala = document.getElementById('sedillKennitala');
    
    var status1 = validateString(elementTegund.value);
    var status2 = validateNumeric(elementArgerd);
    var status3 = validateNumeric(elementKennitala); 
    
    if(elementTegund.value != '' && validateNumeric(elementArgerd) == true && validateNumeric(elementKennitala) == true)
    {
        return true;    
    }
    else
    {
        return false;
    }
}

function validateNumeric(element)
{ 
//Input for Numeric values. Handles negatives, and comma formatted values. Also handles a single decimal point
 var regex=/^\$?([0-9]{1,3}.([0-9]{3}.)*[0-9]{3}|[0-9]+)(,[0-9][0-9])?$/;
 
	// do the comparison, if we have a match write thank you or else the email is invalid
	if (regex.test(element.value))
	{
	    element.style.border = 'solid 1px #c3c3c3';
	    element.style.height = '16px';
        return true;
	}
	else
	{
      return false;
	}
}

function validateString(sVal)
{ 
//This is the simplest RegEx for validating someone's name. The name can contain only alphabets(in either case) & 
//should be of minimum length 4 & maximum length 32. Only white spaces are allowed apart from alphabets.
//Matches: 	[some body], [hey there], [hello] (http://www.regexlib.com)
 var regex=/^([a-zA-z\s]{1,32})$/;
 
	// do the comparison, if we have a match write thank you or else the email is invalid
	if (regex.test(sVal))
	{
      return true;
	}
	else
	{
      return false;
	}
}

function validateAndColor(sVal, type)
{
    var isValid = false;
    if(type == 'string')
    {
        isValid = validateString(sVal);
    }
    else
    {
        isValid = validateNumeric(sVal);
    }
    
    if(isValid == false)
    {
        element.style.border = 'solid 1px red';
    }
    else
    {
        element.style.border = 'solid 1px #c3c3c3';
    }
    return isValid;
}

function setHoverBackground(element)
{
	if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version == 6)
	{
	    element.style.background = 'background: #a6bf22 url(../images/calculator_hover_greenbg.png) repeat-x top left';
	    element.getElementsByTagName('a')[0].style.color = '#fff';
	    element.getElementsByTagName('img')[0].style.visibility = 'hidden';
		
		var theSpan = element.getElementsByTagName('span')[0];
		theSpan.style.background = 'transparent none';
		theSpan.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'/_layouts/avantCustom/images/calculator_hover_greenarrow.png\',sizingMethod=\'crop\')';
	}
}

function clearHoverBackground(element)
{
	if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version == 6)
	{
	    element.style.background = '';
	    element.getElementsByTagName('a')[0].style.color = '';
	    element.getElementsByTagName('img')[0].style.visibility = 'visible';
		
		var theSpan = element.getElementsByTagName('span')[0];
		theSpan.style.background = 'transparent none';
		theSpan.style.filter = '';
	}
}

function formatCurrency(element)
{
    var value = element.value;

    value = value.replace(/[^0-9]/g, '');
    value = value.replace(/(\d)(\d{3})$/, '$1.$2');
    value = value.replace(/(\d)(\d{3})\./, '$1.$2.');
    value = value.replace(/(\d)(\d{3})\./, '$1.$2.');
    value = value.replace(/(\d)(\d{3})\./, '$1.$2.');

    element.value = value; 
    
    if ((value.replace(/[^0-9]/g, '')*1) > 100000000)
    {
        element.value = '100.000.000';
    }
}

function onlyNumeric(keyCode, field)
{	
	var allowed = '35,36,48,49,50,51,52,53,54,55,56,57,37,38,39,40,96,97,98,99,100,101,102,103,104,105,46';
	if (allowed.indexOf(keyCode+'') > -1)
	{	
		return true;
	}
	return false;
}

function onlyNumericFracture(keyCode, field)
{	
	var allowed = '35,36,48,49,50,51,52,53,54,55,56,57,37,38,39,40,96,97,98,99,100,101,102,103,104,105,188,190,46';
	if (allowed.indexOf(keyCode+'') > -1)
	{	
		return true;
	}
	return false;
}

function limitValue(field, minValue, maxValue)
{
	var value = field.value.replace(/\./ig,'');
	
	var min = minValue+'';
	var max = maxValue+'';
	
	min = min.replace(/\./ig,'');
	max = max.replace(/\./ig,'');
	
	if (parseInt(value) > parseInt(max))
	{
		field.value = max;
	}
	
	if (parseInt(value) < parseInt(min))
	{
		field.value = min;
	}
}

function validateCalculator(kaupverd, innborgun, url)
{
	var ok = true;
	var error = 'Athugið innslátt á kaupverði og innborgun';
	
	if ((!validateNumeric(innborgun)) || (kaupverd.value == ''))
	{
        ok = false;	
	}
	
	if ((!validateNumeric(kaupverd)) || (kaupverd.value == ''))
	{
        ok = false;
	}
	
	if ((ok) && (parseInt(kaupverd.value.replace(/\./ig,'')) < 100000))
	{
	    ok = false;
	    error = 'Lágmarks kaupverð er 100.000 kr.';
	}	
	
	if ((ok) && (parseInt(innborgun.value.replace(/\./ig,'')) >= parseInt(kaupverd.value.replace(/\./ig,''))))
	{
	    ok = false;
	    error = 'Innborgun verður að vera lægri en kaupverð';
	}
	
	if (!ok)
	{
	    alert(error);
	}
    else
    {
        window.location = url;
    }
}

function ViewAllPayments(elem)
{
	document.getElementById('hide-row').style.display = 'none';
	
	var rows = document.getElementById('payments-table').getElementsByTagName('tr');
	for (var i = 0; i < rows.length; i++)
	{
		rows[i].className = rows[i].className.replace('hidden', '');
	}
}

function ValidateDownPayment(field, maxValue, minValue)
{
	var payment = field.value.replace(/\./ig,'');
	if (parseInt(payment) > parseInt(maxValue))
	{
		field.value = maxValue - 100000;
	}
	
	if ((maxValue - payment) < 100000)
	{
		field.value = maxValue - 100000;
	}
	
	if (parseInt(payment) < parseInt(minValue))
	{
		field.value = minValue;
	}
	formatCurrency(field);
}

$(document).bind('click',function(e){var $clicked=$(e.target);if(!($clicked.is('.dropdownfieldFake')||$clicked.parents().is('.dropdownfieldFake')||$clicked.is('.dropdownfieldFakeActive')||$clicked.parents().is('.dropdownfieldFakeActive')||$clicked.is('.dropdown')||$clicked.parents().is('.dropdown')||$clicked.is('.dropdownfieldFakeGreen')||$clicked.parents().is('.dropdownfieldFakeGreen')))
{$('.dropdownfieldFakeActive').click();$('.dropdownfieldFakeActive').click();$('.dropdown.active').click();}});