Restructured the baseline to remove extra src/main directory structure. Added eclipes project file
git-svn-id: http://webgoat.googlecode.com/svn/branches/webgoat-6.0@485 4033779f-a91e-0410-96ef-6bf7bf53c507
This commit is contained in:
145
webapp/javascript/clientSideValidation.js
Normal file
145
webapp/javascript/clientSideValidation.js
Normal file
@ -0,0 +1,145 @@
|
||||
var coupons = ["nvojubmq",
|
||||
"emph",
|
||||
"sfwmjt",
|
||||
"faopsc",
|
||||
"fopttfsq",
|
||||
"pxuttfsq"];
|
||||
|
||||
|
||||
function isValidCoupon(coupon) {
|
||||
coupon = coupon.toUpperCase();
|
||||
for(var i=0; i<coupons.length; i++) {
|
||||
decrypted = decrypt(coupons[i]);
|
||||
if(coupon == decrypted){
|
||||
ajaxFunction(coupon);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function decrypt(code){
|
||||
|
||||
code = code.toUpperCase();
|
||||
|
||||
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
|
||||
caesar = '';
|
||||
|
||||
for (i = code.length ;i >= 0;i--){
|
||||
|
||||
for (j = 0;j<alpha.length;j++){
|
||||
|
||||
if(code.charAt(i) == alpha.charAt(j)){
|
||||
|
||||
caesar = caesar + alpha.charAt((j+(alpha.length-1))%alpha.length);
|
||||
}
|
||||
}
|
||||
}
|
||||
return caesar;
|
||||
}
|
||||
|
||||
function ajaxFunction(coupon)
|
||||
{
|
||||
|
||||
var xmlHttp;
|
||||
try
|
||||
{
|
||||
// Firefox, Opera 8.0+, Safari
|
||||
xmlHttp=new XMLHttpRequest();
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
// Internet Explorer
|
||||
try
|
||||
{
|
||||
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
try
|
||||
{
|
||||
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
alert("Your browser does not support AJAX!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
xmlHttp.onreadystatechange=function()
|
||||
{
|
||||
if(xmlHttp.readyState==4)
|
||||
{
|
||||
document.form.GRANDTOT.value = calcTot(document.form.SUBTOT.value , xmlHttp.responseText);
|
||||
}
|
||||
}
|
||||
xmlHttp.open("GET","lessons/Ajax/clientSideValidation.jsp?coupon=" + coupon,true);
|
||||
xmlHttp.send(null);
|
||||
}
|
||||
|
||||
|
||||
function updateTotals(){
|
||||
|
||||
f = document.form;
|
||||
|
||||
f.TOT1.value = calcTot(f.PRC1.value , f.QTY1.value);
|
||||
f.TOT2.value = calcTot(f.PRC2.value , f.QTY2.value);
|
||||
f.TOT3.value = calcTot(f.PRC3.value , f.QTY3.value);
|
||||
f.TOT4.value = calcTot(f.PRC4.value , f.QTY4.value);
|
||||
|
||||
f.SUBTOT.value = formatCurrency(unFormat(f.TOT1.value)
|
||||
+ unFormat(f.TOT2.value)
|
||||
+ unFormat(f.TOT3.value)
|
||||
+ unFormat(f.TOT4.value));
|
||||
|
||||
f.GRANDTOT.value = f.SUBTOT.value;
|
||||
|
||||
isValidCoupon(f.field1.value);
|
||||
|
||||
|
||||
}
|
||||
|
||||
function unFormat(price){
|
||||
|
||||
price = parseFloat(unFormatCurrency(price));
|
||||
|
||||
if(isNaN(price))
|
||||
price = 0;
|
||||
|
||||
return price;
|
||||
|
||||
}
|
||||
|
||||
function calcTot( price, qty){
|
||||
|
||||
price = unFormatCurrency(price);
|
||||
|
||||
return formatCurrency(price*qty);
|
||||
}
|
||||
|
||||
|
||||
function unFormatCurrency(price){
|
||||
price = price.toString().replace(/\$|\,/g,'');
|
||||
return price;
|
||||
}
|
||||
|
||||
function formatCurrency(num) {
|
||||
num = num.toString().replace(/\$|\,/g,'');
|
||||
if(isNaN(num))
|
||||
num = "0";
|
||||
sign = (num == (num = Math.abs(num)));
|
||||
num = Math.floor(num*100+0.50000000001);
|
||||
cents = num%100;
|
||||
num = Math.floor(num/100).toString();
|
||||
if(cents<10)
|
||||
cents = "0" + cents;
|
||||
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
|
||||
num = num.substring(0,num.length-(4*i+3))+','+
|
||||
num.substring(num.length-(4*i+3));
|
||||
return (((sign)?'':'-') + '$' + num + '.' + cents);
|
||||
}
|
Reference in New Issue
Block a user