var novasisurl = "http://inbdev.villanova.edu:9050/pls/bannertest/bvskcptn.P_CreditCardPayment?pay_code=NURCS&sub_code_in=NCS&no_items_in=";
//var novasisurl = "https://novasis.villanova.edu/pls/bannerprd/bvskcpmt.P_CreditCardPayment?pay_code=NURCS&sub_code_in=NCS&no_items_in=";

var proxyurl = "/nursing/ce/form_confirmation_online_proxy.htm?template=no";
var classloc = "/nursing/ce/form_confirmation_online_class.htm";
var vuwebcturl = "http://www.villanova.edu/vuwebct/certificate";
var vistaurl = "https://elearning.villanova.edu/webct/logon/98345562011";


function trigger(header) {
	var body = $(header.id+'Body');
	if(body.hasClassName('bodyClosed'))	{
		// open
		new Effect.BlindDown(body);
		body.addClassName('bodyOpen');
		body.removeClassName('bodyClosed');
	} else	{
		// close
		new Effect.BlindUp(body);
		body.addClassName('bodyClosed');
		body.removeClassName('bodyOpen');
	
	}
}

function submitCourse(thisform) {
  var data = document.getElementsByName('Course');
  var price = document.getElementsByName('price');
  var total = 0;
  var str = "";
  var ct = 0;
  var free = 0;
  for (i=0;i<data.length;i++)
  {
        if (data[i].type == 'checkbox' && data[i].checked) {
			if (data[i].value == "nurcert013 - Psychology Series:  Mentoring") {
			  free = price[i].value;
			}
           	cost = price[i].value;
			total = total+parseInt(cost);
            str += "&"+data[i].name+"="+escape(data[i].value);
            ct += 1;
        }
  }	
 
  if (free > 0 && ct > 1) {
	total = total - parseInt(free);  
  }
  if (ct ==0) {
  	alert("Please check at least one course!");
  	return false;
  }
  window.location = classloc+"?Total="+total+str;
  
  return true;
}

function displayCreate() {
	 document.getElementById('createpdf').style.display="";
	 document.getElementById('generatebtn').style.display="none";
}

function submitCreate(thisform) {
     
    var username = thisform.username.value;
    if (username.length == 0) {
        alert("Please enter the user email address!");
        displayCreate();
        return false;
    }
    var courseid = thisform.courseid.value;
    if (courseid.length == 0) {
        alert("Please enter the course vista id!");
        displayCreate();
        return false;
    }
    document.createform.action = vuwebcturl+"?mail="+username+"&courseid="+courseid;
    document.createform.submit();

}



function removeWhitespace(s) {
  return s.replace(/\s*/g,"").replace(/<strong>|<\/strong>/g, "").replace(/<STRONG>|<\/STRONG>/g, "");
}


function submitCreditCard() {
  window.focus(document.accountform.email);
  var mdiv = $('accountmessage'); 
  mdiv.innerHTML = "";
  document.getElementById("accountimport").style.display = "";
  var amount = document.getElementById("total").innerHTML.replace(/\$/g,"")
  var emailaddr = encodeURI((removeWhitespace(document.getElementById("email_address").innerHTML)));
  var regno = encodeURI((removeWhitespace(document.getElementById("reg_number").innerHTML)));
  var courses = encodeURI((removeWhitespace(document.getElementById("courses").innerHTML)));
  var street1 = encodeURI(document.getElementById("street1").innerHTML);
  var street2 = encodeURI(document.getElementById("street2").innerHTML);
  var city = encodeURI(document.getElementById("city").innerHTML);
  var state = encodeURI(document.getElementById("state").innerHTML);
  var zip = encodeURI(document.getElementById("zip").innerHTML);
  var url = novasisurl;
  url += amount +"&email_in="+ emailaddr + "&data_1=" + regno+"&data_2=" + courses+"&address1_in="+street1+"&address2_in="+street2 +
         "&city_in="+city+"&state_in="+state+"&zip_in="+zip;
  
 
 // window.alert("Redirect to: " + url);
 // document.location.href = url;
   novasiswindow = window.open (url,  "novasiswindow","location=1,status=1,scrollbars=1,resizable=1,width=850,height=850");
   novasiswindow.moveTo(0,0);
}

function printInvoice() {
   var print_link = '<p><a href="javascript:window.print()"> '+
		'<img src="/assets/images/print_icon.gif" alt="Print This Page" border="0" height="14" width="90"></a></p>';
   var print_header = '<html xmlns="http://www.w3.org/1999/xhtml"> '+
       '<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> '+
       '<title>Nursing Continuing Ed On-Line Program Registration Form</title> '+
 	   ' <link rel="stylesheet" type="text/css" href="http://www.villanova.edu/nursing/assets/styles/online_registration.css" /> ' +
  	   '</head><body>';
   var print_confirmation = document.getElementById("confirmation").innerHTML;
   var window_setting="toolbar=yes,location=no,directories=no,scrollbars=yes,width=650,height=800";
   var printdoc=window.open("", "", window_setting);
   printdoc.document.open();
   printdoc.document.write(print_header);
   printdoc.document.write(print_link);
   printdoc.document.write(print_confirmation);
   printdoc.document.write(print_link);
   printdoc.document.write('</body></html>');
   printdoc.document.close();
   printdoc.focus();
  
}



function providePwd() {
	var mdiv = $('accountmessage'); 
    mdiv.innerHTML = "";
   // document.accountform.elements["bvalue2"].value = "Reset Account & Register Course(s)";
   	document.getElementById("accountsettingRight2").style.display = "none";
   	document.getElementById("accountsettingRight3").style.display = "";
    document.getElementById("accountsettingRight4a").style.display = "";
   	document.getElementById("accountsettingRight4b").style.display = "";
	document.getElementById("accountsettingRight5b").style.display = "";
	document.getElementById("accountsettingRight5").style.display = "none";

}

function createRegister() {
	 var subcommand = encodeURI("create");
     var mdiv = $('accountmessage'); 
     mdiv.innerHTML = "";
	 var email  = $('email').value;
	 var cemail = $('cemail').value;
	 if (email != cemail) {
	    mdiv.innerHTML = "<div id='error'><b>The username is not same as Confirmed username!</b></div>";
	 	return false;
	 } 
	 if(!isEmail(email)) {
	    mdiv.innerHTML = "<div id='error'><b>Please enter a Valid Email Address for the username!</b></div>";
	    window.focus(document.accountform.email);
	    return false;
	  }
	 var pwd = $('pwd').value;
	 var cpwd = $('cpwd').value;
	 
	 if (pwd != cpwd) {
	 	mdiv.innerHTML = "<div id='error'><b>The Password is not same as Confirmed Password!</b></div>";
	 	window.focus(document.accountform.pwd);
	 	return false;
	 }
	 if (!isPwd(pwd)) {
	 	mdiv.innerHTML = "<div id='error'><b>The Password must be start with letter and with size more than 6!</b></div>";
	 	window.focus(document.accountform.pwd);
	 	return false;
	 }
   
	 
	submitRegister(subcommand, email, pwd);
 	 
}

function resetRegister() {
	 var subcommand = encodeURI("register");
	 var mdiv = $('accountmessage'); 
     mdiv.innerHTML = "";
	 var email  = $('email2').value;
	 var cemail = $('cemail2').value;
	 var buttunvalue =  $('bvalue2').value;
	 var pwd = "";
	 var cpwd = "";
	
	 if (email != cemail) {
	    mdiv.innerHTML = "<div id='error'><b>The email address is not same as Retyped Email Address!</b></div>";
	 	return false;
	 } 
	 if(!isEmail(email)) {
	    mdiv.innerHTML = "<div id='error'><b>Please enter a Valid Email Address!</b></div>";
	    window.focus(document.accountform.email);
	    return false;
	 }
	 if (buttunvalue.indexOf("Reset") >= 0) {
	     subcommand = encodeURI("reset");
		 pwd = $('pwd2').value;
		 cpwd = $('cpwd2').value;
		 
		 if (pwd != cpwd) {
		 	mdiv.innerHTML = "<div id='error'><b>The Password is not same as Retyped Password!</b></div>";
		 	window.focus(document.accountform.pwd);
		 	return false;
		 }
		 if (!isPwd(pwd)) {
		 	mdiv.innerHTML = "<div id='error'><b>The Password must be start with letter and with size more than 6!</b></div>";
		 	window.focus(document.accountform.pwd);
		 	return false;
		 }
	 }
	 submitRegister(subcommand, email, pwd);
  	
 	
}

function submitRegister(subcommand, email, pwd) {
 	 var mdiv = $('accountmessage'); 
 	 mdiv.innerHTML = "";
	 var regno = encodeURI((removeWhitespace($("reg_number").innerHTML))).toUpperCase();
	 var fname = encodeURI((removeWhitespace($("first_name").innerHTML)));
	 var lname = encodeURI((removeWhitespace($("last_name").innerHTML)));
	 var ssn4 = encodeURI((removeWhitespace($("ssn4").innerHTML)));
	 var courses = encodeURI((removeWhitespace($("courses").innerHTML)));
	 var amount = $("total").innerHTML.replace(/\D/g,"");
	 if (regno == "") {
	   regno = $('reg_number').value.toUpperCase();
	   fname = $('first_name').value;
	   lname = $('last_name').value;
	   ssn4 = $('ssn4').value;
	   courses = "XXXXX";
	   amount = 0;
	 }
	
	 if (regno == "") {
	   mdiv.innerHTML = "<div id='error'><b>The Registration Number is required!</b></div>";
	   window.focus(document.accountform.reg_number);
	   return false;
	 } else if (fname == "") {
	   mdiv.innerHTML = "<div id='error'><b>The First Name  is required!</b></div>";
	   window.focus(document.accountform.first_name);
	   return false;
	 } else if (lname == "") {
	   mdiv.innerHTML = "<div id='error'><b>The Last Name is required!</b></div>";
	   window.focus(document.accountform.last_name);
	   return false;
	 } else  if (ssn4 == "") {
	   mdiv.innerHTML = "<div id='error'><b>The last 4 digists of SSN  is required!</b></div>";
	   window.focus(document.accountform.ssn4);
	   return false;
	 }
	 
	 
	 var pars = "&subcommand="+subcommand+"&regNum="+regno+"&firstName="+fname+"&lastName="+lname+"&ssn4="+ssn4+"&courses="+courses+"&amount="+amount+"&emailAddress="+email+"&password="+pwd;
	 pars += "&processor=/vuwebct/account";
	 var success = function(transport){registerSuccess(transport,subcommand);}
	 var failure = function(transport){registerError(transport, subcommand);}
 
	 new Ajax.Request(proxyurl,
	   {
	     method: "post",
	     postBody: pars,
	     onSuccess: success,
	     onFailure: failure

	   }
	 );
	 if (subcommand == "create") {
  	   spinner = $("accountstatusLeft");
     } else {
       spinner = $("accountstatusRight");
     }
	
	 spinner.style.visibility="visible";
   	 return;
}



function registerSuccess(transport, subcommand) {
   
   var output = transport.responseText;
   var mdiv = $('accountmessage'); 
   if (output.indexOf("Complete") > 0) {
  	 mdiv.innerHTML = "<div id='message'><b>"+output+"<br/><br/> Click <a href="+vistaurl+">Villanova E-Learning</a> "+
  	                  "to <em>LOGIN</em> using the <em>EMAIL ADDRESS you provided as username </em> and the <em> PASSWORD you created.</em></b></div>";  
		window.location=vistaurl;	  
   } else {
	 if (output.indexOf("IPayment is NOT complete") > 0) {
	 	output += 'Please Pay Online Again <input type="button" class="button" value="PAY INVOICE ONLINE" onclick="submitCreditCard()" ><br/> ';
		 
	 } 
	 if (output.indexOf("CANNOT be enrolled") > 0) {
	    var reqloc = window.location.toString();
		output += " Please validate Last Four digits of SSN or Email Address. <br/>";
		if (reqloc.indexOf('account') < 0) {
			output += "<a href='/nursing/ce/form_confirmation_online_account.htm'>Click Here </a> to modify your last 4 digists of SSN.";
			var regno = encodeURI((removeWhitespace($("reg_number").innerHTML))).toUpperCase();
			var fname = encodeURI((removeWhitespace($("first_name").innerHTML)));
			var lname = encodeURI((removeWhitespace($("last_name").innerHTML)));
			var ssn4 = encodeURI((removeWhitespace($("ssn4").innerHTML)));
			var email = encodeURI((removeWhitespace($("email").innerHTML)));
			var reginfo = "reginfo1="+regno+"&reginfo2="+fname+"&reginfo3="+lname+"&reginfo4="+ssn4+"&reginfo5="+email;
			window.location = '/nursing/ce/form_confirmation_online_account.htm?'+reginfo;
		}
	}
	 mdiv.innerHTML = "<div id='warning'><b>"+output+"</b></div>";
   } 
   var spinner = $("accountstatusLeft");
   if (subcommand == "create") {
  	 spinner = $("accountstatusLeft");
   } else {
     spinner = $("accountstatusRight");
   }
   spinner.style.visibility="hidden";
}

function registerError(transport, subcommand) {
   var mdiv = $('accountmessage'); 
   mdiv.innerHTML = "<div id='error'><b> "+
                    "Registration request failed.\n" + "Please call the Villanova UNIT Help Desk at x97777 for assistance." +
                    "</b></div>";
   if (subcommand == "create") {
  	 spinner = $("accountstatusLeft");
   } else {
     spinner = $("accountstatusRight");
   }
   spinner.style.visibility="hidden";
}

function validateAccount(fname,lname,ssn4) {
  var selected;
  var field;
  var pattern;
	// First Name Validation
  field = removeWhitespace(fname);
  if(field == "") {
    alert("Please enter a value for the First Name field.");
    window.focus(this_form.first_name);
    return false;
  }
  pattern = /^[a-zA-Z\-\.]*$/;
  if(!field.match(pattern)) {
    alert("Please use only letters, dashes, or periods in the First Name field.");
    window.focus(this_form.first_name);
    return false;
  }
  
  // Last Name Validation
  field = removeWhitespace(lname);
  if(field == "") {
    alert("Please enter a value for the Last Name field.");
    window.focus(this_form.last_name);
    return false;
  }
  pattern = /^[a-zA-Z\-\.]*$/;
  if(!field.match(pattern)) {
    alert("Please use only letters, dashes, or periods in the Last Name field.");
    window.focus(this_form.last_name);
    return false;
  }
  // ssn Validation
  field = removeWhitespace(ssn4);
  if(!isInteger(field)) {
    alert("Please enter SSN last 4 digits for the SSN field.");
    window.focus(this_form.ssn4);
    return false;
  }
  return true;
}


function validateForm(this_form) {

  var selected;
  var field;
  var pattern;
    
  // First Name Validation
  field = removeWhitespace(this_form.first_name.value);
  if(field == "") {
    alert("Please enter a value for the First Name field.");
    window.focus(this_form.first_name);
    return false;
  }
  pattern = /^[a-zA-Z\-\.]*$/;
  if(!field.match(pattern)) {
    alert("Please use only letters, dashes, or periods in the First Name field.");
    window.focus(this_form.first_name);
    return false;
  }
  
  // Last Name Validation
  field = removeWhitespace(this_form.last_name.value);
  if(field == "") {
    alert("Please enter a value for the Last Name field.");
    window.focus(this_form.last_name);
    return false;
  }
  pattern = /^[a-zA-Z\-\.]*$/;
  if(!field.match(pattern)) {
    alert("Please use only letters, dashes, or periods in the Last Name field.");
    window.focus(this_form.last_name);
    return false;
  }
  // ssn Validation
  field = removeWhitespace(this_form.ssn4.value);
  if(!isInteger(field)) {
    alert("Please enter SSN last 4 digits for the SSN field.");
    window.focus(this_form.ssn4);
    return false;
  }

  
  // Email Address Validation
  field = removeWhitespace(this_form.email.value);
  if(!isEmail(field)) {
    alert("Please enter a value for the Email Address field.");
    window.focus(this_form.email);
    return false;
  }
  pattern = /^\w[\w\.\-]*@\w[\w\-]*.\w[\w\-]*$/;
  if(!field.match(pattern)) {
    alert("Please enter a valid email address for the Email Address field.");
    window.focus(this_form.email);
    return false;
  }

  // Organization Validation
  field = removeWhitespace(this_form.organization.value);
  if(field == "") {
    alert("Please enter a value for the Organization/Employer field.");
    window.focus(this_form.organization);
    return false;
  }
  pattern = /^[\w\-\.]*$/;
  if(!field.match(pattern)) {
    alert("Please use only digits, letters, dashes, or periods in the Organization/Employer field.");
    window.focus(this_form.organization);
    return false;
  }

  
  // Phone Validation
  field = removeWhitespace(this_form.phone.value);
  pattern = /^\d{3}[\.\-]\d{3}[\.\-]\d{4}$/;
  if(field != "" && !field.match(pattern)) {
    alert("Please enter a valid phone number in the format nnn-nnn-nnnn or nnn.nnn.nnnn.");
    window.focus(this_form.phone);
    return false;
  } 
  
  // Street 1 Validation
  field = removeWhitespace(this_form.street1.value);
  if(field == "") {
    alert("Please enter a value for the Street1 field.");
    window.focus(this_form.street1);
    return false;
  }
  pattern = /^[\w\-\.#]*$/;
  if(!field.match(pattern)) {
    alert("Please use only digits, letters, dashes, periods, or hashes in the Street1 field.");
    window.focus(this_form.street1);
    return false;
  }

  
  if(removeWhitespace(this_form.city.value) == "") {
    alert("Please enter a value for the City field.");
    window.focus(this_form.city);
    return false;
  }
  if(this_form.state.selectedIndex < 1) {
    alert("Please select one of the State options.");
    this_form.state.focus();
    return false;
  }
  field = removeWhitespace(this_form.zip.value);
  if(field == "") {
    alert("Please enter a value for the Zip field.");
    window.focus(this_form.zip);
    return false;
  }
  pattern = /^\d{5}(-d{4})?$/;
  if(!field.match(pattern)) {
    alert("Please enter a valid zip code in the format nnnnn or nnnnn-nnnn.");
    window.focus(this_form.zip);
    return false;
  } 
  return true;
}

function isEmail(y){
     if (y.length > 50) {
        return false;
     }
      if (y.length < 1) {
         return false;
      }
      var emailFilter=/^.+@.+\..{2,3}$/;
      if (!(emailFilter.test(y))) {
         return false;
      }
      var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
      if (y.match(illegalChars)) {
         return false;
      }
    return true;

}

function isPwd(p) {
   if (p.length <  6) {
      return false;
   }
   var c = p.charAt(0);
   if (((c >= "0") && (c <= "9")))  {
        return false;
   }
   return true;
}

function isInteger(s){
    var i;
    if (s.length != 4) {
       return false;
    }
    for (i = 0; i < s.length; i++){
      // Check that current character is number.
      var c = s.charAt(i);
      if (((c < "0") || (c > "9")))  {
        return false;
      }
    }
    // All characters are numbers.
    return true;
  }


