
//1. clear/set default text on form field
function clearText(which, txt) {
    if(which.value == txt) which.value="";
}

function setText(which, txt) {
    if(which.value == "") { which.value = txt; }
}

function submitLandingForm(btn) {
	
	finished = false;
	while (!finished) {
		btn = btn.parentNode;
		if (btn == undefined) {
			break;
		} 
		if (btn.submit!=undefined) {
			finished = true;
			break;
		}
	}

	theForm = document.profile;
	var s = 0;

	var requiredFields = new Array();
	requiredFields = formRequired.split(',');
	for (var i=0; i<requiredFields.length; i++) {
		var thisField = new Array();
		var thisFieldName, thisFieldType;
		thisField = requiredFields[i].split(':');
		s += checkField(thisField[0], thisField[1], theForm, thisField[2])
	}
	if (s == 0 && theForm.user.value == "") {
	    
		theForm.submit();
	}
	return;
}

//submissin with comment field
function submit_wCnt(btn, fields) {

	theForm = document.profile;
	var s = 0;

	var requiredFields = new Array();
	requiredFields = formRequired.split(',');


	for (var i=0; i<requiredFields.length; i++) {
		var thisField = new Array();
		var thisFieldName, thisFieldType;
		thisField = requiredFields[i].split(':');
		s += checkField(thisField[0], thisField[1], theForm)
	}
	if (s == 0) {
		AddtoCnt(fields);
		theForm.submit();
	} 
	return;
}

//add value of fields into comment
function AddtoCnt(fields) { 
	var theForm = document.profile;
	var requiredfields = new Array();
	requiredfields = fields.split(',');

	for(var i=0;i<requiredfields.length;i++) {
	  var theField = eval("theForm."+requiredfields[i]);
	  if(theField.value != "") theForm.comments.value +=  requiredfields[i] + ": " + theField.value + " | ";
	}
}

function checkField (fieldName, fieldType, theForm, required) {
	theField = eval("theForm."+fieldName);
	
	if(required) UnalertError(fieldName);
	switch (fieldType) {
		case 'text':
			return checkTextField(fieldName, theField, required);
			break;
		case 'select':
			return checkTextField(fieldName, theField, required);
			break;
		case 'date':
			if(fieldName == "birthday") {
				var a,b,c = 0;
				theFieldY = eval("theForm."+fieldName+"Y"); a = checkTextField(fieldName+"Y", theFieldY, required);
				theFieldM = eval("theForm."+fieldName+"M"); b = checkTextField(fieldName+"M", theFieldM, required);
				theFieldD = eval("theForm."+fieldName+"D"); c = checkTextField(fieldName+"D", theFieldD, required);
				return (a || b || c);
				return a;
				
			} else { 
				return checkTextField(fieldName, theField, required);
			}
			break;
		case 'radio':
			return checkBoxField(fieldName, theField, required);
			break;
		case 'check':
			return checkBoxField(fieldName, theField, required);
			break;
		case 'email':
			return checkEmailField(fieldName, theField, required);
			break;
		case 'phone':
			return checkPhoneField(fieldName, theField, required);
			break;
		case 'radio':
			return checkRadioField(fieldName, theField, required);
			break;
		
		default:
			return checkTextField(fieldName, theField, required);
	}
}

function checkRadioField(fieldName, theField, required) {
	var j=0;
	if(required==1) {
	for (i=0; i<theField.length; i++) {
		if (theField[i].checked) j++
	}
	if (j==0) { 
		alertError(fieldName);
	    return true
	}
	}
	return false
}

function checkBoxField(fieldName, theField, required) {
	if (theField!=null && required==1) {
		var j=0;
		if(theField.length > 1) {
			for (var i=0; i<theField.length; i++) {
			if (theField[i].checked) j++
			}
		} else {
			if(theField.checked) j++
		}
		if (j==0 && required) { 
			alertError(fieldName);
			return true
		}
	}
	return false;
}

function checkTextField(fieldName, theField, required) {
	if (theField!=null && ((Trim(theField.value)=="" && required==1) || checkForHTML(theField.value) >=0)) {
		alertError(fieldName);
		return true;
	}
	return false;
}

function checkEmailField(fieldName, theField, required) {
	if (theField!=null && ((Trim(theField.value)=="" && required==1) || !isMail(theField.value))){
		alertError(fieldName);
		return true
	}
	return false
}

function checkPhoneField(fieldName, theField, required) {
	if (theField!=null && ((Trim(theField.value)==""&& required==1) || !isValidPhone(theField.value))){
		alertError(fieldName);
		return true
	}
	return false
}

function alertError(fieldName) {
    if(fieldName == "preferred" && document.getElementById('c_preferred')) { document.getElementById('c_preferred').className = 'fieldBoxError'; }
	else if(fieldName=="spam") { if(document.getElementById('spamtxt')) document.getElementById('spamtxt').className = 'fieldError'; }
	else if(fieldName=="privacy") { document.getElementById('privacytxt').className = 'fieldError'; }
    else if(fieldName=="birthdayY" || fieldName=="birthdayM" || fieldName=="birthdayD") { 
	    document.getElementById("f_birthday").className = 'fieldError'; 
	    if(document.getElementsByName(fieldName)[0]) document.getElementsByName(fieldName)[0].className = 'fieldBoxError';
    } else { 
        document.getElementById('f_'+fieldName).className = 'fieldError';
        
        var x = document.getElementsByName(fieldName)[0];
        if(x.type == "text") x.className = 'fieldBoxError';
        else if(x.type == "select-one") x.className = 'fieldBoxError';
    }
}

function UnalertError(fieldName) {
    var theField = document.getElementById('f_'+fieldName);
    if(theField != null) {
	
        theField.className = 'fieldNormal';
        
        if(fieldName != "birthday") {
                var x = document.getElementsByName(fieldName)[0];
                if(x.type == "text") x.className = 'fieldNormal';
                else if(x.type == "select-one") x.className = 'fieldNormal';
        } else { 
            document.getElementsByName("birthdayY")[0].className = 'fieldSelNormal';
	        if(document.getElementsByName("birthdayM")[0]) document.getElementsByName("birthdayM")[0].className = 'fieldSelNormal';
	        if(document.getElementsByName("birthdayD")[0]) document.getElementsByName("birthdayD")[0].className = 'fieldSelNormal';
        }
    }
    if(fieldName=="spam") { if(document.getElementById('spamtxt')) document.getElementById('spamtxt').className = 'fieldNormal'; }
	if(fieldName=="privacy") { document.getElementById('privacytxt').className = 'fieldNormal'; }	
}

function HighLightRequired(list) {
    var orders = list.split(",");
    
    for(var i=0;i<orders.length; i++) { 
       var field = orders[i].split(":");
       
 	if(field[2]==1) {
       var y = document.getElementsByName(field[0])[0];
       if(field[0] == "birthday") { 
		document.profile.birthdayY.className = 'requiredfield';
		if(document.profile.birthdayM) document.profile.birthdayM.className = 'requiredfield';
		if(document.profile.birthdayD) document.profile.birthdayD.className = 'requiredfield';}
       else if(field[0] != "sex" ) y.className = 'requiredfield';
	}
       
    }
    //for IE and remove yellow background from Google ToolBar
    setListeners();

}

function isMail(strInputMail) {
	return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(strInputMail));
}

function isValidPhone(phonenum) {
	var regu	= "^([0-9(+]+)+([0-9-.() ]*)+([0-9)]+)$"
	var reg		= new RegExp(regu);
	return (phonenum.search(reg) > -1);
	return true;
}

function Trim(strInput) {
	return strInput.replace(/(^\s*)|(\s*$)/g,"");
}

/**
* Method to see if a string contains HTML
*
*   @params string String to check for HTML
*   @returns position of first match, -1 if no match
*/
function checkForHTML(string) {
    var regEx = /<(.|\n)+?>/;
    var result = string.search(regEx); 
    return(result);
}

function ShowZip(v) {
	window.open("/master/welcome/_incs/zipcode.asp?version="+v,"_blank","scrollbars=yes, resizable=no, width=316, height=250");
}

/* function: setListeners(), restoreStyles()
     to reset form field background color when google tool bar is on
 */
function setListeners(){
  if(navigator.appName =="Microsoft Internet Explorer") {
    inputList = document.getElementsByTagName("INPUT");
    for(i=0;i<inputList.length;i++){
      inputList[i].attachEvent("onpropertychange",restoreStyles);
      inputList[i].style.backgroundColor = "";
	}
    selectList = document.getElementsByTagName("SELECT");
    for(i=0;i<selectList.length;i++){
      selectList[i].attachEvent("onpropertychange",restoreStyles);
      selectList[i].style.backgroundColor = "";
    }

  } else {
    inputList = document.getElementsByTagName("INPUT");
    for(i=0;i<inputList.length;i++){
      inputList[i].addEventListener("onpropertychange",restoreStyles,false);
      inputList[i].style.backgroundColor = "";
	}
    selectList = document.getElementsByTagName("SELECT");
    for(i=0;i<selectList.length;i++){
      selectList[i].addEventListener("onpropertychange",restoreStyles,false);
      selectList[i].style.backgroundColor = "";
    }
 }
}

function restoreStyles(){
    if(event.srcElement.style.backgroundColor != "")
      event.srcElement.style.backgroundColor = "";
}





/* Modified from code provided by LT*/
function HackKiller(input, type)
{
    var res;
    var flag = true;
    if (type == "email") res = input.search(/(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})/gi);

    else if (type == "phone") {//Phone Req PASS IF: 5+ [0-9] +-
        res = input.search(/^(\(?\+?[0-9]*\)?)?[0-9\- \(\)]*$/gi);

    } else if (type == "text") {//Text Req FAIL IF STRING MATCH: < 1+ char > | </ 1+ char > | &1+ char; (no spaces)
       res = input.search(/[0-9]|[\^!\"#$%&'()*+,.\/:;<=>?@[\\\]_`{|}~\[\]]/ig);

    } else if (type == "id") { //(idcheck) Brochure/promoID/newsitemID/slideshowID/infomeetingID PASS IF: [0-9].-
        res = input.search(/[a-zA-Z]|[\^!\"#$%&'()*+,-.\/:;<=>?@[\\\]_`{|}~\[\]]/ig);

    } else if (type == "code") {
        res = input.search(/[0-9]|[\^!\"#$%&'()*+,-.\/:;<=>?@[\\\]_`{|}~\[\]]/ig);
    } else if (type == "keycode") {
        res = input.search(/[\^!\"#$%&'()*,.\:;<=>?@[\\\]_`{|}~\[\]]/ig);
    } else if (type == "engcode") {
        res = input.search(/[0-9]|[\^!\"#$%&'()*+,-.\/:;<=>?@[\\\]_`{|}~\[\]]/ig);
    } else if (type == "comment") {
        res = input.search(/[\^\#$%&*+\/<=>[\\\]_`{|}~\[\]]/ig);
    } else {
        res = 0;
    }
    return res;
}
/* HK 204n function */
function frmbtn2_back()
	{
		document.getElementById('frmbtn2').src="/_imgs/welcome/sem/jp/2nd-button.jpg";
	}
	
function frmbtn2_over()
	{
		document.getElementById('frmbtn2').src="/_imgs/welcome/sem/jp/2nd-button-roll.jpg";
	}

function frmbtn3_back()
	{
		document.getElementById('frmbtn3').src="/_imgs/welcome/sem/jp/3rd-button1.jpg";
	}
	
function frmbtn3_over()
	{
		document.getElementById('frmbtn3').src="/_imgs/welcome/sem/jp/3rd-button-roll1.jpg";
	}

function frmbtn1_back()
	{
		document.getElementById('frmbtn1').src="/_imgs/welcome/sem/jp/call-to-action1.jpg";
	}

function frmbtn1_over()
	{
		document.getElementById('frmbtn1').src="/_imgs/welcome/sem/jp/call-to-action1-roll.jpg";
	}

