// --------------------------------------------------------------------------------
// sm_Application.js
// Travis Musika 2005-11-17
// Contains Javascript relevant to the SubscriptionManager.
// --------------------------------------------------------------------------------
///<reference path="~/ow_util.js"/>

var sm_fieldPrefix = "tmpl_smApp_sm_";

// cancel flag
var sm_cancelled = false;

// --- Attach JS to document elements and execute simple statements. ---
OneWeb.Util.appendLoadEvent(
function() {

	if (document.getElementById(sm_fieldPrefix + "sm_btnOK") != null) OneWeb.Util.addEvent(document.getElementById(sm_fieldPrefix + "sm_btnOK"), "click", sm_formSubmitClicked, false);
	if (document.getElementById(sm_fieldPrefix + "sm_btnOKImage") != null) OneWeb.Util.addEvent(document.getElementById(sm_fieldPrefix + "sm_btnOKImage"), "click", sm_formSubmitClicked, false);

	if (document.getElementById("sm_form") != null) {
		var inp = document.getElementById("sm_form").getElementsByTagName("input");
		for (var i = 0; i < inp.length; i++) {
			if (inp[i].type == "text") 
				OneWeb.Util.addEvent(inp[i], "keypress", sm_formTextSubmit, false);
				
				
			// add hidden input element for spambot-prevention after a short (500 ms) timeout
			setTimeout(function () {
				var sm_chkNotSpam = document.getElementById(sm_fieldPrefix + "sm_chkNotSpam");
				if (sm_chkNotSpam == null && document.createElement) {
					var sm_chkNotSpam = document.createElement("input");
					if (sm_chkNotSpam) {
						sm_chkNotSpam.setAttribute("type", "checkbox");
						sm_chkNotSpam.setAttribute("id", sm_fieldPrefix+"sm_chkNotSpam");
						sm_chkNotSpam.setAttribute("name", sm_fieldPrefix+"sm_chkNotSpam");
						sm_chkNotSpam.setAttribute("value","notspam");
						sm_chkNotSpam.style.display="none";
						document.getElementById("sm_form").appendChild(sm_chkNotSpam);
						sm_chkNotSpam.checked=true;
					}
				}
			}, 500);				
				
				
				
		}
	}    	
}
);

// --------------------------------------------------------------------------------
// sm_formTextSubmit()
// Fires when a textfield had focus and ENTER was pressed.
// --------------------------------------------------------------------------------
// Arguments:
//	- none
// Returns:
//	- Nothing
// --------------------------------------------------------------------------------
function sm_formTextSubmit(e) {

	var code;
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;

	if (code == 13) {
		var sm_btnOK = document.getElementById(sm_fieldPrefix + "sm_btnOK");
		if (sm_btnOK != null) sm_btnOK.click();
		if (e.preventDefault) e.preventDefault(); else e.returnValue = false;
	}
}

// --------------------------------------------------------------------------------
// sm_formSubmitClicked()
// Fires when the submit button was clicked.
// --------------------------------------------------------------------------------
// Arguments:
//	- none
// Returns:
//	- Nothing
// --------------------------------------------------------------------------------
function sm_formSubmitClicked(e) {

	if (!sm_checkRequestData()) {
		if (!e) var e = window.event;
		if (e.preventDefault) e.preventDefault(); else e.returnValue = false;
	} else {
		return;
	}
}

// --------------------------------------------------------------------------------
// sm_checkRequestData()
// Validates the data entered on the order page.
// --------------------------------------------------------------------------------
// Arguments:
//	- none
// Returns:
//	- the results of the validation [boolean]
// --------------------------------------------------------------------------------

function sm_checkRequestData()
{
	// return if the cancel button is clicked
	if (sm_cancelled)
		return true;
	
/*
	First and last names no longer required 
	var sm_txtFirstName = document.getElementById(sm_fieldPrefix + "sm_txtFirstName");
	if (sm_txtFirstName != null)
		if (sm_txtFirstName.value.length == 0) {
			alert(document.getElementById(sm_fieldPrefix + "sm_rfvFirstName").value);
			sm_txtFirstName.focus();
			return false;
		}
		
	var sm_txtLastName = document.getElementById(sm_fieldPrefix + "sm_txtLastName");
	if (sm_txtLastName != null)
		if (sm_txtLastName.value.length == 0) {
			alert(document.getElementById(sm_fieldPrefix + "sm_rfvLastName").value);
			sm_txtLastName.focus();
			return false;
		}
		*/

	var em_re = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,6})+$/;
	var sm_txtEmail = document.getElementById(sm_fieldPrefix + "sm_txtEmail");
	if (sm_txtEmail != null) {
		if (sm_txtEmail.value.length == 0) {
			alert(document.getElementById(sm_fieldPrefix + "sm_rfvEmail").value);
			sm_txtEmail.focus();
			return false;
		} else if (!sm_txtEmail.value.match(em_re)) {
				alert(document.getElementById(sm_fieldPrefix + "sm_regvEmail").value);
				sm_txtEmail.focus();
				sm_txtEmail.select();
				return false;
		}
		var sm_txtConfirm = document.getElementById(sm_fieldPrefix + "sm_txtConfirm");
		if (sm_txtConfirm != null) {
			if (sm_txtConfirm.value.length == 0) {
				alert(document.getElementById(sm_fieldPrefix + "sm_rfvConfirm").value);
				sm_txtConfirm.focus();
				return false;
			} else if (sm_txtConfirm.value!=sm_txtEmail.value) {
				alert(document.getElementById(sm_fieldPrefix + "sm_cvConfirm").value);
				sm_txtConfirm.focus();
				sm_txtConfirm.select();
				return false;
			}
		}
	}
	
	var chkId = 0;
	var sm_chkList = document.getElementById(sm_fieldPrefix + "rptSubscriptions_ctl" + (chkId<10?"0":"") + chkId + "_sm_chkList");
	if (sm_chkList != null) {
		var oneChecked = false;
		while (sm_chkList != null) {
			if (sm_chkList.checked==true) 
				oneChecked = true;
			sm_chkList = document.getElementById(sm_fieldPrefix + "rptSubscriptions_ctl" + (chkId<10?"0":"") + (++chkId) + "_sm_chkList");
		}
		if (!oneChecked) {
			alert(document.getElementById(sm_fieldPrefix + "sm_cvSubscriptions").value);
			sm_chkList = document.getElementById(sm_fieldPrefix + "rptSubscriptions_ctl00_sm_chkList");
			sm_chkList.focus();
			return false;
		}
	}
	var sm_radActionUnsubscribe = document.getElementById(sm_fieldPrefix + "sm_radActionunsubscribe");
	var sm_radActionModify = document.getElementById(sm_fieldPrefix + "sm_radActionModify");
	if (sm_radActionUnsubscribe != null && sm_radActionModify != null) {
		if (!sm_radActionUnsubscribe.checked && !sm_radActionModify.checked) {
			alert(document.getElementById(sm_fieldPrefix + "sm_cvAction").value);
			sm_radActionUnsubscribe.focus();
			return false;
		}
	}
	
	return true;	

}	