// final form checker, if no error proceed, else alert message and select first invalid field
function checkFinal(test, msg){
	if (test == 0){
		return true;
	}else{
		var obj = document.myForm.elements[focusWho];
		switch(obj.type){
		case "hidden":
			break;
		case "select-one":
		case "select-multiple":
			document.myForm.elements[focusWho].focus();
			break;
		default:
			document.myForm.elements[focusWho].select();
			document.myForm.elements[focusWho].focus();
		}
		alert(msg);
		return false;
	}
}

// Checks for alpha-numeric password with minimum length and retyped correctly
// who1 = first pw field, who2 = retype pw filed, whoL = min length, message = error message
function checkPassword(who1,who2,whoL,message) {
	var tester1 = document.myForm.elements[who1].value;
	var tester2 = document.myForm.elements[who2].value;
	if(tester1.length < whoL){msg = message+" - Password must be 4-16 characters long\n"+msg;focusWho = who1;return 1;}
	if(checkChar(who1,whoL,"an")){msg = message+" - Password must be alpha-numeric characters only\n"+msg;focusWho = who1;return 1;}
	if(tester1 != tester2){msg = message+" - Passwords do not match\n"+msg;focusWho = who1;return 1;}
	return 0;
}

// Checks for valid phone
// who1 = area code field, who2-who3 = phone numb fields, message = error message
function checkPhone(who1,who2,who3,message) {
	if(checkChar(who1,3,"n")){msg = message+msg;focusWho = who1;return 1;}
	if(checkChar(who2,3,"n")){msg = message+msg;focusWho = who2;return 1;}
	if(checkChar(who3,4,"n")){msg = message+msg;focusWho = who3;return 1;}
	return 0;
}

// Checks for valid email ?*@?*.??*
// who = email field, message = error message
function checkEmail(who,message) {
	var tester = document.myForm.elements[who].value;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if(filter.test(tester)){
		return 0;
	}else{
		msg = message+msg;
		focusWho = who;
		return 1;
	};
}

// Checks that two email fields are same
// who = email field, who2=email field number 2, message = error message
function checkEmailSame(field1, field2, message) {
	var tester = document.myForm.elements[field1].value;
	var tester2 = document.myForm.elements[field2].value;
	if(tester == tester2){
		return 0;
	}else{
		//msg=message+msg+who2;
		msg = message+msg;
		focusWho = field1;
		return 1;
	};
}

// Checks for empty field with minimum length
// who = input field, whoL = min length, message = error message
function checkInput(who,whoL,message){
	var tester = document.myForm.elements[who].value;
	tester = tester ? tester : "";
	if (tester.length >= whoL){
		return 0;
	}else{
		msg = message+msg;
		focusWho = who;
		return 1;
	};
}

// Checks for input size
function getSize(who){
	var tester = document.myForm.elements[who].value;
	return tester.length;
}

// Checks for non selected menus or nonexistent values
// who = select field, whoL = min length, message = error message
function checkSelect(who,message){
	var obj = document.myForm.elements[who];
	if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].value == ""){
		msg = message+msg;
		focusWho = who;
		return 1;
	}else{
		return 0;
	};
}

// Checks for integers with minimum length
// who = select field, whoL = min length, message = error message
function checkInt(who,whoL,message){
	if(checkChar(who,whoL,"n")){
		msg = message+msg;
		focusWho = who;
		return 1;
	}
	return 0;
}

// Checks for NOT value
// who = select field, whoL = not value, message = error message
function checkValueX(who,whoL,message){
	var tester = document.myForm.elements[who].value;
	if(tester == whoL){
		msg = message+msg;
		focusWho = who;
		return 1;
	}
	return 0;
}

// Checks for numbers, alphas or alphanumbs with minimum length, no feedback
// who = select field, whoL = min length, what = char types
function checkChar(who,whoL,what){
	var tester = document.myForm.elements[who].value;
	switch(what){
	case "n":
		var charpos = tester.search("[^0-9]");
		break;
	case "a":
		var charpos = tester.search("[^A-Za-z]");
		break;
	case "an":
		var charpos = tester.search("[^A-Za-z0-9]");
		break;
	case "an-":
		var charpos = tester.search("[^A-Za-z0-9\-_]");
		break;
	}
	if(tester.length < whoL || charpos >= 0){return 1;}
	return 0;
}

// sets menu to value
// who = select field, val = value to select among options
function setSelect(who,val){
	for (i=0;i<document.myForm.elements[who].length;i++){
		if (document.myForm.elements[who].options[i].value == val){
			document.myForm.elements[who].options[i].selected = true;
			break;
		}
	}
}


// round numb to decimal points
function r(number,decimal) {
	multiplier = Math.pow(10,decimal);
	number = Math.round(number * multiplier) / multiplier;
	return number
}

//convert cm to inch put in who
function cminch(me,who) {
	var cm = Number(me.value);
	var inch = cm * 0.394;
	inch = r(inch,2);
	document.myForm.elements[who].value = inch;
}

//convert inch to cm put in who
function inchcm(me,who) {
	var inch = Number(me.value);
	var cm = inch * 2.54;
	cm = r(cm,2);
	document.myForm.elements[who].value = cm;
}

function cleanPriceInput( input ) {
    var val = input.value;
    var regex = /[^\d|.]/gi;
    val = val.replace(regex,'');
    input.value = val;
}

function cleanPriceInputInteger( input ) {
    var val = input.value;
    var regex = /[^\d|.]/gi;
    val = val.replace(regex,'');
    input.value = parseInt(val);
}

//Add commissin to net asking price, and then display it in the total/actual asking price box:
function addCommission(me) {
    cleanPriceInput(me);
	var price = Number(me.value);
	var asking = Number;
	if (price>=4000) {
		var comm = 1.25;
	}
	else {
		var comm = 1.333333333;
	}
	asking = Math.ceil(comm * price);
	if (asking < 1875) {
		alert ("The Asking Price must be above $1500.");
	}
	document.myForm.txtActualPrice.value = asking;
	//document.myForm.elements['txtActualPrice'].value = comm * price;

}

function addCommissionCeilHundred(me) {
    cleanPriceInputInteger(me);
	var price = parseInt(me.value);
	
	if( price < 1500 )
	{
		alert('Art Brokerage does not allow listings with a net price below 1500.');
		return;
	}
	
	var asking = Number;
	if (price>=4000) {
		var comm = 1.25;
	}
	else {
		var comm = 1.333333;
	}
	//asking = Math.ceil(comm * price);
	asking = 100*(Math.ceil( Math.ceil(comm * price)/100));
	if (asking < 2000) {
		alert ("The net Asking Price must be above $1500.");
	}
	document.myForm.txtActualPrice.value = asking;
	//document.myForm.elements['txtActualPrice'].value = comm * price;

}

//convert inch to cm put in who
function cmRetail() {
	var w = Number(document.cmForm.w.value);
	var h = Number(document.cmForm.h.value);
	w2 = r(w * 0.394,2);
	h2 = r(h * 0.394,2);
	document.cmForm.info.value = "Size " + h2 + " x " + w2 + " inches / " + h + " x " + w + " cm";
	CopiedTxt = document.cmForm.info.createTextRange();
	CopiedTxt.execCommand("Copy");
}