
function is_optional (fieldname) {
var optional = new Array ("address2","company","phone");
var opti = false;
for (var i=0; i<optional.length; i++) { 
	if (optional[i] == fieldname) {
	     opti = true;
	}	 
}
return opti;
}

function left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function isFloat(value){
   if(isNaN(value) || value.indexOf(".")<0){
     return false;
   } else {
      if(parseFloat(value)) {
              return true;
          } else {
              return false;
          }
   }
}


function is_int(expression)  
 {  
     return (String(expression).search(/^\d+$/) != -1);  
}  

function is_number (expression) {
var express;
if (left (expression,1) == '-') {
	express = right (expression,expression.length - 1);
} else {
	express = expression;
}
if ((isFloat(express)) || (is_int (express))) {
		return true;
   } else {
     return false;
   }
}

function must_be_float (fieldname) {
var optional = new Array ("price","list_price");
var opti = false;
for (var i=0; i<optional.length; i++) { 
	if (optional[i] == fieldname) {
	     opti = true;
	}	 
}
return opti;
}

function must_be_numeric (fieldname) {
var optional = new Array ("order","stock");
var opti = false;
for (var i=0; i<optional.length; i++) { 
	if (optional[i] == fieldname) {
	     opti = true;
	}	 
}
return opti;
}

function valid(form){
var field_name;
var value;
var error;
var ind;

for (var i=0; i<form.elements.length; i++) { 
	if ((form.elements[i].type == 'text') && (form.elements[i].value == '') && (form.elements[i].readOnly == false) && (is_optional (form.elements[i].name) == false)) {
	    field_name = form.elements[i].name;
		field_name = field_name.replace ('_',' ');
		ind = i;
		error = true;
	} else if ((form.elements[i].name == 'name') && (form.elements[i].value == 'Your Name')) {
	    field_name = form.elements[i].name;
		field_name = field_name.replace ('_',' ');
		ind = i;
		error = true; 
	} else if ((form.elements[i].type == 'text') && (must_be_numeric (form.elements[i].name) == true) && (is_number(form.elements[i].value) == false)) {
	    field_name = form.elements[i].name;
		field_name = field_name.replace ('_',' ');
		ind = i;
		error = true;		
	} else if ((form.elements[i].type == 'text') && (must_be_float (form.elements[i].name) == true) && (is_number(form.elements[i].value) == false)) {
	    field_name = form.elements[i].name;
		field_name = field_name.replace ('_',' ');
		ind = i;
		error = true;		
	} else if ((form.elements[i].type == 'select-one') && (form.elements[i].disabled == false) && (form.elements[i].selectedIndex == 0) && (!is_optional (form.elements[i].name))) {
	    field_name = form.elements[i].name;
		field_name = field_name.replace ('_',' ');	
		error = true;		
	} else if ((form.elements[i].type == 'text') && (form.elements[i].name == 'email') && (form.elements[i].readOnly == false) && (!is_optional (form.elements[i].name))) {
			   value = form.elements[i].value;
			   if ((value.indexOf(".") < 2) && (value.indexOf("@") < 0)) {
			   		field_name = "email";
					ind = i;
					error = true;
			   }
 
	}
	if (error == true) {
	    break;
	} 
}
if (error == true) {
	alert ("You must complete the field " + field_name);
	form.elements[ind].focus();
	return false;
} else {
    form.submit();

}
}

function valid_cc(form){
var field_name;
var value;
var error;
var ind;

for (var i=0; i<form.elements.length; i++) { 
	if ((form.elements[i].type == 'text') && (form.elements[i].value == '') && (form.elements[i].readOnly == false) && (!is_optional (form.elements[i].name))) {
	    field_name = form.elements[i].name;
		field_name = field_name.replace ('_',' ');
		ind = i;
		error = true;
	}  else if ((form.elements[i].type == 'select-one') && (form.elements[i].disabled == false) && (form.elements[i].selectedIndex == 0) && (!is_optional (form.elements[i].name))) {
	    field_name = form.elements[i].name;
		field_name = field_name.replace ('_',' ');	
		error = true;		
	} else if ((form.elements[i].type == 'text') && (form.elements[i].name == 'email') && (form.elements[i].readOnly == false) && (!is_optional (form.elements[i].name))) {
			   value = form.elements[i].value;
			   if ((value.indexOf(".") < 2) && (value.indexOf("@") < 0)) {
			   		field_name = "email";
					ind = i;
					error = true;
			   }
 
	}
	if (error == true) {
	    break;
	} 
}
if (error == true) {
	alert ("You must complete the field " + field_name);
	form.elements[ind].focus();
	return false;
}
}


function valid_bill(form){
var field_name;
var value;
var error;
var ind;
var msg;

for (var i=0; i<form.elements.length; i++) { 
	if ((form.elements[i].type == 'text') && (form.elements[i].value == '') && (form.elements[i].readOnly == false) && (!is_optional (form.elements[i].name))) {
	    field_name = form.elements[i].name;
		field_name = field_name.replace ('_',' ');
		ind = i;
		error = true;
	} else if ((form.elements[i].type == 'select-one') && (form.elements[i].disabled == false) && (form.elements[i].selectedIndex == 0) && (!is_optional (form.elements[i].name))) {
	    field_name = form.elements[i].name;
		field_name = field_name.replace ('_',' ');	
		error = true;		
	} else if ((form.elements[i].type == 'text') && (form.elements[i].name == 'email') && (form.elements[i].readOnly == false) && (!is_optional (form.elements[i].name))) {
			   value = form.elements[i].value;
			   if ((value.indexOf(".") < 2) && (value.indexOf("@") < 0)) {
			   		field_name = "email";
					ind = i;
					error = true;
			   }
 
	}
	if (error == true) {
	    break;
	} 
}
if (error == true) {
	alert ("You must complete the field " + field_name);
	form.elements[ind].focus();
	return false;
} else {
	msg = "Would you like to confirm your order?";
	if (confirm(msg)) form.submit();
	else return false;
  

}
}