/*********************************************************************
Validation functions
*********************************************************************/

function submit_Validation() 
{
	if(static_Submit_Validation())
	{
		var homeQuoteDetails = document.getElementById('homeQuoteDetails');
		homeQuoteDetails.submit();
	}
} 
function static_Submit_Validation()
{
	//variable that will stop the form submitting if it
	 
	//gets set to false
	var submit = true;
	//Now get all the relevant Status elements
	var coverTypeIdErrorElem = document.getElementById('coverTypeIdError');
	var lastClaimIdErrorElem = document.getElementById('lastClaimIdError');
	var countyIdErrorElem = document.getElementById('countyIdError');
	var rebuildCostErrorElem = document.getElementById('rebuildCostError');
	var rebuildCostAmountErrorElem = document.getElementById('rebuildCostAmountError');
	var contentsValueErrorElem = document.getElementById('contentsValueError');
	var contentsMin1ErrorElem = document.getElementById('contentsMin1Error');
	var contentsMin2ErrorElem = document.getElementById('contentsMin2Error');
	var burgularAlarmIdErrorElem = document.getElementById('burgularAlarmIdError');
	var ageErrorElem = document.getElementById('ageError');
	var ageManError = document.getElementById('ageManError');
	var assumptionsAcceptedError = document.getElementById('assumptionsAcceptedError');

	var jointAgeManError=document.getElementById("jointAgeManError");
	var ageErr=document.getElementById("error1");
	var jointAgeErr=document.getElementById("jointAgeError");
	var jointageErrorElem = document.getElementById('jointAgeError');

	var jointPartyAge=document.getElementById("jointPartyAge");
	jointPartyAge.errorMessage = jointAgeErr;
	jointPartyAge.isNumericValidation = true;
	
	coverTypeIdErrorElem.style.display = "none";
	lastClaimIdErrorElem.style.display = "none";
	countyIdErrorElem.style.display = "none";
	rebuildCostErrorElem.style.display = "none";
	rebuildCostAmountErrorElem.style.display = "none";
	contentsValueErrorElem.style.display = "none";
	burgularAlarmIdErrorElem.style.display = "none";
	ageErrorElem.style.display = "none";
	ageManError.style.display="none";
	contentsMin1ErrorElem.style.display= "none";
	contentsMin2ErrorElem.style.display= "none";
	
	var coverTypeIdElem = document.getElementById('coverTypeId');
	var lastClaimIdElem = document.getElementById('lastClaimId');
	var countyIdElem = document.getElementById('countyId');
	var rebuildCostElem = document.getElementById('rebuildCost');
	var contentsValueElem = document.getElementById('contentsValue');
	var burgularAlarmIdElem = document.getElementById('burgularAlarmId');
	var ageElem = document.getElementById('age').value;
	var jointageElem = document.getElementById('jointPartyAge').value;
	var assumptionsAccepted = document.getElementById('assumptionsAccepted');

	
	//HANDLE COVER TYPE VALIDATION
	//Only invalid if "please select" is selected

	if(coverTypeIdElem.value == -1)
	{
		submit = false;
		coverTypeIdErrorElem.style.display = "block";
	}
	else
	{
		coverTypeIdErrorElem.style.display = "none";
	}

	if(countyIdElem.value == -1)
	{
		submit = false;
		countyIdErrorElem.style.display = "block";
	}
	else
	{
		countyIdErrorElem.style.display = "none";
	}

	//HOME INSURANCE CLAIM VALIDATION
	//Only invalid if "please select" is selected
	if(lastClaimIdElem.value == -1)
	{
		submit = false;
		lastClaimIdErrorElem.style.display = "block";
	}
	else
	{
		lastClaimIdErrorElem.style.display = "none";
	}

	//HOME BURGLAR ALARM VALIDATION
	//Only invalid if "please select" is selected
	if(burgularAlarmIdElem.value == -1)
	{
		submit = false;
		burgularAlarmIdErrorElem.style.display = "block";
	}
	else
	{
		burgularAlarmIdErrorElem.style.display = "none";
	}


	//HANDLE CONTENTS VALUE VALIDATION
	if(contentsValueElem.value == '')
	{
		submit = false;
		contentsValueErrorElem.style.display = "block";
	}
	else if(coverTypeIdElem.value == 1)
	{
		if(parseInt(kainos_stripCommas(contentsValueElem.value)) < 25000)
		{
			submit = false;
			contentsMin1ErrorElem.style.display = "block";
		}
	}
	else if(coverTypeIdElem.value != 6)
	{
		if(parseInt(kainos_stripCommas(contentsValueElem.value)) < 10000)
		{
			submit = false;
			contentsMin2ErrorElem.style.display = "block";
		}
	}
	else
	{
		contentsValueErrorElem.style.display = "none";
	}
	
	//HANDLE REBUILD COST VALIDATION IF THE CORRECT HOUSE IS SELECTED FOR INSURANCE COVER
	if(coverTypeIdElem.value == 1 || coverTypeIdElem.value == 2 || coverTypeIdElem.value == 3)
	   {
			if(rebuildCostElem.value == '')
			{
				submit = false;
				rebuildCostErrorElem.style.display = "block";
			}
			else if(parseInt(kainos_stripCommas(rebuildCostElem.value)) < 125000)
			{
				submit = false;
				rebuildCostAmountErrorElem.style.display = "block";
			}
			else
			{
				rebuildCostErrorElem.style.display = "none";
			}
		}
		
		
		
	if(ageElem == "")
	{	
		submit = false;
		ageManError.style.display = "block";
	}
	else if(!(IsNumeric(ageElem))) 
	{
		submit = false;
		ageErrorElem.style.display = "block";
	}
	else if(ageElem < 18)
	{
		submit = false;
		ageErrorElem.style.display = "block";
	}
	else
	{
		ageErrorElem.style.display = "none";
	}

	var radioVal = "";
	var isJointPartyElem = document.getElementsByName('isJointParty');

	for(var i = 0; i < isJointPartyElem.length; i++) {
		if(isJointPartyElem[i].checked) {
			radioVal = isJointPartyElem[i].value;
		}
	}

	if(radioVal=="Yes"){

		if(jointageElem == "")
		{	
			submit = false;
			jointAgeManError.style.display = "block";
		}
		else if(!(IsNumeric(jointageElem))) 
		{
			submit = false;
			jointageErrorElem.style.display = "block";
		}
		else if(jointageElem < 18)
		{
			submit = false;
			jointageErrorElem.style.display = "block";
		}
		else
		{
			jointageErrorElem.style.display = "none";
		}
	}
	
	//HANDLE ASSUMPTIONS VALIDATION	
	//if the element is null
	if(assumptionsAccepted.checked == false)
	{	
		submit = false;
		assumptionsAcceptedError.style.display = "block";
	}
	else{
		assumptionsAcceptedError.style.display = "none";
	}
	
	return submit;
}

function validateRebuildCost(rebuildCost)
{
	var rebuildCostAmountErrorElem = document.getElementById('rebuildCostAmountError');
	var rebuildCostErrorElem = document.getElementById('rebuildCostError');
	
	if(rebuildCost == "" || (!IsNumeric(rebuildCost)))
	{
		rebuildCostErrorElem.style.display = "block";
		return false;
	}
	else
	{
		rebuildCostErrorElem.style.display = "none";
		
		if(rebuildCost < 125000)
		{
			rebuildCostAmountErrorElem.style.display = "block";
			return false;
		}
		else
		{
			rebuildCostAmountErrorElem.style.display = "none";
			return true;
		}
	}
}

function validateContents(contentCost)
{
	var contentsValueErrorElem = document.getElementById('contentsValueError');
	
	if(contentCost == "" || (!IsNumeric(contentCost)))
	{
		contentsValueErrorElem.style.display = "block";
		return false;
	}
	else
	{
		contentsValueErrorElem.style.display = "none";
		contentsMin1ErrorElem.style.display = "none";
		contentsMin2ErrorElem.style.display = "none";
		return true;
	}
}

function validateAge(age)
{
	var ageErrorElem = document.getElementById('ageError');
	
	if(age == "" || (!IsNumeric(age) || age < 18))
	{
		ageErrorElem.style.display = "block";
		return false;
	}
	else
	{
		ageErrorElem.style.display = "none";
		return true;
	}
}


function IsNumeric(numWithoutComma)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

   for (i = 0; i < numWithoutComma.length && IsNumber == true; i++) 
      { 
      Char = numWithoutComma.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}
   
function stripCommas(num)
{	
	var re = /,/g;
    return num.replace(re,"");

}
function checkCharacterEnteredIsNumber(elementId)
{
    var element = document.getElementById(elementId);
    
    if(isNaN(new Number(stripCommas(element.value))))
    {
        element.value = element.value.substring(0, element.value.length - 1);
    } 
}

function checkCharacterEnteredIsNumberOrComma(elementId)
{
    var element = document.getElementById(elementId);
    
    if(isNaN(new Number(element.value)))
    {
        element.value = element.value.substring(0, element.value.length - 1);
    } 
}
