// SMX JavaScript Library
// copyright Systematic Marketing Limited
// email webmaster@smxi.com

// function getRadioValue(radioObject)
// function validateInteger(aValue)
// function validateNumber(aValue)
// function NumbersOnly(aValue)
// function checkDecimal(aValue, decAllowed, fldText)
// function emailCheck(emailStr)
// isLeapYear(yy)
// validateDate(yy, mm, dd)
// dateLessThanToday(yy,mm,dd)
// dateMoreThanToday(yy,mm,dd)
// dateIsToday(yy,mm,dd)
// FlashInstalled()
// function get_cookie(Name)
// set_cookie(name, value, days)
// function verisign_open_window(url)



function getRadioValue(radioObject)
{
var value = "";
for (var i=0; i<radioObject.length; i++)
 {
   if (radioObject[i].checked)
   {
   value = radioObject[i].value;
   break;
   }
 }
 return value;
}


function validateInteger(aValue) {
var valid = "0123456789"
var temp;
  for (var i=0; i<aValue.length; i++) {
    temp = "" + aValue.substring(i, i+1);
    if (valid.indexOf(temp) == "-1") {
      return (false);
    }
   }

   return (true);
}

function validateNumber(aValue) {
var valid = "0123456789."
var temp;
  for (var i=0; i<aValue.length; i++) {
    temp = "" + aValue.substring(i, i+1);
    if (valid.indexOf(temp) == "-1") {
      return (false);
    }
   }

   return (true);
}

function NumbersOnly(aValue) {
var valid = "0123456789"
var temp;
var result = "";
  for (var i=0; i<aValue.length; i++){
     temp = "" + aValue.substring(i, i+1);
     if (valid.indexOf(temp) != "-1") {
       result = result + temp;
     }
  }

  return result;
}


function checkDecimal(aValue, decAllowed, fldText){
  
 
  if (isNaN(aValue) || aValue == ""){
    alert('please enter a ' + fldText); 
    return (false);
  }


  if (!validateNumber(aValue)){
     alert('please enter a valid ' + fldText + '. This should only include numbers.'); 
     return (false);
  }
  
 
  if (aValue.indexOf('.') == -1) {aValue += ".";}
  dectext = aValue.substring(aValue.indexOf('.')+1, aValue.length);

  if (dectext.length > decAllowed){
   alert ('please enter a valid ' + fldText + '. This should only include 2 decimal places.'); 
   return (false); 
  }

 
  return (true);
}

function checkDecimal2(aValue, decAllowed){
  
 
  if (isNaN(aValue) || aValue == ""){
    
    return (false);
  }


  if (!validateNumber(aValue)){
    
     return (false);
  }
  
 
  if (aValue.indexOf('.') == -1) {aValue += ".";}
  dectext = aValue.substring(aValue.indexOf('.')+1, aValue.length);

  if (dectext.length > decAllowed){
  
   return (false); 
  }

 
  return (true);
}

function emailCheck (emailStr) {


var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
	alert("Email address is not valid - please check")
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null) {
    alert("Email address is not valid - please check")
    return false
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert("Email address is not valid - please check")
		return false
	    }
    }
    return true
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
	alert("Email address is not valid - please check")
    return false
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 ||
    domArr[domArr.length-1].length>4) {
   alert("Email address is not valid - please check")
   return false
}

if (len<2) {
   var errStr="Email address is not valid - please check"
   alert(errStr)
   return false
}

return true;
}


function emailCheck2 (emailStr) {


var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
	
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null) {
    
    return false
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        
		return false
	    }
    }
    return true
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
	
    return false
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 ||
    domArr[domArr.length-1].length>4) {
   
   return false
}

if (len<2) {
   
   return false
}

return true;
}


MonthNames = new Array("","January","February","March","April","May","June","July","August","September","October","November","December");

function isLeapYear(yy) {

 var i = parseInt(yy);

 if ( (Math.floor(i/4) == (i/4)) && ((Math.floor(i/100) != (i/100)) || (Math.floor(i/400) == (i/400))) ){
   return true;
 }
 else {
    return false;
 }

}

function validateDate(yy, mm, dd) {

  var y = parseInt(yy);
  var m = parseInt(mm);
  var d = parseInt(dd);

  if (((m == 4) || (m == 6) || (m == 9) || (m == 11)) && (d == 31)) {
    alert (MonthNames[mm] + " has only 30 days");
    return false;
  }

  if ((m == 2) && (d > 28)){
    var ly = isLeapYear(yy);   
    
    if (ly && (d > 29)) {
	 alert("February has only 29 days");
	 return false;
	}
    else {
       alert ("February has only 28 days");
       return false;
    }
  }
  
  return true;
}

function validateDate2(yy, mm, dd) {

  var y = parseInt(yy);
  var m = parseInt(mm);
  var d = parseInt(dd);

  if (((m == 4) || (m == 6) || (m == 9) || (m == 11)) && (d == 31)) {
    
    return false;
  }

  if ((m == 2) && (d > 28)){
    var ly = isLeapYear(yy);   
    
    if (ly && (d > 29)) {
	
	 return false;
	}
    else {
       
       return false;
    }
  }
  
  return true;
}

function dateLessThanToday(yy,mm,dd) {

  var y = parseInt(yy);
  var m = parseInt(mm);
  var d = parseInt(dd);

  var dt = new Date(y, --m, d);
  var tdt = new Date();

  return (dt < tdt);

}

function dateMoreThanToday(yy,mm,dd) {

  var y = parseInt(yy);
  var m = parseInt(mm);
  var d = parseInt(dd);

  var dt = new Date(y, m--, d);
  var tdt = new Date();

  return (dt > tdt);

}

function dateIsToday(yy,mm,dd) {

  var y = parseInt(yy);
  var m = parseInt(mm);
  var d = parseInt(dd);

  var dt = new Date(y, m--, d);
  var tdt = new Date();

  return (dt == tdt);

}

function numYears(yy,mm,dd) {


}

function FlashInstalled()
{
  result = false;
  if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"])
  {
     result = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin;
  }
  else if (document.all && (navigator.appVersion.indexOf("Mac")==-1))
  {
   // IE Windows only -- check for ActiveX control, have to hide code in eval from Netscape (doesn't like try)
   eval ('try {var xObj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if (xObj)	result = true; xObj = null;} catch (e)	{}');
  }
  return result;
}

function get_cookie(Name) {
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search)
    if (offset != -1) { // if the cookie exists
      offset += search.length
      end = document.cookie.indexOf(";", offset); // set the index of beginning value
      
    if (end == -1) // set the index of the end of cookie value
         end = document.cookie.length;
         returnvalue=unescape(document.cookie.substring(offset, end))
      }
   }
  return returnvalue;
}

function set_cookie(name, value, days)
{
  ms = 1000 * 60 * 60 * 24 * eval(days)
  exp = new Date();
  exp.setTime (exp.getTime() + ms);
  document.cookie = name + '=' + escape(value) +  '; expires=' + exp.toGMTString() + '; path=/';
}


function verisign_open_window(url) {
    sealWin = window.open(url,"win",'toolbar=no,location=yes,directories=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=700,height=650');
}