/*
	Code written by Eric Chodelka
	Copyright Interpro Development
*/

var error_title = "The following error(s) has occured:\n\n";

function popUpHelp(url){
	//window.moveTo(0,0);
	window.resizeTo(screen.width-250,screen.height-24);
	
	if(document.getElementById || document.all){
		win = window.open(url, 'win', "location=0, toolbar=0, directories=0, menubar=0, status=1, scrollbars=1, resizable=1,top=0,left=" + (screen.width - 250) + ",height=" + (screen.height - 75) + ",width=" + 240);
	}else{
		win = window.open(url, 'win', "location=0, toolbar=0, directories=0, menubar=0, status=1, scrollbars=1, resizable=1,top=0,left=" + (screen.width - 238) + ",height=" + (screen.height - 10) + ",width=" + 238);
		//win = window.open(url, 'win', "location=1, toolbar=1, directories=1, menubar=1, status=1, scrollbars=1, resizable=1,top=0,left=" + (screen.width - 250) + ",height=" + (screen.height - 24) + ",width=" + 250);
	}
        window.moveTo(0,0);
	return false;
}

function test2(form){
	var error_message = "";
		
	if(isNumeric(form.data_length.value) == -1){
		error_message += "Data length must be numeric (usually 1024).\n";
	}

	if(isNumeric(form.times_to_run.value) == -1){
		error_message += "Test iteration must be numeric.\n";
	}

	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function question2(form){
	var error_message = "";
		
	if(form.ques.value == ""){
		error_message += "Question field is blank\n";
	}

	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function mailinglist(form, editor){
	if(confirm("Are you sure you want to e-mail all these customers?")){
		editor.saveValue();
		return true;
	}else{
		return false;
	}
}

function email2(form){
	var error_message = "";
		
	if(isEMail(form.em_account.value) == -1){
		error_message += "E-Mail address is invalid.\n";
	}
	
	if(form.em_user.value == ""){
		error_message += "Username field is blank.\n";
	}
	
	if(form.em_pass.value == ""){
		error_message += "Password field is blank.\n";
	}

	if(form.em_pop3.value == ""){
		error_message += "POP3 server address must be specified.\n";
	}
	
	if(form.em_smtp.value == ""){
		error_message += "SMTP server address must be specified.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function find2(form){
	var error_message = "";
	
	if(isNumeric(form.find_ord_id.value) == -1 && isDate(form.find_ord_id.value) == -1){
		error_message += "Search criteria requires Order ID or Order Date (eg. YYYY-MM-DD).\n";
	}

	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function find3(form){
        var error_message = "";

	if(form.customerid.value == ""){
		if(form.pcode.value == ""){
			if(form.fname.value == ""){
	                	error_message += "First name field is blank.\n";
	        	}
	
	        	if(form.lname.value == ""){
	        	        error_message += "Last name field is blank.\n";
	        	}
		}else{
			if(form.pcode.value == ""){
	        	        error_message += "Zip / Postal / Region code is blank.\n";
	        	}
	        }
	}else{
		if(isNumeric(form.customerid.value) == -1){
			error_message += "Customer ID must be a number.\n";
		}
	}

        if(error_message == ""){
                return true;
        }else{
                display_message(error_title + error_message);
                return false;
        }
}

function customers3(form){
        var error_message = "";
	
	if(form.fname.value == "" && form.lname.value == "" && form.pcode.value == "" && form.customerid.value == ""){
		error_message += "Search criteria requires at least one field be specified.\n";
	}	

        if(error_message == ""){
                return true;
        }else{
                display_message(error_title + error_message);
                return false;
        }
}

function returnform(form){
        var error_message = "";
	
	if(!return_items(form)){
		error_message += "At least one item must be selected.\n";
	}	

	if(form.ret_reason.value == ""){
		error_message += "Provide a reason for returning the selected item(s).\n";
	}

        if(error_message == ""){
                return true;
        }else{
                display_message(error_title + error_message);
                return false;
        }
}

function login_user(form){
	var error_message = "";
		
	if (isEMail(form.u.value) == -1){
		error_message += "E-Mail address is invalid.\n";
	}

	form.p.value = removeChars(form.p.value);
	if(isPassword(form.p.value) == -1){
		error_message += "Password length must be greater than 8 characters.\n";
	}

	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function traffic(form){
	var error_message = "";
		
	if (form.limit.selectedIndex == 0 && form.chklimit.checked == true){
		error_message += "Scan limit has not been specified.\n";
	}
	
	if(form.ignore.value != "" && isIP(form.ignore.value) == -1){
		error_message += "IP address is invalid.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function traffic2(form){
	var error_message = "";
		
	if (form.limit.selectedIndex == 0 && form.chklimit.checked == true){
		error_message += "Scan limit has not been specified.\n";
	}
	
	if(form.codes.value != "" && isCode(form.codes.value) == -1){
		error_message += "Status Code(s) is invalid.\n";
	}
	
	if(form.ignore.value != "" && isIP(form.ignore.value) == -1){
		error_message += "IP address is invalid.\n";
	}
	
	if(form.max.value != "" && isNumeric(form.max.value) == -1){
		error_message += "Maximum value must be numeric.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function authentication2(form){
	var error_message = "";
		
	if(isEMail(form.cus_email_old.value) == -1){
		error_message += "Old e-mail address is invalid.\n";
	}

	if(isEMail(form.cus_email_new.value) == -1){
		error_message += "New e-mail address is invalid.\n";
	}

	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function _shipping_address(form){
	var error_message = "";

	if(form.shp_address.value == ""){
                error_message += "Address field is invalid.\n";
        }

        if(form.shp_city.value == ""){
                error_message += "City name is invalid.\n";
        }

        if(form.shp_region.value == ""){
                error_message += "State / Province / Region is invalid.\n";
        }

        if(form.shp_code.value == ""){
                error_message += "Zip / Postal code is invalid.\n";
        }

	return error_message;
}

function checkout2(form){
	var error_message = "";
		
	if(form.shp_id2.selectedIndex == 0 && (form.shp_address.value == "" || form.shp_city.value == "" || form.shp_code.value == "" || form.shp_region.value == "" || form.shp_country.selectedIndex == 0)){
		error_message += "Select an address from the drop down box or enter an additional address in the supplied fields (all fields are required).\n";
	}

	if(!form.payment[0].checked && !form.payment[1].checked){
		error_message += "Payment method not specified.\n";
	}
	
	if(!form.sales.checked){
		error_message += "Verify that you have read and understood our return policy.\n";
	}

	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function authentication3(form){
	var error_message = "";
		
	form.cus_password_old.value = removeChars(form.cus_password_old.value);
	if (isPassword(form.cus_password_old.value) == -1){
		error_message += "Old password length must be greater than 8 characters.\n";
	}

	var tmp = form.cus_password_new.value;
	if(tmp.search(/\s+/) > -1){
		error_message += "Your new password cannot contain any spaces.\n";
	}
	
	if(isPassword(form.cus_password_new.value) == 0 && isPassword(form.cus_password_new2.value) == 0){
		if(isPassword2(form.cus_password_new.value, form.cus_password_new2.value,8,50) == -1){
			error_message += "New password does not match.\n";
		}
	}else{
		error_message += "New password length must be greater than 8 characters.\n"
	}

	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function forgot(form){
	var error_message = "";
			
	if (isEMail(form.u.value) == -1){
		error_message += "E-Mail address is invalid.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function category2(form){
	var error_message = "";
					
	if (isTitle(form.cat_name.value) == -1){
		error_message += "Category name must consist of charaters, spaces and slashes.\n";
	}

	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function creditcard2(form){
	var error_message = "";
					
	if(form.crc_type[0].checked == false && form.crc_type[1].checked == false){
		error_message += "Credit card type is not specified.\n";
	}else{
		var cc_tmp_type = "";
		if(form.crc_type[0].checked){
			cc_tmp_type = form.crc_type[0].value;
		}else if(form.crc_type[1].checked){
			cc_tmp_type = form.crc_type[1].value;
		}
		
		if (isCreditCard(form.crc_number.value, cc_tmp_type) == false){
			error_message += "Credit card number is invalid.\n";
		}
	}

	if(isExpired(form.crc_expire_month.options[form.crc_expire_month.selectedIndex].value, form.crc_expire_year.options[form.crc_expire_year.selectedIndex].value) == true){
		error_message += "Expiry date is invalid.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function order_status2(form){
	var error_message = "";
					
	if (isTitle(form.ords_name.value) == -1){
		error_message += "Order status is blank.\n";
	}

	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function manufacturer2(form){
	var error_message = "";
					
	if (isTitle(form.man_name.value) == -1){
		error_message += "Manufacturer field is blank.\n";
	}
	
	if (form.man_url.value != "" && isURL(form.man_url.value) == -1){
		error_message += "Manufacturer URL is invalid.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function review(form){
	var error_message = "";
					
	if (form.rev_rate.selectedIndex == 0){
		error_message += "Item must be given a rating.\n";
	}
	
	if (isDesc(form.rev_desc.value ) == -1){
		error_message += "Item must be given a review.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function advanced(form){
	var error_message = "";
	
	if(form.cat_name.selectedIndex == 0 && form.prod_cond.selectedIndex == 0 && form.man_name.selectedIndex == 0 && form.prod_make.selectedIndex == 0 && form.prod_model.value == "" && form.prod_price_min.value == "" && form.prod_price_max.value == "" && form.prod_cscale_min.selectedIndex == 0 && form.prod_cscale_max.selectedIndex == 0){
		error_message += "At least one field must be entered.\n";
	}
	
	if (form.prod_model.value != "" && isAlpha(form.prod_model.value) == -1){
		error_message += "Title field is blank.\n";
	}
	
	if ((form.prod_price_min.value != "" && isCurrency(form.prod_price_min.value) == -1) || (form.prod_price_max.value != "" && isCurrency(form.prod_price_max.value) == -1)){
		error_message += "Price field(s) must be in currency format, eg. 190.99.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function shipping2(form){
	var error_message = "";
		
	if(form.shp_address.value == ""){
		error_message += "Address field is blank.\n";
	}

	if(form.shp_city.value == ""){
		error_message += "City name is blank.\n";
	}

	if(form.shp_region.value == ""){
		error_message += "State / Province / Region is blank.\n";
	}

	if(form.shp_code.value == ""){
		error_message += "Zip / Postal code is blank.\n";
	}
	
	if(form.shp_country.selectedIndex == 0){
		error_message += "Country is not selected.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function register2(form){
	var error_message = "";
	
	if(form.cus_status2.selectedIndex == 0){
		error_message += "Status is not selected.\n";
	}
	
	if(form.cus_firstname2.value == ""){
		error_message += "First name is blank.\n";
	}	

	if(form.cus_lastname2.value == ""){
		error_message += "Last name is blank.\n";
	}
	
	if(form.cus_address2.value == ""){
		error_message += "Address field is blank.\n";
	}
	
	if(form.cus_city2.value == ""){
		error_message += "City name is blank.\n";
	}
	
	if(form.cus_region2.value == ""){
		error_message += "State / Province / Region is blank.\n";
	}
	
	if(form.cus_country2.selectedIndex == 0){
		error_message += "Country is not selected.\n";
	}
	
	if(isEMail(form.cus_email2.value) == -1){
		error_message += "E-mail address is invalid.\n";
	}else{
		if(form.cus_email2.value != form.cus_email_confirm.value){
			error_message += "Confirmed e-mail address doesn't match.\n";
		}
	}
	
	if(form.dob_day.options[form.dob_day.selectedIndex].value != "" && form.dob_month.options[form.dob_month.selectedIndex].value != "" && form.dob_year.options[form.dob_year.selectedIndex].value != ""){
		if(!isDate3(form.dob_day.options[form.dob_day.selectedIndex].value, form.dob_month.options[form.dob_month.selectedIndex].value, form.dob_year.options[form.dob_year.selectedIndex].value)){
			error_message += "Date of birth is invalid (e.g. An invalid day of the month such as February 31).\n";
		}
	}

	if(!isScreenName(form.cus_screenname.value, 4, 24)){
		error_message += "Screen names may contain characters, numbers and underscores and must be between 4 and 24 long.\n";
	}
	
	if(form.cus_where2.selectedIndex == 0){
		error_message += "Where did you hear about us?\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function customer2(form){
	var error_message = "";
		
	if(form.cus_status2.selectedIndex == 0){
		error_message += "Status is not selected.\n";
	}

	if(form.cus_firstname2.value == ""){
		error_message += "First name is blank.\n";
	}	

	if(form.cus_lastname2.value == ""){
		error_message += "Last name is blank.\n";
	}

	if(form.cus_address2.value == ""){
		error_message += "Address field is blank.\n";
	}

	if(form.cus_city2.value == ""){
		error_message += "City name is blank.\n";
	}

	if(form.cus_region2.value == ""){
		error_message += "State / Province / Region is blank.\n";
	}

	if(form.cus_country2.selectedIndex == 0){
		error_message += "Country is not selected.\n";
	}

	if(isEMail(form.cus_email2.value) == -1){
		error_message += "E-mail address is invalid.\n";
	}else{
		if(form.cus_email2.value != form.cus_email_confirm.value){
			error_message += "Confirmed e-mail address doesn't match.\n";
		}
	}

	if(form.dob_day.options[form.dob_day.selectedIndex].value != "" && form.dob_month.options[form.dob_month.selectedIndex].value != "" && form.dob_year.options[form.dob_year.selectedIndex].value != ""){
		if(!isDate3(form.dob_day.options[form.dob_day.selectedIndex].value, form.dob_month.options[form.dob_month.selectedIndex].value, form.dob_year.options[form.dob_year.selectedIndex].value)){
			error_message += "Date of birth is invalid (e.g. An invalid day of the month such as February 31).\n";
		}
	}
	
	if(!isScreenName(form.cus_screenname.value, 4, 24)){
		error_message += "Screen names may contain characters, numbers and underscores and must be between 4 and 24 long.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function account2(form){
	var error_message = "";
		
	if(form.cus_status2.selectedIndex == 0){
		error_message += "Status is not selected.\n";
	}

	if(form.cus_firstname2.value == ""){
		error_message += "First name is blank.\n";
	}	

	if(form.cus_lastname2.value == ""){
		error_message += "Last name is blank.\n";
	}

	if(form.cus_address2.value == ""){
		error_message += "Address field is blank.\n";
	}

	if(form.cus_city2.value == ""){
		error_message += "City name is blank.\n";
	}

	if(form.cus_region2.value == ""){
		error_message += "State / Province / Region is blank.\n";
	}
	
	if(form.cus_country2.selectedIndex == 0){
		error_message += "Country is not selected.\n";
	}
	
	if(form.dob_day.options[form.dob_day.selectedIndex].value != "" && form.dob_month.options[form.dob_month.selectedIndex].value != "" && form.dob_year.options[form.dob_year.selectedIndex].value != ""){
		if(!isDate3(form.dob_day.options[form.dob_day.selectedIndex].value, form.dob_month.options[form.dob_month.selectedIndex].value, form.dob_year.options[form.dob_year.selectedIndex].value)){
			error_message += "Date of birth is invalid (e.g. An invalid day of the month such as February 31).\n";
		}
	}
	
	if(!isScreenName(form.cus_screenname.value, 4, 24)){
		error_message += "Screen names may contain characters, numbers and underscores and must be between 4 and 24 long.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function product2(form){
	var error_message = "";
	
	if(form.prod_lotid.value == ""){
		error_message += "Lot ID is blank.\n";
	}
	
	if(form.cat_id.selectedIndex == 0){
		error_message += "Category must be selected.\n";
	}
	
	if(form.man_id.selectedIndex == 0){
		error_message += "Manufacturer must be selected.\n";
	}
	
	if(isAlpha(form.prod_make.value) == -1){
		error_message += "Make field is invalid.\n";
	}
	
	if(form.prod_condition.selectedIndex == 0){
		error_message += "Condition must be selected.\n";
	}
	
	if(form.prod_rating.selectedIndex == 0){
		error_message += "Rating field is invalid.\n";
	}
	
	if(form.prod_url.value != "" && isURL(form.prod_url.value) == -1){
		error_message += "URL address is invalid.\n";
	}
	
	//if(isCurrency(form.prod_weight.value) != -1 || isNumeric(form.prod_weight.value) != -1){
	//	//good to go
	//}else{
	//	error_message += "Weight field is invalid.\n";
	//}

	if(isNumeric(form.prod_stock.value) == -1){
		error_message += "Stock field must be a number.\n";
	}

	if(isCurrency(form.prod_price.value) == -1){
		error_message += "Price field is invalid.\n";
	}

	if(isPercentage(form.prod_discount.value) == -1){
		error_message += "Discount field is invalid.\n";
	}
	
	if(isCurrency(form.prod_shipcost.value) == -1){
		error_message += "Shipping field is invalid.\n";
	}
	
	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function orders2(form){
	var error_message = "";

	if(form.ords_cancel.checked){
		if(confirm("Are you sure you want to cancel this order?")){
			return true;
		}else{
			return false;
		}
	}else{
		if(form.shp_total.value == ""){
			error_message += "Shipping cost cannot be blank. For free shipping type 0.\n";
		}
		
		if(form.ord_track.value != ""){
			if(isURL(form.ord_track_site.value) == -1){
				error_message += "Tracking url is invalid.  Make sure the URL starts with 'http://'\n";
			}
		}
		
		if(error_message == ""){
			return true;
		}else{
			display_message(error_title + error_message);
			return false;
		}
	}
}

function rma2(form){
        var error_message = "";
        var at_least_one = false;

	var isRecieved = false;
	if(form.rmad_recieved){
		if(form.rmad_recieved.checked){ 
			isRecieved = true;
		}
	}

	if(isRecieved == false){
        	if(isArray(form.rmad_serial) == true){
                	for(x = 0; x < form.rmad_serial.length; x++){
                                if(isAlpha(form.rmad_serial[x].value) == -1){
                                        at_least_one = true;
                                }
                	}
       		}else{
                        if(isAlpha(form.rmad_serial.value) == -1){
                                at_least_one = true;
                        }
        	}
	}

        if(at_least_one == true){
                error_message += "All serial number(s) must be entered.\n";
        }

        if(error_message == ""){
                return true;
        }else{
                display_message(error_title + error_message);
                return false;
        }
}

function display_message(str){
	alert(str);
}

function isArray(obj){
	if(typeof(obj.length)=="undefined"){
		return false;
	}else{
		return true;	
	}
}


function delete_items(form){
	var at_least_one = false;
	if(form.delete_item){
	if(isArray(form.delete_item) == true){
		for(x = 0; x < form.delete_item.length; x++){
			if(form.delete_item[x].checked == true){
				at_least_one = true;
			}
		}
	}else{
		if(form.delete_item.checked == true){
			at_least_one = true;
		}
	}
	
	if(at_least_one == true){
		return true;
	}else{
		display_message(error_title + "At least one item must be selected.\n");
		return false;
	}
	}else{
		display_message("No action can be taken.\n");
		return false;
	}
}

function return_items(form){
	var at_least_one = false;
	
	if(isArray(form.returnitem) == true){
		for(x = 0; x < form.returnitem.length; x++){
			if(form.returnitem[x].checked == true){
				at_least_one = true;
			}
		}
	}else{
		if(form.returnitem.checked == true){
			at_least_one = true;
		}
	}

	if(at_least_one == false){
		//display_message(error_title + "At least one item must be selected.\n");
		return false;
	}else{
		return true;
	}
}

function order_modify(form){
        var valid_quantity = true;
	var valid_delete = true;
	var delete_num = 0;

	if(isArray(form.delete_item) == true){
                for(x = 0; x < form.delete_item.length; x++){
                        if(form.delete_item[x].checked){
                                delete_num++;
                        }
                }
		if(delete_num == form.delete_item.length){
			valid_delete = false;
		}
        }else{
                if(form.delete_item.checked){
                        valid_delete = false;
                }
        }

        if(isArray(form.prod_quantity) == true){
                for(x = 0; x < form.prod_quantity.length; x++){
                        if(form.prod_quantity[x].value <= 0 || isNumeric(form.prod_quantity[x].value) == -1){
                                valid_quantity = false;
                        }
                }
        }else{
                if(form.prod_quantity.value <= 0 || isNumeric(form.prod_quantity.value) == -1){
                        valid_quantity = false;
                }
        }

        if(valid_quantity == false ||  valid_delete == false){
		if(valid_delete == false){
                	display_message(error_title + "To delete all item(s), please cancel your order.\n");
		}else{
			display_message(error_title + "Selected quantity must be a number greater than zero.\n");
                }
		return false;
        }else{
                return true;
        }
}


function update_items(form){
	var invalid = false;
	
	if(isArray(form.quantity) == true){
		for(x = 0; x < form.quantity.length; x++){
			if(isNumeric(form.quantity[x].value) == -1 || form.quantity[x].value == 0){
				invalid = true;
			}
		}
	}else{
		if(isNumeric(form.quantity.value) == -1 || form.quantity.value == 0){
			invalid = true;
		}
	}
	
	if(invalid == false){
		return true;
	}else{
		display_message(error_title + "Selected quantity must be a number greater than zero.\n");
		return false;
	}
}

function exchangePrice(prodid, price, ce, cc){
	var dsign = "\$";
	if(cc != "CAD" && cc != "USD"){
		dsign="";
	}
	var elements = document.getElementsByName(''+prodid+'');
	for(x = 0; x < elements.length; x++){
		if(!elements[x].innerHTML.match(/free|unavailable/i)){
			
			var newnum = ce * price[x];
			elements[x].innerHTML = dsign + "" + newnum.toFixed(2) + " " + cc;
		}
	}
}

function toycatacomb(form){
	var error_message = "";
					
	if (form.which_name.value == ""){
		error_message += "Title field is blank\n";
	}

	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}

function contact(form){
	var error_message = "";
	
	if(form.email.value == ""){
		error_message += "E-Mail address field is blank\n";
	}
	
	if(form.cat.options[form.cat.selectedIndex].value == ""){
		error_message += "Question category isn't selected\n";
	}
	
	if(form.question.value == ""){
		error_message += "Question field is blank\n";
	}

	if(error_message == ""){
		return true;
	}else{
		display_message(error_title + error_message);
		return false;
	}
}
