﻿function DoVal()
{
	var cnt=0;
	var msg="";

	if(document.forms[0].COH.value=="")
	{
		msg = msg + "Please enter an amount for cash on hand\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].COH.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the cash on hand field\n";
		}
	}
	
	if(document.forms[0].SHARES.value=="")
	{
		msg = msg + "Please enter an amount for shares\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].SHARES.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the shares field\n";
		}
	}
	
	if(document.forms[0].UT.value=="")
	{
		msg = msg + "Please enter an amount for unit trusts\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].UT.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the unit trusts field\n";
		}
	}
	
	if(document.forms[0].PENSION.value=="")
	{
		msg = msg + "Please enter an amount for pension\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].PENSION.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the pension field\n";
		}
	}
	
	if(document.forms[0].EPF.value=="")
	{
		msg = msg + "Please enter an amount for existing retirement\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].EPF.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the existing retirement field\n";
		}
	}

	if(document.forms[0].Salary.value=="")
	{
		msg = msg + "Please enter your current salary\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].Salary.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for your current salary\n";
		}
	}
	
	if(document.forms[0].Pinvest.value=="")
	{
		msg = msg + "Please enter a percentage of your current salary invested\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].Pinvest.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the percentage of your current salary invested\n";
		}
	}
		
	if(document.forms[0].OAI.value=="")
	{
		msg = msg + "Please enter the expected annual investment\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].OAI.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the expected annual investment\n";
		}
	}
	if(document.forms[0].OCR.value=="")
	{
		msg = msg + "Please enter a once-off cost expected at retirement\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].OCR.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the once-off cost at retirement\n";
		}
	}
	
	if(document.forms[0].PSR.value=="")
	{
		msg = msg + "Please enter the percentage of your salary that will be required after retirement\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].PSR.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the percentage of your salary required after retirement\n";
		}
	}

	if(document.forms[0].GOFP.value=="")
	{
		msg = msg + "Please enter the expected growth of funds prior to retirement\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].GOFP.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the expected growth of funds prior to retirement\n";
		}
    if (document.forms[0].GOFP.value <= 0)
    {
    	msg = msg + "Please enter a number greater than 0 for the expected growth of funds prior to retirement\n";
    }
	}
	
	if(document.forms[0].GOFA.value=="")
	{
		msg = msg + "Please enter the expected growth of funds after retirement\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].GOFA.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the expected growth of funds after retirement\n";
		}
	}
	if(document.forms[0].AIPF.value=="")
	{
		msg = msg + "Please enter the expected annual increase of your pension\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].AIPF.value);
		if(!chk)
		{
			msg = msg + "Please enter a valid number for the expected annual increase of your pension\n";
		}
	}
	
	if (msg != "")
	{
		alert(msg);
		return false;
	}
	else
	{
		document.forms[0].action = "http://equinox.co.za/plan/retcalculator/doRetCalc.asp";
		//document.forms[0].target = '_blank';
	  document.forms[0].submit();
	  return;
	}
}

//===========================================================================================================

function DoValidation()
{
	var cnt=0;
	var msg="";

	if(document.forms[0].txtFirstName.value=="")
	{
		msg = msg + "The First Name field is required.\n";
	}
	else 
	{
		//Do nothing here!
	}
	
	if(document.forms[0].txtSurname.value=="")
	{
		msg = msg + "The Surname field is required.\n";
	}
	else 
	{
		//Do nothing here!
	}
	
	if(document.forms[0].txtContactNumber1.value=="")
	{
		msg = msg + "The Dialing Code field is required.\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].txtContactNumber1.value);
		if(!chk)
		{
			msg = msg + "The number for the dialing code is not valid.\n";
		}
	}
	
	if(document.forms[0].txtContactNumber2.value=="")
	{
		msg = msg + "The Contact number field is required.\n";
	}
	else 
	{
		chk=_CF_checknumber(document.forms[0].txtContactNumber2.value);
		if(!chk)
		{
			msg = msg + "The number for the contact number is not valid.\n";
		}
	}
	
	if(document.forms[0].txtEmailAddress.value=="")
	{
		msg = msg + "The Email address field is required.\n";
	}
	else 
	{
		if(!isValidEmail(document.forms[0].txtEmailAddress.value))
		{
			msg = msg + "Invalid e-mail address. An e-mail address must contain the @ symbol.\n";
		}
	}	
	
  var rblType0 = document.getElementById('rblType_0');
  var rblType1 = document.getElementById('rblType_1');
	
	if(rblType0.checked == false && rblType1.checked == false)
	{
		msg = msg + "The New Bond / Re-Mortgage field is required.\n";
	}
	else 
	{
	//Do nothing here!
	}
	
	var rblSingleOrDualApplication0 = document.getElementById('rblSingleOrDualApplication_0');
  var rblSingleOrDualApplication1 = document.getElementById('rblSingleOrDualApplication_1');
  
	if(rblSingleOrDualApplication0.checked == false && rblSingleOrDualApplication1.checked == false)
	{
		msg = msg + "The Single / Dual Application field is required.\n";
	}
	else 
	{
	//Do nothing here!
	}

	if (msg != "")
	{
		alert("The following erro(s) occurred:\n" + msg);
		return false;
	}
	else
	{
	  return;
	}
}


//===========================================================================================================
function _CF_checkinteger(object_value) 
    {
    //Returns true if value is a number or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is an integer defined as
    //   having an optional leading + or -.
    //   otherwise containing only the characters 0-9.
	var decimal_format = ".";
	var check_char;

    //The first character can be + -  blank or a digit.
	check_char = object_value.indexOf(decimal_format)
    //Was it a decimal?
    if (check_char < 1)
	return _CF_checknumber(object_value);
    else
	return false;
    }

//===========================================================================================================
function _CF_numberrange(object_value, min_value, max_value)
    {
    // check minimum
    if (min_value != null)
	{
        if (object_value < min_value)
		return false;
	}

    // check maximum
    if (max_value != null)
	{
	if (object_value > max_value)
		return false;
	}
	
    //All tests passed, so...
    return true;
    }

//===========================================================================================================
function _CF_checknumber(object_value)
    {
    //Returns true if value is a number or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is a number defined as
    //   having an optional leading + or -.
    //   having at most 1 decimal point.
    //   otherwise containing only the characters 0-9.
	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

    //The first character can be + - .  blank or a digit.
	check_char = start_format.indexOf(object_value.charAt(0))
    //Was it a decimal?
	if (check_char == 1)
	    decimal = true;
	else if (check_char < 1)
		return false;
        
	//Remaining characters can be only . or a digit, but only one decimal.
	for (var i = 1; i < object_value.length; i++)
	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0)
			return false;
		else if (check_char == 1)
		{
			if (decimal)		// Second decimal.
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0)
		{
			if (decimal || digits)	
				trailing_blank = true;
        // ignore leading blanks

		}
	        else if (trailing_blank)
			return false;
		else
			digits = true;
	}	
    //All tests passed, so...
    return true
    }

//===========================================================================================================
function _CF_checkrange(object_value, min_value, max_value)
    {
    //if value is in range then return true else return false

    if (object_value.length == 0)
        return true;


    if (!_CF_checknumber(object_value))
	{
	return false;
	}
    else
	{
	return (_CF_numberrange((eval(object_value)), min_value, max_value));
	}
	
    //All tests passed, so...
    return true;
    }
//===========================================================================================================
function _CF_checkeurodate(object_value)
    {
    //Returns true if value is a eurodate format or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is a date in the dd/mm/yyyy format
	isplit = object_value.indexOf('/');

	if (isplit == -1 || isplit == object_value.length)
		return false;

    sDay = object_value.substring(0, isplit);
	isplit = object_value.indexOf('/', isplit + 1);

	if (isplit == -1 || isplit == object_value.length)
		return false;

    sMonth = object_value.substring((sDay.length + 1), isplit);

	sYear = object_value.substring(isplit + 1);


	if (!_CF_checkinteger(sDay)) //check day
		return false;
	else
	if (!_CF_checkrange(sDay, 1, 31)) //check day
		return false;
	else
	if (!_CF_checkinteger(sMonth)) //check month
		return false;
	else
	if (!_CF_checkrange(sMonth, 1, 12)) // check month
		return false;
	else
	if (!_CF_checkinteger(sYear)) //check year
		return false;
	else
	if (!_CF_checkrange(sYear, 0, null)) //check year
		return false;
	else
		return true;
    }
//===========================================================================================================
function _CF_checkfloat(object_value)
    {
    //Returns true if value is a number or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is a number defined as
    //   having an optional leading + or -.
    //   having at most 1 decimal point.
    //   otherwise containing only the characters 0-9.
	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

    //The first character can be + - .  blank or a digit.
	check_char = start_format.indexOf(object_value.charAt(0))
    //Was it a decimal?
	if (check_char == 1)
	    decimal = true;
	else if (check_char < 1)
		return false;
        
	//Remaining characters can be only . or a digit, but only one decimal.
	for (var i = 1; i < object_value.length; i++)
	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0)
			return false;
		else if (check_char == 1)
		{
			if (decimal)		// Second decimal.
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0)
		{
			if (decimal || digits)	
				trailing_blank = true;
        // ignore leading blanks

		}
	        else if (trailing_blank)
			return false;
		else
			digits = true;
	}	
    //All tests passed, so...
    return true
    }
//===========================================================================================================
function _AF_IsEmail(object_value) {
//	if (object_value.length == 0) {
//		return true;
//	}
	if (object_value.indexOf("@") == -1 && object_value.value.length > 0)	{
		return false;
	}
	else	{
		return true;
	}
}

//===========================================================================================================


function show(){
  document.getElementById('win').style.display = "block";
  document.getElementById('MortgageApplication_rblType_1').checked = false;
	}
	
	function hide(){
		document.getElementById('win').style.display = "none";
		document.getElementById('MortgageApplication_rblType_0').checked = false;
	}
	
//===========================================================================================================

function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

//===========================================================================================================

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}
function DecimalToPercent(n,p)
{n=n.toString();if(p==null){p=2;}var sy=new Array('','%','-','%');var neg=(n.match(/\x2D/)!=null?true:false);n=n.replace(/[^\d\x2E]/g,'');var m=n.match(/(\d*)(\x2E*)(\d*)/);var f=m[3];if(f.length>p){f=f/Math.pow(10,(f.length-p));f=Math.round(f);while(f.toString().length<p){f='0'+f};}else{while(f.toString().length<p){f+='0'};}var w=new Number(m[1]);if(f==Math.pow(10,p)){w+=1;f=f.toString().substr(1);}w=w.toString();var s=3;var l=w.length-s;while(l>0){w=w.substr(0,l)+'\x2C'+w.substr(l);l-=s;}if(p==0){m[2]='';f=''}else{m[2]='\x2E'}return (neg?sy[2]+w+m[2]+f+sy[3]:sy[0]+w+m[2]+f+sy[1]);}
