/*
---------------------------------------------------------------------------
Tillverkat av Sammy Johannesson
---------------------------------------------------------------------------

Detta script validerar data från FORMS med hjälp av Javascript


Följande funktioner finns:

	Validera heltal - heltalk(validata, formname, ob_obj)
	Validera Datum (yyyy-mm-dd) - datumk(validata, formname, ob_obj)
	Validera Decimal - deck(validata, formname, ob_obj)


Variabler:
	validata = ID till data som skall valideras
	formname = namn på fält
	ob_obj = Bool värde true alt. false
	
Exempel på script i HTML sidan

	<form name="frtest" action="javaval.asp" onsubmit="javascript: heltalk(document.frtest.frInt, 'Heltal', false); return sendform()">
		<input name=frInt value="1234">
	</form>
	


---------------------------------------------------------------------------
*/

/* 
Tillverkar automatiskt - till datum (SV standard)

*/
    function autoAddHyphenToDate(DateInput) {
    //Adds date Hyphen auto when users enters a new date

    var NewDate = "";
    var index = 0;

    for (index = 0; index < DateInput.length; index++) {

        AddThisDate = DateInput.charAt(index);
        AddThisDate = AddThisDate.replace("-", "")

        if (index == 4) {

            NewDate = NewDate + "-";

        }

        if (index == 7) {

            NewDate = NewDate + "-";

        }

        NewDate = NewDate + "" + AddThisDate;

    }


    return NewDate;
}


	var formok = true;
	var ermess = "";

/* 
	Sendform gör slutgiltig kontroll för att skicka vidare
	Kodexempel: onclick="javascript:return sendform();"
	
	OM Ajax typen skall raden: alert("Ett eller flera värden uppfyller inte kraven alternativt saknas. Kontrollera dina uppgifter och försök igen. \n"+ermess);
	användas om sendformajax är false
*/
	
	function sendform()
		{
			if (formok == true)
				{
					formok = true;
					return true;
				}
			else
				{
					formok = true;
					alert("Ett eller flera värden uppfyller inte kraven alternativt saknas. Kontrollera dina uppgifter och försök igen. \n"+ermess);
					ermess = ""
					return false;
				}
		}
		
		
	
/* 
								--------------------------------------------------------
												START BAS FUNKTIONER
								--------------------------------------------------------
*/
	


/* 
								--------------------------------------------------------
												Nödvändigtvärde och SQLSafe
								-------------------------------------------------------

	Vilket värde somhelst: Kontrollera om det är heltal i värdet, 
	Func: anyvalue(validata = postition enligt DOM på fältet formname = namn på fältet, ob_obj = true värde måste finnas (true eller false)
	
*/

		function anyvalue(validata, formname, ob_obj)
		{

			var fname = formname;
			var i = validata;
			var intActEr
			
				  if((ob_obj == true) && (i == ""))
				  	{
			  			/* Ej OK: Fält är tomt */	
						formok = false;
						ermess = ermess + "\n"+fname+" är obligatoriskt, Fyll i nödvändigt värde.";
				  	}
				  else
				  	{
				  				var index = 0;
				  				for (index = 0; index < i.length; index++)
				  					{
		  							if (i.charAt(index) == "'") 
		  								{
								  			/* Ej OK: Fältet innehåller fel värde */	
											formok = false;
											intActEr = true;
										
		  								}
		  							else
		  								{
								  			/* ok gå vidare */	
		  								}
		  							}
	  							if(intActEr == true)
		  							{
		  								ermess = ermess + "\n"+fname+" innehåller ogiltiga tecken.";
		  							}
				  	}
		}















	
/* 
								--------------------------------------------------------
												Heltalskontroll
								--------------------------------------------------------

	heltal: Kontrollera om det är heltal i värdet, 
	Func: heltalk(validata = postition enligt DOM på fältet formname = namn på fältet, sttru = true värde måste finnas (true eller false)
	kodexempel: 
*/

		function heltalk(validata, formname, ob_obj)
		{

			var fname = formname;
			var i = validata;
			var intActEr
			
				  if((ob_obj == true) && (i == ""))
				  	{
			  			/* Ej OK: Fält är tomt */	
						formok = false;
						ermess = ermess + "\n"+fname+" är obligatoriskt, Fyll i nödvändigt värde.";
				  	}
				  else
				  	{
				  				var index = 0;
				  				for (index = 0; index < i.length; index++)
				  					{
		  							if (i.charAt(index) < '0' || i.charAt(index) > '9') 
		  								{
								  			/* Ej OK: Fältet innehåller fel värde */	
											formok = false;
											intActEr = true;
										
		  								}
		  							else
		  								{
								  			/* ok gå vidare */	
		  								}
		  							}
	  							if(intActEr == true)
		  							{
		  								ermess = ermess + "\n"+fname+" innehåller ett felaktigt värde, Endast heltal är tillåtet.";
		  							}
				  	}
		}

/* 
								--------------------------------------------------------
												Datumkontroll
								--------------------------------------------------------

	Kontrolla om värdet är ett datum enligt format yyyy-mm-dd
	Func: datumk(validata = postition enligt DOM på fältet formname = namn på fältet 
*/
		function datumk(validata, formname)
		{
		
			var fname = formname;
			var i = validata;
			var datearray = i.split("-");
			
					if ((datearray.length == 3) &&
						(datearray[0] > 1901) && (datearray[0] < 2049) &&
						(datearray[1] > 0) && (datearray[1] < 13) &&
						(datearray[2] > 0) && (datearray[2] < 32))
					{
						/* Gör inget data är OK */	
					}
				else
					{
						formok = false;
						ermess = ermess + "\n"+fname+" saknar värde alternativt felaktigt format. (yyyy-mm-dd)";
					} 

		}
		
/*
								--------------------------------------------------------
												Decimalkontroll
								--------------------------------------------------------

	Kontrollera om värdet är en decmial enligt 0000,00
	Func: deck(validata = postition enligt DOM på fältet formname = namn på fältet 
*/

	function deck(validata, formname, ob_obj)
		{
			var fname = formname;
			var i = validata;
			var RegExp_Dec = /(^\d*$)|(^\d+\,\d+$)/
			var index = 0;
			
				  if((ob_obj == true) && (i == ""))
				  	{
			  			/* Ej OK: Fält är tomt */	
						formok = false;
						ermess = ermess + "\n"+fname+" är obligatoriskt, Fyll i nödvändigt värde.";
				  	}
				  else
				  	{
				  			if (RegExp_Dec.test(i) == true)
					  				{
					  					/* Allt OK */
					  				}
				  						
				  						
				  				else
			  						{
			  							/* Om RegExp har utlöst felet */
										ermess = ermess + "\n"+fname+" innehåller ett felaktigt värde, Tillåtna värden i detta fält är xx,xx.";
										formok=false;
			  						}
				  	}
		}
		
/*--------------------------------------------------------------------------
Tillverkat av Sammy Johannesson
---------------------------------------------------------------------------*/


