var cmMonthArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

function isBlank(inputObj) { 
 for(var x = 0; x < inputObj.value.length; x++) {    
  if(inputObj.value.charCodeAt(x) != 32 & inputObj.value.charCodeAt(x) != 13 & inputObj.value.charCodeAt(x) != 10) {
   return false;
  }  
 }
 return true;
}

function isValidEmail(inputObj) {
 if(inputObj.value.indexOf('@') == -1 || inputObj.value.indexOf('.') == -1) {
  return false;
 }
 else {
  var tmp1 = inputObj.value.split("@");
  var tmp2 = tmp1[1].split(".");   
  if(tmp1[0].length < 1 || tmp2[0].length < 2 || tmp2[1].length < 2) {
   return false;
  }   
 }
 return true;
}

function isNumeric(inputObj) {
 if(isNaN(inputObj.value) || isBlank(inputObj)) {
  return false;
 }
 else {
  return true;
 }
}

function getSelectedRadioObj(radioObj) {  
 for(var x = 0; x < radioObj.length; x++) {
  if(radioObj[x].checked) {
   return radioObj[x].id;
  }  
 }
 return false;
}

function selectRadioObj(radioObj,val) {
 for(var x = 0; x < radioObj.length; x++) {  
  if(radioObj(x).value == val) {   
   radioObj(x).checked=true;
  }  
 } 
}

function isValidZip(inputObj) {
 if(isNumeric(inputObj) && inputObj.value.length == 5) {   
  return true;
 }
 else {
  return false;
 }
}

function isValidFullZip(inputObj) {}

function isValidPhone(format,inputObj) {
 // format - 0 = (xxx) xxx-xxxx
 // format - 1 = xxx xxx-xxxx
 // format - 2 = xxx.xxx.xxxx
 // format - 3 = xxx-xxxx
 switch(format) {
  case 0: {
   if(inputObj.value.indexOf('(') == -1 || inputObj.value.indexOf(')') == -1 || inputObj.value.indexOf('-') == -1 || inputObj.value.length !=14) {
    return false;
   }
   else {
    return true;
   }
  }
 }
}

function isValidDate(month,day,year) { 
 if(year < 1900 || year > 9999 || isNaN(year)) { 
  return 'year';
 }
 if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
  cmMonthArray[1] = "29";
 } 
 if(month < 1 || month > 12 || isNaN(month)) { 
  return 'month';
 } 
 if(day < 1 || day > cmMonthArray[(month-1)] || isNaN(day)) {  
  return 'day';
 }
 return true;
}

function isValidMonth(month) {
 if(isNaN(month) || month < 1 || month > 12) {
  return false;
 }
 return true;
}

function isValidDay(day, month) {
 if(isNaN(day) || day < 1 || day > cmMonthArray[(month-1)]) {  
  return false;
 }
 return true;
}

function isValidYear(year) {
 var date = new Date();
 var topYear = date.getFullYear()*1+1;
  
 if(isNaN(year) || year < 2006 || year > topYear) {   
  return false;
 }
 return true;  
}

function isStrictAlphaNumeric(inputObj) {  
 for(var x = 0; x < inputObj.value.length; x++) {
  if((inputObj.value.charCodeAt(x) >= 48 && inputObj.value.charCodeAt(x) <= 57) || (inputObj.value.charCodeAt(x) >= 65 && inputObj.value.charCodeAt(x) <= 90) || (inputObj.value.charCodeAt(x) >= 97 && inputObj.value.charCodeAt(x) <= 122) || (inputObj.value.charCodeAt(x) == 45 || inputObj.value.charCodeAt(x) == 95)) {
  }
  else {
   return false;
  }   
 }
 return true;
}

function isAlphaNumeric(inputObj) {  
 for(var x = 0; x < inputObj.value.length; x++) {
  if((inputObj.value.charCodeAt(x) >= 48 && inputObj.value.charCodeAt(x) <= 57) || (inputObj.value.charCodeAt(x) >= 65 && inputObj.value.charCodeAt(x) <= 90) || (inputObj.value.charCodeAt(x) >= 97 && inputObj.value.charCodeAt(x) <= 122) || (inputObj.value.charCodeAt(x) == 45 || inputObj.value.charCodeAt(x) == 95 || inputObj.value.charCodeAt(x) == 32)) {
  }
  else {
   return false;
  }   
 }
 return true;
}

function isAlphaNumericList(inputObj,delimeter) {
 if(!delimeter) { var delimeter = ','; }
 for(var x = 0; x < inputObj.value.length; x++) {
  if((inputObj.value.charCodeAt(x) >= 48 && inputObj.value.charCodeAt(x) <= 57) || (inputObj.value.charCodeAt(x) >= 65 && inputObj.value.charCodeAt(x) <= 90) || (inputObj.value.charCodeAt(x) >= 97 && inputObj.value.charCodeAt(x) <= 122) || (inputObj.value.charCodeAt(x) == 45 || inputObj.value.charCodeAt(x) == 95 || inputObj.value.charCodeAt(x) == 32) || (inputObj.value.charAt(x) == delimeter)) {
  }
  else {
   return false;
  }   
 }
 return true;
}

// -1 = date 1 less then date 2
// 0 = date 1 equal to date 2
// 1 = date 1 greater then date 2
function dateCompare(date1,date2) {	
 var result = 0;	
 if(Date.parse(date1) < Date.parse(date2)){
  result = -1;							   
 }
 else if(Date.parse(date1) == Date.parse(date2)){
  result = 0;							   
 }
 else if(Date.parse(date1) > Date.parse(date2)){
  result = 1;							   
 }  
 return result;
}

function dateDiff(date1,date2) { 
 var diff = Math.ceil((date2.getTime()-date1.getTime()))/(1000*60*60*24);
 return diff;
}