var MSGTIMER = 5;
var MSGSPEED = 20;
var MSGOFFSET = 0;
var MSGHIDE = 1;
// build out the divs, set attributes and call the fade function //
function inlineMsg(target,string,autohide,setfocusOn,setfocus) {
var msg;
var msgcontent;
var bodyObj = document.getElementById('jsControl');
setfocus = (setfocus) ? setfocus : '1';
if(!document.getElementById('msg')){
msg = document.createElement('DIV');
msg.id = 'msg';
msgcontent = document.createElement('DIV');
msgcontent.id = 'msgcontent';
bodyObj.appendChild(msg);
msg.appendChild(msgcontent);
msg.style.filter = 'alpha(opacity=0)';
msg.style.opacity = 0;
msg.alpha = 0;
}else{
msg = document.getElementById('msg');
msgcontent = document.getElementById('msgcontent');
}
msgcontent.innerHTML = string;
msg.style.display = 'block';
var msgheight = msg.offsetHeight;
var targetdiv = document.getElementById(target);
if (document.getElementById(setfocusOn)) {
var setfocusOnObj = document.getElementById(setfocusOn);
if(setfocus == 1){
setfocusOnObj.focus();
}
}
var targetheight = targetdiv.offsetHeight;
var targetwidth = targetdiv.offsetWidth;
var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
msg.style.top = topposition + 'px';
msg.style.left = leftposition + 'px';
clearInterval(msg.timer);
msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
if(!autohide){
autohide = MSGHIDE;
}
// The following line has been commented so that the message doesnt hide after a few secs
setTimeout("hideMsg()", (autohide * 1000));
}
// hide the form alert //
function hideMsg(msg){
var msg = document.getElementById('msg');
if(!msg.timer){
msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
}
}
// face the message box //
function fadeMsg(flag){
if(flag == null){
flag = 1;
}
var msg = document.getElementById('msg');
var value;
if(flag == 1){
value = msg.alpha + MSGSPEED;
}else{
value = msg.alpha - MSGSPEED;
}
msg.alpha = value;
msg.style.opacity = (value / 100);
msg.style.filter = 'alpha(opacity=' + value + ')';
if(value >= 99) {
clearInterval(msg.timer);
msg.timer = null;
}else if(value <= 1){
msg.style.display = "none";
clearInterval(msg.timer);
}
}
// calculate the position of the element in relation to the left of the browser //
function leftPosition(target){
var left = 0;
if(target.offsetParent){
while(1){
left += target.offsetLeft;
if(!target.offsetParent) {
break;
}
target = target.offsetParent;
}
}else if(target.x){
left += target.x;
}
return left;
}
// calculate the position of the element in relation to the top of the browser window //
function topPosition(target){
var top = 0;
if(target.offsetParent){
while(1) {
top += target.offsetTop;
if(!target.offsetParent){
break;
}
target = target.offsetParent;
}
}else if(target.y){
top += target.y;
}
return top;
}
arrow = new Image();
arrow.src = "images/msg_arrow.gif";
function getObjVars(){
this.fieldN = new Array(); // Field name
this.fieldI = new Array(); // Field Id
this.fieldT = new Array(); // Field type (text, editor, checkbox, radio, select, mselect, date)
this.fieldV = new Array(); // Error message to be dispayed
this.fieldCF = new Array(); // Check for equal field
this.fieldCV = new Array(); // To check if field value is equal to a specific value. Give error if field value <> specified value
this.fieldCVE = new Array(); // To check if field value is equal to a specific value. Give error if field value == specified value
this.fieldCM = new Array(); // Error message to be displayed after comparing two fields
this.fieldFocus = new Array(); // Set focus to this field, always give the ID of the field
this.setFocus = new Array(); // whether to set focus to this field, if not specified it takes as 'yes'
this.fieldValidate = new Array(); // this is specially used if you want to validate the field
this.fieldValidateMsg = new Array(); // message
this.fieldSC = new Array(); //check for special character
this.fieldSV = new Array(); //message for special character
}
function validateForm(formN, objvar){
var err = "";
var frmObj = eval("document." + formN);
for(var i=0; i= 0) || (objvar.fieldN[i].indexOf("email") >= 0)) {
if(!checkEmail(frmElm.value)) {
inlineMsg(objvar.fieldI[i],'Please enter valid email address',3,objvar.fieldFocus[i],objvar.setFocus[i]);
return false;
}else if (objvar.fieldValidate[i]){
inlineMsg(objvar.fieldI[i],objvar.fieldValidateMsg[i],3,objvar.fieldFocus[i],objvar.setFocus[i]);
return false;
}
}else if(objvar.fieldSC[i]){
var frmElm = eval("frmObj." + objvar.fieldN[i]);
var Val = frmElm.value.length;
var DataVal = frmElm.value;
var result = true;
var iChars = "*|,\":<>[]{}`\';()&$#%";
for (var p = 0; p < Val; p++) {
if(iChars.indexOf(DataVal.charAt(p)) != -1){
result = false;
}
}
if (result == false){
inlineMsg(objvar.fieldI[i],objvar.fieldSV[i],3,objvar.fieldFocus[i],objvar.setFocus[i]);
return false;
}
}else if(objvar.fieldCF[i]){
var frmCElm = eval("frmObj." + objvar.fieldCF[i]);
if(frmElm.value != frmCElm.value){
inlineMsg(objvar.fieldI[i],objvar.fieldCM[i],3,objvar.fieldFocus[i],objvar.setFocus[i]);
return false;
}
}else if(objvar.fieldCV[i]){
if(frmElm.value != objvar.fieldCV[i]){
inlineMsg(objvar.fieldI[i],objvar.fieldCM[i],3,objvar.fieldFocus[i],objvar.setFocus[i]);
return false;
}
}else if(objvar.fieldCVE[i]){
if (frmElm.value == objvar.fieldCVE[i]){
var dis_msg = (objvar.fieldCM[i]) ? objvar.fieldCM[i] : objvar.fieldV[i];
inlineMsg(objvar.fieldI[i],dis_msg,3,objvar.fieldFocus[i],objvar.setFocus[i]);
return false;
}
}else if (objvar.fieldValidateMsg[i] == 1){
alert('here');
var dis_msg = (objvar.fieldValidateMsg[i]) ? objvar.fieldValidateMsg[i] : objvar.fieldV[i];
inlineMsg(objvar.fieldI[i],dis_msg,3,objvar.fieldFocus[i],objvar.setFocus[i]);
return false;
}
}
if(objvar.fieldT[i] == "radio"){
var frmElm = eval("frmObj." + objvar.fieldN[i]);
var checkedI = false;
var tol_options = frmElm.length;
for(var j=0; j< frmElm.length; j++) {
if(frmElm[j].checked == true) {
checkedI = true;
}
}
if(checkedI === false) {
inlineMsg(objvar.fieldI[i],objvar.fieldV[i],3,objvar.fieldFocus[i],objvar.setFocus[i]);
return false;
}
}
if(objvar.fieldT[i] == "checkbox"){
var frmElm = eval("frmObj." + objvar.fieldN[i]);
if(frmElm.checked == false) {
inlineMsg(objvar.fieldI[i],objvar.fieldV[i],3,objvar.fieldFocus[i],objvar.setFocus[i]);
return false;
}
}
if(objvar.fieldT[i] == "validate"){
var frmElm = eval("frmObj." + objvar.fieldN[i]);
inlineMsg(objvar.fieldI[i],objvar.fieldV[i],3,objvar.fieldFocus[i],objvar.setFocus[i]);
return false;
}
}
return true;
}
function checkEmail(fieldValue){
var chkAt = fieldValue.indexOf("@");
var chkDot= fieldValue.indexOf(".");
var chkHack= fieldValue.indexOf("@.");
var chkHackA= fieldValue.indexOf(".@");
if((chkAt >= 0) && (chkDot >= 0) && (chkHack == -1) && (chkHackA == -1) ) {
return true;
}
return false;
}
function check_login(frmName){
var objVar = new getObjVars();
var frmObj = document.login;
objVar.fieldI[0] = 'username';
objVar.fieldN[0] = 'username';
objVar.fieldV[0] = "Username field cannot be left empty";
objVar.fieldT[0] = "text";
objVar.fieldSC[0] = "1";
objVar.fieldSV[0] = "No special characters are allowed";
objVar.fieldI[1] = 'password';
objVar.fieldN[1] = 'password';
objVar.fieldV[1] = "Password field cannot be left empty";
objVar.fieldT[1] = "text";
if(validateForm('login',objVar)){
authenticate(frmName);
}
return false;
}