﻿var BrowserDetect = {
    init: function () {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function (data) {
        for (var i = 0; i < data.length; i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
    },
    dataBrowser: [
		{ string: navigator.userAgent,
		    subString: "OmniWeb",
		    versionSearch: "OmniWeb/",
		    identity: "OmniWeb"
		},
		{
		    string: navigator.vendor,
		    subString: "Apple",
		    identity: "Safari"
		},
		{
		    string: navigator.vendor,
		    subString: "Google",
		    identity: "Chrome"
		},
		{
		    prop: window.opera,
		    identity: "Opera"
		},
		{
		    string: navigator.vendor,
		    subString: "iCab",
		    identity: "iCab"
		},
		{
		    string: navigator.vendor,
		    subString: "KDE",
		    identity: "Konqueror"
		},
		{
		    string: navigator.userAgent,
		    subString: "Firefox",
		    identity: "Firefox"
		},
		{
		    string: navigator.vendor,
		    subString: "Camino",
		    identity: "Camino"
		},
		{		// for newer Netscapes (6+)
		    string: navigator.userAgent,
		    subString: "Netscape",
		    identity: "Netscape"
		},
		{
		    string: navigator.userAgent,
		    subString: "MSIE",
		    identity: "Explorer",
		    versionSearch: "MSIE"
		},
		{
		    string: navigator.userAgent,
		    subString: "Gecko",
		    identity: "Mozilla",
		    versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
		    string: navigator.userAgent,
		    subString: "Mozilla",
		    identity: "Netscape",
		    versionSearch: "Mozilla"
		}
	],
    dataOS: [
		{
		    string: navigator.platform,
		    subString: "Win",
		    identity: "Windows"
		},
		{
		    string: navigator.platform,
		    subString: "Mac",
		    identity: "Mac"
		},
		{
		    string: navigator.platform,
		    subString: "Linux",
		    identity: "Linux"
		}
	]

};
BrowserDetect.init();

function background() {
    if (isIE6) {
        if (screen.height >= '1025') {
            document.body.style.backgroundImage = "url(" + path_prefix + "images/back.png)";
            document.body.style.backgroundRepeat = "repeat-x";
        }
        else if ((screen.height >= '960') && (screen.height <= '1024')) {
            document.body.style.backgroundImage = "url(" + path_prefix + "images/back1.png)";
            document.body.style.backgroundRepeat = "repeat-x";
            // 780px
        }
        else if (screen.height == '768') {
            document.body.style.backgroundImage = "url(" + path_prefix + "images/back2.png)";
            document.body.style.backgroundRepeat = "repeat-x";
            // 550px
        }
        else if (screen.height <= '767') {
            document.body.style.backgroundImage = "url(" + path_prefix + "images/back3.png)";
            document.body.style.backgroundRepeat = "repeat-x";
            // 350px
        } else {
            document.body.style.backgroundImage = "url(" + path_prefix + "images/back4.png)";
            document.body.style.backgroundRepeat = "repeat-x";
            // 600px
        }
    } else {
        document.body.style.backgroundImage = "url(" + path_prefix + "images/back.png)";
        document.body.style.backgroundRepeat = "repeat-x";
    }
}
var isIE6 = /msie|MSIE 6/.test(navigator.userAgent);
var isIE7 = /msie|MSIE 7/.test(navigator.userAgent);
var isIE8 = /msie|MSIE 8/.test(navigator.userAgent);

var stylesheet = '';
if (!isIE6) {
    if (!isIE7) {
        if (!isIE8) {
            //alert("default");
            stylesheet = ' <link href="' + path_prefix + 'stylesheets/default.css" rel="stylesheet" type="text/css" media="screen"/>' + '<link href="' + path_prefix + 'stylesheets/printDefault.css" rel="stylesheet" type="text/css" media="print"/>';
        } else {
            //alert("ie8");
            stylesheet = ' <link href="' + path_prefix + 'stylesheets/IE8.css" rel="stylesheet" type="text/css" media="screen"/>' + '<link href="' + path_prefix + 'stylesheets/printIE.css" rel="stylesheet" type="text/css" media="print"/>';
        }
    } else {
        //alert("ie7");
        stylesheet = ' <link href="' + path_prefix + 'stylesheets/IE7.css" rel="stylesheet" type="text/css" media="screen"/>' + '<link href="' + path_prefix + 'stylesheets/printIE.css" rel="stylesheet" type="text/css" media="print"/>';
    }
} else {
    //alert("ie6");
    stylesheet = ' <link href="' + path_prefix + 'stylesheets/IE6.css" rel="stylesheet" type="text/css" media="screen"/>' + '<link href="' + path_prefix + 'stylesheets/printIE.css" rel="stylesheet" type="text/css" media="print"/>';
}
document.write(stylesheet);

// -- rollover script -- //
var W3CDOM = (document.createElement && document.getElementsByTagName);

var mouseOvers = new Array();
var mouseOuts = new Array();

//window.onload = init;
function rollOvers() {
    if (!W3CDOM) return;
    var nav = document.getElementById('mouseovers');
    var imgs = nav.getElementsByTagName('img');
    for (var i = 0; i < imgs.length; i++) {
        imgs[i].onmouseover = mouseGoesOver;
        imgs[i].onmouseout = mouseGoesOut;
        var suffix = imgs[i].src.substring(imgs[i].src.lastIndexOf('.'));
        mouseOuts[i] = new Image();
        mouseOuts[i].src = imgs[i].src;
        mouseOvers[i] = new Image();
        mouseOvers[i].src = imgs[i].src.substring(0, imgs[i].src.lastIndexOf('.')) + "_omo" + suffix;
        imgs[i].number = i;
    }
}
function mouseGoesOver() {
    this.src = mouseOvers[this.number].src;
}

function mouseGoesOut() {
    this.src = mouseOuts[this.number].src;
}

// the enter button is hit //
function hitEnter(event) {
    if (event.keyCode == 13) {
        var txtFocus = false;
        var textBoxes = document.getElementsByTagName('textarea');

        for (var i = 0; i < textBoxes.length; i++) {
            var elem = textBoxes[i];
            if (textBoxes[i].name != 'tbMessage') { // Exclude this txtArea because we have onFocus and onBlur code attributed to it
                if (elem) {
                    elem.onfocus = function () {
                        txtFocus = true;
                    }
                    elem.onblur = function () {
                        txtFocus = false;
                    }
                }
            }
        }

        if (!txtFocus) {
            // do nothing
        } else {
            //alert('here');
            document.getElementById('btnSubmit').click();
            return false;
        }
    }
}

// used to tell us what browser we are using // 
/* <script type="text/javascript">
<!--
document.write('<p class="accent">You\'re using ' + BrowserDetect.browser + ' ' + BrowserDetect.version + ' on ' + BrowserDetect.OS + '!</p>');
// --> </script>*/

function readMorePopUp(num) {
    var readMoreWindow = window.open("newsPopUp.aspx?num=" + num,
    "readMoreWindow", "top=200, width=350, height=420, directories=no, toolbar=no, location=no, scrollbars=yes");
    readMoreWindow.focus();
}

function exLinkPopUp(exLink) {
    var newWindow = window.open(exLink, "newWindow", "channelmode=0, location=1, menubar=1, resizable=1, scrollbars=1, status=1, titlebar=1, toolbar=1, directories=1");
    newWindow.focus();
}

/* ------------------------------------------ functions for contact page -----------------------------------------*/
function nameValidationFunc(source, args) {
    var nameRegEx = /^[a-zA-Z0-9\s\'`.]{5,40}$/;
    var name = document.getElementById('tbName').value;
    var cvName = document.getElementById('cvName');
    var nameError = 'Please enter a valid name';
    if (nameRegEx.test(name) == true) {
        args.IsValid = true;
        cvName.className = 'nameValidator';
        cvName.innerHTML = '';
        setStyle('nameTag', 'color', '#000');
    } else {
        args.IsValid = false;
        cvName.className = 'nameValidator';
        cvName.innerHTML = nameError;
        setStyle('nameTag', 'color', '#d20000');
    }
}

function serviceAffiliationValidationFunc(source, args) {
    var serviceAffiliationRegEx = /^[a-zA-Z0-9\s\'`.]{2,40}$/;
    var serviceAffiliation = document.getElementById('tbServiceAffiliation').value;
    var cvServiceAffiliation = document.getElementById('cvServiceAffiliation');
    var serviceAffiliationError = 'Invalid service affiliation'
    if (serviceAffiliation != '') {
        args.IsValid = true;
        cvServiceAffiliation.className = 'serviceAffiliationValidator';
        cvServiceAffiliation.innerHTML = '';
        setStyle('serviceAffiliationTag', 'color', '#000');
        if (serviceAffiliationRegEx.test(serviceAffiliation) == true) {
            args.IsValid = true;
            cvServiceAffiliation.className = 'serviceAffiliationValidator';
            cvServiceAffiliation.innerHTML = '';
            setStyle('serviceAffiliationTag', 'color', '#000');
        } else {
            args.IsValid = false;
            cvServiceAffiliation.className = 'serviceAffiliationValidator';
            cvServiceAffiliation.innerHTML = serviceAffiliationError;
            setStyle('serviceAffiliationTag', 'color', '#d20000');
        }
    } else {
        args.IsValid = true;
        cvServiceAffiliation.className = 'serviceAffiliationValidator';
        cvServiceAffiliation.innerHTML = '';
        setStyle('serviceAffiliationTag', 'color', '#000');
    }
}

function titleValidationFunc(source, args) {
    var titleRegEx = /^[a-zA-Z0-9\s\'`.]{2,40}$/;
    var title = document.getElementById('tbTitle').value;
    var cvTitle = document.getElementById('cvTitle');
    var titleError = 'Please enter a valid title'
    if (title != '') {
        args.IsValid = true;
        cvTitle.className = 'titleValidator';
        cvTitle.innerHTML = '';
        setStyle('titleTag', 'color', '#000');
        if (titleRegEx.test(title) == true) {
            args.IsValid = true;
            cvTitle.className = 'titleValidator';
            cvTitle.innerHTML = '';
            setStyle('titleTag', 'color', '#000');
        } else {
            args.IsValid = false;
            cvTitle.className = 'titleValidator';
            cvTitle.innerHTML = titleError;
            setStyle('titleTag', 'color', '#d20000');
        }
    } else {
        args.IsValid = true;
        cvTitle.className = 'titleValidator';
        cvTitle.innerHTML = '';
        setStyle('titleTag', 'color', '#000');
    }
}

function emailValidationFunc(source, args) {
    var emailRegEx = /^\w+([-+.\']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    var email = document.getElementById('tbEmail').value;
    var cvEmail = document.getElementById('cvEmail');
    var emailError = 'Please enter a valid email'
    if (emailRegEx.test(email) == true) {
        args.IsValid = true;
        cvEmail.className = 'emailValidator';
        cvEmail.innerHTML = '';
        setStyle('emailTag', 'color', '#000');
    } else {
        args.IsValid = false;
        cvEmail.className = 'emailValidator';
        cvEmail.innerHTML = emailError;
        setStyle('emailTag', 'color', '#d20000');
    }
}

function telephoneValidationFunc(source, args) {
    var RegExTelephone1 = /^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$/; /* reg expression 1 not currently used */
    var RegExTelephone2 = /^\(?(\d{3})\)?[\.\-\/ ]?(\d{3})[\.\-\/ ]?(\d{4})$/;
    var telephone = document.getElementById('tbTelephone');
    var cvTelephone = document.getElementById('cvTelephone');
    var error1 = 'Please enter a phone';
    var error2 = "Must be a valid phone";
    if (telephone.value != '') {
        if (RegExTelephone2.test(telephone.value) == true) {
            var validPhone = RegExTelephone2.exec(telephone.value);
            if (validPhone) {
                telephone.value = "(" + validPhone[1] + ") " + validPhone[2] + "-" + validPhone[3]
                args.IsValid = true;
                cvTelephone.className = 'telephoneValidator';
                cvTelephone.innerHTML = '';
                setStyle('telephoneTag', 'color', '#000');
            } else {
                cvTelephone.className = 'telephoneValidator';
                cvTelephone.innerHTML = error2;
                args.IsValid = false;
                setStyle('telephoneTag', 'color', '#d20000');
            }
        } else {
            cvTelephone.className = 'telephoneValidator';
            cvTelephone.innerHTML = error2;
            args.IsValid = false;
            setStyle('telephoneTag', 'color', '#d20000');
        }
    } else {
        cvTelephone.className = 'telephoneValidator';
        cvTelephone.innerHTML = error1;
        args.IsValid = false;
        setStyle('telephoneTag', 'color', '#d20000');
    }
}

function fixTelephone() {
    var RegExTelephone2 = /^\(?(\d{1})?[\.\-\/ ]?[\(\/ ]?(\d{3})\)?[\)\/ ]?[\.\-\/ ]?(\d{3})[\.\-\/ ]?(\d{4})$/; /* 1-(232)-232-2323 */
    var cvTelephone = document.getElementById('cvTelephone');
    var telephone = document.getElementById('tbTelephone');
    if (telephone.value != '') {
        var validPhone = RegExTelephone2.exec(telephone.value)
        if (validPhone) {
            telephone.value = "(" + validPhone[2] + ") " + validPhone[3] + "-" + validPhone[4];
        }
    }
}

function subjectValidationFunc(source, args) {
    var badSubjectString = '';
    var badCharactersSubject = '<>{}|*^[]';
    var subjectBoxString = document.getElementById('tbSubject').value;
    var cvSubject = document.getElementById('cvSubject');
    for (i = 0; i < subjectBoxString.length; i++) {
        for (j = 0; j < badCharactersSubject.length; j++) {
            if (subjectBoxString.substring(i, i + 1) == badCharactersSubject.substring(j, j + 1)) {
                var booleanVar = new Boolean(false);
                for (z = 0; z < badSubjectString.length; z++) {
                    if (subjectBoxString.substring(i, i + 1) == badSubjectString.substring(z, z + 1)) {
                        booleanVar = true;
                        break;
                    }
                }
                if (booleanVar == false)
                    badSubjectString += subjectBoxString.substring(i, i + 1);
            }
        }
    }
    if (badSubjectString.length > 0) {
        args.IsValid = false;
        badSubjectString = 'Invalid characters: ' + badSubjectString;
        cvSubject.className = 'subjectValidator';
        cvSubject.innerHTML = badSubjectString;
        setStyle('subjectTag', 'color', '#d20000');
    } else {
        args.IsValid = true;
        cvSubject.className = 'subjectValidator';
        cvSubject.innerHTML = '';
        setStyle('subjectTag', 'color', '#000');
        subjectValidationFunc2(source, args);
    }
    return badSubjectString;
}

function subjectValidationFunc2(source, args) {
    var subjectRegEx = /^[^<>{}=+*^~]{2,100}$/;
    var subject = document.getElementById('tbSubject').value;
    var cvSubject = document.getElementById('cvSubject');
    var subjectError = 'Please enter a valid subject';
    if (subjectRegEx.test(subject) == true) {
        args.IsValid = true;
        cvSubject.className = 'subjectValidator';
        cvSubject.innerHTML = '';
        setStyle('subjectTag', 'color', '#000');
    } else {
        args.IsValid = false;
        cvSubject.className = 'subjectValidator';
        cvSubject.innerHTML = subjectError;
        setStyle('subjectTag', 'color', '#d20000');
    }
}

function messagePrompt() {
    var messageBox = document.getElementById('tbMessage');
    if (messageBox != null) {
        if (messageBox.value == "Type your message here.") {
            messageBox.value = "";
            setStyle('tbMessage', 'color', '#000');
        }
    }
}

function messagePromptReload() {
    var messageBox = document.getElementById('tbMessage');
    if (messageBox != null) {
        if (messageBox.value == "") {
            messageBox.value = "Type your message here.";
            setStyle('tbMessage', 'color', '#777');
        }
    }
}

function messageLoad() {
    var messageBox = document.getElementById('tbMessage');
    if (messageBox != null) {
        var messagePrompt = "Type your message here.";
        messageBox.value = messagePrompt;
        setStyle('tbMessage', 'color', '#777');
    }
}

function messageValidationFunc(source, args) {
    var badMessageString = '';
    var badCharactersMessage = '<>{}|*^[]';
    var messageBoxString = document.getElementById('tbMessage').value;
    var cvMessage = document.getElementById('cvMessage');
    for (i = 0; i < messageBoxString.length; i++) {
        for (j = 0; j < badCharactersMessage.length; j++) {
            if (messageBoxString.substring(i, i + 1) == badCharactersMessage.substring(j, j + 1)) {
                var booleanVar = new Boolean(false);
                for (z = 0; z < badMessageString.length; z++) {
                    if (messageBoxString.substring(i, i + 1) == badMessageString.substring(z, z + 1)) {
                        booleanVar = true;
                        break;
                    }
                }
                if (booleanVar == false)
                    badMessageString += messageBoxString.substring(i, i + 1);
            }
        }
    }
    if (badMessageString.length > 0) {
        args.IsValid = false;
        badMessageString = 'Invalid characters: ' + badMessageString;
        cvMessage.className = 'messageValidator';
        cvMessage.innerHTML = badMessageString;
        setStyle('messageTag', 'color', '#d20000');
    } else {
        args.IsValid = true;
        cvMessage.className = 'messageValidator';
        cvMessage.innerHTML = '';
        setStyle('messageTag', 'color', '#000');
        messageValidationFunc2(source, args);
    }
    return badMessageString;
}

function messageValidationFunc2(source, args) {
    var messageRegEx = /^[a-zA-Z0-9`!@#\$%&()\-_\'":;,\.\?\s\/\\]{9,1000}$/;
    var messageBox = document.getElementById('tbMessage').value;
    var cvMessage = document.getElementById('cvMessage');
    var messageDefault = "Type your message here.";
    var messageError1 = 'Please enter a message';
    var messageError2 = 'Please enter a valid message';
    var messageError3 = 'Please reduce size of message; may not exceed 1000 Characters';
    if (messageBox != "" && messageBox != messageDefault) {
        if (messageRegEx.test(messageBox) == true) {
            args.IsValid = true;
            cvMessage.className = 'messageValidator';
            cvMessage.innerHTML = '';
            setStyle('messageTag', 'color', '#000');
        } else {
            if (messageBox.length < 1000) {
                args.IsValid = false;
                cvMessage.className = 'messageValidator';
                cvMessage.innerHTML = messageError2;
                setStyle('messageTag', 'color', '#d20000');
            } else {
                args.IsValid = false;
                cvMessage.className = 'messageValidator';
                cvMessage.innerHTML = messageError3;
                setStyle('messageTag', 'color', '#d20000');
            }
        }
    } else {
        args.IsValid = false;
        cvMessage.className = 'messageValidator';
        cvMessage.innerHTML = messageError1;
        setStyle('messageTag', 'color', '#d20000');
    }
}

function setStyle(obj, style, value) {
    getRef(obj).style[style] = value;
}

function getRef(obj) {
    return (typeof obj == "string") ?
			 document.getElementById(obj) : obj;
}
/*
* USAGE:
* objId    = element id.
* style    = the style to be changed.
* value    = the value assigned to the style.
Adds event to window.onload without overwriting currently 
assigned onload functions.
*/
/* --------------------------------- functions for newsletter subscribe page ----------------------------------------------*/
function emailPrompt(id, text) {
    var emailBox = document.getElementById(id);
    if (emailBox.value == text) {
        emailBox.value = "";
        setStyle(id, 'color', '#000');
    }
}

function emailReload(id, text) {
    var emailBox = document.getElementById(id);
    if (emailBox.value == "") {
        emailBox.value = text;
        setStyle(id, 'color', '#666');
    }
}

function emailValidationFuncNewsletter(source, args) {
    var emailRegEx = /^\w+([-+.\']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    var email1 = document.getElementById('emailField1').value;
    var email2 = document.getElementById('emailField2').value;
    var cvNewsletterEmailBadID = document.getElementById('cvNewsletterEmailBadID');
    var noError = '';
    var noMatch = 'Please verify the email addresses entered match';
    var notValid = 'Please enter a valid email address';
    var noEmail = 'Please enter then re-enter your email address';
    if ((email1 != '') && (email2 != '')) {
        if ((emailRegEx.test(email1) == true) && (emailRegEx.test(email2) == true)) {
            args.IsValid = true;
            cvNewsletterEmailBadID.className = 'cvNewsletterEmailBadID';
            cvNewsletterEmailBadID.innerHTML = noError;
            if (email1 == email2) {

                args.IsValid = true;
                cvNewsletterEmailBadID.className = 'cvNewsletterEmailBadID';
                cvNewsletterEmailBadID.innerHTML = noError;
            } else {
                args.IsValid = false;
                cvNewsletterEmailBadID.className = 'newsletterValidatorEmailBad';
                cvNewsletterEmailBadID.innerHTML = noMatch;
            }
        } else {
            args.IsValid = false;
            cvNewsletterEmailBadID.className = 'newsletterValidatorEmailBad';
            cvNewsletterEmailBadID.innerHTML = notValid;
        }
    } else {
        args.IsValid = false;
        cvNewsletterEmailBadID.className = 'newsletterValidatorEmailBad';
        cvNewsletterEmailBadID.innerHTML = noEmail;
    }
}
function verficationCodeFunc(source, args) {
    var captcha = document.getElementById('captchaField').value;
    var errorCodeString = 'Please enter the security code exactly as it appears';
    var cvNewsletterCodeID = document.getElementById('cvNewsletterCodeID');
    if (captcha != '') {
        args.IsValid = true;
        //alert('here!');
        cvNewsletterCodeID.className = 'cvNewsletterCodeID';
        cvNewsletterCodeID.innerHTML = '';
    } else {
        args.IsValid = false;
        cvNewsletterCodeID.className = 'newsletterValidatorCode';
        cvNewsletterCodeID.innerHTML = errorCodeString;
        //alert('false');
    }
}
function serviceAffiliationValidationFuncNews(source, args) {
    var serviceAffiliationRegEx = /^[a-zA-Z0-9\s\'`.]{2,40}$/;
    var serviceAffiliation = document.getElementById('serviceAffiliationField').value;
    var cvNewsletterServiceAffiliationID = document.getElementById('cvNewsletterServiceAffiliationID');
    var serviceAffiliationError = 'Invalid service affiliation'
    if (serviceAffiliation != '') {
        args.IsValid = true;
        cvNewsletterServiceAffiliationID.className = 'cvNewsletterServiceAffiliationID';
        cvNewsletterServiceAffiliationID.innerHTML = '';
        if (serviceAffiliationRegEx.test(serviceAffiliation) == true) {
            args.IsValid = true;
            cvNewsletterServiceAffiliationID.className = 'cvNewsletterServiceAffiliationID';
            cvNewsletterServiceAffiliationID.innerHTML = '';
        } else {
            args.IsValid = false;
            cvNewsletterServiceAffiliationID.className = 'newsletterValidatorServiceAffiliation';
            cvNewsletterServiceAffiliationID.innerHTML = serviceAffiliationError;
        }
    } else {
        args.IsValid = true;
        cvNewsletterServiceAffiliationID.className = 'cvNewsletterServiceAffiliationID';
        cvNewsletterServiceAffiliationID.innerHTML = '';
    }
}
function titleValidationFuncNews(source, args) {
    var titleRegEx = /^[a-zA-Z0-9\s\'`.]{2,40}$/;
    var title = document.getElementById('titleField').value;
    var cvNewsletterTitleID = document.getElementById('cvNewsletterTitleID')
    var titleError = 'Please enter a valid title'
    if (title != '') {
        args.IsValid = true;
        cvNewsletterTitleID.className = 'cvNewsletterTitleID';
        cvNewsletterTitleID.innerHTML = '';
        if (titleRegEx.test(title) == true) {
            args.IsValid = true;
            cvNewsletterTitleID.className = 'cvNewsletterTitleID';
            cvNewsletterTitleID.innerHTML = '';
        } else {
            args.IsValid = false;
            cvNewsletterTitleID.className = 'newsletterValidatorTitle';
            cvNewsletterTitleID.innerHTML = titleError;
        }
    } else {
        args.IsValid = true;
        cvNewsletterTitleID.className = 'cvNewsletterTitleID';
        cvNewsletterTitleID.innerHTML = '';
    }
}

function emailLoad() {
    var emailBox = document.getElementById('emailField2');
    var emailPrompt = "Please Verify Email";
    setStyle('emailField2', 'color', '#666');

    if (emailBox.value != "Please Verify Email" && emailBox.value != "") {
        emailBox.value = emailBox.value;
        return;
    }
    emailBox.value = emailPrompt;
}

function badEmailStringFunc(source, args) {
    var badEmailString = '';
    var badCharactersEmail = '!~#$%^&*()+={}[]\\|:;?/><,\'`';
    var cvNewsletterEmailBadID = document.getElementById('cvNewsletterEmailBadID');
    var emailBoxString = new String(document.getElementById('emailField1').value + document.getElementById('emailField2').value);
    var booleanVar = new Boolean(false);
    for (var i = 0; i < emailBoxString.length; i++) {
        for (var j = 0; j < badCharactersEmail.length; j++) {
            if (emailBoxString.substring(i, i + 1) == badCharactersEmail.substring(j, j + 1)) {
                for (var z = 0; z < badEmailString.length; z++) {
                    if (emailBoxString.substring(i, i + 1) == badEmailString.substring(z, z + 1)) {
                        booleanVar = true;
                        break;
                    }
                }
                if (booleanVar == false)
                    badEmailString += emailBoxString.substring(i, i + 1);
            }
        }
    }
    if (badEmailString.length > 0) {
        args.IsValid = false;
        badEmailString = 'Invalid characters: ' + badEmailString;
        cvNewsletterEmailBadID.className = 'newsletterValidatorEmailBad';
        cvNewsletterEmailBadID.innerHTML = badEmailString;
    } else {
        args.IsValid = true;
        cvNewsletterEmailBadID.className = 'cvNewsletterEmailBadID';
        cvNewsletterEmailBadID.innerHTML = '';
        emailValidationFuncNewsletter(source, args);
    }
    return badEmailString;
}

/* ------------------------------------- unsubscribe functions -------------------------------------------------- */
function validEmail(source, args) {
    var emailRegEx = /^\w+([-+.\']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    var email1 = document.getElementById('fEmailUnsubscribe').value;
    var validationUnsubscribeID = document.getElementById('validationUnsubscribeID');
    var notValid = 'Email must be valid';
    var noEmail = 'Please enter an email';
    var noError = '';
    if (email1 != '') {
        args.IsValid = true;
        validationUnsubscribeID.className = 'validationUnsubscribeID';
        validationUnsubscribeID.innerHTML = noError;
        if (emailRegEx.test(email1) == true) {
            args.IsValid = true;
            validationUnsubscribeID.className = 'validationUnsubscribeID';
            validationUnsubscribeID.innerHTML = noError;
        } else {
            args.IsValid = false;
            validationUnsubscribeID.className = 'validationUnsubscribeIDreplace';
            validationUnsubscribeID.innerHTML = notValid;
        }
    } else {
        args.IsValid = false;
        validationUnsubscribeID.className = 'validationUnsubscribeIDreplace';
        validationUnsubscribeID.innerHTML = noEmail;
    }
}

/*--------------------------------------- load event function --------------------------------------------------*/
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    }
    else {
        window.onload = function () {
            oldonload();
            func();
        }
    }
}

addLoadEvent(rollOvers);
addLoadEvent(background);