//login.js RDS 29/1/2001

var visaCardName="VIS";
var visaCardLengthMin;
var visaCardLengthMax;
var visaFirstDigit;
var masterCardName;
var masterCardLengthMin;
var masterCardLengthMax;
var masterFirstDigit;
var switchCardName="SWI";
var switchCardLengthMin;
var switchCardLengthMax;
var deltaCardName="DEL";
var deltaCardLengthMin;
var deltaCardLengthMax;
var deltaFirstDigit;
var amexName="AMX";
var amexLengthMin;
var amexLengthMax;
var amexFirstDigit;
//var yearIndexStart=2003;
var pageSubmitted=false;
var minUsernameLength;
var minPasswordLength;
var minLimit;
var maxLimit;
var maxCCAddressLines;
var shortCard;
var cardAsNum;
var cardNo;
var msg;
var valid;

function checkCard () {
	
	visaCardLengthMin=document.contents.visaCardLengthMin.value;
	visaCardLengthMax=document.contents.visaCardLengthMax.value;
	masterCardLengthMin=document.contents.masterCardLengthMin.value;
	masterCardLengthMax=document.contents.masterCardLengthMax.value;
	switchCardLengthMin=document.contents.switchCardLengthMin.value;
	switchCardLengthMax=document.contents.switchCardLengthMax.value;
	soloCardLengthMin=document.contents.soloCardLengthMin.value;
	soloCardLengthMax=document.contents.soloCardLengthMax.value;
	amexCardLengthMin=document.contents.amexCardLengthMin.value;
	amexCardLengthMax=document.contents.amexCardLengthMax.value;
	amexFirstDigit=document.contents.amexFirstDigit.value;
	visaFirstDigit=document.contents.visaFirstDigit.value;
	masterFirstDigit=document.contents.masterFirstDigit.value;
	
	maxCCAddressLines=document.contents.maxCCAdrLines.value;
	
	minLimit=document.contents.minLimit.value;
	maxLimit=document.contents.maxLimit.value;
	removeSpaces();
	valid=true;
	cardNo = document.contents.cardNumber;
	var cardType=document.contents.cardType;
	var first=cardNo.value.charAt(0);
	
	var invalidCard="Card number is not valid for the card type";
	var notEntered="\nThe following must be entered:";
	msg="";
	var newEntry=true;
	
if(signedout =='signedout'){
	if(document.contents.firstName.value==''){
		valid = false;
		msg+="Please enter your first name\n";
	}
	if(document.contents.surname.region==''){
		valid = false;
		msg+="Please enter your surname\n";
	}
	if(document.contents.email.value==''){
		valid = false;
		msg+="Please enter your email address\n";
	}
	if(document.contents.pwd.value==''){
		valid = false;
		msg+="Please enter a password\n";
	}
	if(document.contents.pwdconf.value==''){
		valid = false;
		msg+="Please enter confirm password\n";
	}

	if(document.contents.pwd.value != document.contents.pwdconf.value){
		valid=false;
		msg+="Passwords do not match\n";
	}
}
	
		
	var name=document.contents.username;
	var surname=document.contents.surname;
	var firstName=document.contents.firstName;
	var address=document.contents.address;
	var postCode=document.contents.postCode;
	//var limit=document.contents.creditLimit;
	if(name.value.length<minFieldEntry){
		valid=false;
		if(newEntry){
			msg+=notEntered;
			newEntry=false;
		}
		msg+="\nCard Holder Name\n";
		name.focus();
	}
	/*
	if(postCode.value.length<minFieldEntry){
		valid=false;
		if(newEntry){
			msg+=notEntered;
			newEntry=false;
		}
		msg+="\nPostcode";
		postCode.focus();
	}
	*/
	
	//if(limit.value.length<1){
	//	limit.value=document.contents.defaultLimit.value;
        //}

	if(!checkDate()){
		valid=false;
		if(!newEntry){
			msg+="\n";
		}
		newEntry=false;
		msg+="Expiry date must be after today's date";
	}
	if(!newEntry){
		msg+="\n";
	}
	newEntry=false;
	if(cardType.options[cardType.selectedIndex].value=="1" ||
		cardType.options[cardType.selectedIndex].value=="3"){		
		if(cardNo.value.length<visaCardLengthMin||cardNo.value.length>visaCardLengthMax||first!=visaFirstDigit||!isDigit(cardNo.value)){
			valid=false;
			cardNo.value="";
			msg+=invalidCard;
			cardNo.focus();
		}
	}
	else if(cardType.options[cardType.selectedIndex].value=="2"){
		if(cardNo.value.length<masterCardLengthMin||cardNo.value.length>masterCardLengthMax||first!=masterFirstDigit||!isDigit(cardNo.value)){
			valid=false;
			cardNo.value="";
			msg+=invalidCard;
			cardNo.focus();
		}
	}
	else if(cardType.options[cardType.selectedIndex].value=="6"){
		if(cardNo.value.length<amexLengthMin||cardNo.value.length>amexLengthMax||first!=amexFirstDigit||!isDigit(cardNo.value)){
			valid=false;
			cardNo.value="";
			msg+=invalidCard;
			cardNo.focus();
		}
	}
	else if(cardType.options[cardType.selectedIndex].value=="4"){
		if(cardNo.value.length<switchCardLengthMin||cardNo.value.length>switchCardLengthMax||!isDigit(cardNo.value)){
			valid=false;
			cardNo.value="";
			msg+=invalidCard;
			cardNo.focus();
		}
	}
	else if(cardType.options[cardType.selectedIndex].value=="5"){
		if(cardNo.value.length<soloCardLengthMin||cardNo.value.length>soloCardLengthMax||!isDigit(cardNo.value)){
			valid=false;
			cardNo.value="";
			msg+=invalidCard;
			cardNo.focus();
		}
	}
	// don't accept these
	//SK 24-04-2001 we do now
	//visaDeltaCheck();

	var string=document.contents.payment_amount.value;
	if(!checkLimit()){
		valid=false;
		if(!newEntry){
			msg+="\n\n";
		}
		newEntry=false;
		msg+="Limit must be a number between "+minLimit+" and "+maxLimit;
		var decimalPoint=false;
		for (var i=0; i< string.length; i++) {
        	if (string.charAt(i) == '.') {
				decimalPoint=true;
			}
		}
		if(decimalPoint){
			if(!newEntry){
				msg+="\n\n";
			}
			newEntry=false;
           		msg+="Limit must be exact pounds only, no pence";
    		}
	}
	
/*
	var issue=document.contents.issueNumber;

	if(issue.value.length>0){
		if(!isDigit(issue.value)){
			if(!valid){
				msg+="\n\n";
			}
			valid=false;
			newEntry=false;
			msg+="Issue Number must be a number";
		}
	}
	
	var adr=address.value;
	if(!checkAddress(adr, maxCCAddressLines)){
		if(!newEntry){
			msg+="\n\n";
		}
		valid=false;
		msg+="Address must be "+maxCCAddressLines+" lines or less";
	}
	*/
	if (!document.contents.tandc.checked){
		valid = false;
		msg+="Please tick to say you have read and agree to the terms and conditions";
	}
	
	if(valid) doSubmit();
	else{
		alert(msg);
	}
}

function checkResumeCardSession() {
	visaCardLengthMin=document.contents.visaCardLengthMin.value;
	visaCardLengthMax=document.contents.visaCardLengthMax.value;
	masterCardLengthMin=document.contents.masterCardLengthMin.value;
	masterCardLengthMax=document.contents.masterCardLengthMax.value;
	switchCardLengthMin=document.contents.switchCardLengthMin.value;
	switchCardLengthMax=document.contents.switchCardLengthMax.value;
	amexCardLengthMin=document.contents.amexCardLengthMin.value;
	amexCardLengthMax=document.contents.amexCardLengthMax.value;
	amexFirstDigit=document.contents.amexFirstDigit.value;
	visaFirstDigit=document.contents.visaFirstDigit.value;
	masterFirstDigit=document.contents.masterFirstDigit.value;

	removeSpaces();
	valid=true;
	cardNo = document.contents.cardNumber;
	
	msg="";
	var invalidCard="Card number is not valid for the card type";

	var cardType=document.contents.cardType;
	var first=cardNo.value.charAt(0);
	if(cardType.options[cardType.selectedIndex].value=="1" ||
		cardType.options[cardType.selectedIndex].value=="3"){
		if(cardNo.value.length<visaCardLengthMin||cardNo.value.length>visaCardLengthMax||first!=visaFirstDigit||!isDigit(cardNo.value)){
			valid=false;
			cardNo.value="";
			msg+=invalidCard;
			cardNo.focus();
		}
	}
	else if(cardType.options[cardType.selectedIndex].value=="2"){
		if(cardNo.value.length<masterCardLengthMin||cardNo.value.length>masterCardLengthMax||first!=masterFirstDigit||!isDigit(cardNo.value)){
			valid=false;
			cardNo.value="";
			msg+=invalidCard;
			cardNo.focus();
		}
	}
	else if(cardType.options[cardType.selectedIndex].value=="6"){
		if(cardNo.value.length<amexLengthMin||cardNo.value.length>amexLengthMax||first!=amexFirstDigit||!isDigit(cardNo.value)){
			valid=false;
			cardNo.value="";
			msg+=invalidCard;
			cardNo.focus();
		}
	}
	else if(cardType.options[cardType.selectedIndex].value=="4"){
		if(cardNo.value.length<switchCardLengthMin||cardNo.value.length>switchCardLengthMax||!isDigit(cardNo.value)){
			valid=false;
			cardNo.value="";
			msg+=invalidCard;
			cardNo.focus();
		}
	}

	// don't accept these
	//SK 24-04-2001 we do now
	//visaDeltaCheck();

	if(!checkDate()){
		if(!valid) msg+="\n\n";
		valid=false;
		msg+="Expiry date must be after today's date";
	}

	if(valid) doSubmit();
	else{
		alert(msg);
	}
}

function checkLoginDetails () {
	minUsernameLength=document.contents.minUsernameLength.value;
	minPasswordLength=document.contents.minPasswordLength.value;
	var username=document.contents.username;
	var password=document.contents.password;
	var valid=true;
	
	var msg="";
	if(username.value.length<minUsernameLength){
		valid=false;
		msg+="A valid username must be entered";
		username.focus();
	}
	if(password.value.length<minPasswordLength){
		if(!valid) msg+="\n\n";
		valid=false;
		password.value="";
		msg+="A valid password must be entered";
		password.focus();
	}
	else passwordToLower();
	if(valid) document.contents.submit();
	else{
		alert(msg);
	}
}

function visaDeltaCheck(){
	shortCard = cardNo.value.substring(0,6);
	//alert("short card is;" + shortCard);
	if(shortCard == "440608" || shortCard == "453215" ||
		shortCard == "453216" || shortCard == "453978" ||
		shortCard == "453979" || shortCard == "454313" ||
		shortCard == "454432" || shortCard == "454433" ||
		shortCard == "454435" || shortCard == "454742" ||
		shortCard == "490159" || shortCard == "492042" ||
		shortCard == "492181" || shortCard == "492182" ||
		shortCard == "494079" || shortCard == "498824" ){
		valid=false;
		cardNo.value="";
		msg+="Sorry we don't support VISA DELTA cards";
		cardNo.focus();
	}	
	else if(shortCard.substring(0,4)=="4567" || 
		shortCard.substring(0,4)=="4909"){
		//alert("in here");
		cardAsNum =parseInt(shortCard);
		if ( (cardAsNum >456724 && cardAsNum < 456745) ||
			(cardAsNum > 490959 && cardAsNum < 490976 )){
			valid=false;
			cardNo.value="";
			msg+="Sorry we don't support VISA DELTA cards";
			cardNo.focus();
		}
	}
}

function passwordToLower(){
	var s=document.contents.password.value;
	document.contents.password.value=s.toLowerCase();
}

function removeSpaces(){
	var cardNo=document.contents.cardNumber.value;
	var temp="";
	for(var i=0;i<cardNo.length;i++){
		if(cardNo.charAt(i)!=' ') temp+=cardNo.charAt(i);
	}
	document.contents.cardNumber.value=temp;
}

function checkDate(){
	var expiryMonth=document.contents.expiryMonth;
	var month=expiryMonth.selectedIndex+1;
	var expiryYear=document.contents.expiryYear;
	var year=expiryYear[expiryYear.selectedIndex].value;
	var currentMonth=document.contents.currentMonth.value;
	var currentYear=document.contents.currentYear.value;
	/*alert("currentYear" + currentYear);
	alert("currentMonth" + currentMonth);
	alert("year" + parseInt(year));
	alert("expiryYear" + expiryYear);
	alert("month" + month);
	alert("expiryMonth" + expiryMonth);*/
	
	
	if(parseInt(currentYear)>parseInt(year)){
		expiryYear.focus()
		//alert("here1")
		return false;
	}
	if(parseInt(currentYear)==parseInt(year) && parseInt(currentMonth)>parseInt(month)){
		//alert("here2")
		expiryMonth.focus();
		return false;
	}
	return true;
}

function checkLimit () {
	minLimit=parseInt(document.contents.minLimit.value);
	maxLimit=parseInt(document.contents.maxLimit.value);
	var limitField=document.contents.payment_amount;
	var limit=parseInt(limitField.value);
	var valid=true;
	if(!isDigit(limit)) valid=false;
	if(limit<minLimit) valid=false;
	if(limit>maxLimit) valid=false;
	if(!valid){
		limitField.value="";
		limitField.focus();
	}
	return valid;
}

function disableSubmit() {
        pageSubmitted=true;
}
function doSubmit() {
		//alert("in doSubmit()");
		if(pageSubmitted==false){
	        disableSubmit();
    	    document.contents.submit();
		}
}


