var SEL = function(){
    return {
    
        // ===== General functions =====
        
        trim: function(s){
            return s.replace(/^\s&#42;(\S&#42;(\s+\S+)&#42;)\s&#42;&#36;/, "&#36;1");
        },
        
        onlyNumbers: function(e){ // Allow only numbers to be entered into text fields. Checks input as it is being typed.
            var keynum;
            var keychar;
            var numcheck;
            
            if (window.event) // IE
            {
                keynum = e.keyCode;
            }
            else 
                if (e.which) // Netscape/Firefox/Opera
                {
                    keynum = e.which;
                }
            if (!keynum) {
                return true;
            }
            //alert(keynum);
            //if backspace - for firefox
            if (keynum == 8) {
                return true;
            }
            
            keychar = String.fromCharCode(keynum);
            
            if ((keychar >= "0") && (keychar <= "9")) {
                return true;
            }
            else {
                return false;
            }
        },
		
		
        loadPortfolioMenus: function(vVHN){ // Function to update portfolio search menu
        	var vPortfolioMenuURL = vVHN + 'site/widgets/portfolioSelectMenu.php?accountingSystem=' + $('#accountingSystem').val() + String.fromCharCode(38) + 'industry=' +  $('#industry').val();
        	$("#portfolio-search-results").load(vPortfolioMenuURL);
		},
        
        // Contact form
        
        changeStates: function(form){ // Dynamically update the States entry field based on the Country selected.
            var countryList = form.Country;
            var selectedCountry = countryList.options[countryList.selectedIndex].value;
            
            if (selectedCountry == "AU") {
                document.getElementById("StatesAU").style.display = "block";
                document.getElementById("StatesUS").style.display = "none";
                document.getElementById("StatesOther").style.display = "none";
            }
            else 
                if (selectedCountry == "US") {
                    document.getElementById("StatesAU").style.display = "none";
                    document.getElementById("StatesUS").style.display = "block";
                    document.getElementById("StatesOther").style.display = "none";
                }
                else {
                    document.getElementById("StatesAU").style.display = "none";
                    document.getElementById("StatesUS").style.display = "none";
                    document.getElementById("StatesOther").style.display = "block";
                }
        },
       

		//Check Ask A Question form

		checkAskAQuestionForm: function(){
            var frm = document.getElementById("ContactForm");
            var vEmail = frm.ContactEmail.value;
			var vCountrySelect = frm.Country;
			var vStateSelect = frm.State;
            
            if (document.getElementById("StatesAU").style.display == "block") {
                var stateList = frm.StateAU;
                var selectedState = stateList.options[stateList.selectedIndex].value;
            }
            else if (document.getElementById("StatesUS").style.display == "block") {
                    var stateList = frm.StateUS;
                    var selectedState = stateList.options[stateList.selectedIndex].value;
            }
            else if (document.getElementById("StatesOther").style.display == "block") {
                        var stateList = frm.StateOther;
                        var selectedState = stateList.value;
            }
            if (SEL.trim(frm.ContactName.value) == "") {
                alert("Please enter a Contact Name.");
                frm.ContactName.focus();
                return false;
            }
            else if (SEL.trim(frm.ContactEmail.value) == "") {
                alert("Please enter an Email Address.");
                frm.ContactEmail.focus();
                return false;
            } else if ((SEL.trim(frm.ContactEmail.value) != "") && (vEmail.indexOf("@") == -1 || vEmail.indexOf(".") == -1)) {
                alert("Please enter a valid Email Address (ie yourname@yourdomain.com).");
                frm.ContactEmail.focus();
				return false;
			} else if (SEL.trim(frm.ContactPhone.value) == "") {
                		alert("Please enter a Phone Number.");
						frm.ContactPhone.focus();
                		return false;
            } else if (SEL.trim(frm.City.value) == "") {
                		alert("Please enter a City/Suburb.");
						frm.City.focus();
                		return false;
            } else if(vCountrySelect.options[vCountrySelect.selectedIndex].value == "") {
						alert("Please select a Country.");
						frm.Country.focus();
						return false;
			} else if (SEL.trim(selectedState) == "") {
                		alert("Please enter a State.");
						stateList.focus();
                		return false;
			} else if (SEL.trim(frm.Question.value) == "Your Question Here") {
                		alert("Please enter a Question.");
                		frm.Question.focus();
						return false;
            } else {
                    
				frm.State.value = selectedState;
				newline = "\n";
				space = " ";
				
				
				var eContent = "An 'Ask a Question' form has been submitted through your StraightSell website. Here are the details:" + newline + newline;
				eContent += "Referral URL:" + space + frm.ReferredURL.value + newline + newline;

				eContent += "Contact Name:" + space + frm.ContactName.value + newline;
				eContent += "Email Address:" + space + frm.ContactEmail.value + newline;
				eContent += "Phone Number:" + space + frm.ContactPhone.value + newline;
				eContent += "City:" + space + frm.City.value + newline;
				eContent += "State:" + space + frm.State.value + newline;
				eContent += "Country:" + space + frm.Country.options[frm.Country.selectedIndex].text + newline;
				eContent += "Question:" + space + frm.Question.value + newline;
				
				frm.EmailFrom.value = frm.ContactEmail.value;
				frm.EmailContent.value = eContent;
				/* rewrite captcha to uppercase */
				frm.captcha.value=frm.captcha.value.toUpperCase();
				return true;
			}
        },


		//Check Request a demonstration form

		checkRequestDemonstrationForm: function(){
             var frm = document.getElementById("ContactForm");
            var vEmail = frm.ContactEmail.value;
			var vCountrySelect = frm.Country;
			var vStateSelect = frm.State;
            
            if (document.getElementById("StatesAU").style.display == "block") {
                var stateList = frm.StateAU;
                var selectedState = stateList.options[stateList.selectedIndex].value;
            }
            else if (document.getElementById("StatesUS").style.display == "block") {
                    var stateList = frm.StateUS;
                    var selectedState = stateList.options[stateList.selectedIndex].value;
            }
            else if (document.getElementById("StatesOther").style.display == "block") {
                        var stateList = frm.StateOther;
                        var selectedState = stateList.value;
            }
            if (SEL.trim(frm.ContactName.value) == "") {
                alert("Please enter a Contact Name.");
                frm.ContactName.focus();
                return false;
            }
            else if (SEL.trim(frm.ContactEmail.value) == "") {
                alert("Please enter an Email Address.");
                frm.ContactEmail.focus();
                return false;
            } else if ((SEL.trim(frm.ContactEmail.value) != "") && (vEmail.indexOf("@") == -1 || vEmail.indexOf(".") == -1)) {
                alert("Please enter a valid Email Address (ie yourname@yourdomain.com).");
                frm.ContactEmail.focus();
				return false;
			} else if (SEL.trim(frm.ContactPhone.value) == "") {
                		alert("Please enter a Phone Number.");
						frm.ContactPhone.focus();
                		return false;
            } else if (SEL.trim(frm.City.value) == "") {
                		alert("Please enter a City/Suburb.");
						frm.City.focus();
                		return false;
            } else if(vCountrySelect.options[vCountrySelect.selectedIndex].value == "") {
						alert("Please select a Country.");
						frm.Country.focus();
						return false;
			} else if (SEL.trim(selectedState) == "") {
                		alert("Please enter a State.");
						stateList.focus();
                		return false;
            } else {
                    
				frm.State.value = selectedState;
				newline = "\n";
				space = " ";
                        
                        var eContent = "A 'Request a demonstration' form has been submitted through the StraightSell website. Here are the details:" + newline + newline;
						eContent += "Referral URL:" + space + frm.ReferredURL.value + newline+ newline;
                        eContent += "Contact Name:" + space + frm.ContactName.value + newline;
                        eContent += "Email Address:" + space + frm.ContactEmail.value + newline;
                        eContent += "Phone Number:" + space + frm.ContactPhone.value + newline;
                        eContent += "City:" + space + frm.City.value + newline;
                        eContent += "State:" + space + frm.State.value + newline;
                        eContent += "Country:" + space + frm.Country.options[frm.Country.selectedIndex].text + newline;
                        if (frm.Comments.value == "Comments/Feedback") {
                            frm.Comments.value = "";
                        }
                        eContent += "Comments:" + space + frm.Comments.value + newline;
                        
                        frm.EmailFrom.value = frm.ContactEmail.value;
                        frm.EmailContent.value = eContent;
						/* rewrite captcha to uppercase */
						frm.captcha.value=frm.captcha.value.toUpperCase();
                        return true;
                    }
        },
		
		//Check Referral Partners form

		checkReferralPartnerForm: function(){
            var frm = document.getElementById("ContactForm");
            var vEmail = frm.ContactEmail.value;
			var vCountrySelect = frm.Country;
			var vStateSelect = frm.State;
            
            if (document.getElementById("StatesAU").style.display == "block") {
                var stateList = frm.StateAU;
                var selectedState = stateList.options[stateList.selectedIndex].value;
            }
            else if (document.getElementById("StatesUS").style.display == "block") {
                    var stateList = frm.StateUS;
                    var selectedState = stateList.options[stateList.selectedIndex].value;
            }
            else if (document.getElementById("StatesOther").style.display == "block") {
                        var stateList = frm.StateOther;
                        var selectedState = stateList.value;
            }
            if (SEL.trim(frm.ContactName.value) == "") {
                alert("Please enter a Contact Name.");
                frm.ContactName.focus();
                return false;
            }
            else if (SEL.trim(frm.ContactEmail.value) == "") {
                alert("Please enter an Email Address.");
                frm.ContactEmail.focus();
                return false;
            } else if ((SEL.trim(frm.ContactEmail.value) != "") && (vEmail.indexOf("@") == -1 || vEmail.indexOf(".") == -1)) {
                alert("Please enter a valid Email Address (ie yourname@yourdomain.com).");
                frm.ContactEmail.focus();
				return false;
			} else if (SEL.trim(frm.ContactPhone.value) == "") {
                		alert("Please enter a Phone Number.");
						frm.ContactPhone.focus();
                		return false;
            } else if (SEL.trim(frm.City.value) == "") {
                		alert("Please enter a City/Suburb.");
						frm.City.focus();
                		return false;
            } else if(vCountrySelect.options[vCountrySelect.selectedIndex].value == "") {
						alert("Please select a Country.");
						frm.Country.focus();
						return false;
			} else if (SEL.trim(selectedState) == "") {
                		alert("Please enter a State.");
						stateList.focus();
                		return false;
            } else {
                    
				frm.State.value = selectedState;
				newline = "\n";
				space = " ";
				
				
				var eContent = "An 'Referral Partners' form has been submitted through your StraightSell website. Here are the details:" + newline + newline;
				eContent += "Referral URL:" + space + frm.ReferredURL.value + newline + newline;

				eContent += "Contact Name:" + space + frm.ContactName.value + newline;
				eContent += "Company Name:" + space + frm.CompanyName.value + newline;
				eContent += "Email Address:" + space + frm.ContactEmail.value + newline;
				eContent += "Phone Number:" + space + frm.ContactPhone.value + newline;
				eContent += "City:" + space + frm.City.value + newline;
				eContent += "State:" + space + frm.State.value + newline;
				eContent += "Country:" + space + frm.Country.options[frm.Country.selectedIndex].text + newline;
                        if (frm.Comments.value == "Comments/Feedback") {
                            frm.Comments.value = "";
                        }
                 eContent += "Comments:" + space + frm.Comments.value + newline;
				
				frm.EmailFrom.value = frm.ContactEmail.value;
				frm.EmailContent.value = eContent;
				/* rewrite captcha to uppercase */
				frm.captcha.value=frm.captcha.value.toUpperCase();
				return true;
			}
        },
		
		
		checkResetUserNamePassword: function(){
            var frm = document.getElementById("ContactForm");
            var vEmail = frm.ContactEmail.value;
            
            
            if (SEL.trim(frm.ContactName.value) == "") {
                alert("Please enter a Contact Name.");
                frm.ContactName.focus();
                return false;
            }
            else if (SEL.trim(frm.ContactEmail.value) == "") {
                    alert("Please enter an Email Address.");
                    frm.ContactEmail.focus();
                    return false;
			}
			else if ((SEL.trim(frm.ContactEmail.value) != "") && (vEmail.indexOf("@") == -1 || vEmail.indexOf(".") == -1)) {
				alert("Please enter a valid Email Address (ie yourname@yourdomain.com)");
				frm.ContactEmail.focus();
				return false;
			}
			else {
			
				newline = "\n";
				space = " ";
				
				var eContent = "A 'Forgot Username/Password' form has been submitted through the StraightSell website. Here are the details:" + newline + newline;
				eContent += "Contact Name:" + space + frm.ContactName.value + newline;
				eContent += "Company Name:" + space + frm.CompanyName.value + newline;
				eContent += "Email Address:" + space + frm.ContactEmail.value + newline;
				eContent += "Phone Number:" + space + frm.ContactPhone.value + newline;
				eContent += "_____________________________________________________________________________" + newline + newline;
				eContent += "ControlPanel Login Details " + newline;
				eContent += "User Name:" + space + frm.UserName.value + newline;
				eContent += "Shortname:" + space + frm.ShortName.value + newline;
				if (frm.Comments.value == "Comments/Feedback") {
					frm.Comments.value = "";
				}
				eContent += "Comments:" + space + frm.Comments.value + newline;
				
				frm.EmailFrom.value = frm.ContactEmail.value;
				frm.EmailContent.value = eContent;
				return true;
			}
        },

        // Contact Form validation.
        
        checkContactForm: function(){
            var frm = document.getElementById("ContactForm");
            var vEmail = frm.ContactEmail.value;
			var vCountrySelect = frm.Country;
			var vStateSelect = frm.State;
            
            if (document.getElementById("StatesAU").style.display == "block") {
                var stateList = frm.StateAU;
                var selectedState = stateList.options[stateList.selectedIndex].value;
            }
            else if (document.getElementById("StatesUS").style.display == "block") {
                    var stateList = frm.StateUS;
                    var selectedState = stateList.options[stateList.selectedIndex].value;
            }
            else if (document.getElementById("StatesOther").style.display == "block") {
                        var stateList = frm.StateOther;
                        var selectedState = stateList.value;
            }
            if (SEL.trim(frm.ContactName.value) == "") {
                alert("Please enter a Contact Name.");
                frm.ContactName.focus();
                return false;
            }
            else if (SEL.trim(frm.ContactEmail.value) == "") {
                alert("Please enter an Email Address.");
                frm.ContactEmail.focus();
                return false;
            } else if ((SEL.trim(frm.ContactEmail.value) != "") && (vEmail.indexOf("@") == -1 || vEmail.indexOf(".") == -1)) {
                alert("Please enter a valid Email Address (ie yourname@yourdomain.com).");
                frm.ContactEmail.focus();
				return false;
			} else if (SEL.trim(frm.ContactPhone.value) == "") {
                		alert("Please enter a Phone Number.");
						frm.ContactPhone.focus();
                		return false;
            } else if (SEL.trim(frm.City.value) == "") {
                		alert("Please enter a City/Suburb.");
						frm.City.focus();
                		return false;
            } else if(vCountrySelect.options[vCountrySelect.selectedIndex].value == "") {
						alert("Please select a Country.");
						frm.Country.focus();
						return false;
			} else if (SEL.trim(selectedState) == "") {
                		alert("Please enter a State.");
						stateList.focus();
                		return false;
            } else {
                    
				frm.State.value = selectedState;
				newline = "\n";
				space = " ";
                        
                        var eContent = "A Contact form has been submitted through the StraightSell website. Here are the details:" + newline + newline;
                        eContent += "Contact Name:" + space + frm.ContactName.value + newline;
                        eContent += "Email Address:" + space + frm.ContactEmail.value + newline + newline;
                        eContent += "Phone Number:" + space + frm.ContactPhone.value + newline;
                        eContent += "City/Suburb:" + space + frm.City.value + newline;
                        eContent += "State:" + space + frm.State.value + newline;
                        eContent += "Country:" + space + frm.Country.options[frm.Country.selectedIndex].text + newline;
                        if (frm.Comments.value == "Comments/Feedback") {
                            frm.Comments.value = "";
                        }
                        eContent += "Comments:" + space + frm.Comments.value + newline;
                        
                        frm.EmailFrom.value = frm.ContactEmail.value;
                        frm.EmailContent.value = eContent;
						/* rewrite captcha to uppercase */
						frm.captcha.value=frm.captcha.value.toUpperCase();
                        return true;
                  }
        }
        
    };
}();
