function check_empty(text){
	return (text.length > 0); //return false if empty
}
//__________________________________________________________________________________________

function trim(strText) { 
    // this will get rid of leading spaces 
    while (strText.substring(0,1) == ' ') 
        strText = strText.substring(1, strText.length);

    // this will get rid of trailing spaces 
    while (strText.substring(strText.length-1,strText.length) == ' ')
        strText = strText.substring(0, strText.length-1);

   return strText;
}
//__________________________________________________________________________________________
function stripNum (val,writeback){
//strips spaces in numbers for validation

 val = "" + val;
 if (!val)
  return "";
 var result = "";
 for (i=0;i<val.length;i++) {
  character = val.charAt(i);
  if ("0123456789".indexOf(character) != -1)
   result += character;
}
  if (writeback == 1){document.form.amount.value = result};
  
  return result;}

//__________________________________________________________________________________________


function stripAlphaNum (val){
//strips spaces in numbers for validation
 val = val.toUpperCase();
 val = "" + val;
 if (!val)
  return "";
 var result = "";
 for (i=0;i<val.length;i++) {
  character = val.charAt(i);
  if ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(character) != -1)
   result += character;
 }
 return result;
}

//__________________________________________________________________________________________
	
function check_card(ccnum) {
//checks for valid card numbers using lun 10
ccnum = stripNum (ccnum);
 document.form.ccnum.value = ccnum;

   sum = 0; mul = 1; l = ccnum.length;
  for (i = 0; i < l; i++) {
    digit = ccnum.substring(l-i-1,l-i);
    tproduct = parseInt(digit ,10)*mul;
    if (tproduct >= 10)
      sum += (tproduct % 10) + 1;
    else
      sum += tproduct;
    if (mul == 1)
      mul++;
    else
      mul--;
  }
  if ((sum % 10) != 0)
	return false;
	if (ccnum == ""){return false}
    //if (!check_card_type(document.form.ccnum.value)){return false;}
  else return true;

}

//__________________________________________________________________________________________

function check_card_type(ccnum){
//checks for accepted card types
cardNum = stripNum (ccnum);
cardNumBin = cardNum.substring(0,4);
cardKnown= 0;

if ((cardNumBin >=4000) && (cardNumBin <=4999)) // Visa card range
	{ cardKnown++; }
	
if ((cardNumBin >=5100) && (cardNumBin <=5600)) // Mastercard card range
	{ cardKnown++; }
	
if ((cardNumBin >=3000) && (cardNumBin <=3059)// Dinners card ranges
	||(cardNumBin >=3600) && (cardNumBin <=3699)
	||(cardNumBin >=3800) && (cardNumBin <=3889)) 
	{ cardKnown++; }
	
if ((cardNumBin >=3400) && (cardNumBin <=3499)// Amex card ranges
	||(cardNumBin >=3700) && (cardNumBin <=3799)) 
	{ cardKnown++; }

if ((cardNumBin >=3528) && (cardNumBin <=3589)) // JCB card range
	{ cardKnown++; }
	
if ((cardNumBin >=3890) && (cardNumBin <=3899)) // JCB card range
	{ cardKnown++; }

if (cardNumBin ==6011) // Discover card range
	{ cardKnown++; }

if (cardNumBin ==5610) //Australian Bank card range
	{ cardKnown++; }

if (cardNumBin ==2014 || 2149) //enRoute card range
	{ cardKnown++; }	
			
if (cardNumBin ==6759 || 5641) // UK Switch card range
	{ cardKnown++; }	
			
if(cardKnown != 1){return false}
else return true;
}


//__________________________________________________________________________________________

function check_signum(numb){ //returns false if not 3 digit number
	temp1=""
	for(j=0;j<numb.length;++j){
		d=numb.charAt(j)
			if(d!=" ") temp1 +=d
	}
	return (temp1 > 0) && (numb.length == 3);
}	

//__________________________________________________________________________________________

function check_expiry(){

today = new Date()
month =today.getMonth()+1
year=today.getYear()
excount=0;

if(document.form.expmo.value < month){
	if(document.form.expyr.value < (year +1)) {excount++;}
}
if(document.form.expyr.value < year) {excount++;}

if (excount >=1) return false;
else return true;
}

//__________________________________________________________________________________________

function check_email_manditory(email) {
	invalidChars = " /:,;"
	
	if (email == "") {return false}
	
	for (i=0; i<invalidChars.length; i++) {	
	badChar = invalidChars.charAt(i)
		if (email.indexOf(badChar,0) > -1) {
		return false
		}
	}
	
	atPos = email.indexOf("@",1)			
		if (atPos == -1) {
		return false
		}
	
	if (email.indexOf("@",atPos+1) != -1) {return false}
	
	periodPos = email.indexOf(".",atPos+3)
	
	if (periodPos == -1) {					
	return false
	}
	
	if (periodPos+3 > email.length)	{		
	return false
		}
	if (periodPos+4 == email.length)	{ //if has 3 digit domain suffix check its 1 of allowed
	tld = email.substring((periodPos+1),(periodPos+4))
	if(tld != "com" && tld != "net" && tld != "org" && tld != "gov" && tld != "mil" && tld != "edu" && tld != "biz" && tld != "int"){
	return false;
	}
	}
	
	
	return true
}

//__________________________________________________________________________________________

function check_email(email) {
	invalidChars = " /:,;"
	
	if (email != "") {
	
	for (i=0; i<invalidChars.length; i++) {	
	badChar = invalidChars.charAt(i)
		if (email.indexOf(badChar,0) > -1) {
		return false
		}
	}
	
	atPos = email.indexOf("@",1)			
		if (atPos == -1) {
		return false
		}
	
	if (email.indexOf("@",atPos+1) != -1) {return false}
	
	periodPos = email.indexOf(".",atPos+3)
	
	if (periodPos == -1) {					
	return false
	}
	
	if (periodPos+3 > email.length)	{		
	return false
		}
	if (periodPos+4 == email.length)	{ //if has 3 digit domain suffix check its 1 of allowed
	tld = email.substring((periodPos+1),(periodPos+4))
	if(tld != "com" && tld != "net" && tld != "org" && tld != "gov" && tld != "mil" && tld != "edu" && tld != "biz" && tld != "int"){
	return false;
	}
	}
	
	}
	return true
}

//__________________________________________________________________________________________

function check_number_manditory(numb) {
 var temp=""
 for(var i=0;i<numb.length;++i) {
  var c=numb.charAt(i)
  if(c!=" ") temp += c
 }
return (temp > 0);
}

//__________________________________________________________________________________________

function check_uk_phone(numb) {
numb = stripNum(numb)

 if(numb.length < 9 || numb.length > 11){return false}// less than 9 or more than 11 digits is not valid
  if(numb.charAt(0) != 0 ){return false}// number must begin with a 0
 var temp=""
 for(var i=0;i<numb.length;++i) {
  var c=numb.charAt(i)
  if(c!=" ") temp += c
 }
return (temp > 0);
}

//__________________________________________________________________________________________


function check_uk_landline_phone(numb) {
numb = stripNum(numb)

 if(numb.length < 9 || numb.length > 11){return false}// less than 9 or more than 11 digits is not valid
  if(numb.charAt(0) != 0 || numb.charAt(1) == 7){return false}// number must begin with a 0
 var temp=""
 for(var i=0;i<numb.length;++i) {
  var c=numb.charAt(i)
  if(c!=" ") temp += c
 }
return (temp > 0);
}

//__________________________________________________________________________________________


function check_uk_mobile_phone(numb) {
numb = stripNum(numb)

 if(numb.length < 9 || numb.length > 11){return false}// less than 9 or more than 11 digits is not valid
  if(numb.charAt(0) != 0 || numb.charAt(1) != 7){return false}// number must begin with a 07

  
   var temp=""
 for(var i=0;i<numb.length;++i) {
  var c=numb.charAt(i)
  if(c!=" ") temp += c
 }
return (temp > 0);
}

//__________________________________________________________________________________________

function check_number(numb) {

if(numb !=""){
	var temp=""
	for(var i=0;i<numb.length;++i) {
	var c=numb.charAt(i)
		if(c!=" ") temp += c
	}
	return (temp > 0);
}
return true}

//__________________________________________________________________________________________

function check_UK_postcode(zip){
cleanZip = stripAlphaNum(zip) ;

if( (cleanZip.length >=5) && (cleanZip.length <=7) ) {

cleanZip = cleanZip.toUpperCase();



var goodun = 0;
cleanZipPre = new Array("AB","AL","BA","BB","BD","BH","BL","BN","BR","BS","BT","CA","CB","CF","CH","CM","CO","CR","CT","CV","CW","DA","DD","DE","DG","DH","DL","DN","DT","DY","EC","EH","EN","EX","FK","FY","GL","GU","GY","HA","HD","HG","HP","HR","HS","HU","HX","IG","IM","IP","IV","JE","KA","KT","KW","KY","LA","LD","LE","LL","LN","LS","LU","ME","MK","ML","NE","NG","NN","NP","NR","NW","OL","OX","PA","PE","PH","PL","PO","PR","RG","RH","RM","SA","SE","SG","SK","SL","SM","SN","SO","SP","SR","SS","ST","SW","SY","TA","TD","TF","TN","TQ","TR","TS","TW","UB","WA","WC","WD","WF","WN","WR","WS","WV","YO","ZE")
var firstchar = cleanZip.charAt(0);
var secondchar = cleanZip.charAt(1);

//***********************************************************
//this section checks the 116 valid 2 char alpha prefix

if (isNaN(secondchar)){//is not a number
	for (i = 0; i<115; i++){ // compare with array 
		if (cleanZipPre[i] == cleanZip.substring(0,2)){goodun = 1} 
	}
}
//***********************************************************
//this section is used to check a 1 char alpha prefix

if (!isNaN(secondchar))
{
	if (firstchar == "B" 
	||firstchar == "E" 
	||firstchar == "G"
	||firstchar == "L" 
	||firstchar == "M" 
	||firstchar == "N" 
	||firstchar == "S" 
	||firstchar == "W" ){goodun = 1}   
   
}
//***********************************************************

if (goodun != 1) return false;

districtIdChar = (cleanZip.length - 3);// count backwards from end to cope with both lengths
streetIdOneChar= (cleanZip.length - 2);
streetIdTwoChar= (cleanZip.length - 1);

firstAlpha = cleanZip.charAt(0); // get first char must be alpha
districtId = cleanZip.charAt(districtIdChar); //get district char, 3rd from end, must be num
streetIdOne = cleanZip.charAt(streetIdOneChar);// get first street id char, 2nd from end, must be alpha
streetIdTwo = cleanZip.charAt(streetIdTwoChar);// get second street id char, last in string, must be alpha

	if ("ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(firstAlpha) != -1){
		if ("01234567890".indexOf(districtId) != -1){ 
			if ("ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(streetIdOne) != -1){
					if ("ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(streetIdTwo) != -1){
					return true;}
			}
		}
	}
}
else return false;
}
//__________________________________________________________________________________________

function check_US_Zip(zip){

var valid="0123456789-";
var hyphencount = 0;

if (zip.length !=5 && zip.length !=10) {return false;}
for (var i=0; i <zip.length; i++){
temp="" +zip.substring(i,i++);
if (temp == "-")hyphencount++;
if (valid.indexOf(temp)== "-1"){return false;}
if ((hyphencount > 1)|| ((zip.length ==10) && ""+zip.charAt(5) != "-")) {return false;}
}
return true;
}

//__________________________________________________________________________________________

function check_date(date){
date = stripNum (date);
 

if (date.length!=6 && date.length!=8){return false;}
dy = parseInt(date.substring(0,2));
var mth = parseInt(date.substring(2,4));
if (date.length==6) {var yr = parseInt(date.substring(4,6)) + 2000;} //asume 21st century date and adds 2000
if (date.length==8) {var yr = parseInt(date.substring(4,8));}

if (mth > 12){return false;}
daycount = numDaysIn(mth,yr)

if (dy > daycount){return false;}

return true;
}
//__________________________________________________________________________________________
function check_date_slash(date){
date = stripNum (date);
 

if (date.length!=6 && date.length!=8){return false;}
dy = parseInt(date.substring(0,2));
var mth = parseInt(date.substring(2,4));
if (date.length==6) {var yr = parseInt(date.substring(4,6)) + 2000;} //asume 21st century date and adds 2000
if (date.length==8) {var yr = parseInt(date.substring(4,8));}

if (mth > 12){return false;}
daycount = numDaysIn(mth,yr)

if (dy > daycount){return false;}

formatdate = date.substring(0,2);
formatdate += "/";
formatdate += date.substring(2,4);
formatdate += "/";
formatdate += date.substring(4,8);

document.form.date.value = formatdate;
return true;
}
//__________________________________________________________________________________________

function numDaysIn(mth,yr) {
 if (mth==4 || mth==6 || mth==9 || mth==11) return 30;
 else if ((mth==2) && leapYear(yr)) return 29;
 else if (mth==2) return 28;
 else return 31;
}

//__________________________________________________________________________________________

function leapYear(yr) {
 if (((yr % 4 == 0) && yr % 100 != 0) || yr % 400 == 0)
  return true;
 else
  return false;
}

//__________________________________________________________________________________________

function SSNValidation(ssn) { // valid format 111-11-1111 or without dashes
var matchArr = ssn.match(/^(\d{3})-?\d{2}-?\d{4}$/);
var numDashes = ssn.split('-').length - 1;
if (matchArr == null || numDashes == 1) {
return false;
}
else 
if (parseInt(matchArr[1],10)==0) {
return false;
}
else { 
msg = "appears to be valid";
return true;
   }
}

//__________________________________________________________________________________________

function check_cash(fieldValue) {

decallowed = 2;  // how many decimals are allowed?

if (isNaN(fieldValue) || fieldValue == "") {
return false;
}
else {
if (fieldValue.indexOf('.') == -1) fieldValue += ".";
dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);

if (dectext.length > decallowed)
{
return false;
      }
else {
return true;
      }
   }
}

//__________________________________________________________________________________________

function word_count(inputText,num) {
//checks for number of words in a string
var fullStr = inputText + " ";
var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
var splitString = cleanedStr.split(" ");
var word_count = splitString.length -1;
if (word_count >= num){return true;}
else {return false;}
}
//__________________________________________________________________________________________

//-- change first letters to caps
function changeCase(frmObj) {
var index;
var tmpStr;
var tmpChar;
var preString;
var postString;
var strlen;
tmpStr = frmObj.value.toLowerCase();
strLen = tmpStr.length;
if (strLen > 0)  {
for (index = 0; index < strLen; index++)  {
if (index == 0)  {
tmpChar = tmpStr.substring(0,1).toUpperCase();
postString = tmpStr.substring(1,strLen);
tmpStr = tmpChar + postString;
}
else {
tmpChar = tmpStr.substring(index, index+1);
if (tmpChar == " " && index < (strLen-1))  {
tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
preString = tmpStr.substring(0, index+1);
postString = tmpStr.substring(index+2,strLen);
tmpStr = preString + tmpChar + postString;
         }
      }
   }
}
frmObj.value = tmpStr;
}

function validate_form()
{
if ( document.form1.txtName.value == "" )
{
alert ( "Please enter 'Name'." );
return;
}
if(!check_email_manditory(document.form1.txtEmail.value))
{
alert('Email address is missing or it is invalid.');
return;
}
if (!check_number_manditory(document.form1.txtTel.value))
{
alert ('Telephone number is missing or it is invalid.');
return;
}
if ( document.form1.txtURL.value == "" )
{
alert ( "Please enter 'Website URL'." );
return;
}
if ( document.form1.txtKeyword.value == "" )
{
alert ( "Please enter 'Keywords'." );
return;
}
{
document.form1.submit();
}
}

