// Display Selected Elements on Standard Registration Forms

function displayStep() {
  document.write('<h4>Step 1 of 2</h4>');
}

function displayRequiredLine() {
  document.write('<table border="0" cellspacing="0" cellpadding=2 width="100%"><tr><td><img src="/GIFs/spacer.gif" height=1></td><td align=right><span class="color1"><sup>*</sup> <b>required fields</b></span></td></tr><tr><td colspan="2"><hr size="1"></td></tr></table>');
}

// Validate Required Fields
function validateRequired(theForm, theLanguage) {

  var elementName = ""
  var elementType = ""
  var elementType2 = ""
  var location = new Array()
  var count = 0;
  if(theLanguage && theLanguage.toUpperCase() == "JA"){
      var message = "以下の項目を入力してください: \n\n";
  }
  else if(theLanguage && theLanguage.toUpperCase() == "ZH"){
      var message = "请填写如下信息: \n\n";
  }
  else if(theLanguage && theLanguage.toUpperCase() == "ZH-TW"){
      var message = "請填寫訊息: \n\n";
  }
  else if(theLanguage && theLanguage.toUpperCase() == "KO"){
      var message = "다음은 필수기재 사항입니다: \n\n";
  }
  else {
      var message = "Please Fill Out The Following Information: \n\n";
  }
  var checkMessage = message;


  for(var i=0; i < theForm.elements.length; i++){                           		// for each element
  	if (theForm.elements[i].name == "required"){                          			// find required fields (fyi - they will all have type of hidden & text)
  		elementName = theForm.elements[i].value                           			// find actual field name
  		elementType = eval("theForm." + elementName + ".type")            			// find actual field type for element (i.e. checkbox, radio, select-one)
  		// If type is a text object, check for empty fields
  		if(elementType == "text" || elementType == "textarea"){						// if type is a text object
  			var textVal = eval("theForm." + elementName + ".value")
  			if(textVal == "" || textVal == elementName){
			var tempName = elementName;												// tempName added to make Email Address a "friendly name", normally would use elementName

			if(elementName == "EmailAddress"){
				tempName = "Email Address";
			}
				//look for a 'required_label' element for this elementName
				// if it exists, use friendlier 'required_label' value when displaying the alert
				eval("if (theForm.required__label__" + elementName + ") {tempName = theForm.required__label__" + elementName + ".value;}");
  				message += tempName + "\n"
  				location[count] = elementName
  				count++
  			}
  		}

  		// If type is select menu, check for empty fields
  		else if (elementType == "select-one" || elementType == "select-multiple") {
  			var list = eval("theForm." + elementName)
  			var isSelected = false;

				for (var index=0; index < list.options.length; index++){
					if (list.options[index].selected == true && list.options[index].value != "") {
						var val = list.options[index].value
						isSelected = true;
						break;
					}
				}

				if(!isSelected) {
					//look for a 'required_label' element for this elementName
					// if it exists, use friendlier 'required_label' value when displaying the alert
					eval("if (theForm.required__label__" + elementName + ") {tempName = theForm.required__label__" + elementName + ".value;}");
					message += tempName + "\n"
					location[count] = elementName
					count++
				}
  		}

  		// If type is undefined, it's either a checkbox or a radio button
  		else if(elementType == undefined) {                                   		// if type is undefined, there are multiple fields with this name - find real type using index to access it
  			elementType2 = eval("theForm." + elementName + "[0].type")
  			if(elementType2 == "checkbox" || elementType2 == "radio" ){         	// if it's a checkbox, go through element's index to see if something's been checked
  				var arrayName = eval("theForm." + elementName)            		 	// get array name for easy access
  				var arrayLength = eval("theForm." + elementName + ".length")        // get array length for easy access
  				var isChecked = false;

  				for(var j=0; j < arrayLength; j++){									// check to see if the field has any value
  					if(arrayName[j].checked){
  						isChecked = true;
  						break;
  					}
  				}

  				if(!isChecked){													// if nothing was selected, add to missing fields alert text
  					//enhancements
					var tempName = elementName;									// tempName added to make Purchase Plan a "friendly name", normally would use elementName
					if(elementName == "PurchasePlan"){
						tempName = "Purchase Plan";
					}
					//look for a 'required_label' element for this elementName
					// if it exists, use friendlier 'required_label' value when displaying the alert
					eval("if (theForm.required__label__" + elementName + ") {tempName = theForm.required__label__" + elementName + ".value;}");
  					if(message.indexOf(tempName) == -1) {
  					     // make sure we're not adding doubles, like for an array of radio buttons
  					     message += tempName + "\n"
                    }
  					location[count] = elementName
  					count++
  				}

  			}  // end if elementType2 == checkbox
  		}

  	}  // end if name == required
  }

  if(message == checkMessage){  // No missing info

    if (theForm.EmailAddress && !isValidEmail(theForm.EmailAddress.value)){
	 alert("Please enter a valid email address.\nThe one you entered is not properly formatted.\nOnly a-z,A-Z,0-9 and +-_@. allowed.");
     return false;

    } else {
	 // if cookie email and input cookie are different, delete old & set new cookie
	  //var smidcookie = SMgetCookie("tekSMid");
	  //if (pf_decrypt(smidcookie) != theForm.EmailAddress.value){
	      //SMdeleteCookie('SMSESSION','/','.tek.com');
	      //SMsetCookie('tekSMid',pf_encrypt(theForm.EmailAddress.value),exp);
      //}


	 // SMsetCookie('tekRAC',pf_encrypt(theForm.EmailAddress.value));


	 // for Random long & short forms
	 // var smgroup=new Array(2);
	 // smgroup[0]="MyTekResponse";
	 // smgroup[1]="MyTekResp";
	 // theForm.p_smgroup.value=smgroup[Math.round(Math.random()*1)];

      return true;
    }
  } else {  // Missing info found
    if (theForm.EmailAddress && !isValidEmail(theForm.EmailAddress.value)){
      alert("Please enter a valid email address.\nThe one you entered is not properly formatted.\nOnly a-z,A-Z,0-9 and +-_@. allowed.");
    }
    var temp = location[0]
    alert(message)

    var tempType = eval("theForm." + temp + ".type")

    // focus on field only if it's a text or menu object
    if (tempType == "text" || tempType == "textarea" || tempType == "select-one" || tempType == "select-multiple" ){
      var correctField = eval("theForm." + temp)
      correctField.focus()
//      correctField.select()
    }
    return false;
  }
}

