﻿// JScript File
function InactivityCountdown(Minuter)
{
    window.setTimeout("InactiveVarning(" + Minuter + ");", Minuter * 60 * 1000 * 0.8);
}
function InactiveVarning(Minuter)
{
    window.setTimeout("InactiveKickedOut(" + Minuter + ");", Minuter * 60 * 1000 * 0.2);
    alert("Du har varit inaktiv i " + Minuter * 0.8 + " minuter. Om du inte laddar om en sida inom " + Minuter * 0.2 + " minuter så tappar du din inloggning och blir utkastad!");
}
function InactiveKickedOut(Minuter)
{
    alert("Du har varit inaktiv i " + Minuter + " minuter och är därmed inte längre inloggad och blir utkastad så fort du laddar om en sida.");
}

//Generella funktioner
/*
function DoYouReallyWantToDelete()
{
    return window.confirm("Vill du verkligen radera?");
}
*/

function OpenHelp(url)
{
    var Browser;
    Browser = window.open(url,"Help","height=500,width=350,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no");
    Browser.focus();
}
function IsNumeric(str)
{
    var IsInteger = new RegExp("^[0-9]+[0-9]*$"); 
    if (IsInteger.exec(str))
    {
        return true;
    }    
    else
    {
        return false;
    }    

	//return !(isNaN(parseFloat(str)));
}
function ReturnInteger(str)
{
    if (IsNumeric(str))
    {
        return parseInt(str);
    }
    else
    {
        return 0;
    }
}
function IsNumericZeroOrEmpty(str)
{
    var ReturnThis = false;
    if ((IsNumeric(str) && str == 0) || str == "")
    {
        ReturnThis = true;
    }
    return ReturnThis;
}
//Funktioner för admHuntTeam

//What: 1 = Adult, 2 = Calf
function admHuntTeamCalcylateAllot(What)
{
    var Obj1 = theForm.ctl00_ContentPlaceHolder1_txtAdult;
    var Obj2 = theForm.ctl00_ContentPlaceHolder1_txtCalf;
    var Obj3 = theForm.ctl00_ContentPlaceHolder1_txtAnimal;
    
    if (IsNumeric(Obj1.value) == false)
    {
        Obj1.value = 0;
    }
    if (IsNumeric(Obj2.value) == false)
    {
        Obj2.value = 0;
    }
    Obj3.value = parseFloat(Obj1.value) + parseFloat(Obj2.value);
}
////////// SLUT Funktioner för admHuntTeam

//Validatorer för admHuntTeam
function admHuntTeamtxtAnimal(source, arguments)
{
    var ReturnThis = true;
    var Obj1 = theForm.ctl00_ContentPlaceHolder1_txtAdult;
    var Obj2 = theForm.ctl00_ContentPlaceHolder1_txtCalf;
    
    if (IsNumeric(Obj1.value) == false)
    {
        Obj1.value = 0;
    }
    if (IsNumeric(Obj2.value) == false)
    {
        Obj2.value = 0;
    }
    ReturnThis = IsNumeric(arguments.Value);
    
    if (Obj1.value != 0 && Obj2.value != 0)
    {
        if (parseFloat(arguments.Value) != (parseFloat(Obj1.value) + parseFloat(Obj2.value)))
        {
            ReturnThis = false;
        }
    }
    arguments.IsValid = ReturnThis;
}
////////// SLUT Validatorer för admHuntTeam

//Funktioner för mseObs
function mseObsDateFocus(Obj, YearId)
{
    if (Obj.value == "")
    {
        Obj.value = YearId;
    }
    Obj.select();
}
function mseObsGetObsValue(Name)
{
    var Id;
    var ObsValue;    
    var BullKilled = new RegExp("BullKilled$");
    var CowKilled = new RegExp("CowKilled$");
    var BullCalfKilled = new RegExp("BullCalfKilled$");
    var CowCalfKilled = new RegExp("CowCalfKilled$");
    
    ObsValue = 0;        
    Id = mseObsGetElementId(Name);
    
    if (BullKilled.exec(Name))
    {
        ObsValue += ReturnInteger(theForm.elements[Id - 6].value);
        ObsValue += ReturnInteger(theForm.elements[Id - 1].value);
    }
    else if (CowKilled.exec(Name))
    {
        ObsValue += ReturnInteger(theForm.elements[Id - 6].value);
        ObsValue += ReturnInteger(theForm.elements[Id - 5].value);
        ObsValue += ReturnInteger(theForm.elements[Id - 4].value);
        ObsValue += ReturnInteger(theForm.elements[Id - 2].value);
    }
    else if (BullCalfKilled.exec(Name))
    {
        ObsValue += ReturnInteger(theForm.elements[Id - 6].value);
        ObsValue += (ReturnInteger(theForm.elements[Id - 5].value) * 2);
        ObsValue += ReturnInteger(theForm.elements[Id - 4].value);
        ObsValue += ReturnInteger(theForm.elements[Id - 3].value);
        //Räkna bort kokalv
        ObsValue = ObsValue - ReturnInteger(theForm.elements[Id + 1].value);
    }
    else if (CowCalfKilled.exec(Name))
    {
        ObsValue += ReturnInteger(theForm.elements[Id - 7].value);        
        ObsValue += (ReturnInteger(theForm.elements[Id - 6].value) * 2);
        ObsValue += ReturnInteger(theForm.elements[Id - 5].value);
        ObsValue += ReturnInteger(theForm.elements[Id - 4].value);
        //Räkna bort tjurkalv
        ObsValue = ObsValue - ReturnInteger(theForm.elements[Id - 1].value);
    }

    return ObsValue;
}
function mseObsGetElementId(Name)
{
    var i;
    var ReturnId;
    ReturnId = 0;
    
    Name = Name.replace("_", "$");
    Name = Name.replace("_", "$");
    for(i=1;i<theForm.elements.length;i++)
    {
        if (theForm.elements[i].name == Name)
        {            
            ReturnId = i;
            break;
        }
    }
    return ReturnId;
}
function mseObsCompulsary(Obj)
{
    var i;
    var DateObs = new RegExp("DateObs$");
    var Id;
    document.all.DontForgetToSave.style.visibility='visible';
    
    if (Obj.value > "")
    {
        Id = mseObsGetElementId(Obj.name);
        
        for(i=Id;i>0;i--)
        {
            if (DateObs.exec(theForm.elements[i].name))
            {
                Id = i;
                break;
            }
        }
        
        if (theForm.elements[Id].value == "")
        {
            theForm.elements[Id].value = "ÅÅÅÅ-MM-DD";
        }
        if (theForm.elements[Id + 1].value == "")
        {
            theForm.elements[Id + 1].value = "0";
        }    
        if (theForm.elements[Id + 2].value == "")
        {
            theForm.elements[Id + 2].value = "0";
        }
    }
}
////////// SLUT Funktioner för mseObs

//Validatorer för mseObs
function mseObsKilledIsObs(source, arguments)
{
    var ReturnThis = true;
    if (IsNumericZeroOrEmpty(arguments.Value) == false)
    {
        if (mseObsGetObsValue(source.controltovalidate) < arguments.Value)
        {
            ReturnThis = false;
        }
    }
    
    arguments.IsValid = ReturnThis;
}
////////// SLUT Validatorer för mseObs

//Funktioner för mseKill
function GetmseKillSpecies()
{
    return theForm.ctl00_ContentPlaceHolder1_ddl03SpeciesType.options[document.all.ctl00_ContentPlaceHolder1_ddl03SpeciesType.selectedIndex].value;
}
function GetmseKillSWeight()
{
    return theForm.ctl00_ContentPlaceHolder1_txtSWeight.value;
}
function GetmseKillAge()
{
    return theForm.ctl00_ContentPlaceHolder1_txtAge.value;
}
function mseKillddl03SpeciesType(Obj)
{
	var SpeciesValue = Obj.options[Obj.selectedIndex].value;
    
	//Kalv
	if (SpeciesValue == 3 || SpeciesValue == 4)
	{
        theForm.ctl00_ContentPlaceHolder1_txtAge.value = 0;
	}
}
////////// SLUT Funktioner för mseKill

//Validatorer för mseKill
function mseKilltxtAge(source, arguments)
{
    var SpeciesValue = GetmseKillSpecies();
    var ReturnThis = true;
    
    if (IsNumeric(arguments.Value))
    {
	    if (SpeciesValue == 3 || SpeciesValue == 4)
	    {
            if (arguments.Value != 0)
            {
                source.ErrorMessage = "Du har angivit kalv, de är 0 år.";
                ReturnThis = false;
            }	    
	    }    
	    else
	    {
            if (arguments.Value < 0 || arguments.Value > 25)
            {
                source.ErrorMessage = "Felaktigt intervall, tillåtet intervall är 0-25";
                ReturnThis = false;
            }	    
	    }
	}
	else
	{
	    ReturnThis = IsNumericZeroOrEmpty(arguments.Value);
	}
		
	arguments.IsValid = ReturnThis;
}

function mseKilltxtPegs(source, arguments)
{
    var SpeciesValue = GetmseKillSpecies();
    var ReturnThis = true;
    
	if (SpeciesValue == 1)
	{
	    if (IsNumeric(arguments.Value))
	    {
	        if (arguments.Value < 0 || arguments.Value > 45)
	        {
	            source.ErrorMessage = "Felaktigt intervall, tillåtet intervall är 0-45";
	            ReturnThis = false;
	        }	    
	    }
	    else
	    {
	        ReturnThis = IsNumericZeroOrEmpty(arguments.Value);
	    }
	}
	else
	{
	    ReturnThis = IsNumericZeroOrEmpty(arguments.Value);
	}
	arguments.IsValid = ReturnThis;
}

function mseKilltxtOutlay(source, arguments)
{
    var SpeciesValue = GetmseKillSpecies();
    var ReturnThis = true;

	if (SpeciesValue == 1)
	{
	    if (IsNumeric(arguments.Value))
	    {
	        if (arguments.Value != 0 && (arguments.Value < 10 || arguments.Value > 200))
	        {
	            source.ErrorMessage = "Felaktigt intervall, tillåtet intervall är 10-200";
	            ReturnThis = false;
	        }	    
	    }
	    else
	    {
	        ReturnThis = IsNumericZeroOrEmpty(arguments.Value);
	    }
	}
	else
	{
	    ReturnThis = IsNumericZeroOrEmpty(arguments.Value);
	}    
	
	arguments.IsValid = ReturnThis;
}
function mseKilltxtDaysAfter(source, arguments)
{
    var ReturnThis = true;
    
    if (IsNumeric(arguments.Value))
    {
	    if (GetmseKillSWeight() > 0)
	    {
	        if (arguments.Value < 0 || arguments.Value > 45)
	        {	            
	            source.ErrorMessage = "Felaktigt intervall, tillåtet intervall är 0-45";
	            ReturnThis = false;
	        }
        }
	}
	else
	{
	    ReturnThis = IsNumericZeroOrEmpty(arguments.Value);
	}
	
	arguments.IsValid = ReturnThis;
}
function mseKilltxtSWeight(source, arguments)
{
    var ReturnThis = true;
    var Age = GetmseKillAge();
    var SpeciesValue = GetmseKillSpecies();
    
    if (IsNumeric(arguments.Value))
    {
        if (arguments.Value != 0)
        {
	        if (Age == 0 && SpeciesValue > 2)
	        {	    
	            if (arguments.Value < 20 || arguments.Value > 135)
	            {
	                source.ErrorMessage = "Felaktigt intervall, tillåtet intervall är 20-135";
	                ReturnThis = false;
	            }
	        }
	        else if (Age == 1)
	        {
	            if (arguments.Value < 50 || arguments.Value > 250)
	            {
	                source.ErrorMessage = "Felaktigt intervall, tillåtet intervall är 50-250";
	                ReturnThis = false;
	            }
	        }
	        else if (Age != 1 && SpeciesValue < 3)
	        {
	            if (arguments.Value < 60 || arguments.Value > 500)
	            {
	                source.ErrorMessage = "Felaktigt intervall, tillåtet intervall är 60-500";
	                ReturnThis = false;
	            }
	        }    
        }
    }
    else
    {
        ReturnThis = IsNumericZeroOrEmpty(arguments.Value);
	}		
	
	arguments.IsValid = ReturnThis;
}
function mseKilltxtSWeightWarning(Obj)
{
    var ReturnThis = true;
    var Age = GetmseKillAge();
    var SpeciesValue = GetmseKillSpecies();
    
	if (SpeciesValue == 1 || SpeciesValue == 2)
	{

	}
	else if (Age == 0)
	{	    
	    if (Obj.value > 99 && Obj.value < 136)
	    {
	        alert("Du har angivit en ovanligt hög slaktvikt. Är den verkligen rätt?");
	    }	
	}
	else if (Age == 1)
	{
	    if (Obj.value > 149 && Obj.value < 251)
	    {
	        alert("Du har angivit en ovanligt hög slaktvikt. Är den verkligen rätt?");
	    }		
	}
}
////////// SLUT Validatorer för mseKill