//
//-------------------------------------------------------------------
// Licensed Materials - Property of IBM
//
// WebSphere Commerce
//
// (c) Copyright IBM Corp. 2006
//
// US Government Users Restricted Rights - Use, duplication or
// disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
//-------------------------------------------------------------------
//

//
// ***
// * This javascript library for the validation of the help email form
// ***
//

var invalidChars = '\/\'\\ ";:?!()[]\{\}^|<>,';
var errormessage;


// function to show the count down of characters in the help email text area
function counterUpdate(textBox, counter_id, maxSize) {
	if (textBox && textBox.value.length >= maxSize) {
		textBox.value = textBox.value.substring(0, maxSize);
	}
	var counterValue = document.getElementById(counter_id);
	if (counterValue) {  
		counterValue.innerHTML = maxSize - textBox.value.length;
	}
}

// function to perform javascript validation on the help email form
function validateHelpForm(form) {
	errormessage = "";
	validateName(form.name);
	validateEmailAddress(form.emailAddress);
	validateQuestion(form.question);
	return errormessage;
}

// function to perform javascript validation on the inspection form
function validateInspectionForm(form) {
	errormessage = "";
	checkConditionsAgreedTo(form);
	validateExplanation(form.explanation);
	validateAddressForReturn(form.addressForReturn);
	validateAddressForCollection(form.addressForCollection);
	validateDateForCollection(form.dateForCollection);
	validateMakeAndModel(form.makeAndModel);
	validatePurchaseDate(form.purchaseDate);
	validateTicketId(form.ticketId);
	validateOrderId(form.orderid);
	validateTelephoneNumber(form.telephoneNumber);
	validateName(form.name);	
	validateEmailAddress(form.emailAddress);
	return errormessage;	
}

// function to perform javascript validation of the advanced help form
function validateAdvancedHelpForm(form) {
	errormessage = "";
	validateQuestion(form.question);
	validateTelephoneNumber(form.telephoneNumber);
	//validatePostcode(form.deliveryPostcode);
	validateName(form.name);
	validateEmailAddress(form.emailAddress);
	return errormessage;
}

// function to perform javascript validation of the comments form
function validateCommentsForm(form) {
	errormessage = "";
	validateComment(form.comment);
	//validateName(form.name);
	validateEmailAddressComment(form.emailAddress);
	return errormessage;
}


// below are the various functions to validate form fields
function validateName(nameField) {
	if (nameField.value.length==0 || nameField.value==null) {
		errormessage = "<p>Please enter your name.</p>";
		return false;
	}
	return true;
}

function validateEmailAddress(emailAddressField) {
	if (emailAddressField.value.length==0 || emailAddressField.value==null) {
   	    errormessage = "<p>Please enter an email address so that we can respond to your question.</p>"; 		
        return false;
    }
	for (i=0; i<invalidChars.length; i++) {
	   	if (emailAddressField.value.indexOf(invalidChars.charAt(i),0) > -1) {
	   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";   	
			return false;
	   }
	}
	for (i=0; i<emailAddressField.value.length; i++) {
	   	if (emailAddressField.value.charCodeAt(i)>127) {
	   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";     		   	
			return false;
	   	}
	}
	if ((emailAddressField.value.indexOf('@') < 1) || (emailAddressField.value.indexOf('@') < 1)) {
   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";    		   		
   		return false;	
	}	
	//checks for the @ symbol and full stop symbol
	var atPos = emailAddressField.value.indexOf('@',0);
	if (atPos == -1 || atPos == 0) {
   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";      		   		
		return false;
	}
	if ((emailAddressField.value.indexOf('@', atPos + 1) > - 1) || (emailAddressField.value.indexOf('.', atPos) == -1)) {
   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";    		   			
		return false;
	}
	if ((emailAddressField.value.indexOf('@.',0) != -1) || (emailAddressField.value.indexOf('.@',0) != -1) || (emailAddressField.value.indexOf('..',0) != -1)) {
   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";      		   	
		return false;
	}
	return true;
}

function validateEmailAddressComment(emailAddressField) {
	if (emailAddressField.value.length==0 || emailAddressField.value==null) {
   	    errormessage = "<p>Please enter an email address.</p>"; 		
        return false;
    }
	for (i=0; i<invalidChars.length; i++) {
	   	if (emailAddressField.value.indexOf(invalidChars.charAt(i),0) > -1) {
	   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";   	
			return false;
	   }
	}
	for (i=0; i<emailAddressField.value.length; i++) {
	   	if (emailAddressField.value.charCodeAt(i)>127) {
	   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";     		   	
			return false;
	   	}
	}
	if ((emailAddressField.value.indexOf('@') < 1) || (emailAddressField.value.indexOf('@') < 1)) {
   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";    		   		
   		return false;	
	}	
	//checks for the @ symbol and full stop symbol
	var atPos = emailAddressField.value.indexOf('@',0);
	if (atPos == -1 || atPos == 0) {
   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";      		   		
		return false;
	}
	if ((emailAddressField.value.indexOf('@', atPos + 1) > - 1) || (emailAddressField.value.indexOf('.', atPos) == -1)) {
   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";    		   			
		return false;
	}
	if ((emailAddressField.value.indexOf('@.',0) != -1) || (emailAddressField.value.indexOf('.@',0) != -1) || (emailAddressField.value.indexOf('..',0) != -1)) {
   	    errormessage = "<p>Your email address is invalid please correct and try again.</p>";      		   	
		return false;
	}
	return true;
}

function validateQuestion(questionField) {
	if (questionField.value.length==0 || questionField.value==null) {
		errormessage = "<p>Please enter your question / problem.</p>";
		return false;
	}
	if (questionField.value.length>1024) {
		errormessage = "<p>Your question exceeds the maximum acceptable length of 1000 characters.</p>";
		return false;
	}
	questionField.value = questionField.value.replace(/£/g,"");
	return true;
}

function validateOrderId(orderidField) {
	if (orderidField.value.length==0 || orderidField.value==null) {
		errormessage = "<p>Please enter your order id.</p>";
		return false;
	}
	return true;
}

function validateTicketId(ticketIdField) {
	if (ticketIdField.value.length==0 || ticketIdField.value==null) {
		errormessage = "<p>Please enter your ticket id - found in the subject line of the customer service email from Kiddicare.</p>";
		return false;
	}
	return true;
}

function validateTelephoneNumber(telephoneNumberField) {
	if (telephoneNumberField.value==null || telephoneNumberField.value.length==0) {
		errormessage = "<p>Please enter a telephone number.</p>";
		return false;
	} else if (telephoneNumberField.value.length<5 || telephoneNumberField.value.length>21){
		errormessage = "<p>Your telephone number is invalid - please check</p>";
		return false;
	}
	return true;
}

function validatePurchaseDate(purchaseDateField) {
	if (purchaseDateField.value.length==0 || purchaseDateField.value==null) {
		errormessage = "<p>Please enter the date of your purchase.</p>";
		return false;
	}
	return true;
}

function validateMakeAndModel(makeAndModelField) {
	if (makeAndModelField.value.length==0 || makeAndModelField.value==null) {
		errormessage = "<p>Please enter the make and model of the goods you are sending for inspection.</p>";
		return false;
	}
	return true;
}

function validateDateForCollection(dateForCollectionField) {
	if (dateForCollectionField.value.length==0 || dateForCollectionField.value==null) {
		errormessage = "<p>Please enter the day and date for collection of your goods.</p>";
		return false;
	}
	return true;
}

function validateAddressForCollection(addressForCollectionField) {
	if (addressForCollectionField.value.length==0 || addressForCollectionField.value==null) {
		errormessage = "<p>Please enter the address you'd like the goods collected from.</p>";
		return false;
	}
	return true;
}

function validateAddressForReturn(addressForReturnField) {
	if (addressForReturnField.value.length==0 || addressForReturnField.value==null) {
		errormessage = "<p>Please enter the address you'd like the goods returned to.</p>";
		return false;
	}
	return true;
}

function validateExplanation(explanationField) {
	if (explanationField.value.length==0 || explanationField.value==null) {
		errormessage = "<p>Please enter an explanation, in detail, of the problem with the goods.</p>";
		return false;
	}
	if (explanationField.value.length>1280) {
		errormessage = "<p>Your explanation exceeds the maximum acceptable length of 1500 characters.</p>";
		return false;
	}
	explanationField.value = explanationField.value.replace(/£/g,"");
	return true;
}

function checkConditionsAgreedTo(form) {
	if (form.condition1.checked == false || form.condition2.checked == false || form.condition3.checked == false || form.condition4.checked == false || form.condition5.checked == false || form.condition6.checked == false) {
		errormessage = "<p>You need to agree to all the terms and conditions to submit this request</p>";
		return false;
	}
	return true;
}

function validatePostcode(postcodeField) {
	if (postcodeField.value.length==0 || postcodeField.value==null) {
		errormessage = "<p>Please enter your delivery postcode.</p>";
		return false;
	}
	return true;
}

function validateComment(commentField) {
	if (commentField.value.length==0 || commentField.value==null) {
		errormessage = "<p>Please enter your comments.</p>";
		return false;
	}
	if (commentField.value.length>1024) {
		errormessage = "<p>Your comments exceed the maximum acceptable length of 1000 characters.</p>";
		return false;
	}
	commentField.value = commentField.value.replace(/£/g,"");
	return true;
}


function playHelpPageVideo(videoReference, videoDetailsText) {
	var videoString = '<div class="standard_video_container"><object width="640" height="360"><param name="movie" value="http://www.youtube.com/'+videoReference+'&hl=en&fs=1&ap=%2526fmt%3D22&autoplay=1" type="application/x-shockwave-flash" width="640" height="360" allowfullscreen="true" wmode="transparent" /><embed src="http://www.youtube.com/'+videoReference+'&hl=en&fs=1&ap=&fmt=22&autoplay=1" type="application/x-shockwave-flash" width="640" height="360" wmode="transparent" allowfullscreen="true" /></object></div>';			
	document.getElementById('help_video_player').innerHTML = videoString;
	if (videoDetailsText != null && videoDetailsText.length > 0) {
		document.getElementById('help_video_details').innerHTML = '<p>' + videoDetailsText + '</p>';
		document.getElementById('help_video_details').style.display = 'block';
	} else {
		document.getElementById('help_video_details').style.display = 'none';
	}
}