var xmlHttp; 
var requestURL = 'https://www.trainingcampus.com/login.aspx?';
var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0; 
var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0; 
var is_ie6 = (navigator.appVersion.indexOf("MSIE 6")!=-1) ? 1 : 0;
var is_opera = ((navigator.userAgent.indexOf("Opera 6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0; 
//netscape, safari, mozilla behave the same??? 
var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0; 

function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
//  alert('Query Variable ' + variable + ' not found');
  return '0';
}
function setRegCtx(){
    var temp = 0;
	var elem_email;
	var elem_pw;
	var elem_txtEmailAddress;
	var elem_lblHeaderText;
	var elem_lblMessage;
	var elem_login;
	var elem_lblInfo2;
	var elem_tblLogin;
	var elem_tblContinue;
	var elem_tblPassword;
	var elem_tblProfileInfo;
	var elem_header;
	var preemail;
	var elem_regcont;
    try{ 
        temp = getQueryVariable('login'); 
        elem_email = document.getElementById('email');
	    elem_pw = document.getElementById('pw');
		elem_txtEmailAddress = document.getElementById('_txtEmailAddress');
		elem_txtVerifiedEmailAddress = document.getElementById('_txtVerifiedEmailAddress');
		elem_txtPassword = document.getElementById('_txtPassword');
		elem_lblHeaderText = document.getElementById('_lblHeaderText');
		elem_lblMessage = document.getElementById('_lblMessage');
		elem_login = document.getElementById('login');
		elem_loginmsg = document.getElementById('msg');
		elem_lblInfo2 = document.getElementById('_lblInfo2');
		elem_tblLogin = document.getElementById('_tblLogin');
		elem_tblContinue = document.getElementById('_tblContinue');
		elem_tblPassword = document.getElementById('_tblPassword');
		elem_tblProfileInfo = document.getElementById('_tblProfileInfo');
		elem_header = document.getElementById('header');
        try{ elem_regcont = document.getElementById('regcont'); }
        catch(str){elem_regcont = ''};
        try{ preemail = getQueryVariable('email');}
        catch(str){preemail = 'test';}
    }
    catch(str){ temp = 0; }
    switch(temp){
        case '1':
        case '3':
            elem_regcont.style.display = 'none';
            elem_login.style.display = '';
            elem_loginmsg.style.display = '';
            var strmsg = 'Previously registered participants,<br/><br/>';
            if( temp=='1' ){ elem_loginmsg.innerHTML = 'Please login to continue.'; }
            else if( temp=='3' ){ 
                elem_loginmsg.style.color = 'red';
                elem_loginmsg.innerHTML = strmsg + 'Please login to continue.'; 
                if( isEmail(preemail)==true ){
                    elem_email.value = preemail;
                    elem_pw.focus();
                }
                else{elem_email.focus();}
            }
	        elem_lblMessage.style.display = '';
	        elem_lblMessage.style.color = 'red';
	        elem_lblHeaderText.style.display = 'none';
	        elem_tblLogin.style.display = 'none';
	        elem_tblContinue.style.display = 'none';
	        elem_tblPassword.style.display = 'none';
	        elem_tblProfileInfo.style.display = 'none';
	        elem_lblInfo2.style.display = 'none';
//	        elem_email.value = elem_txtEmailAddress.value;            
            break;
        case '2':
            if( preemail != '' ){
                elem_regcont.style.display = '';
                elem_txtEmailAddress.value = preemail;
                elem_txtVerifiedEmailAddress.value = preemail;
                elem_login.style.display = 'none';
                elem_loginmsg.style.display = 'none';
                elem_loginmsg.innerHTML = '';
                elem_lblMessage.style.display = '';
                elem_lblMessage.style.color = 'red';
                elem_lblHeaderText.style.display = 'block';
                elem_lblHeaderText.innerHTML = 'Please continue by entering the following information.';
                elem_tblLogin.style.display = 'block';
                elem_tblContinue.style.display = 'none';
                elem_tblPassword.style.display = 'block';
                elem_tblProfileInfo.style.display = 'block';
                elem_lblInfo2.style.display = 'none';
                elem_txtPassword.focus();
            }
            break;
        default:
            elem_regcont.style.display = '';
        	elem_login.style.display = 'none';
            elem_loginmsg.style.display = 'none';
            elem_loginmsg.innerHTML = '';
	        elem_lblMessage.style.display = '';
	        elem_lblMessage.style.color = 'red';
	        elem_lblHeaderText.style.display = 'block';
	        elem_lblHeaderText.innerHTML = 'Please continue by entering the following information.';
	        elem_tblLogin.style.display = '';
	        elem_tblContinue.style.display = '';
	        elem_tblPassword.style.display = 'none';
	        elem_tblProfileInfo.style.display = 'none';
	        elem_lblInfo2.style.display = 'none';
            break;
    }
}
function buildQuerystring(){
    var str = '';
    str += 'email='+document.getElementById('_txtEmailAddress').value;
    str += '&pass='+document.getElementById('_txtPassword').value;
    str += '&inst='+document.getElementById('_txtInstitution').value;
    str += '&role='+document.getElementById('_txtJobTitle').value;
    str += '&sal='+document.getElementById('_ddlSalutation').value;
    str += '&fname='+document.getElementById('_txtFirstName').value;
    str += '&lname='+document.getElementById('_txtLastName').value;
    str += '&educ='+document.getElementById('_ddlEducationLevels').value;
    str += '&addr1='+document.getElementById('_txtAddress1').value;
    str += '&addr2='+document.getElementById('_txtAddress2').value;
    str += '&city='+document.getElementById('_txtCity').value;
    str += '&zip='+document.getElementById('_txtZipCode').value;
    str += '&cy='+document.getElementById('_ddlCountries').value;
    str += '&cyx=1';
    str += '&area='+document.getElementById('_txtAreaCode').value;
    str += '&ph='+document.getElementById('_txtPhoneNumber').value;
    str += '&phext='+document.getElementById('_txtPhoneExtension').value;
    str += '&ind='+document.getElementById('_ddlIndustry').value;
    str += '&pri='+document.getElementById('_ddlPriTherArea').value;
    str += '&sec='+document.getElementById('_ddlSecTherArea').value;

    var elem_ddlCountries = document.getElementById('_ddlCountries');
    switch( elem_ddlCountries.value ){
        case "US":
            str += '&st='+document.getElementById('_ddlUS').value;
            break;
        case "CA":
            str += '&st='+document.getElementById('_ddlCA').value;
            break;
        default:
            break;
            str += '&st='+document.getElementById('_txtState');
    }
    return str;
}
function sendreg(){ 
	if (isComplete()==true){ 
		//Append the name to search for to the requestURL 
		var url = requestURL + buildQuerystring() + '&req=2';
//		alert(url);
//		var elem_lblMessage = document.getElementById('_lblMessage');
//		elem_lblMessage.innerHTML = url + '<p/>';
		//Create the xmlHttp object to use in the request 
		//stateChangeHandler will fire when the state has changed, i.e. data is received back 
		// This is non-blocking (asynchronous) 
		xmlHttp = GetXmlHttpObject(sendreg_handler); 
         
		//Send the xmlHttp get to the specified url 
		xmlHttp_Get(xmlHttp, url); 
	}
} 

function dologin(){
    var email = document.getElementById('email');
    var pw = document.getElementById('pw');
    //alert(email.value + ' : ' + pw.value);
    //document.getElementById('login').innerHTML = email.value + ' : ' + pw.value + '<br/>';
    if (email.value.length > 0 && pw.value.length > 0){ 
	    //Append the name to search for to the requestURL 
	    var url = requestURL + 'email=' + email.value + '&pass=' + pw.value + '&req=1';

        //Create the xmlHttp object to use in the request 
        //stateChangeHandler will fire when the state has changed, i.e. data is received back 
        // This is non-blocking (asynchronous) 
        xmlHttp = GetXmlHttpObject(stateChangeHandler); 
         
	    //Send the xmlHttp get to the specified url 
	    xmlHttp_Get(xmlHttp, url); 
    } 
    else { 
	    //Textbox blanked out, clear the results 
	    //document.getElementById('login').innerHTML = ''; 
	    alert('you must enter an email and password');
    }
} 
var signout = function(){        
    var elem_msg = document.getElementById('msg');
    var elem_login = document.getElementById('login');
    var elem_alogin = document.getElementById('alogin');
    var elem_areg = document.getElementById('areg');
    var elem_amyprof = document.getElementById('amyprof');
    var elem_asignout = document.getElementById('asignout');
    var cookiebox = new CookieHandler();
    cookiebox.deleteCookie('xauth');

    //showLogin();
    elem_alogin.style.display = 'block';
    elem_areg.style.display =  'block';
    elem_amyprof.style.display = 'none';
    elem_asignout.style.display = 'none';
    location.replace('login.html');
}
function checkuser(email){
//    var email = document.getElementById('_txtEmailAddress');
    if (isEmail(email)){ 
	    //Append the name to search for to the requestURL 
	    var url = requestURL + 'email=' + email;

        //Create the xmlHttp object to use in the request 
        //stateChangeHandler will fire when the state has changed, i.e. data is received back 
        // This is non-blocking (asynchronous) 
        xmlHttp = GetXmlHttpObject(checkuser_handler); 
         
	    //Send the xmlHttp get to the specified url 
	    xmlHttp_Get(xmlHttp, url); 
    } 
    else { 
	    toggleForm(-1);
    }
}
function checkuser_handler(){
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){ 
		//Gather the results from the callback 
		var str = xmlHttp.responseText;
//        alert(str);
        if( str == 1 ){
            toggleForm(-1);
        }
        else if( str == -1 ){
            toggleForm(1);
        }
	}
	else{
        toggleForm(-1);
    }
}
// auth in .net?
var checkauth = function (){
    var elem_msg = '';
    try{ elem_msg = $('msg'); }
    catch(err){ elem_msg = ''; }
    var elem_alogin = $('alogin');
    var elem_areg = $('areg');
    var elem_amyprof = $('amyprof');
    var elem_asignout = $('asignout');
    var cookiebox = new CookieHandler();
//cookiebox.setCookie('xauth', cook, 60*40);
    var cook = cookiebox.getCookie('xauth');
    //alert('cook = ' + cook);
    if( cook != null ){
        cookiebox.setCookie('xauth', cook, 60*40);
        try{elem_login.setStyle('display','none');}
        catch(str){}
        elem_alogin.setStyle('display','none');
        elem_areg.setStyle('display','none');
        elem_amyprof.setStyle('display','block');
        elem_asignout.setStyle('display','block');
    }
    else{
        elem_alogin.setStyle('display','block');
        elem_areg.setStyle('display','block');
        elem_amyprof.setStyle('display','none');
        elem_asignout.setStyle('display','none');
    }
}
//function showLogin(state) {    
//    var temp = 'https://www.trainingcampus.com/xauth.shtml?login='+state;
//    var elem_txtEmailAddress = document.getElementById('_txtEmailAddress'); 
//    
//    if( state > 1 ){ temp+='&email='+elem_txtEmailAddress.value; }
//    top.location.replace(temp);
//    
//}

function showLogin(state) {
    var strEmail = '';
    var temp = 'https://www.trainingcampus.com/xauth.shtml?login='+state;  
      
    try{ 
        var elem_txtEmailAddress = document.getElementById('_txtEmailAddress'); 
        strEmail = elem_txtEmailAddress.value; 
    }
    catch(err){strEmail = '' }
    
//    if( state > 1 ){ temp+='&email='+elem_txtEmailAddress.value; }
    if( state > 1 ){ 
        temp+='&email='+strEmail;
    }
    location.replace(temp);
}

function showLogin2() {
    var elem_alogin = document.getElementById('alogin');
    var elem_msg = document.getElementById('msg');
    var elem_login = document.getElementById('login');
    elem_alogin.blur();
     
    if( elem_login.style.display == 'block' ){ 
        elem_login.style.display = 'none'; 
    }
    else if ( elem_login.style.display == 'none' ) {
        elem_login.style.display = 'block';
        elem_login.style.zindex = 99;
        elem_login.style.position = 'fixed';
        elem_login.style.top = 150;
        elem_login.style.left = 150;

        elem_msg.style.display = 'none';
        elem_msg.innerHTML = '';
    }
    /*else {
        elem_login.style.display = 'block';
        elem_msg.style.display = 'none';
        elem_msg.innerHTML = '';    
    }*/
}

function sendreg_handler() 
{ 
	//readyState of 4 or 'complete' represents that data has been returned 
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){ 
		//Gather the results from the callback 
		var str = xmlHttp.responseText;
		var elem_email = document.getElementById('email');
		var elem_pw = document.getElementById('pw');
		var elem_txtEmailAddress = document.getElementById('_txtEmailAddress');
		var elem_txtPassword = document.getElementById('_txtPassword');
		var elem_lblHeaderText = document.getElementById('_lblHeaderText');
		var elem_lblMessage = document.getElementById('_lblMessage');
		var elem_login = document.getElementById('login');
		var elem_lblInfo2 = document.getElementById('_lblInfo2');
		var elem_tblLogin = document.getElementById('_tblLogin');
		var elem_tblContinue = document.getElementById('_tblContinue');
		var elem_tblPassword = document.getElementById('_tblPassword');
		var elem_tblProfileInfo = document.getElementById('_tblProfileInfo');
		var elem_header = document.getElementById('header');

		elem_lblMessage.innerHTML = str + '<p/>';
//		alert(str);
		switch( str ){
		    case '-5': //soap header not rcv'd
                elem_lblMessage.innerHTML = '<p>A communications error occurred while processing your request. Please try again later.</p>';
		        elem_lblMessage.style.display = '';
		        elem_lblHeaderText.style.display = 'none';
		        elem_tblLogin.style.display = 'none';
		        elem_tblContinue.style.display = 'none';
		        elem_tblPassword.style.display = 'none';
		        elem_tblProfileInfo.style.display = 'none';
		        elem_lblInfo2.style.display = 'none';
		        elem_login.style.display = 'none';
//		        location.replace('jh3.shtml');
		        break;
		    case '-1':
		        elem_lblMessage.innerHTML = '<p>The password is invalid for the email address you specified.</p>';
		        elem_lblMessage.style.display = '';
		        elem_lblMessage.style.color = 'red';
		        elem_lblHeaderText.style.display = 'none';
		        elem_tblLogin.style.display = 'none';
		        elem_tblContinue.style.display = 'none';
		        elem_tblPassword.style.display = 'none';
		        elem_tblProfileInfo.style.display = 'none';
		        elem_lblInfo2.style.display = 'none';
		        elem_login.style.display = 'block';
		        elem_email.value = elem_txtEmailAddress.value;
		        elem_pw.focus();

		        break;
		    case '0':		        
                var strmsg = '<p>Welcome to TrainingCampus.com!</p>';
                strmsg +='<p>As a reminder, having your personal account ';
                strmsg+='allows you to take advantage of the growing number ';
                strmsg+='of network providers offering discounted, and in ';
                strmsg+='some cases FREE products, services, and specialties ';
                strmsg+='to you and your organization.</p>';
                strmsg+='<p>You may start by going into ';
                strmsg+='<a href="courses.shtml">Network Products</a> or ';
                strmsg+='choose any links of interest from the left hand menu!</p>';
                strmsg+='<p>PS: Pay it forward. Don\'t forget to tell your ';
                strmsg+='colleagues about this FREE international service!</p>';
		        elem_lblHeaderText.innerHTML = strmsg;
		        elem_lblHeaderText.style.display = '';
		        elem_lblMessage.style.display = 'none';
		        elem_tblLogin.style.display = 'none';
		        elem_tblContinue.style.display = 'none';
		        elem_tblPassword.style.display = 'none';
		        elem_tblProfileInfo.style.display = 'none';
		        elem_lblInfo2.style.display = 'none';
		        elem_login.style.display = 'none';
		        elem_email.value = elem_txtEmailAddress.value;
		        elem_pw.value = elem_txtPassword.value;
		        dologin();
		        break;
		    case '-3': //
		    default:
		        elem_lblMessage.innerHTML = '<p>An unknown error occured while processing this request. Please try again later.</p>';
		        elem_lblMessage.style.display = '';
		        elem_tblLogin.style.display = 'none';
		        elem_tblContinue.style.display = 'none';
		        elem_tblPassword.style.display = 'none';
		        elem_tblProfileInfo.style.display = 'none';
		        elem_lblInfo2.style.display = 'none';
		        elem_login.style.display = 'none';
//		        location.replace('jh3.shtml');
		        break;
		}
        top.location.replace('#top');
//		elem_lblMessage.focus();
	}
}

//stateChangeHandler will fire when the state has changed, i.e. data is received back 
// This is non-blocking (asynchronous) 
function stateChangeHandler() 
{ 
	//readyState of 4 or 'complete' represents that data has been returned 
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){ 
		//Gather the results from the callback 
		var str = xmlHttp.responseText; 
//			str = '';
        cslogin(str);
	} 
} 
function cslogin(str){
    var elem_regcont;
    var elem_h1_regHead;
    try{ elem_regcont = document.getElementById('regcont'); }
    catch(str){elem_regcont = ''};
    try{ elem_h1_regHead = document.getElementById('h1_regHead'); }
    catch(str){elem_h1_regHead = ''};
    var elem_img_welcome = document.getElementById('img_welcome');
    var elem_img_regnow = document.getElementById('img_regnow');
    var elem_lblHeaderText = document.getElementById('_lblHeaderText');
    var elem_msg = document.getElementById('msg');
    var elem_login = document.getElementById('login');
    var elem_alogin = document.getElementById('alogin');
    var elem_areg = document.getElementById('areg');
    var elem_amyprof = document.getElementById('amyprof');
    var elem_asignout = document.getElementById('asignout');
    
    if( str.indexOf('xauth') > -1 ){
        var i = str.indexOf('#');
        var cookiebox = new CookieHandler();
        cookiebox.setCookie('xauth', str.substring(i+1,str.length), 60*40);
//            alert(str);
        resetState();
        elem_login.style.display = 'none';
        elem_alogin.style.display = 'none';
        elem_areg.style.display = 'none';
        elem_amyprof.style.display = 'block';
        elem_asignout.style.display = 'block';
        elem_regcont.style.display = '';
        elem_lblHeaderText.style.display = 'block';
        var isLoginReq = getQueryVariable("login"); 
        switch( isLoginReq ){
            case '0':
            case '1':
            case '3':
                elem_img_regnow.style.display = 'none';
                elem_img_welcome.style.display = '';
                var strmsg = '<div>';
                if( isLoginReq=='0' ){
                    elem_h1_regHead.innerHTML = 'Welcome!';
                    strmsg += '<p>Welcome to TrainingCampus.com!</p>';
                }
                else if( isLoginReq=='1' || isLoginReq=='3'  ){
                    elem_h1_regHead.innerHTML = 'Welcome Back!';
                    strmsg += '<p>Welcome back to TrainingCampus.com!</p>';
                }
                strmsg +='<p>As a reminder, having your personal account ';
                strmsg+='allows you to take advantage of the growing number ';
                strmsg+='of network providers offering discounted, and in ';
                strmsg+='some cases FREE products, services, and specialties ';
                strmsg+='to you and your organization.</p>';
                strmsg+='<p>You may start by going into ';
                strmsg+='<a href="courses.shtml" alt="Network Products">Network Products</a> or ';
                strmsg+='choose any links of interest from the left hand menu!</p>';
                strmsg+='<p>PS: Pay it forward. Don\'t forget to tell your ';
                strmsg+='colleagues about this FREE international service!</p>';
                strmsg+='</div>';
		        elem_lblHeaderText.innerHTML = strmsg;
                break;
        }
    }
    else{
        switch( str )
        {
            case 'anon':
            case 'email address or password incorrect':
                elem_login.style.display = 'block';
                elem_msg.style.display = 'block';
                elem_msg.innerHTML = 'Either your email address or password were incorrect.';
                elem_alogin.style.display = 'block';
                elem_areg.style.display = 'block';
                elem_amyprof.style.display = 'none';
                elem_asignout.style.display = 'none';
                break;
            case 'soap header':
                elem_login.style.display = 'block';
                elem_msg.innerHTML = 'There was a transport error while processing your request.';
                elem_msg.style.display = 'block';
                elem_alogin.style.display = 'block';
                elem_areg.style.display = 'block';
                elem_amyprof.style.display = 'none';
                elem_asignout.style.display = 'none';
                break;
            default:
                elem_login.style.display = 'block';
                elem_msg.innerHTML = 'An unspecified error was encountered while processing your request.';
                elem_msg.style.display = 'block';
                elem_alogin.style.display = 'block';
                elem_areg.style.display = 'block';
                elem_amyprof.style.display = 'none';
                elem_asignout.style.display = 'none';
                break;
        }
        elem_regcont.style.display = 'none';
        elem_msg.style.color = "red";
    }
}
// XMLHttp send GET request 
function xmlHttp_Get(xmlhttp, url) { 
	xmlhttp.open('GET', url, true); 
	xmlhttp.send(null); 
} 

function GetXmlHttpObject(handler) { 
	var objXmlHttp = null;    //Holds the local xmlHTTP object instance 

	//Depending on the browser, try to create the xmlHttp object 
	if (is_ie){ 
		//The object to create depends on version of IE 
		//If it isn't ie5, then default to the Msxml2.XMLHTTP object 
		var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'; 
         
		//Attempt to create the object 
		try{ 
			objXmlHttp = new ActiveXObject(strObjName); 
			objXmlHttp.onreadystatechange = handler; 
		} 
		catch(e){ 
		//Object creation errored 
			alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled'); 
			return; 
		} 
	} 
	else if (is_opera){ 
		//Opera has some issues with xmlHttp object functionality 
		alert('Opera detected. The page may not behave as expected.'); 
		return; 
	} 
	else{ 
		// Mozilla | Netscape | Safari 
		objXmlHttp = new XMLHttpRequest(); 
		objXmlHttp.onload = handler; 
		objXmlHttp.onerror = handler;
	} 
     
	//Return the instantiated object 
	return objXmlHttp; 
} 
function loadthis(){
    checkauth();
    //regevents();
}
function resetState(state){
//    var elem_login = document.getElementById('login');
//    elem_login.style.display = 'none';
}
function jump(location){
    var cookiebox = new CookieHandler();
    var cook = cookiebox.getCookie('xauth');
    if(cook!=null) {
        cook = cook.replace(/-/g,'');
        cook = cook.replace(/#/g,'-');
        var url = 'https://secure.trainingcampus.net/uas/modules/users/svc/extlogsvc.aspx?cauth=';
        url += location;
        url += '&xauth=';
        url += cook;
//        window.open(url,'campus_win','scrollbars=yes,resizable=yes,width=940,height=720');
        window.location.href = url;
    }
    else {
        showLogin(1);
    }
}
function popit(url,hwin){
//    window.open(url,hwin,'scrollbars=yes,resizable=yes,width=940,height=720');
    top.location.replace(url);
}
function CookieHandler() {

    this.setCookie = function (name, value, seconds) {

        if (typeof(seconds) != 'undefined') {
            var date = new Date();
            date.setTime(date.getTime() + (seconds*1000));
            var expires = "; expires=" + date.toGMTString();
        }
        else {
            var expires = "";
        }

        document.cookie = name+"="+value+expires+"; path=/";
    }

    this.getCookie = function (name) {

        name = name + "=";
        var carray = document.cookie.split(';');

        for(var i=0;i < carray.length;i++) {
            var c = carray[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
        }

        return null;
    }

    this.deleteCookie = function (name) {
        this.setCookie(name, "", -1);
    }

}
function verify(){
    var elem_email = document.getElementById('_txtEmailAddress');
    var elem_verifyemail = document.getElementById('_txtVerifiedEmailAddress');
    var elem_headertext = document.getElementById('_lblHeaderText');
    var elem_txtPassword = document.getElementById('_txtPassword');
    if( elem_email.value != elem_verifyemail.value || (isEmail(elem_email.value)==false) || (isEmail(elem_verifyemail.value)==false) ){
//        alert(elem_email.value);
        toggleForm(0);
        elem_headertext.innerHTML = 'The email addresses you entered do not match. Please enter and verify a valid email address and click Continue.';
    }
    else {
        try{ checkuser(elem_email.value); }
        catch(val){}
    }

}
function toggleForm(state){
    var elem_continue = document.getElementById('_tblContinue');   
    var elem_password = document.getElementById('_tblPassword');
    var elem_profile = document.getElementById('_tblProfileInfo');
    
//    switch( state ){
//        case 0:
//            elem_continue.style.display = 'block';
//            elem_password.style.display = 'none';
//            elem_profile.style.display = 'none';
//            break;
//        case -1:
//            elem_continue.style.display = 'block';
//            elem_password.style.display = 'none';
//            elem_profile.style.display = 'none';
//            showLogin(0);
//               break;
//        case 1:
//            elem_continue.style.display = 'none';
//            elem_password.style.display = 'block';
//            elem_profile.style.display = 'block';
//            break;
//    }
    if( state == 0 ){ //toggle form off but allow registration
        elem_continue.style.display = 'block';
        elem_password.style.display = 'none';
        elem_profile.style.display = 'none';
    }
    else if( state == 1 ){//toggle form on and allow registration
//        elem_continue.style.display = 'none';
//        elem_password.style.display = 'block';
//        elem_profile.style.display = 'block';
        showLogin(2);
    }
    else if( state == -1 ){//toggle form off and display login box
//        elem_continue.style.display = 'block';
//        elem_password.style.display = 'none';
//        elem_profile.style.display = 'none';
        showLogin(3);
    }
}
function ddlIndustry_Change(){
    var elem_ddlIndustry = document.getElementById('_ddlIndustry');
    var elem_trPriTherArea = document.getElementById('_trPriTherArea');
    var elem_ddlPriTherArea = document.getElementById('_ddlPriTherArea');
    var elem_trSecTherArea = document.getElementById('_trSecTherArea');
    var elem_ddlSecTherArea = document.getElementById('_ddlSecTherArea');

    var selidx = elem_ddlIndustry.selectedIndex;
    if( selidx > 0 && selidx < 4 ) {
//        alert(elem_ddlIndustry.selectedIndex);
        elem_trPriTherArea.style.display = '';
        elem_trSecTherArea.style.display = '';
    }
    else{
        elem_trPriTherArea.style.display = 'none';
        elem_trSecTherArea.style.display = 'none';
    }
 }
 function ddlCountries_Change(){
    elem_countries = document.getElementById('_ddlCountries');
    elem_ddlUS = document.getElementById('_ddlUS');
    elem_ddlCA = document.getElementById('_ddlCA');
    elem_txtState = document.getElementById('_txtState');
    
    switch( elem_countries.value ){
        case "US":
            elem_ddlUS.style.display = '';
            elem_ddlCA.style.display = 'none';
            elem_txtState.style.display = 'none';
            break;
        case "CA":
            elem_ddlUS.style.display = 'none';
            elem_ddlCA.style.display = '';
            elem_txtState.style.display = 'none';
            break;
        default:
            elem_ddlUS.style.display = 'none';
            elem_ddlCA.style.display = 'none';
            elem_txtState.style.display = '';
            break;
    }
 }
 
 //////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////
 
 function isEmail(string) 
{
	var iChars = "*|,\":<>[]{}`\';()&$#% ";
	var atPos;
	var pdPos;
	if (!string) return false;
	for (var i = 0; i < string.length; i++) 
		{
		if (iChars.indexOf(string.charAt(i)) != -1)
        return false;
         }
	atPos = string.indexOf ("@",1)
	if (atPos == -1) 
		{
		return false
		}
	if ( string.indexOf ("@", atPos+1) != -1) 
		{
		return false
		}
	pdPos = string.indexOf (".", atPos)
	if ( pdPos == -1) 
		{
		return false
		}
	if ( pdPos+3 > string.length)    
        {
		return false
        }
   return true;
}
                      
function isProper(string, iLength) 
{
	var iChars = "*|\":<>[]{}\;()@&$%~";
	if (!string) return false;

	for (var i = 0; i < string.length; i++) 
	{
		if (iChars.indexOf(string.charAt(i)) != -1)
		return false;
	}
	
	if (iLength.length != 0)
	{
		if (string.length > iLength || string.length < 1)
		{
			return false;
		}
	}
	return true;
}
 
function isValidPassword(string) 
{
	var iChars = "*|,\":<>[]{}`\;()@&$%~";
	var bNumber = false;
	var bAlpha = false;

	if (!string) return false;

	if (string.length < 8) return false;
	
	if (string.length > 15) return false;
	
	for (var i = 0; i < string.length; i++)
	{
		if (isNaN( string.charAt(i)))
			{//alert( string.charAt(i));
			bAlpha = true;}
		if (string.charAt(i) >= "0" && string.charAt(i) <= "9")
		{	//alert( string.charAt(i));
			bNumber = true;}
	}
	
	if (bNumber == false || bAlpha == false) 
		return false;
	
	return true;
}

function isValidPhone(string)
{
	if(string.length>16){return false;}
	if(string.length<7){return false;}
	for(var i=0;i<string.length;i++)
	{
		if(isNaN(string.charAt(i)))
		{
			return false;
		}
	}
} 

function isValidAreaCode(string)
{
	if(string.length>8){return false;}
	if(string.length<3){return false;}
	for(var i=0;i<string.length;i++)
	{
		if(isNaN(string.charAt(i)))
		{
			return false;
		}
	}
}

function isNumeric(string, iValue)
{
	if (!string) return false;
	for (var i=0;i<string.length;i++)
	{
		if (isNaN(string.charAt(i)))
		{
			return false;
		}
	}
	if (string.length > iValue || string.length < 1)
	{
		return false;
	}
	return true;
}

function isMatch( string1, string2 )
{
	if (string1 != string2 )
	{
		return false;
	}
	
	return true;
}
function emailIsVerified(){
	if (isEmail(document.getElementById('_txtEmailAddress').value) == false) {
		alert("Please enter a valid email address.");
		document.getElementById('_txtEmailAddress').focus();
		return false;
	}
	if (isMatch(document.getElementById('_txtEmailAddress').value, document.getElementById('_txtVerifiedEmailAddress').value) == false) {
		alert("The email addresses you entered do not match.\n\nPlease confirm your email address.\n\nNote:  Your email address will be used to receive confirmations and reminders from the system.");
		document.getElementById('_txtVerifiedEmailAddress').focus();
		return false;
	}
	document.RegisterUser.submit();
}
function isComplete() 
{
//    alert(document.getElementById('_txtEmailAddress').value);
//    return false;
	if (isEmail(document.getElementById('_txtEmailAddress').value) == false) {
		alert("Please enter a valid email address.");
		document.getElementById('_txtEmailAddress').focus();
		document.getElementById('_txtEmailAddress').select();
		return false;
	}
	if (isMatch(document.getElementById('_txtEmailAddress').value, document.getElementById('_txtVerifiedEmailAddress').value) == false) {
		alert("The email addresses you entered do not match.\n\nPlease confirm your email address.\n\nNote:  Your email address will be used to receive confirmations and reminders from the system.");
		document.getElementById('_txtVerifiedEmailAddress').focus();
		document.getElementById('_txtVerifiedEmailAddress').select();
		return false;
	}
    if (isValidPassword(document.getElementById('_txtPassword').value) == false) {
        alert("Please enter a valid password of 8-15 alpha-numeric characters (both alpha & numeric required).");
        document.getElementById('_txtPassword').value = "";
        document.getElementById('_txtVerifiedPassword').value = "";
        document.getElementById('_txtPassword').focus();
        document.getElementById('_txtPassword').select();
        return false;
    }
    if (isMatch(document.getElementById('_txtPassword').value, document.getElementById('_txtVerifiedPassword').value) == false) {
        alert("The passwords you have entered do not match.  Please re-enter the information.");
        document.getElementById('_txtPassword').value = "";
        document.getElementById('_txtVerifiedPassword').value = "";
        document.getElementById('_txtPassword').focus();
        document.getElementById('_txtPassword').select();
        return false;
    }
	if (isProper(document.getElementById('_txtInstitution').value,100) == false) {
        alert("Please enter the name or your institution / place of employment.");
        document.getElementById('_txtInstitution').focus();
        document.getElementById('_txtInstitution').select();
        return false;
    }
	if (isProper(document.getElementById('_txtJobTitle').value,100) == false) {
        alert("Please enter your role within your organization.  (Manager, Technician, etc...)");
        document.getElementById('_txtJobTitle').focus();
        document.getElementById('_txtJobTitle').select();
        return false;
    }        
	if (isProper(document.getElementById('_txtFirstName').value,25) == false) {
        alert("Please enter a valid first name.");
        document.getElementById('_txtFirstName').focus();
        document.getElementById('_txtFirstName').select();
        return false;
    }
	if (isProper(document.getElementById('_txtLastName').value,25) == false) {
        alert("Please enter a valid last name.");
        document.getElementById('_txtLastName').focus();
        document.getElementById('_txtLastName').select();
        return false;
    }                 
    if (isProper(document.getElementById('_txtAddress1').value,50) == false) {
        alert("Please enter a valid street address.");
        document.getElementById('_txtAddress1').focus();
        document.getElementById('_txtAddress1').select();
        return false;
    }
    if (isProper(document.getElementById('_txtCity').value,50) == false) {
		alert("Please enter a valid city.");
        document.getElementById('_txtCity').focus();
        document.getElementById('_txtCity').select();
        return false;
    }        
	if (isProper(document.getElementById('_txtZipCode').value,20) == false) {
        //alert("Please enter a valid five (5) digit zip/postal code.");
        alert("Please enter a zip/postal code.");
        document.getElementById('_txtZipCode').focus();
        document.getElementById('_txtZipCode').select();
        return false;
    }    
    if (isValidAreaCode(document.getElementById('_txtAreaCode').value) == false) {
		alert("Please enter the area/city code as a numeric string of characters:\n\n"+
			"Example: 455");
		document.getElementById('_txtAreaCode').focus();
		document.getElementById('_txtAreaCode').select();
		return false;
    }    
    if (isValidPhone(document.getElementById('_txtPhoneNumber').value) == false) {
		alert("Please enter the phone number as a string of numeric characters:\n\n"+
			"Example: For 302-3113, you should enter 3023113.");
		document.getElementById('_txtPhoneNumber').focus();
		document.getElementById('_txtPhoneNumber').select();
		return false;
	}
	if(document.getElementById('_txtPhoneExtension').value.length>0){	
		if(isNumeric(document.getElementById('_txtPhoneExtension').value, 5)== false){
			alert("Please enter the phone extension as a string of 5 or fewer numeric characters:\n\n"+
				"Example: 4458.");
			document.getElementById('_txtPhoneExtension').focus();
			document.getElementById('_txtPhoneExtension').select();
			return false;
		}
	}

//	if(document.getElementById('reg_frm')!='undefined'){
//		document.getElementById('reg_frm').style.display = 'none';
//	}	
    return true;
}
/********************************************************************
/* client-side xml/xsl processing
/********************************************************************/
function loadXMLDoc(fname)
{
    var xmlDoc;
    // IE
    if (window.ActiveXObject){xmlDoc=new ActiveXObject("Microsoft.XMLDOM");}
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument){
      xmlDoc=document.implementation.createDocument("","",null);
    }
    else{ alert('Your browser cannot handle this script'); }
    xmlDoc.async=false;
    xmlDoc.load(fname);
    return(xmlDoc);
}
function displayMainOutput(xmlsource, xslsource, targetEl)
{
    xml=loadXMLDoc(xmlsource);
    xsl=loadXMLDoc(xslsource);
    // code for IE
    if (window.ActiveXObject){
      ex=xml.transformNode(xsl);
      document.getElementById(targetEl).innerHTML=ex;
    }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument){
      xsltProcessor=new XSLTProcessor();
      xsltProcessor.importStylesheet(xsl);
      resultDocument = xsltProcessor.transformToFragment(xml,document);
      document.getElementById(targetEl).appendChild(resultDocument);
    }
}
/********************************************************************
/* editor processing
/********************************************************************/
function editItem(index){
    try{ toggleEditMode(1,index); }
    catch(err){alert(err);}
}
function saveItem(index){
    try{ toggleEditMode(0,index); }
    catch(err){alert(err);}
}
function delItem(index){
    return confirm('Are you sure you wish to delete this item?');
}
//function toggleEditMode(mode){}
function toggleEditMode(mode, index){        
    //0 = disp, 1 = editor
    try{
        var elEdit = document.getElementById('edit'+index.toString());
        var elSave = document.getElementById('save'+index.toString());
        var elDispDiv = document.getElementById('dispDiv'+index.toString());
        var elEditDiv = document.getElementById('editDiv'+index.toString());
        switch(mode){
            case 0:
                elEdit.setAttribute('style','display:;');
                elSave.setAttribute('style','display:none;');
                elDispDiv.setAttribute('style','display:;');
                elEditDiv.setAttribute('style','display:none;');
                break;
            case 1:
                elEdit.setAttribute('style','display:none;');
                elSave.setAttribute('style','display:');
                elDispDiv.setAttribute('style','display:none;');
                elEditDiv.setAttribute('style','display:;');
                break;
        }
    }
    catch(err){alert(err);}
}