// JavaScript Document

var MaximumWords = "200";
// 0 means no maximum character count
var MaximumCharacters = "0";
var FormName = "contestForm";
var TextFieldName = "fm_story";

var CharactersTypedFieldName = "CharsTyped";
var CharactersLeftFieldName = "CharsLeft";
var WordsTypedFieldName = "WordsTyped";
var WordsLeftFieldName = "WordsLeft";

var WordsMonitor = 0;
var MaxWords = parseInt(MaximumWords);
var MaxChars = parseInt(MaximumCharacters);
var textfield = 'document.' + FormName + '.' + TextFieldName + '.value';

function WordLengthCheck(s,l) {
WordsMonitor = 0;
var f = false;
var ts = new String();
for(var vi = 0; vi < s.length; vi++) {
	var vs = s.substr(vi,1);
	if((vs >= 'A' && vs <= 'Z') || (vs >= 'a' && vs <= 'z') || (vs >= '0' && vs <= '9')) {
		if(f == false)	{
			f = true;
			WordsMonitor++;
			if((l > 0) && (WordsMonitor > l)) {
				s = s.substring(0,ts.length);
				vi = s.length;
				WordsMonitor--;
				}
			}
		}
	else { f = false; }
	ts += vs;
	}
return s;
} // function WordLengthCheck()

function CharLengthCheck(s,l) {
if(s.length > l) { s = s.substring(0,l); }
return s;
} // function CharLengthCheck()

function InputCharacterLengthCheck() {
if(MaxChars <= 0) { return; }
var currentstring = new String();
eval('currentstring = ' + textfield);
var currentlength = currentstring.length;
eval('currentstring = CharLengthCheck(' + textfield + ',' + MaxChars + ')');
if(CharactersLeftFieldName.length > 0) {
	var left = 0;
	eval('left = ' + MaxChars + ' - ' + textfield + '.length');
	if(left < 0) { left = 0; }
	eval('document.' + FormName + '.' + CharactersLeftFieldName + '.value = ' + left);
	if(currentstring.length < currentlength) { eval(textfield + ' = currentstring.substring(0)'); }
	}
if(CharactersTypedFieldName.length > 0) {
	eval('document.' + FormName + '.' + CharactersTypedFieldName + '.value = ' + textfield + '.length');
	if(currentstring.length < currentlength) { eval(textfield + ' = currentstring.substring(0)'); }
	}
} // function InputCharacterLengthCheck()

function InputWordLengthCheck() {
if(MaxWords <= 0) { return; }
var currentstring = new String();
eval('currentstring = ' + textfield);
var currentlength = currentstring.length;
eval('currentstring = WordLengthCheck(' + textfield + ',' + MaxWords + ')');
if (WordsLeftFieldName.length > 0) {
	var left = MaxWords - WordsMonitor;
	if(left < 0) { left = 0; }
	eval('document.' + FormName + '.' + WordsLeftFieldName + '.value = ' + left);
	if(currentstring.length < currentlength) { eval(textfield + ' = currentstring.substring(0)'); }
	}
if (WordsTypedFieldName.length > 0) {
	eval('document.' + FormName + '.' + WordsTypedFieldName + '.value = ' + WordsMonitor);
	if(currentstring.length < currentlength) { eval(textfield + ' = currentstring.substring(0)'); }
	}
} // function InputWordLengthCheck()

function InputLengthCheck() {
InputCharacterLengthCheck();
InputWordLengthCheck();
} // function InputLengthCheck()

window.onload = function() {
	applyDefaultValue(document.getElementById('fm_fname'));
	applyDefaultValue(document.getElementById('fm_lname'));
	applyDefaultValue(document.getElementById('fm_email'));
	applyDefaultValue(document.getElementById('fm_add1'));
	applyDefaultValue(document.getElementById('fm_add2'));
	applyDefaultValue(document.getElementById('fm_city'));
	applyDefaultValue(document.getElementById('fm_state'));
	applyDefaultValue(document.getElementById('fm_zip'));
	applyDefaultValue(document.getElementById('fm_phone'));
	applyDefaultValue(document.getElementById('fm_how'));
	applyDefaultValue(document.getElementById('fm_storyname'));
	applyDefaultValue(document.getElementById('fm_story'));
	applyDefaultValue(document.getElementById('fm_verify'));
  
}


function applyDefaultValue(elem) {
  
  elem.onfocus = function() {
    
    this.style.background = '#f2f2f2';
  }
  elem.onkeyup = function() {
  	if (this.className == 'fmtextarea'){
		InputLengthCheck();
	}
  }
  elem.onblur = function() {
    if (this.className == 'fmtextarea'){
    	this.style.background= "#999999";
		InputLengthCheck();
    }
    	
    else {
    	this.style.background= "#999999";
    }   
  }
}
