function updateAll() {
	updateOne('title');
	updateOne('tagline');
	updateOne('reviewer');
	updateOne('genre');
	updateOne('blurb');
	updateOne('review');
	updateOne('excerpt');
	updateOne('special');
}

function updateOne(tarea) {
	var rawtext = $(tarea).value;
	$(tarea).value = clean_unicode(rawtext);
}

function trim(str, chars) { 
	if (!str) return '';
	return ltrim(rtrim(str, chars), chars); 
} 
function ltrim(str, chars) { 
	chars = chars || "\\s"; return str.replace(new RegExp("^[" + chars + "]+", "g"), ""); 
} 
function rtrim(str, chars) { 
	chars = chars || "\\s"; return str.replace(new RegExp("[" + chars + "]+$", "g"), ""); 
}

function checkNewTrailer() {
	var form = $('newTrailerSub');
	var chk_amazon = form['amazon'];
	var chk_terms = form['terms'];
// submitter
	var name = trim($('name').value);
	var email = trim($('email').value);
	var phone = trim($('phone').value);
	var address1 = trim($('address1').value);
	var address2 = trim($('address2').value);
	var city = trim($('city').value);
	var state = trim($('state').value);
	var zip = trim($('zip').value);
	var country = trim($('country').value);
	var special = trim($('special').value);
	var amazon = $(chk_amazon).getValue();
	var terms = $(chk_terms).getValue();
// trailer
	var title = trim($('title').value);
	var author1 = trim($('author1').value);
	var author2 = trim($('author2').value);
	var tagline = clean_unicode($('tagline').value);
	var publisher = trim($('publisher').value);
	var date_released = trim($('date_released').value);
	var genre = trim($('genre').value);
	var length = trim($('length').value);
	var isbn_ebk = trim($('isbn_ebk').value);
	var isbn_pbk = trim($('isbn_pbk').value);
	var isbn_dvd = trim($('isbn_dvd').value);
	var isbn_hcvr = trim($('isbn_hcvr').value);
	var cover = trim($('cover').value);
	var videolink = trim($('videolink').value);
	var previewlink = trim($('previewlink').value);
	var blurb = clean_unicode($('blurb').value);
	var excerpt = clean_unicode($('excerpt').value);
	var review = clean_unicode($('review').value);
	var reviewer = trim($('reviewer').value);
	var reviewer_url = trim($('reviewer_url').value);
	var reviewer_text = trim($('reviewer_text').value);
	var reviewer_note = clean_unicode($('reviewer_note').value);
	var keywords = trim($('keywords').value);
// links
	var author1_url = trim($('author1_url').value);
	var author1_text = trim($('author1_text').value);
	var author1_note = clean_unicode($('author1_note').value);
	var author2_url = trim($('author2_url').value);
	var author2_text = trim($('author2_text').value);
	var author2_note = clean_unicode($('author2_note').value);
	var publisher_url = trim($('publisher_url').value);
	var publisher_text = trim($('publisher_text').value);
	var publisher_note = clean_unicode($('publisher_note').value);

// le stack du validation
// Name
if (name) {
	$('name').value = name;
} else {
	alert('Your name is required.');
	$('name').focus();
	return false;
}
// Email
if (email) {
	$('email').value = email;
} else {
	alert('Your email address is required.');
	$('email').focus();
	return false;
}
// Phone
if (phone) {
	$('phone').value = phone;
} else {
	alert('Your phone number is required.');
	$('phone').focus();
	return false;
}
// Address Line 1
if (address1) {
	$('address1').value = address1;
} else {
	alert('Your mailing address is required.');
	$('address1').focus();
	return false;
}
// Address Line 2
$('address2').value = address2;
if (address2) {
// future
}
// City
if (city) {
	$('city').value = city;
} else {
	alert('Your city is required.');
	$('city').focus();
	return false;
}
// State/Province
if (state) {
	$('state').value = state;
} else {
	alert('Your state/province is required.');
	$('state').focus();
	return false;
}
// Zip/Postal Code
if (zip) {
	$('zip').value = zip;
} else {
	alert('Your zip/postal code is required.');
	$('zip').focus();
	return false;
}
// Country
if (country) {
	$('country').value = country;
} else {
	alert('Your country is required.');
	$('country').focus();
	return false;
}
// Special Instructions
$('special').value = special;
if (special) {
// future
}
// Title
if (title) {
	$('title').value = title;
} else {
	alert('The Book Title is required.');
	$('title').focus();
	return false;
}
// Author 1
if (author1) {
	$('author1').value = author1;
} else {
	alert('The name of the primary Author is required.');
	$('author1').focus();
	return false;
}
// Author 2
$('author2').value = author2;
if (author2) {
// future
}
// Teaser
if (tagline) {
	$('tagline').value = tagline;
} else {
	alert('A teaser sentence is required.');
	$('tagline').focus();
	return false;
}
// Publisher
if (publisher) {
	$('publisher').value = publisher;
} else {
	alert('The Publisher name is required.');
	$('publisher').focus();
	return false;
}
// Release Date
if (date_released) {
	$('date_released').value = date_released;
} else {
	alert('The release date is required. If the date has not been set, enter TBA.');
	$('date_released').focus();
	return false;
}
// Genre
if (genre) {
	$('genre').value = genre;
} else {
	alert('A Genre Description is required.');
	$('genre').focus();
	return false;
}
// Length
if (length) {
	$('length').value = length;
} else {
	alert('The Page Length is required. For non-book products such as interactive DVDs, you may enter NA.');
	$('length').focus();
	return false;
}
// Ebook ISBN
$('isbn_ebk').value = isbn_ebk;
if (isbn_ebk) {
// future
}
// Paperback ISBN
$('isbn_pbk').value = isbn_pbk;
if (isbn_pbk) {
// future
}
// DVD ISBN
$('isbn_dvd').value = isbn_dvd;
if (isbn_dvd) {
// future
}
// Hardcover ISBN
$('isbn_hcvr').value = isbn_hcvr;
if (isbn_hcvr) {
// future
}
// Cover (submitter's local filepath)
if (cover) {
	$('cover').value = cover;
	if (cover.lastIndexOf('.') == -1) {
		alert("Please use the Browse button and find your Cover graphic (JPG or GIF only, maximum 50,000 bytes) to upload.");
		$('cover').focus();
		return false;
	}
	var ext = cover.substring(cover.lastIndexOf('.') + 1);
	if(ext != "gif" && ext != "GIF" && ext != "JPEG" && ext != "jpeg" && ext != "jpg" && ext != "JPG") {
		alert("Only GIF or JPG images (maximum 50,000 bytes) will be accepted for your cover graphic.");
		$('cover').focus();
		return false;
	}
}
// Video Embed Link
$('videolink').value = videolink;
if (videolink) {
// future
}
// Preview Link
if (previewlink) {
	$('previewlink').value = previewlink;
} else {
	alert("A link to the page where your video is hosted (on PhotoBucket, YouTube, etc) is required.");
	$('previewlink').focus();
	return false;
}
// Blurb
$('blurb').value = blurb;
if (blurb) {
// future
}
// Excerpt
$('excerpt').value = excerpt;
if (excerpt) {
// future
}
// Review
$('review').value = review;
if (review) {
// future
}
// Reviewer
$('reviewer').value = reviewer;
if (reviewer) {
// future
}
// Reviewer Link
$('reviewer_url').value = reviewer_url;
if (reviewer_url) {
// future
}
// Reviewer Text
$('reviewer_text').value = reviewer_text;
if (reviewer_text) {
// future
}
// Reviewer Note
$('reviewer_note').value = reviewer_note;
if (reviewer_note) {
// future
}
// Author 1 Link
$('author1_url').value = author1_url;
if (author1_url) {
// future
}
// Author 1 Text
$('author1_text').value = author1_text;
if (author1_text) {
// future
}
// Author 1 Note
$('author1_note').value = author1_note;
if (author1_note) {
// future
}
// Author 2 Link
$('author2_url').value = author2_url;
if (author2_url) {
// future
}
// Author 2 Text
$('author2_text').value = author2_text;
if (author2_text) {
// future
}
// Author 2 Note
$('author2_note').value = author2_note;
if (author2_note) {
// future
}
// Publisher Link
$('publisher_url').value = publisher_url;
if (publisher_url) {
// future
}
// Publisher Text
$('publisher_text').value = publisher_text;
if (publisher_text) {
// future
}
// Publisher Note
$('publisher_note').value = publisher_note;
if (reviewer_note) {
// future
}
// Keywords
$('keywords').value = keywords;
if (keywords) {
// future
}
// Terms Checkbox
if (terms != 'yes') {
	alert('You must check the box indicating you have read and agree with the Blazing Trailers Terms of Service.');
	$('keywords').focus();
	return false;
}

// Final post-validation tasks:
// 1. Combine Video-Preview Link into "Special Instructions" field
// 2. Stop slide show while processing ?
$('special').value = "Preview: " + previewlink + "\n\n" + special;

updateAll();
return true;

}