// Mailing List - form validation function //

//manually validate the form and submit when no error - to replace submit button with text link.
function validate_mailing()
{
	//alert(document.getElementById("registerForm").name);
	if (validate(document.registerForm)) {
		document.registerForm.submit();
	}
}



/*
Mailing list form at the bottom of the ASET website:
When user enters any of the fields, standard value is deleted to allow user enter their data
*/
function activate_field(field,txt)
{
if (field.value === txt) {
field.value = "";
}
else { $(field).select(); }
}

/*
Mailing list form at the bottom of the ASET website:
When user leave a field empty, then the field is populated with the default data
*/
function deactivate_field(field,txt)
{
	if (field.value === "") {
	field.value = txt;
	}
}


function validate(form) {

  var firstname = form.firstname.value;

  var lastname = form.lastname.value;

  var email = form.email.value;

  var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;

 

  if(firstname == "" || firstname == "First Name*") {

    inlineMsg('firstname','You must enter your <span class="bold">First Name</span>',2);

    return false;

  }

  

  if(lastname == "" || lastname == "Surname*") {

    inlineMsg('lastname','You must enter your <span class="bold">Surname</span>',2);

    return false;

  }

  if(email == "" || email == "Email*") {

    inlineMsg('email','You must enter your <span class="bold">Email Address</span>',2);

    return false;

  }

  if(!email.match(emailRegex)) {

    inlineMsg('email','You have entered an <span class="bold">invalid Email Address</span>',2);

    return false;

  }

  return true;

}



// START OF MESSAGE SCRIPT //



var MSGTIMER = 80;

var MSGSPEED = 10;

var MSGOFFSET = 10;

var MSGHIDE = 1;



// build out the divs, set attributes and call the fade function //

function inlineMsg(target,string,autohide) {

  var msg;

  var msgcontent;

  if(!document.getElementById('msg')) {

    msg = document.createElement('div');

    msg.id = 'msg';

    msgcontent = document.createElement('div');

    msgcontent.id = 'msgcontent';

    document.body.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 msgwidth = msg.offsetWidth;

  var targetdiv = document.getElementById(target);

  targetdiv.focus();

  var targetheight = targetdiv.offsetHeight;

  var targetwidth = targetdiv.offsetWidth;

  var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);

  var leftposition = leftPosition(targetdiv) - msgwidth - MSGOFFSET;

  msg.style.top = topposition + 'px';

  msg.style.left = leftposition + 'px';

  clearInterval(msg.timer);

  msg.timer = setInterval("fadeMsg(1)", MSGTIMER);

  if(!autohide) {

    autohide = MSGHIDE;  

  }

  window.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;

}



// preload the arrow //

if(document.images) {

  arrow = new Image(7,80); 

  arrow.src = "../global_images/content/msg_arrow.gif"; 

}
