
function clearTextField(field)
{
	setTextField(field, "");
}

function setTextField(field, newValue)
{
	if (field)
	{
		field.value = newValue;
	}
}

function trim( value )
{
	return value.replace(/^\s+|\s+$/g, '');
}

function validate(templatePath) {
	validate(templatePath, '');
}


function validate(templatePath, fieldPostfix) {
	if (!fieldPostfix) fieldPostfix = '';
    var requiredfields = 0;
    var requiredstring = "The following information is required:\n";
    var currFieldValue;
	if (document.getElementById("email" + fieldPostfix + "ErrorId") != null) {
		currFieldValue = eval("myForm.email" + fieldPostfix + ".value");
	    if (currFieldValue && trim(currFieldValue) != "" && !checkEmail(currFieldValue)) {
            requiredstring = requiredstring + " Valid email address \n";
            requiredfields++;   
	        document.getElementById("email" + fieldPostfix + "ErrorId").innerHTML = "Please enter a valid e-mail address ";
        } else {		
	        document.getElementById("email" + fieldPostfix + "ErrorId").innerHTML = "";
        }
	}
	for (var i = 0; i < imgDescArr.length; i++) {
        var itemName = imgDescArr[i][0];
        var itemNullValue = imgDescArr[i][4];
		var missingData = false;
		var errorMsg = "";
		currFieldValue = itemName == "phone" + fieldPostfix ? itemNullValue : eval("myForm." + itemName + ".value");

		if (itemName == "acceptTerms") {
		    if (!myForm.acceptTerms.checked)
		    {
		        missingData = true; 
		    }    
        } else if (itemName == "dealerId" + fieldPostfix) {
		    if (currFieldValue && currFieldValue == itemNullValue
		        && (!myForm.fleet || (myForm.fleet && myForm.fleet.value < 200)))
		    {
		        missingData = true; 
		    }    
		} else if ( itemName == "phone" + fieldPostfix &&
			!(  (eval("myForm.homeTelephone" + fieldPostfix) &&
				 eval("myForm.homeTelephone" + fieldPostfix + ".value") != itemNullValue)
				||
				(eval("myForm.workTelephone" + fieldPostfix) &&
				 eval("myForm.workTelephone" + fieldPostfix + ".value") != itemNullValue)
				||
				(eval("myForm.mobileTelephone" + fieldPostfix) &&
				 eval("myForm.mobileTelephone" + fieldPostfix + ".value") != itemNullValue) )
			)
        {
            missingData = true; 
        } else if ( itemName != "phone" + fieldPostfix && trim(currFieldValue) == itemNullValue ) {
        	missingData = true;
        }

        if (missingData) {
            requiredstring = requiredstring + imgDescArr[i][3];
            requiredfields++;  
			errorMsg = imgDescArr[i][5];      
        }
		var errorId = itemName + "ErrorId";
		if (itemName == "phone" + fieldPostfix)   
		{   
			errorId = "workTelephone" + fieldPostfix + "ErrorId";	
		}
		document.getElementById(errorId).innerHTML = errorMsg;    
    }
    
	
	if (myForm.dpaDealerContact){
		
		if(myForm.dpaDealerContact.checked){
			if (myForm.repYear && myForm.repMonth){
				
			if (  ( myForm.repYear.options[myForm.repYear.selectedIndex].value != "Year" && myForm.repYear.options[myForm.repYear.selectedIndex].value != "undefined") 
					&& 
					( myForm.repMonth.options[myForm.repMonth.selectedIndex].value != "Month" && myForm.repMonth.options[myForm.repMonth.selectedIndex].value != "undefined")	
				){
				if ( parseFloat(myForm.repYear.options[myForm.repYear.selectedIndex].value) >= new Date().getFullYear()){
					
					
					if (parseFloat(myForm.repYear.options[myForm.repYear.selectedIndex].value) == new Date().getFullYear()){
						if (myForm.repMonth.options[myForm.repMonth.selectedIndex].value != "Month" &&  myForm.repMonth.options[myForm.repMonth.selectedIndex].value != "undefined" ) {
								if( parseFloat(myForm.repMonth.options[myForm.repMonth.selectedIndex].value) < new Date().getMonth()+1 ){

										if ( requiredstring != ''){
											requiredstring = requiredstring + " Valid current car replacement date. \n";
										}else{
											requiredstring = requiredstring + " Valid current car replacement date. \n";
										}
										requiredfields++;
										
								}
						}else{
							if ( requiredstring != ''){
								requiredstring = requiredstring + " Valid current car replacement date. \n";
							}else{
								requiredstring = requiredstring + " Valid current car replacement date. \n";
							}
							requiredfields++;
						}
					}
						
					
					
				}
		
				}else{
							if (
									( myForm.repYear.options[myForm.repYear.selectedIndex].value == "undefined" && myForm.repMonth.options[myForm.repMonth.selectedIndex].value != "undefined")
									
									|| 
									
									( myForm.repYear.options[myForm.repYear.selectedIndex].value != "undefined" && myForm.repMonth.options[myForm.repMonth.selectedIndex].value == "undefined")
									){
								
								if ( requiredstring != ''){
									requiredstring = requiredstring + " Valid current car replacement date. \n";
								}else{
									requiredstring = requiredstring + " Valid current car replacement date. \n";
								}
								requiredfields++;
							}
					
					
				}
			
			}
		}
	}
	var doSubmit = true;
    
    if (requiredfields > 0) {	
		alert(requiredstring);
		doSubmit = false;
	} else {
		currFieldValue = eval("myForm.email" + fieldPostfix + ".value");
		if (currFieldValue && currFieldValue == "" &&
			myForm.emailOptIn && myForm.emailOptIn.checked)
		{
			if (confirm("You have indicated that you would like us to email you in the future.\nClick 'OK' to go back and enter your email address or 'Cancel' to submit\nyour request without an email address."))
			{
				doSubmit = false;
			}		
		}	 			
	}    

	if (doSubmit) 
	{
        go(templatePath);
    }	 
}


function checkEmail(email)
{
    emailIsValid = false;

    var atPos = email.indexOf('@');

    if (atPos > 0)
    {
        var emailTail = email.substring(atPos);
        var dotPos    = emailTail.indexOf('.');

        if (dotPos > 1)
        {
            var dotTail = emailTail.substring(dotPos);

            if (dotTail.length > 1)
            {
                return true;
            }
        }
    }

	return false;
}
							
		
function textlimit(field, maxlen)
{
    if (field.value.length > maxlen)
    {
        field.value = field.value.substring(0, maxlen);
    }
//	adjustRows(field);
}
	
function countLineBreaks (string) 
{
  var re = /\r\n|\r|\n/g;
  var n = 0;
  while (re.exec(string))
    n++;
  return n;
}

function adjustRows(textarea) 
{
  if (document.all) 
  {
    while (textarea.scrollHeight > textarea.clientHeight)
	{
      textarea.value = textarea.value.substring(0, textarea.value.length - 2);
	}  
  }
  else if (textarea.rows) 
  {
    var lineBreaks = countLineBreaks(textarea.value);
    var rows = parseInt(textarea.rows);
    var wrap = textarea.getAttribute('wrap');
    while (lineBreaks >= rows)
	{		
      textarea.value = textarea.value.substring(0, textarea.value.length - 2);
	  lineBreaks = countLineBreaks(textarea.value);
    }
  }
}


function fillSimpleBox(sel, selBox, selContentArray, displayTextPosInArray, valuePosInArray)
{
    var hasSelected = false;
    while (0 < selBox.options.length)
    {
        selBox.options[(selBox.options.length - 1)] = null;
    }
    for (var i=0; i < selContentArray.length; i++) {
        addOption(selBox, selContentArray[i][displayTextPosInArray], selContentArray[i][valuePosInArray]);
        if (selContentArray[i][valuePosInArray] == sel) {
            selBox.options[(selBox.options.length - 1)].selected = true;
            hasSelected = true;
        }
    }
    if (selBox.options.length == 0)
    {
        selBox.disabled = true;
    }
    else
    {
        selBox.disabled = false;

        if (!hasSelected)
        {
            selBox.options[0].selected = true;
        }
    }
}
