function highlight(btn, state){
	imgName = state ? btn.id + '_over' : btn.id;
	btn.src = 'images/' + imgName + '.gif';
}

function showHanger(id, state){
	imgID = 'hanger_' + id;
	myImg = document.getElementById(imgID);
	imgName = state ? 'hanger' : 'pixel';
	myImg.src = 'images/' + imgName + '.gif';
}

function getDesigner(sel){
	designerID = sel.options[sel.selectedIndex].value;
	location = 'index.php?page=browse&designer=' + designerID;
}

function magnify(prodID, imgName){
	specs = 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=380,height=440,left=200, top=100';
	href = 'magnify.php?prodID=' + prodID + '&imgName=' + imgName;
	mywin = window.open(href, 'popup', specs);
}

function setProdImg(imgPath){
	myImg = document.getElementById('prodImg');
	myImg.src = imgPath;
}
	
function checkSize(anchor){
	sizeSel = document.getElementById('size');
	if(sizeSel){
		if(sizeSel.value){
			mysize = sizeSel.value;
			location = anchor.href + '&size=' + mysize;
			return false;
		}
		else{
			alert('Please choose a size');
			return false;
		}
	}
	return true;
}

function updateQuantity(id){
	qtyField = document.getElementById('qty_'+id);
	qty = qtyField.value;
	
	if(qty < 1 || isNaN(qty)) qty = 1;
	
	location = 'index.php?page=cart&updateQty='+id+'&qty='+qty;
}

function validateHomeSignup(email){
	error = '';
	flag = false;
	if(error = validateEmail(email)){
		alert(error);
		return false;
	}
	return true;
}

function validateSignup(frm){
	error = '';
	flag = false;

	if(error = verifyFields(frm)) flag = true;
	else if(error = validateEmail(frm.email.value)) flag = true;
	else if(error = compareFields(frm.password, frm.confirm, 'password')) flag = true;
	
	if(flag){
		alert(error);
		return false;
	}
	return true;
}

function validateCheckout1(frm){
	error = '';
	flag = false;
	
	if(error = verifyFields(frm)) flag = true;
	else if(error = validateZip(frm.zip.value)) flag = true;

	//check to see if the shipping info is visible
	else if(frm.showShippingCheck.checked){
		if(error = validateZip(frm.zip_ship.value)) flag = true;
	}
	
	else if(error = validateEmail(frm.email.value)) flag = true;
	else if(error = compareFields(frm.email, frm.email_confirm, 'email')) flag = true;
	else if(error = validatePhone(frm.phone.value)) flag = true;
	else if(error = validateCCNum(frm.ccnum.value)) flag = true;
	else if(error = validateShippingMethod(frm.shippingRate.options[frm.shippingRate.selectedIndex].value)) flag = true;

	if(flag){
		alert(error);
		return false;
	}
	return true;
}

function validateCheckout2(frm){
	var termsCheck = document.getElementById('tcCheck');
	if(!termsCheck.checked){
		alert('To place your order you must agree to the terms and conditions of this sale by checking the box under the total.');
		return false;
	}

	//get the order summary HTML to save in the database for later use
	var os = document.getElementById('orderSummaryDiv');
	frm.orderSummary.value = os.innerHTML;

	return true;
}

function validateCCNum(ccNum){
	if(isNaN(ccNum)){
		error = 'Please enter a valid credit card number using only numbers (no dashes or spaces)';
		return error;
	}
	
	return 0;
}

function validateEmail(email){
	str = email;
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
		flag = true;
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		flag = true;
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		flag = true;
	}
	if (str.indexOf(at,(lat+1))!=-1){
		flag = true;
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		flag = true;
	}
	if (str.indexOf(dot,(lat+2))==-1){
		flag = true;
	}
	if (str.indexOf(" ")!=-1){
		flag = true;
	}
	
	if(flag){
		error = 'Please enter a valid email address.';
		return error;
	}
	
	return 0;
	
}

function verifyFields(frm){
	elems = frm.elements;
	for(i=0; i<elems.length; i++){
		if((elems[i].type == 'text' || elems[i].type == 'select-one' || elems[i].type == 'password') && elems[i].value == ''){
			
			//check to see if shipping info is Hidden or if no coupon code is present
			if(!(elems[i].name.indexOf('_ship') != -1 && !frm.showShippingCheck.checked || elems[i].name == 'coupon' )){
				error = 'Please make sure all fields are complete before submitting.';
				return error;
			}
		}
	}
	return 0;
}

function validatePhone(phone){
	strPhone = new String(phone);
	rexp = new RegExp();
	rexp = /[^0-9a-z]/gi;
	nums = strPhone.replace(rexp, '');
	rexp = /[a-z]/gi;
	if(nums.length != 10 || nums.search(rexp) != -1){
		error = 'Please make sure your phone number is correct and includes the area code.';
		return error;
	}
	return 0;
}

function validateZip(zip){
	strZip = new String(zip);
	rexp = new RegExp();
	rexp = /[^0-9a-z]/gi;
	nums = strZip.replace(rexp, '');
	rexp = /[a-z]/gi;
	if((nums.length != 5 && nums.length != 9) || nums.search(rexp) != -1){
		error = 'Please make sure your zip code is correct';
		return error;
	}
	return 0;
}

function compareFields(field1, field2, fieldType){
	if(field1.value != field2.value){
		error = 'Please make sure you enter your ' + fieldType + ' exactly the same in both ' + fieldType + ' fields.';
		return error;
	}
	return 0;
}

function validateShippingMethod(method){
	if(method == 0) return 'Please choose a shipping method';
	return 0;
}

function showCheckoutPage(selpage){
	var page1 = document.getElementById('page1');
	var page2 = document.getElementById('page2');
	var page3 = document.getElementById('page3');

	page1.style.visibility = (selpage == 1) ? 'visible' : 'hidden';
	page1.style.position = (selpage == 1) ? 'relative' : 'absolute';
	
	page2.style.visibility = (selpage == 2) ? 'visible' : 'hidden';
	page2.style.position = (selpage == 2) ? 'relative' : 'absolute';

	page3.style.visibility = (selpage == 3) ? 'visible' : 'hidden';
	page3.style.position = (selpage == 3) ? 'relative' : 'absolute';
}

function toggleShipping(shippingCheckbox){
	shipDiv = document.getElementById('shippingDiv');
	if(shippingCheckbox.checked){
		shipDiv.style.display = 'block';
		shipDiv.style.visibility = 'visible';
	}
	else{
		shipDiv.style.display = 'none';
		shipDiv.style.visibility = 'hidden';
	}
}
