

//	Qantas Frequent Flyer Claim

	// Data Storage
	var FFC = new Array();
	FFC[0] = new Array();
	FFC[1] = new Array();
	FFC[2] = new Array();
	FFC[3] = new Array();
	FFC[4] = new Array();
	FFC[5] = new Array();
	FFC[6] = new Array();
	FFC[7] = new Array();
	FFC[8] = new Array();
	FFC[9] = new Array();
	
	function QFFvalidate()
		{
		var valMsg = "";
		var valError = 0;
		var nCounter = 0;
		var nCounter2 = 0;
		
//		alert ("QFFvalidate()");			
		
		// Store FF Claim Data
		GetClaimData();

		// Validate Claim Data				
		

		if (QFF.Claimant.value == "")
			{
			valError=1;
			valMsg += "Claimant Name is required\n";
			}
			
		if (QFF.Email.value == "")
			{
			valError=1;
			valMsg += "Email Address is required\n";
			}
        if (noAtSign(QFF.Email.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + QFF.Email.value + "\" does not contain an '@' character\n";
        } else if (nothingBeforeAt(QFF.Email.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + QFF.Email.value;
            message += "\" must contain at least one character before the '@' character\n";
        } else if (noLeftBracket(QFF.Email.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + QFF.Email.value;
		    valMsg += "\" contains a right square bracket ']',\nbut no corresponding left square bracket '['\n";
        } else if (noRightBracket(QFF.Email.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + QFF.Email.value;
		    valMsg += "\" contains a left square bracket '[',\nbut no corresponding right square bracket ']'\n";
        } else if (noValidPeriod(QFF.Email.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + QFF.Email.value + "\" must contain a period ('.') character\n";
        } else if (noValidSuffix(QFF.Email.value)) {
		    valError=1;
		    valMsg += "Error! The email address \"" + QFF.Email.value;
		    valMsg += "\" must contain a two, three or four character suffix\n";
        }
			
		if (FFC[0][0] == "")
			{
			valError=1;
			valMsg += "Row 1 - Qantas Frequent Flyer Number is required\n";
			}

		for(nCounter = 0;nCounter <= 9;nCounter++)
			{
			if(FFC[nCounter][0] != "")
				{
				if (FFC[nCounter][0] == "")
					{
					valError=1;
					valMsg += "Row " + (nCounter+1) +" - Qantas Frequent Flyer Number is required\n";
					}
				if (FFC[nCounter][1] == "")
					{
					valError=1;
					valMsg += "Row " + (nCounter+1) +" - Last Name is required\n";
					}
				if (FFC[nCounter][2] == "")
					{
					valError=1;
					valMsg += "Row " + (nCounter+1) +" - Initial is required\n";
					}
				if (FFC[nCounter][3] == "")
					{
					valError=1;
					valMsg += "Row " + (nCounter+1) +" - Flight Date is required\n";
					}
				if (FFC[nCounter][4] == "")
					{
					valError=1;
					valMsg += "Row " + (nCounter+1) +" - Flight Number is required\n";
					}
				if (FFC[nCounter][5] == "x")
					{
					valError=1;
					valMsg += "Row " + (nCounter+1) +" - Departure Port is required\n";
					}
				if (FFC[nCounter][6] == "x")
					{
					valError=1;
					valMsg += "Row " + (nCounter+1) +" - Destination Port is required\n";
					}
				}
			}				
					
		if (valError == 1)
			{
			alert(valMsg);
			}
			else
			{
			
			// Process request here
				
			var	querystring = "QFFclaim.aspx?";

		    querystring += "Claimant="+QFF.Claimant.value;			
		    querystring += "&Email="+QFF.Email.value;						
			
			for(nCounter = 0;nCounter <= 9;nCounter++)
				{
				if(FFC[nCounter][0] != "")
					{
				    querystring += "&FF"+(nCounter+1)+"=" + FFC[nCounter][0];
					querystring += "&LN"+(nCounter+1)+"=" + FFC[nCounter][1];
					querystring += "&IN"+(nCounter+1)+"=" + FFC[nCounter][2];
					querystring += "&FD"+(nCounter+1)+"=" + FFC[nCounter][3];
					querystring += "&FN"+(nCounter+1)+"=" + FFC[nCounter][4];
					querystring += "&FR"+(nCounter+1)+"=" + FFC[nCounter][5];
					querystring += "&TO"+(nCounter+1)+"=" + FFC[nCounter][6];
	                }
				}
					
									
			//alert (querystring);
	
			window.location = querystring; 
		}
	}

			
function GetClaimData()
	{
// Retrieve FF Claim Details from form and store for processing
	
		//Claim #1
		FFC[0][0]=QFF.FF1.value		//Qantas Freq Flyer No				
		FFC[0][1]=QFF.LN1.value		//Last Name		
		FFC[0][2]=QFF.IN1.value		//Initial
		FFC[0][3]=QFF.FD1.value		//Flight Date
		FFC[0][4]=QFF.FN1.value		//Flight Number
		FFC[0][5]=QFF.FR1.value		//Departure Port
		FFC[0][6]=QFF.TO1.value		//Destination Port 
		
		//Claim #2
		FFC[1][0]=QFF.FF2.value				
		FFC[1][1]=QFF.LN2.value				
		FFC[1][2]=QFF.IN2.value				
		FFC[1][3]=QFF.FD2.value				
		FFC[1][4]=QFF.FN2.value				
		FFC[1][5]=QFF.FR2.value				
		FFC[1][6]=QFF.TO2.value				
		
		//Claim #3
		FFC[2][0]=QFF.FF3.value				
		FFC[2][1]=QFF.LN3.value				
		FFC[2][2]=QFF.IN3.value				
		FFC[2][3]=QFF.FD3.value				
		FFC[2][4]=QFF.FN3.value				
		FFC[2][5]=QFF.FR3.value				
		FFC[2][6]=QFF.TO3.value				
		
		//Claim #4
		FFC[3][0]=QFF.FF4.value				
		FFC[3][1]=QFF.LN4.value				
		FFC[3][2]=QFF.IN4.value				
		FFC[3][3]=QFF.FD4.value				
		FFC[3][4]=QFF.FN4.value				
		FFC[3][5]=QFF.FR4.value				
		FFC[3][6]=QFF.TO4.value				
		
		//Claim #5
		FFC[4][0]=QFF.FF5.value				
		FFC[4][1]=QFF.LN5.value				
		FFC[4][2]=QFF.IN5.value				
		FFC[4][3]=QFF.FD5.value				
		FFC[4][4]=QFF.FN5.value				
		FFC[4][5]=QFF.FR5.value				
		FFC[4][6]=QFF.TO5.value				
		
		//Claim #6
		FFC[5][0]=QFF.FF6.value				
		FFC[5][1]=QFF.LN6.value				
		FFC[5][2]=QFF.IN6.value				
		FFC[5][3]=QFF.FD6.value				
		FFC[5][4]=QFF.FN6.value				
		FFC[5][5]=QFF.FR6.value				
		FFC[5][6]=QFF.TO6.value				
		
		//Claim #7
		FFC[6][0]=QFF.FF7.value				
		FFC[6][1]=QFF.LN7.value				
		FFC[6][2]=QFF.IN7.value				
		FFC[6][3]=QFF.FD7.value				
		FFC[6][4]=QFF.FN7.value				
		FFC[6][5]=QFF.FR7.value				
		FFC[6][6]=QFF.TO7.value				
		
		//Claim #8
		FFC[7][0]=QFF.FF8.value				
		FFC[7][1]=QFF.LN8.value				
		FFC[7][2]=QFF.IN8.value				
		FFC[7][3]=QFF.FD8.value				
		FFC[7][4]=QFF.FN8.value				
		FFC[7][5]=QFF.FR8.value				
		FFC[7][6]=QFF.TO8.value				
		
		//Claim #9
		FFC[8][0]=QFF.FF9.value				
		FFC[8][1]=QFF.LN9.value				
		FFC[8][2]=QFF.IN9.value				
		FFC[8][3]=QFF.FD9.value				
		FFC[8][4]=QFF.FN9.value				
		FFC[8][5]=QFF.FR9.value				
		FFC[8][6]=QFF.TO9.value				
		
		//Claim #10
		FFC[9][0]=QFF.FF10.value				
		FFC[9][1]=QFF.LN10.value				
		FFC[9][2]=QFF.IN10.value				
		FFC[9][3]=QFF.FD10.value				
		FFC[9][4]=QFF.FN10.value				
		FFC[9][5]=QFF.FR10.value				
		FFC[9][6]=QFF.TO10.value				

	}
				
//-------------------------------------------------------------------------

var map = {};	
		
function getUrlVar(name) 
	{
  	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  	var regexS = "[\\?&]"+name+"=([^&#]*)";  
  	var regex = new RegExp( regexS );  
  	var results = regex.exec( window.location.href );  
  	if( results == null )    
  		return "";  
  	else    
    	results[1]=results[1].replace("%20"," ");
		return results[1];
	}	
	
function stringEmpty (formField) {
    // CHECK THAT THE STRING IS NOT EMPTY
    if ( formField.length < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noAtSign (formField) {
    // CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
    if (formField.indexOf ('@', 0) == -1) {
        return ( true )
    } else {
        return ( false );
    }
}

function nothingBeforeAt (formField) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
    if ( formField.indexOf ( '@', 0 ) < 1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noLeftBracket (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
    if ( formField.indexOf ( '[', 0 ) == -1 && formField.charAt (formField.length - 1) == ']') {
        return ( true )
    } else {
        return ( false );
    }
}

function noRightBracket (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
    if (formField.indexOf ( '[', 0 ) > -1 && formField.charAt (formField.length - 1) != ']') {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidPeriod (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if (formField.indexOf ( '@', 0 ) > 1 && formField.charAt (formField.length - 1 ) == ']')
        return ( false );

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if (formField.indexOf ( '.', 0 ) == -1)
        return ( true );

    return ( false );
}

function noValidSuffix(formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if (formField.indexOf('@', 0) > 1 && formField.charAt(formField.length - 1) == ']') {
        return ( false );
    }

    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = formField.length;
    var pos = formField.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 4 ) {
        return ( true );
    } else {
        return ( false );
    }
}

