function replace(string,search,destroy) {
	// replaces search with destroy
    var strLength = string.length, txtLength = search.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(search);
    if ((!i) && (search != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + destroy;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),search,destroy);

    return newstr;
}

function notEqual(field,msg_on,compare,msg)
{
	if (field.value == compare && msg_on == "1")
	{
		alert(msg);
		field.focus();
		field.select();
		x = "no"
		return x;
	}

	if (field.value == compare && msg_on != "1")
	{
		x = "no"
		return x;
	}
}

function val_text(field) {
var valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz "
var ok = "yes";
var temp;
for (i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
var i = 0;
if (ok == "no") {
	if(field.desc == undefined)
	{ Name = field.name; descName = Name.replace('_', ' '); } else { descName = field.desc; }
alert(descName + ":\n\nLetters only A-Z \nNo Other/Special Characters \n \nPlease Try Again, \nThankyou");
field.focus();
field.select();
x = "no"
return x;
   }
}

function val_num(field) {
var valid = "0123456789"
var ok = "yes";
var temp;
for (i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
var i = 0;
if (ok == "no") {
	if(field.desc == undefined)
	{ Name = field.name; descName = Name.replace('_', ' '); } else { descName = field.desc; }
alert(descName + ":\n\nNumbers only \nNo Other/Special Characters \n \nPlease Try Again, \nThankyou");
field.focus();
field.select();
x = "no"
return x;
   }
}

function val_text_pluschar(field) {
var valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz \: \; \" \' \, \. \/ \? \! \@ \# \$ \% \^ \& \* \( \) \- \_ \= \+";
var ok = "yes";
var temp;
for (i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
var i = 0;
if (ok == "no") {
	if(field.desc == undefined)
	{ Name = field.name; descName = Name.replace('_', ' '); } else { descName = field.desc; }
alert(descName + ":\n\nLetters only A-Z \nNo Other/Special Characters \n  Besides \: \; \" \' \, \. \/ \? \! \@ \# \$ \% \^ \& \* \( \) \- \_ \= \+ \n \nPlease Try Again, \nThankyou");
field.focus();
field.select();
x = "no"
return x;
   }
}

function val_num_pluschar(field) {
var valid = "0123456789 \: \; \" \' \, \. \/ \? \! \@ \# \$ \% \^ \& \* \( \) \- \_ \= \+";
var ok = "yes";
var temp;

for (i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
var i = 0;
if (ok == "no") {
	if(field.desc == undefined)
	{ Name = field.name; descName = Name.replace('_', ' '); } else { descName = field.desc; }
alert(descName + ":\n\nNumbers only \nNo Other/Special Characters \n  Besides \: \; \" \' \, \. \/ \? \! \@ \# \$ \% \^ \& \* \( \) \- \_ \= \+\n \nPlease Try Again, \nThankyou");
field.focus();
field.select();
x = "no"
return x;
   }
}

function val_alpha_num(field) {
var valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 \: \; \" \' \, \. \/ \? \! \@ \# \$ \% \^ \& \* \( \) \- \_ \= \+";
var ok = "yes";
var temp;

for (i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
var i = 0;
if (ok == "no") {
	if(field.desc == undefined)
	{ Name = field.name; descName = Name.replace('_', ' '); } else { descName = field.desc; }
alert(descName + ":\n\nLetters A-Z & Numbers Only \nNo Other/Special Characters \n  Besides \: \; \" \' \, \. \/ \? \! \@ \# \$ \% \^ \& \* \( \) \- \_ \= \+ \n \nPlease Try Again, \nThankyou");
field.focus();
field.select();
x = "no"
return x;
   }
   
}

function val_email(field) 
{
	checkEmail = field.value
		
	if ((checkEmail.indexOf('@') < 0) || ((checkEmail.charAt(checkEmail.length-4) != '.') && (checkEmail.charAt(checkEmail.length-3) != '.'))) 
	{
	alert("\n\nInvalid email address. \n \nPlease try again,\nThankyou");
	field.focus();
	field.select();
	x = "no"
	return false;
	}

}

function val_zip(zip) {

	rmv_space = zip.value; spaceless = replace(rmv_space, " ", "");
	zip.value = spaceless;
	field = spaceless;

	var valid = "0123456789-";
	var hyphencount = 0;

		if(zip.desc == undefined)
		{ Name = zip.name; descName = Name.replace('_', ' '); } else { descName = zip.desc; }

	if (field.length!=5 && field.length!=10) {
	alert(descName + ":\n\nZip must be 5 digits or 5 digits - 4 numbers.\nExample ( 12345 ) or ( 12345-6789 ) \n \nPlease try again, \nThankyou");
	zip.focus();
	zip.select();
	x = "no"
	return x;
	}

	for (i=0; i < field.length; i++) {
	temp = "" + field.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") {
		alert("Zip contains Invalid Characters. \n \nPlease try again, \nThankyou");
		zip.focus();
		zip.select();

		x = "no"
		return x;
		}
	}	var i = 0;

	if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
	alert("Zip Invalid Formatting \n \nThe hyphen character should be 5 digit+four zip code, like '12345-6789'.\n\nPlease try again,\nThakyou");
	zip.focus();
	zip.select();

	x = "no"
	return x;
    }
}

function toUpperCase(stringToConvert)
{
   stringToConvert = stringToConvert.replace(/a/g,"A");
   stringToConvert = stringToConvert.replace(/b/g,"B");
   stringToConvert = stringToConvert.replace(/c/g,"C");
   stringToConvert = stringToConvert.replace(/d/g,"D");
   stringToConvert = stringToConvert.replace(/e/g,"E");
   stringToConvert = stringToConvert.replace(/f/g,"F");
   stringToConvert = stringToConvert.replace(/g/g,"G");
   stringToConvert = stringToConvert.replace(/h/g,"H");
   stringToConvert = stringToConvert.replace(/i/g,"I");
   stringToConvert = stringToConvert.replace(/j/g,"J");
   stringToConvert = stringToConvert.replace(/k/g,"K");
   stringToConvert = stringToConvert.replace(/l/g,"L");
   stringToConvert = stringToConvert.replace(/m/g,"M");
   stringToConvert = stringToConvert.replace(/n/g,"N");
   stringToConvert = stringToConvert.replace(/o/g,"O");
   stringToConvert = stringToConvert.replace(/p/g,"P");
   stringToConvert = stringToConvert.replace(/q/g,"Q");
   stringToConvert = stringToConvert.replace(/r/g,"R");
   stringToConvert = stringToConvert.replace(/s/g,"S");
   stringToConvert = stringToConvert.replace(/t/g,"T");
   stringToConvert = stringToConvert.replace(/u/g,"U");
   stringToConvert = stringToConvert.replace(/v/g,"V");
   stringToConvert = stringToConvert.replace(/w/g,"W");
   stringToConvert = stringToConvert.replace(/x/g,"X");
   stringToConvert = stringToConvert.replace(/y/g,"Y");
   stringToConvert = stringToConvert.replace(/z/g,"Z");
   return stringToConvert;
}

function chkNAC(char2chk)
{
   var validNum = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   if (validNum.indexOf(char2chk) == "-1")
      return false;
   else
      return true;	  
}

function chkNAN(char2chk)
{
   var validNum = "0123456789";
   if (validNum.indexOf(char2chk) == "-1")
      return false;
   else
      return true;	  
}

function format_phone(phoneBox, allowChar)
{
   var phone = toUpperCase(phoneBox.value);
   var tmpPhoneNumber="";  
   var formatedPhoneNumber = ""; 
   keyCount = phone.length; 
   numCharsCounted = 0;
   for(i=0; i < keyCount; i++)
   {
     ch = phone.substring(i, i + 1)
     
     //if allow char is true then the 4th character (1 based) can either 
     //be a number or a letter.
     if (allowChar && 
         numCharsCounted == 3 && //checking 4th (1 based) char.
         chkNAC(ch))
     {
        tmpPhoneNumber += ch;
        numCharsCounted++;
     }
     else
     {
        if(chkNAN(ch))
        {
           tmpPhoneNumber += ch;
           numCharsCounted++;
	} 
     }
   } 
   var area1 = tmpPhoneNumber.substring(0,3);
   var area2 = tmpPhoneNumber.substring(3,6);
   var area3 = tmpPhoneNumber.substring(6,10);
   if(area1 != null && area1.length != 0 )
   {
     var formatedPhoneNumber = "(" + area1+")" + " " + area2 + "-" + area3;
   }
   phoneBox.value = formatedPhoneNumber;
   
}

function format_ccnum(CreditCardNumberBox, maxLength)
{
   var ccNumber = toUpperCase(CreditCardNumberBox.value);
   var formatedCCNumber = ""; 
   keyCount = ccNumber.length; 
   num = 0;
   for(i=0; i < keyCount; i++)
   {
     ch = ccNumber.substring(i, i + 1)
     
     if(chkNAN(ch) && num < maxLength)
     {
        formatedCCNumber += ch;
	num++;
     } 
   } 
   CreditCardNumberBox.value = formatedCCNumber;  
}

function val_phone(field)
{

format_phone(field,false);

phone = field.value
phoneLen = phone.length
if ( phoneLen != 14)
{
	if(field.desc == undefined)
	{ Name = field.name; descName = Name.replace('_', ' '); } else { descName = field.desc; }
alert(descName + ":\n\nInvalid Entry \n   Numbers Only \n   Must be Formatted: \n   (123) 456-7890 \n \nPlease Try Again, \nThankyou");
field.focus();
field.select();
x = "no"
return x;
}
   
}

function val_ccnum(field)
{
	format_ccnum(field,16);

	if(field.desc == undefined)
	{ Name = field.name; descName = Name.replace('_', ' '); } else { descName = field.desc; }

ccnum = field.value
ccnumLen = ccnum.length

if ( ccnumLen != 16)
{
alert(descName + ":\n\nInvalid Credit Card Entry.\n \nPlease Try Again, \nThankyou");
field.focus();
field.select();
x = "no"
return x;
}
   
}


function val_checkbox(field,desc,max,min)
{

	x = 0
	for (i=0; i < field.length; i++)
   {
	if (field[i].checked == true)
	  {
		x++
	  }
    }
	var i = 0;

	if (x > max)
	{
		alert(desc + "\n\nPlease Check Only " + max + "\nCheckbox(es)\n\nPlease try again,\nThankyou");
		x = "no"
		return x;
	}

		if(x < min)
	{
		alert(desc + "\n\nPlease Check At Least " + min + "\nCheckbox(es)\n\nPlease try again,\nThankyou");
		x = "no"
		return x;
	}

}

function val_radio(field,desc)
{
	x = 0
	for (var i=0; i < field.length; i++)
   {
	if (field[i].checked == true)
	  {
		x++
	  }
    }
	var i = 0;
	if ( x == 0)
	{
		alert(desc + "\n\nPlease Select a Radio Button\n\nPlease try again,\nThankyou");
		x = "no"
		return x;
	}
}

function contact_val() 
{
	// Remember 1st Item in Array Starts at Index( 0 )

	// Insert Required Fields HERE:
	var empty = new Array(0)
	var name = new Array(0)
	empty[0]=document.contact.Fname;
	empty[1]=document.contact.Email;
	empty[2]=document.contact.Tel;	
	/////////////////////////////////
	
		if(empty[0].value == "")
		{
		alert("First Name\nThis Is a Required Field, and Cannot be Blank. \n \nPlease try again,\nThankyou"); 
		empty[0].focus();
		empty[0].select();
		return false;
		}
		
		if(empty[1].value == "")
		{
		alert("Email\nThis Is a Required Field, and Cannot be Blank. \n \nPlease try again,\nThankyou"); 
		empty[1].focus();
		empty[1].select();
		return false;
		}
		
		if(empty[2].value == "")
		{
		alert("Telephone Number\nThis Is a Required Field, and Cannot be Blank. \n \nPlease try again,\nThankyou"); 
		empty[2].focus();
		empty[2].select();
		return false;
		}
		return true;
		
}

function thisForm()
{
	if (document.addtocart.colors.value=="")
	{
		alert("Please Select a Color,\n\nThank you");
		return false;
	}
	if (document.addtocart.sizes.value=="")
	{
		alert("Please Select a Size,\n\nThank you");
		return false;
	}
	if(document.addtocart.AddFieldName1){
	  if (document.addtocart.AddFieldName1.value=="")
	  {
		alert("Please Select Option,\n\nThank you");
		return false;
	  }
	}
	if (document.addtocart.AddFieldName2){
	  if (document.addtocart.AddFieldName2.value=="")
	  {
		alert("Please Select Option,\n\nThank you");
		return false;
	  }
	}
}


